JP2006327155A - 画像処理装置及びその制御方法、プログラム - Google Patents

画像処理装置及びその制御方法、プログラム Download PDF

Info

Publication number
JP2006327155A
JP2006327155A JP2005157609A JP2005157609A JP2006327155A JP 2006327155 A JP2006327155 A JP 2006327155A JP 2005157609 A JP2005157609 A JP 2005157609A JP 2005157609 A JP2005157609 A JP 2005157609A JP 2006327155 A JP2006327155 A JP 2006327155A
Authority
JP
Japan
Prior art keywords
image data
tile
block
data
vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005157609A
Other languages
English (en)
Other versions
JP2006327155A5 (ja
JP4646703B2 (ja
Inventor
Masataka Yasuda
昌孝 保田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2005157609A priority Critical patent/JP4646703B2/ja
Publication of JP2006327155A publication Critical patent/JP2006327155A/ja
Publication of JP2006327155A5 publication Critical patent/JP2006327155A5/ja
Application granted granted Critical
Publication of JP4646703B2 publication Critical patent/JP4646703B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)
  • Storing Facsimile Image Data (AREA)

Abstract

【課題】システム全体のシステム・リソースの制約を緩和し、かつトータルスループットを向上することができる画像処理装置及びその制御方法、プログラムの提供。
【解決手段】ラスタ画像データを、設定されたブロックサイズのブロック毎に分割して、各ブロックにベクトル化処理を実行することで、ブロックベクタ画像データに変換する第1変換部と、ブロックベクタ画像データをラスタ画像データに展開する展開部とを備え、入力されたラスタ画像データを前記第1変換部でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを記憶手段に記憶させ、それに記憶されているブロックベクタ画像データを前記展開部で展開して得られるラスタ画像データを出力部から出力させるように、装置内での処理対象の画像データの転送を制御する。なお、第1変換部では、処理対象の画像データ中のオブジェクトをその大きさに基づいてブロックに分割する。
【選択図】 図1

Description

本発明は、入力された画像データに対して画像処理を施して管理する画像処理装置及びその制御方法、プログラムに関するものである。
ネットワーク上に接続され、外部あるいは内部の画像データに対する画像データ処理を実行し、その処理した画像データを出力する画像データ入出力システムが知られている。
この画像データ入出力システムとしては、MFP(Multi Function Peripheral)と呼ばれるものがある。
ここで、従来のMFPを制御するコントローラ100を図28に示す。コントローラ100は、システムバスブリッジ(SBB)101により、CPU102、メモリコントローラ(MC)103、汎用バス105、画像処理部110、画像データ展開部(RIP(Raster Image Processor))113が接続されている。
汎用バス105には、画像データを蓄積するための:大容量記憶部(HDD(ハードディスクドライブ))107を制御するハードディスクコントローラ(HDDCont)106、MFPが接続されているネットワーク108を介して、外部機器間との画像データの転送を行うインターフェースになるネットワークI/F109が接続されている。この画像データとしては、ページベクタ形式(PDL(ページ記述言語)、PDF、SVG等)の画像データがある。
HDDCont106には、HDD(ハードディスクドライブ)107が接続されており、画像データの記憶媒体として使われる。同様に、MC103には、システムメモリ(Memory)104が接続されており、画像データを一時記憶するための媒体として使われる。システムメモリ104には、一般的には、DIMMが用いられる。
画像処理部110には、スキャナ111及びプリンタ112が接続されている。スキャナ111から入力された画像データは、画像処理部110によって所定の画像処理が実施された後、コントローラ100へ入力される。また、コントローラ100内に記憶されている画像データは、画像処理部110によって所定の画像処理が実施され、プリンタ112へ出力される。
コントローラ100でハンドリングされる画像データは、ネットワーク経由での外部機器との入出力はページベクタ形式(PDLやPDF、SVG等)、スキャナ111やプリンタ112との入出力はラスタデータ形式でインターフェースされる。外部機器から入力されたページベクタ形式の画像データは、CPU102により、プリミティブなオブジェクトにインタプリットされ、DL(DisplayList)と呼ばれる中間データ(DLデータ)に変換されてから、RIP113に入力される。
これらの画像データはコントローラ100の内部のシステムメモリ104に一旦記憶される。そのため、システムメモリ104上には、ラスタデータ、ページベクタデータ(PDL等)、DLデータ等の多種類のデータが存在する。
HDD107には、画像データとしてスキャナ113から入力された画像データとRIP113でレンダリングされたラスタ画像データが記憶される。
また、ページラスタ/タイルラスタ変換部114は、システムメモリ104上に一旦記憶されたラスタデータを所定サイズの矩形ブロック(タイル)に分割して、タイルラスタデータに変換する。この変換したタイルラスタデータは、再度、システムメモリ104上に一旦記憶される。システムメモリ104上に、一旦記憶されたタイルラスタデータは、画像処理部110内部で、複数タイルを同時に処理することも可能である。これにより、画像処理の並列動作による高速化が実現される。
特開2004−120639号公報
上述のようなMFPが扱う画像データの中でも、ラスタ画像データはデータサイズが大きい。そのため、システムメモリ104のメモリサイズや、汎用バス105及びHDDCont106−HDD107間のバンド幅等のシステム・リソースを多く消費する。
これに加え、PDLデータ等のページベクタデータでは、システム中でインタプリットを行い、描画オブジェクトを生成するDLデータに展開する。その際、DLデータをシステムメモリ104にスプールするため、それによるメモリリソースの消費量も莫大なものとなっている。
一方、最近はユーザの出力画像の画質要求がますます高くなり、その解決策の1つとして、画像データに対する高解像度化(高画質化)が促進されている。また、画質と並行してシステムの処理速度向上も要求されている。
そのため、上述の様々な要求仕様を満足するために必要なシステム・リソースが肥大化してしまう。従って、プロダクトのコストパフォーマンスでの折り合いをつけることが課題となっている。
また、このプロダクトのコストパフォーマンスに対する課題とは別に、複雑、多様化するシステムを開発するための人的リソースの問題も解決することが要求されている。そして、これを満足するためには、様々な要求仕様に対し、1つの基本システムをスケーラブルな形で構成することにより、製品ラインナップを効率良く整備することが課題となっている。
例えば、図28における画像処理部110やRIP113等のモジュールを、ハイエンドな機種では複数個実装し、分散処理できるようなシステムが必要となってくる。
他方、オフィスにおいてはペーパーレス化が進行しており、紙の出力物と電子データをシームレスに扱えるような要求も生まれてきている。そのためには、紙と電子データとのI/F機器であるMFPにおいても、例えば、蓄積画像データの検索性の向上や、ラスタ画像データをオブジェクト化して再利用可能なオブジェクトデータに変換する、POD(Print On Demand)印刷に対応するために画像加工を高速化する、といったよりインテリジェントな機能を持つことが必要となっている。
本発明は上記の課題を解決するためになされたものであり、システム全体のシステム・リソースの制約を緩和し、かつトータルスループットを向上することができる画像処理装置及びその制御方法、プログラムを提供することを目的とする。
上記課題を解決するための本発明による画像処理装置は以下の構成を備える。即ち、
入力された画像データに対する処理を実行する画像処理装置であって、
画像データを入力する入力手段と、
画像データを出力する出力手段と、
ラスタ画像データを、設定されたブロックサイズのブロック毎に分割して、各ブロックにベクトル化処理を実行することで、ブロックベクタ画像データに変換する第1変換手段と、
ブロックベクタ画像データを記憶する記憶手段と、
ブロックベクタ画像データをラスタ画像データに展開する展開手段と、
前記入力手段から入力されたラスタ画像データを前記第1変換手段でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開手段で展開して得られるラスタ画像データを前記出力手段から出力させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御手段と、
前記第1変換手段を実行する場合に、処理対象の画像データ中のオブジェクトの大きさに基づいて、処理対象の画像データ中のオブジェクトをブロックに分割するブロックサイズを設定する設定手段と
を備える。
また、好ましくは、前記設定手段は、処理対象のオブジェクトを内包するブロックのブロックサイズを、処理対象の画像データ中のオブジェクトをブロックに分割するブロックサイズに設定する。
また、好ましくは、前記設定手段は、一旦設定したブロックサイズのブロックが所定サイズよりも大きい場合、そのブロックサイズより小さいブロックサイズを再設定する。
また、好ましくは、前記ページベクタ画像データ中のオブジェクトの大きさに基づいて、該ページベクタ画像データをブロックベクタ画像データへ変換する第2変換手段を更に備え、前記画像データ転送制御手段は、前記入力手段から入力された画像データがページベクタ画像データである場合は前記第2変換手段でブロックベクタ画像データに変換させる。
また、好ましくは、1ページ分の前記ブロックベクタ画像データから、ページ全体を示すページベクタ画像データへ変換する第3変換手段を更に有し、
前記画像データ転送制御手段は、
前記出力手段から出力させるべき画像データの形式がラスタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記展開手段を実行させて得られるラスタ画像データを前記出力手段から出力させ、
前記出力手段から出力させるべき画像データの形式がベクタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記第3変換手段を実行させて得られるページベクタ画像データを前記出力手段から出力させる
ように、装置内での処理対象の画像データの転送を制御する。
また、好ましくは、前記第2変換手段は、前記ページベクタ画像データ中のオブジェクトのサイズが、前記オブジェクトをブロックに分割するブロックサイズの上限サイズを越えている場合は、その上限サイズを越えないブロックサイズのブロックに、該オブジェクトを分割することで、前記ページベクタ画像データを前記ブロックベクタ画像データへ変換する。
また、好ましくは、前記画像データ転送制御手段は、バスを介して、各手段に接続され、処理対象の画像データの形式に応じて、当該処理対象の画像データの転送に用いる前記バスの調整制御を実行するバス調停手段を備える。
また、好ましくは、前記第1変換手段あるいは前記第2変換手段は、処理対象の画像データを分割したブロック中にオブジェクトが含まれない場合には、対応するブロックベクタ画像データの生成を禁止する。
また、好ましくは、前記設定手段は、少なくとも2つのオブジェクトそれぞれを内包するブロックの重複部の割合に基づいて、前記少なくとも2つのオブジェクトをブロックに分割するブロックサイズを設定する。
また、好ましくは、前記設定手段は、前記重複部の割合が所定値より大きい場合は、前記少なくとも2つのオブジェクトを含むブロックに分割するブロックサイズを設定する。
また、好ましくは、前記設定手段は、前記重複部の割合が所定値未満である場合は、前記少なくとも2つのオブジェクトそれぞれを含むブロックに分割するブロックサイズを設定する。
また、好ましくは、前記設定手段は、前記重複部の割合が所定値未満である場合は、前記重複部を含むブロックと、該重複部以外の前記少なくとも2つのオブジェクトそれぞれを含むブロックに分割するブロックサイズを設定する。
上記課題を解決するための本発明による画像処理装置の制御方法は以下の構成を備える。即ち、
入力された画像データに対する処理を実行する画像処理装置の制御方法であって、
ラスタ画像データを、設定されたブロックサイズのブロック毎に分割して、各ブロックにベクトル化処理を実行することで、ブロックベクタ画像データに変換する第1変換工程と、
ブロックベクタ画像データを記憶手段に記憶する記憶工程と、
ブロックベクタ画像データをラスタ画像データに展開する展開工程と、
入力されたラスタ画像データを前記第1変換工程でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開工程で展開して得られるラスタ画像データを出力部から出力させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御工程と
前記第1変換工程を実行する場合に、処理対象の画像データ中のオブジェクトの大きさに基づいて、処理対象の画像データ中のオブジェクトをブロックに分割するブロックサイズを設定する設定工程と
を備える。
上記課題を解決するための本発明によるプログラムは以下の構成を備える。即ち、
入力された画像データに対する処理を実行する画像処理装置の制御を実現するプログラムであって、
ラスタ画像データを、設定されたブロックサイズのブロック毎に分割して、各ブロックにベクトル化処理を実行することで、ブロックベクタ画像データに変換する第1変換工程のプログラムコードと、
ブロックベクタ画像データを記憶手段に記憶する記憶工程と、
ブロックベクタ画像データをラスタ画像データに展開する展開工程のプログラムコードと、
入力されたラスタ画像データを前記第1変換工程でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開工程で展開して得られるラスタ画像データを出力部から出力させるように、制御する制御工程のプログラムコードと
前記第1変換工程を実行する場合に、処理対象の画像データ中のオブジェクトの大きさに基づいて、処理対象の画像データ中のオブジェクトをブロックに分割するブロックサイズを設定する設定工程のプログラムコードと
を備える。
本発明によれば、システム全体のシステム・リソースの制約を緩和し、かつトータルスループットを向上することができる画像処理装置及びその制御方法、プログラムを提供できる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。
[実施形態1]
[MFP装置概要]
図1は本発明の実施形態1の画像処理システムを構成するMFPのコントローラの詳細を示すブロック図である。
MFP1000を制御するコントローラ1は、システムバスブリッジ(SBB)2により、CPU3、メモリコントローラ(MC)4、汎用バス6、タイル/ページベクタ変換部13、ラスタ/ベクタ変換部14、画像処理部15、画像データ展開部(RIP)18が接続されている。
ここで、このRIP18は、タイルベクタデータを展開することが可能であり、内部には、複数の小画像データ展開部(μRIP)18a〜18dが構成されている。
MC4には、システムメモリ(Memory)5が接続されており、画像データを一時記憶するための媒体として使われる。
汎用バス6には、画像データを蓄積するためのHDD8を制御するハードディスクコントローラ(HDDCont)7及び操作部(例えば、LCD等から構成されるタッチパネル)10を制御する操作部コントローラ9及び、MFP1000が接続されているネットワーク12を介して、外部機器間との画像データの転送を行うインターフェースになるネットワークI/F11が接続されている。
尚、操作部10では、実施形態1及び後述する各実施形態の各種処理の実行指示の入力や、処理結果等を表示するための操作画面が表示され、ユーザは、この操作画面を介して各種操作を実現することができる。
ラスタ/タイルベクタ変換部14には、画像処理部15が接続されている。また、画像処理部15には、スキャナ16及びプリンタ17が接続されている。
また、SBB2には、RIP18が接続されている。また、RIP18には、RIP18から出力されるデータを記憶するローカルメモリ(LocalMemory)19が接続されている。
コントローラ1でハンドリングされる画像データは、外部機器との入出力はベクタ(PDL、PDF、SVGなど)形式の画像データ(以下、ベクタデータとも言う)、スキャナ16やプリンタ17との入出力はラスタ形式の画像データ(以下、ラスタデータとも言う)でインターフェースされる。
コントローラ1では、スキャンデータ(ラスタデータ)はラスタ/タイルベクタ変換部14でタイルベクタデータに変換される。また、このタイルベクタデータからRIP18の処理によって得られるタイルDLデータは、RIP18に接続されたローカルメモリ19に記憶される。
従って、システムメモリ5上には、ページベクタデータとタイルベクタデータの2種類の画像のみが記憶される。つまり、画像サイズの大きいラスタデータ及びDLデータをシステムメモリ5に記憶する必要がなくなる。そのため、システムメモリ5上で確保しなければならない画像データ領域を削減することができる。
また、RIP18から出力されるDLデータはタイル単位に分割された、タイルDLデータで記憶される。そのため、従来のページ単位のページDLデータに比べ、非常に少ないメモリ容量で記憶できる。従って、ローカルメモリ19はオンチップ上に実装することが可能になり、メモリレイテンシを小さくできる。その結果、タイルデータ展開速度を高速化することが可能となる。
また、タイルベクタデータのみを画像データとして、HDD8上に記憶すれば良いので、HDD8へのアクセス速度のボトルネックが緩和され、データ処理の高速化が図れる。同時に、タイル単位で処理することにより、RIP18のコストダウンも可能となる。
より高い処理能力が要求される場合は、RIP18内に備えるμRIP18a〜18dを並列に複数実装することで、処理能力を可変にすることができる。このようにすることで、コントローラ1の処理能力がシンプルに調整できることから、スケーラビリティの確保が容易なシステムを構築できる。
尚、本発明では、ネットワークI/F11及びスキャナ16がコントローラ1内へ画像データを入力する画像入力部として機能する。また、ネットワークI/F11及びプリンタ17が画像データを出力する画像出力部として機能する。
以下に、MFP1000が実現可能な各種処理のデータフローについて説明する。
[コピー]
図2は本発明の実施形態1の画像処理システムでのコピー動作に係るデータフローを示す図である。
尚、このデータフローは、CPU3の制御の下、MFP1000を構成する各種構成要素を協調動作させることで実現される。
また、図2中に示す矢印は、各種データフローを示している。特に、実線矢印はラスタデータ(ラスタ画像データ)、破線矢印はタイルベクタデータ(タイルベクタ画像データ)、1点鎖線矢印はページベクタデータ(ページベクタ画像データ)のデータフローを示している。ページベクタデータ及びタイルベクタデータについては、後述のタイル/ページベクタ変換部13で詳細に説明する。
(S21):操作部10より、ユーザがコピー開始を指示すると、スキャナ16は原稿画像の読取動作を開始する。スキャナ14より画像処理部15へ入力された画像(R、G、B画像)は画像処理部15のクロック同期に周波数変換された後、例えば、以下の処理が実行される。
1)スキャナ16内のCCDセンサのラインピッチや色収差等のスキャナ特性の補正処理
2)色空間補正やシャープネス等の入力画像データの画質補正処理
3)入力画像データの枠消やブック枠消等の画像加工処理
(S22):画像処理部15による画像処理が終了し、画像処理部15から出力された画像データはラスタ/タイルベクタ変換部14に入力され、タイルベクタ変換処理が実行され。即ち、ラスタ/タイルベクタ変換部14は、画像データ中のオブジェクトを内包する大きさのブロック(タイル)を設定して、その大きさのブロックに画像データ中のオブジェクトを分割する。そして、各ブロック内のラスタデータに対して、ベクトル化処理を実行して、ブロック(タイル)単位のベクタデータ(タイルベクタデータ(ブロックベクタデータ))を生成する。
生成されたタイルベクタデータは、SBB2によりバスの調停を受け、システムメモリ5へのバス権を取得し、MC4を介して、システムメモリ5に記憶される。(尚、SBB2経由でデータパスが接続される場合は、基本的にバスの調停を受け、バス権を取得する手続きを踏むが、以降のフロー説明では省略する。)
(S23):システムメモリ5に記憶されたタイルベクタデータは、HDDCont7とMC4を介して、SBB2経由でHDD8に記憶される。HDD8にタイルベクタデータを記憶することにより、複数部の原稿をコピーする時にソーティングをして、ページ順を変えて出力したり、MFP1000内に保存画像データとして記憶したりすることができる。
(S24):HDD8に記憶されたタイルベクタデータは、プリンタ17内のプリンタCPU(不図示)から送られてくるプリンタレディのタイミングに合わせて、HDDCont7により読み出され、SBB2、MC4を経由してシステムメモリ5に一時的に記憶される。
仮に、読み取ったタイルベクタデータをHDD8からダイレクトにプリンタ17へ出力する場合、HDD8のアクセススピードが律則したり、汎用バス6のバスの混雑度合によりプリンタ17に同期して出力することが保証できなくなる。そのため、プリンタ17に同期してデータ転送を行う前に、システムメモリ5にページベクタデータをスプールしておくことで、リアルタイムなスループットを保証する。
(S25):システムメモリ5に記憶されたタイルベクタデータは、プリンタ17からコントローラ1に送られる起動信号に従って、MC4によって読み出され、SBB2を介してRIP18に転送される。
RIP18では、まず、タイルベクタデータを解析し、タイル単位の描画オブジェクト(タイルDLデータ)の生成(インタプリット)を実行する。生成されたタイルDLデータはローカルメモリ19に一旦記憶される。
RIP18はローカルメモリ19からタイルDLデータを読み出して、タイル単位のラスタデータ(タイルラスタデータ)へと展開し、出力する。
実施形態1では、上述のように、RIP18内に4つの小画像データ展開部(μRIP)18a〜18dを備えている。コントローラ1は、μRIP18a〜μRIP18dを並列に動作させることにより、タイルベクタデータの展開を高速に行わせることができる。
ここで、画像処理システムの全体パフォーマンスは、ベクタデータ展開時間が支配的であり、このμRIPの構成数を増やすことで、パフォーマンスアップが見込める。そのため、本発明のような構成を用いると、その構成数あるいは動作させる構成数を増減させることで、容易にスケーラブルなシステムを構築することが可能となる。
(S26):RIP18によって生成されたタイルラスタデータは、画像処理部15に転送され、例えば、以下の処理が実行される。
1)タイルラスタデータからページラスタデータへの変換処理
2)プリンタの特性に合わせた出力画像の色や濃度の補正処理
3)画像データを量子化して出力画像の階調変換を行う中間調処理
4)プリンタI/Fクロックに同期して画像を出力するための周波数変換処理
そして、画像処理部15で、1)〜4)の画像処理が実行されて得られたラスタデータは、プリンタ17に転送され、記録媒体上に印刷され出力される。
[プリント]
図3は本発明の実施形態1の画像処理システムでのプリント動作に係るデータフローを示す図である。
尚、このデータフローは、CPU3の制御の下、MFP1000を構成する各種構成要素を協調動作させることで実現される。
(S31):ネットワーク12に接続された外部機器より、汎用バス6に接続されたネットワークI/F11がページベクタデータを受信する。そして、SBB2の先に接続されたMC4を介してシステムメモリ5に転送する。
(S32):システムメモリ5に記憶されたページベクタデータは、タイル/ページベクタ変換部13より読み出され、タイルベクタ変換処理が実行される。即ち、タイル/ページベクタ変換部13は、ページベクタデータ内に存在するオブジェクトを内包する大きさのブロック(タイル)を設定して、その大きさのブロックにオブジェクトを分割する。そして、タイル単位のベクタデータ(タイルベクタデータ)を生成する。
(S33):生成されたタイルベクタデータは、SBB2を介して再度システムメモリ5に記憶される。
(S34):システムメモリ5に記憶されたタイルベクタデータは、HDDCont7とMC4を介して、SBB2経由でHDD8に記憶される。HDD8にタイルベクタデータを記憶することにより、複数部の原稿をコピーする時にソーティングをして、ページ順を変えて出力したり、MFP1000内に保存画像データとして記憶したりすることができる。
(S35):HDD8に記憶されたタイルベクタデータは、プリンタ17内のCPU(不図示)から送られてくるプリンタレディのタイミングに合わせて、HDDCont7により読み出され、SBB2、MC4を経由してシステムメモリ5に一時的に記憶される。
読み取ったタイルベクタデータをHDD8からダイレクトにプリンタ17へ出力する場合、HDD8のアクセススピードが律則したり、汎用バス6のバスの混雑度合によりプリンタ17に同期して出力することが保証できなくなる。そのため、プリンタ17に同期してデータ転送を行う前に、システムメモリ5に1ページ分のベクタ画像データをスプールすることにより、リアルタイムなスループットを保証する。
(S36):システムメモリ5に記憶されたタイルベクタデータは、プリンタ17からコントローラ1に送られる起動信号に従って、MC4によって読み出され、SBB2を介してRIP18に転送される。
RIP18では、まず、タイルベクタデータを解析し、タイル単位の描画オブジェクト(タイルDLデータ)の生成(インタプリット)を実行する。生成されたタイルDLデータはローカルメモリ19に一旦記憶される。
RIP18はローカルメモリ19からタイルDLデータを読み出して、タイル単位のラスタデータ(タイルラスタデータ)へと展開し、出力する。
(S37):RIP18によって生成されたタイルラスタデータは、画像処理部15に転送され、例えば、以下の処理が実行される。
1)タイルラスタデータからページラスタデータへの変換処理
2)プリンタの特性に合わせた出力画像の色や濃度の補正処理
3)画像データを量子化して出力画像の階調変換を実行する中間調処理
4)プリンタI/Fクロックに同期して画像を出力するための周波数変換処理
そして、画像処理部15で、1)〜4)の画像処理が実行されて得られたラスタデータは、プリンタ17に転送され、記録媒体上に印刷され出力される。
[送信]
図4は本発明の実施形態1の画像処理システムでの送信動作に係るデータフローを示す図である。
尚、このデータフローは、CPU3の制御の下、MFP1000を構成する各種構成要素を協調動作させることで実現される。
また、画像データをHDD8に格納するまでのデータフローについては、ラスタデータの場合は[コピー]と、ネットワーク12上の外部機器からの入力されたページベクタデータの場合は[プリント]と同一であるので、その説明は割愛する。
尚、画像データをHDD8に格納する処理は、ユーザからの格納指示によって実行されるようにしてもよいし、[コピー]や[プリント]の処理の際にHDD8に自動的に残しておくようにしてもよい。このようにして、HDD8に格納された画像データの中から、ユーザによって指定された画像データを送信するように指示された際に行われる送信処理について説明する。
(S41):HDD8に記憶されたタイルベクタデータはSBB2を介して、汎用バス6に接続されたHDDCont7より読み出され、システムメモリ5に一時的に記憶される。
(S42):システムメモリ5に記憶されたタイルベクタデータは、タイル/ページベクタ変換部13より読み出され、タイルベクタ変換処理を実行する。即ち、ブロック単位に分割されたオブジェクトを結合し、ページ全体でオブジェクトを記述したページベクタデータを生成する。つまり、1ページ分のタイルベクタデータを、ページ全体のベクタデータを示すページベクタデータを生成する。
(S43):生成されたページベクタデータは、SBB2を介して再度システムメモリ5に記憶される。
(S44):システムメモリ5中に記憶されたページベクタデータは、汎用バス6に接続されたネットワークI/F11から読み出され、ネットワーク12に接続された外部機器へと送信転送される。
本発明のように、外部機器に送信する際に、タイルベクタデータをページベクタデータに戻して、そのデータを構成するオブジェクト数を減らすことで、送信データ量を削減することができる。また、PDFやSVG等の汎用フォーマットへ容易に変換することができる。
尚、本発明では、スキャナ16から入力したラスタデータを、外部機器に送信することも可能である。この場合は、そのラスタデータをページベクタに変換してから、外部機器へ送信することが好ましい。
[ラスタ/タイルベクタ変換部]
次に、ラスタ/タイルベクタ変換部14の処理の詳細について説明する。
図5は本発明の実施形態1のラスタ/タイルベクタ変換部が実行する処理を示すフローチャートである。
(ステップS51:ブロックセレクション(領域分割:BS)処理)
画像処理部15より入力されたラスタデータ(イメージデータ)を、文字あるいは線画を含む文字・線画領域と、ハーフトーンの写真領域、不定形の画像領域その他に分割する。さらに、文字・線画領域については、主に文字を含む文字領域と、主に表、図形等を含む線画領域とに分離し、線画領域は表領域と図形領域に分割する。
尚、実施形態1では、処理対象中の画像の連結画素を検知し、その連結画素の外接矩形領域の形状・サイズ・画素密度等の特徴量を用いて、属性毎の領域に分離するものとするが、その他の領域分割手法を用いても構わない。
文字領域については、文字段落ごとの纏まった塊をブロックとして矩形ブロック(文字領域矩形ブロック)にセグメント化する。線画領域では、表、図形等の個々のオブジェクト(表領域矩形ブロック、線画領域矩形ブロック)ごとに矩形ブロックにセグメント化する。
ハーフトーンで表現される写真領域は、画像領域矩形ブロック、背景領域矩形ブロック等のオブジェクトごとに、矩形ブロックにセグメント化する。
(ステップS52:タイルサイズ決定処理)
分離された各領域は、さらに各領域のオブジェクトの大きさを判定し、その判定結果に基づいて、各オブジェクトを内包可能なタイルサイズを決定(設定)する。
具体例について、図6を用いて説明する。
図6は本発明の実施形態1のタイルサイズ決定処理の具体例を説明するための図である。
図6に示す、ラスタデータ600では、オブジェクト601及び602の2つのオブジェクトが存在している。このラスタデータ600に対して、ステップS51のブロックセレクション処理を実行すると、オブジェクト601は文字領域として認識され、オブジェクト602は図形領域として認識される。
この処理結果に対して、タイルサイズ決定処理を実行すると、ラスタデータ600は、例えば、図7に示すように、異なる大きさのタイル701〜709に分割される。ここで、タイル704は、オブジェクト601を内包可能な大きさに設定される。また、タイル707は、オブジェクト602を内包可能な大きさに設定される。
また、タイル701、702、704、705、706、708、709の各タイルは、オブジェクトが存在しない空白タイルとなる。
(ステップS53:タイルサイズ判定処理)
次に、ステップS52で決定された各タイルに関して、そのサイズ(大きさ)の判定を実行する。
例えば、図7の例の場合、作成されたタイル701〜709に関して、その大きさの判定を実行する。この判定は、以下の理由によって実行するものである。
つまり、ステップS52で一旦決定したタイルサイズが大きい場合、RIP18内のμRIPa18a〜μRIP18dで並列してタイルベクタデータを展開する際に、一つのタイルサイズが大きすぎると並列動作による処理の高速化が行いづらくなる。そこで、これを防ぐため、各タイルサイズを判定して、所定サイズよりも大きいタイルに関しては、より小さいサイズのタイルに分割する。
仮に、オブジェクト602を内包する図7のタイル707が、所定サイズよりも大きい場合は、図8に示すように、タイル707を、そのサイズより小さいサイズの4つのタイル801、802、803、804に分割する。そして、全てのタイルが所定サイズよりも小さくなったら、以下のベクトル化処理により、個々のタイルサイズに基づいて、ページベクタデータをタイルベクタデータに変換する。
(ステップS54:ベクトル化処理)
ベクトル化処理により、各属性の領域のイメージデータをベクトルデータに変換する(ベクトル化する)。ベクトル化の方法は、例えば、以下、(a)〜(f)等が存在する。
(a)属性領域が文字領域のとき、さらにOCRによる文字画像のコード変換を行ったり、あるいは文字のサイズ、スタイル、字体を認識し、原稿を走査して得られた文字に可視的に忠実なフォントデータに変換する。
(b)属性領域が文字領域であり、かつOCRによる認識が不可能であったとき、文字の輪郭を追跡し、輪郭情報(アウトライン)を線分のつながりとして表現する形式に変換する。
(c)属性領域が図形領域のとき、図形オブジェクトの輪郭を追跡し、輪郭情報を線分のつながりとして表現する形式に変換する。
(d)(b)及び(c)の線分形式のアウトライン情報をベジエ関数等でフィッティングして、関数情報に変換する。
(e)(c)の図形オブジェクトの輪郭情報から、図形の形状を認識し、円、矩形、多角形、等の図形定義情報に変換する。
(f)属性領域が図形領域であって、特定領域の表形式のオブジェクトの場合、罫線や枠線を認識し、所定のフォーマットの帳票フォーマット情報に変換する。
(ステップS55:タイルベクタデータ生成処理)
ステップS54で、(a)〜(f)のフォーマットコード情報、図形情報、関数情報等のコマンド定義形式情報にベクトル変換されたデータに対し、コントローラ1内でページベクタデータかタイルベクタデータかを判別するベクタタイプや、当該タイルのページ内の座標位置等の座標情報を判別するためのヘッダ情報を付加した、タイルベクタデータを生成する。このようにして、タイル単位に各種情報が付加されたタイルベクタデータをSBB2へ出力する。
(ステップS56:終了判定処理)
処理対象のラスタデータの有無を判定する。処理対象のラスタデータがある場合(ステップS56でNO)、ステップS51に戻る。一方、処理対象のラスタデータがない場合(ステップS56でYES)、処理を終了する。
[タイル/ページベクタ変換部]
次に、タイル/ページベクタ変換部13の処理の詳細を説明するにあたり、処理対象となるドキュメントデータ(画像データ)について説明する。
図9は本発明の実施形態1のネットワークから転送されてくるドキュメントデータの一例を示している。
図9では、ドキュメントデータ1101の短手方向を「X」方向、長手方向を「Y」方向とするデバイス座標系を定義する。ドキュメントデータ1101としては、ページベクタデータ、タイルベクタデータ、あるいはラスタデータ表現を含むページベクタデータ(タイルベクタデータ)、あるいはラスタデータのいずれかで構成される可能性がある。
ここで、ドキュメントデータ1101が、ページベクタデータである場合、その内容を構成する記述例について、図10を用いて説明する。
図10は本発明の実施形態1のページベクタデータの記述例を示す図である。
図10において、1201はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、1202は文字の描画命令部分、1203は図形の描画命令部分を示している。
各描画命令部分の詳細について説明する。
ドキュメント設定命令部分1201において、C1〜C5は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドC1〜C5は、ドキュメント1部について1ヶ所しか付いていない。
これらドキュメントデータ全体に関係するコマンドには、例えば、キャラクタセットコマンド(フォント指定コマンド)、スケーラブルフォントコマンド(スケーラブルフォントを使用するか否かを指定するコマンド)、ハードリセットコマンド(以前のプリンタ使用環境をリセットするコマンド)等がある。
ここで、C1はドキュメント設定開始コマンドである。C2はドキュメントデータの出力用紙サイズを示すコマンドであり、この場合には、A4の設定になっている。C3はドキュメントデータの方向を示すコマンドである。ここでは、ポートレートとランドスケープがあるが、この場合にはポートレート(PORT)の設定になっている。
C4はドキュメントデータのタイプを示すコマンドであり、ページベクタで構成されるドキュメントデータであるかタイルベクタで構成されるドキュメントデータであるかを示している。この場合には、ページ(PAGE)に設定されている。C5はドキュメント設定終了コマンドである。
文字の描画命令部分1202及び図形の描画命令部分1203を構成するC6〜C22は、ドキュメントデータを出力するための各種コマンドである。
C6はページの開始を示すコマンドである。C7は文字のフォントの種類を選択するためのコマンドであり、この場合には「1」という番号の付けられたフォントセットに設定されている。C8はフォントの大きさを設定するコマンドであり、この場合には「10ポイント」の大きさに設定されている。
C9は文字の色を設定するコマンドであり、順にR(赤),G(緑),B(青)各色成分の輝度を示してある。この輝度は、例えば、0から255の256段階で量子化されているものとする。この場合は、{0,0,0}に設定されている。C10は文字を描画する開始位置の座標を示すコマンドである。座標位置(X,Y)は、ページの左上を原点に指定する。この場合は、ページの{10,5}の位置から文字の描画を開始するように設定されている。C11は実際に描画する文字列(A)を示すコマンドである。
C12は図形描画の際の面の塗りつぶしの色を示すコマンドである。色の指定は、文字の色と同様である。C13は図形描画の線の色を指定するコマンドである。C14は図形描画位置の座標を示すコマンドである。
C15は円弧を描画する際の半径を指定するコマンドであり、この場合、「10」座標単位を示している。C16は閉円弧の描画をするコマンドである。コマンド内の2個のパラメータは円弧を描画する際の描画開始角度と終了角度を示している。垂直情報を0度として、この場合には0度から90度の円弧を描画することを示している。
C17〜C21は、C12〜C16までのコマンドと同様に、図形描画の際の面、線の色の指定、位置の指定等のコマンドである。C22はページの終了を示すコマンドである。
一方、ドキュメントデータ1101がタイルベクタデータである場合について、図11を用いて説明する。
図11は本発明の実施形態1のタイルベクタデータの例を示す図である。
図11では、図9のドキュメントデータ1101(ページベクタデータ)を、図11に示すようなブロック(タイル)単位で分割したタイルベクタデータ(ドキュメントデータ1300)の一例を示している。
図11では、ドキュメントデータ1300の短手方向を「X」方向、長手方向を「Y」とするデバイス座標系を定義する。
ここで、このドキュメントデータ1300が、タイルベクタデータである場合、その内容を構成する記述例について、図12を用いて説明する。
図12は本発明の実施形態1のタイルベクタデータの記述例を示す図である。
図12において、1401はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、1402は描画命令部分全体、1403〜1406はそれぞれタイル1301,1303,1308,1309の描画命令部分を示している。
各描画命令の詳細について説明する。
ドキュメント設定命令部分1401において、C1〜C5は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドC1〜C5は、ドキュメント1部について1ケ所しか付いていない。
これらドキュメントデータ全体に関係するコマンドには、例えば、キャラクタセットコマンド(フォント指定コマンド)、スケーラブルフォントコマンド(スケーラブルフォントを使用するか否かを指定するコマンド)、ハードリセットコマンド(以前のプリンタ使用環境をリセットするコマンド)等がある。
ここで、C1はドキュメント設定開始コマンドである。C2はドキュメントデータの出力用紙サイズを示すコマンドであり、この場合には、A4の設定になっている。C3はドキュメントデータの方向を示すコマンドである。ここでは、ポートレートとランドスケープがあるが、この場合にはポートレート(PORT)の設定になっている。
C4はドキュメントデータのタイプを示すコマンドであり、ページベクタで構成されるドキュメントデータあるのかタイルベクタで構成されるドキュメントデータあるかを示している。この場合には、タイル(TILE)に設定されている。C5はドキュメント設定終了コマンドである。
描画命令部分1402を構成するC6〜C500は、ドキュメントデータを出力するための各種コマンドである。
C6はページの開始を示すコマンドである。C7は図11のタイル1301の描画コマンドの開始を示すコマンドである。ここで、TileStart(0,0)中の2個のパラメータは、ドキュメントデータ内におけるタイルの先頭位置(例えば、タイル左上角の位置)の情報を示している。C8はタイル1301の描画コマンドの終了を示すコマンドである。TileEnd(100,20)中の2個のパラメータは、ドキュメントデータ内におけるタイルの終端位置(例えば、タイル右下角の位置)の情報を示している。タイル1301のように、そのタイル内にオブジェクトが何も存在しない場合は、タイルの開始と終了を示すコマンドだけが記述される。
C9は図11のタイル1303の描画コマンドの開始を示すコマンドである。C10は文字のフォントの種類を選択するためのコマンドであり、この場合には「1」という番号の付けられたフォントセットに設定されている。C11はフォントの大きさを設定するコマンドであり、この場合には「10ポイント」の大きさに設定されている。
C12は文字の色を設定するコマンドであり、順にR(赤),G(緑),B(青)各色成分の輝度を示してある。この輝度は、例えば、0から255の256段階で量子化されているものとする。この場合は、{0,0,0}に設定されている。C13は文字を描画する開始位置の座標を示すコマンドである。座標位置(X,Y)は、タイルの左上を原点に指定する。この場合は、タイルの{0,5}の位置から文字の描画を開始するように設定されている。C14は実際に描画する文字列(A)を示すコマンドである。C15はタイル1303の描画コマンドの終了を示すコマンドである。
C100は図11のタイル1308の描画コマンドの開始を示すコマンドである。C101は図形描画の際の面の塗りつぶしの色を示すコマンドである。色の指定は、文字の色と同様である。C102は図形描画の線の色を指定するコマンドである。C103は図形を描画する位置の座標を示すコマンドである。
C104は円弧を描画する際の半径を指定するコマンドであり、この場合、「10」座標単位を表している。C105は閉円弧の描画をするコマンドである。コマンド内の2個のパラメータは円弧を描画する際の描画開始角度と終了角度を示している。垂直情報を0度として、この場合には0度から90度の円弧を描画することを示している。C106はタイル1308の描画コマンドの終了を示すコマンドである。
C120は図11のタイル1309の描画コマンドの開始を示すコマンドである。C121〜C125は、C100〜C105のコマンドと同様に図形の描画命令による図形の面、線の色、位置等を指定するコマンドである。C126はタイル1309の描画コマンドの終了を示すコマンドである。
C500はページの終了を示すコマンドである。
次に、タイル/ページベクタ変換部13の処理の詳細について、図13を用いて説明する。
図13は本発明の実施形態1のタイル/ページベクタ変換部が実行する処理を示すフローチャートである。
尚、このタイル/ページベクタ変換部13では、ページベクタデータとタイルベクタデータ間での相互変換を行うことができる。あるいは、タイル/ページベクタ変換部13は、ページベクタデータからタイルベクタデータへ変換する変換部と、タイルベクタデータからページベクタデータへ変換する変換部で構成されていても良い。
(ステップS901)
まず、システムメモリ5中に記憶されたドキュメントデータ(ベクタデータ)から、ヘッダ部分に相当するコマンド列を読み込み、処理対象となるドキュメントデータ全体に関するコマンド部分を解析する。具体的には、図10または図12のC1〜C5に相当する部分の内容を解析する。
(ステップS902)
解析の結果に基づいて、ドキュメントデータのタイプが、ページベクタデータであるか否かを判定する。ページベクタデータである場合(ステップS902でYES)、ステップS903以降のステップに進み、ページベクタ→タイルベクタ変換を実行する。一方、ページベクタデータでない場合、つまり、タイルベクタデータである場合(ステップS902でNO)、ステップS910以降のステップに進み、タイルベクタ→ページベクタ変換を実行する。
(ステップS903)
ページベクタデータから、オブジェクトを記述するコマンド列を読み込む。
(ステップS904)
ステップS903で読み込んだコマンド列を解析し、記述されているオブジェクトの大きさがタイルの上限サイズ(所定サイズ)を超えているか否かを判定する。つまり、オブジェクトの更なる分割が必要であるか否かを判定する。
オブジェクトの大きさがタイルの上限サイズを超えていない場合(ステップS904でNO)、ステップS905をスキップして、ステップS906に進む。一方、オブジェクトの大きさがタイルの上限サイズを超えている場合(ステップS904でYES)、ステップS905に進む。
(ステップS905)
ここでは、入力されたオブジェクトの分割処理を実行する。
例えば、図10のページベクタデータにおいて、図形の描画命令部分1203のコマンドC17〜C21で記述されている図形が、タイルの上限サイズを越えている場合は、タイルの上限サイズを超えないように、図11に示すようなタイル1307、1308、1309、1310に分割する。図形の分割は、まず、元の図形オブジェクトを内包するタイルが一旦設定され、次に、このタイルを4つの均等サイズで分割したタイル1307、1308、1309、1310に設定する。
(ステップS906)
入力されたオブジェクトのコマンドの記述に対し、タイルベクタデータ内での描画位置へ変更するために、座標位置の変換を行う。ページベクタデータでは、ページの左上からの位置を記述していたのに対し、タイルベクタデータではタイルの左上からの位置に記述し直す。描画位置をタイル内の座標で記述することにより、座標計算に要するデータ長を削減することが可能になる。
また、図12のコマンドC9、C15等で示されるように、個々のタイルに関して、ページの左上からのタイルの先頭と、タイルの終端位置の座標が計算され、そのタイルがページ上のどこに配置されるかがコマンドから判定できるようになっている。
(ステップS907)
1つのオブジェクトに対するコマンドの記述変換が終了したら、ページ内の全てのオブジェクトのコマンドの記述変換が終了したか否かを判定する。終了していない場合(ステップS907でNO)、ステップS903に戻り、次のコマンドに対して、ステップS903〜ステップS907の処理を繰り返す。一方、終了した場合(ステップS907でYES)、ステップS908へ進む。
尚、オブジェクトが存在していない場所、例えば、図11におけるタイル1301、1302、1304、1305、1306、1311、1312等の領域に対しては、個々の矩形領域に対して、図12のコマンドC7、C8等で示されるタイルの先頭位置と終端位置の情報を有するコマンドを生成した上で、ステップS908へ進む。
(ステップS908)
全てのコマンドの記述変換が終了したら、図11のように分割されたタイルベクタデータ中の各タイルに対し、ページの左上から順にタイルベクタデータとしてシステムメモリ5への書出を実行する。タイルベクタデータとしては、ステップS905及びステップS906で記述されたコマンドに対し、タイルの開始と終了を示すコマンドを追加するようなフォーマットで記述される。
次に、ステップS903〜ステップS907で処理されたコマンドが存在する座標のタイルに対し、オブジェクトの記述を追加する。例えば、図11のタイル1303の場合は、コマンドC9〜C15から構成される描画命令部分1404(図12)で記述される。
(ステップS909)
1つのオブジェクトのタイルベクタへの書出が終了すると、そのページのオブジェクトの記述が全て終了したか否かを判定する。終了していない場合(ステップS909でNO)、ステップS903に戻る。一方、終了した場合(ステップS909でYES)、処理を終了する。
一方、ステップS902で、ドキュメントデータのタイプが、タイルベクタデータである場合について説明する。
(ステップS910)
タイルベクタデータから、オブジェクトを記述するコマンド列を読み込む。
(ステップS911)
ステップS910で読み込んだコマンド列を解析し、記述されているオブジェクトがそれより以前に読み込まれたタイルと結合可能であるか否かを判定する。結合可能でない場合(ステップS911でNO)、ステップS912をスキップし、ステップS913へ進む。一方、結合可能である場合(ステップS911でYES)、ステップS912へ進む。
尚、オブジェクトが結合可能であるか否かの判定は、読み込んだコマンドの座標位置や、図形の種別等を基に判定する。また、文字列の場合は、フォントサイズやフォントの種類を基に判定する。
(ステップS912)
オブジェクトの結合処理を実行する。この処理は、基本的には、ステップS905の処理手順を逆にすることで実現する。
(ステップS913)
入力されたオブジェクトのコマンドの記述に対し、ページベクタデータ内での描画位置へ変更するために、座標位置の変換を行う。タイルベクタデータでは、タイルの左上からの位置を記述していたのに対し、ページベクタデータでは、ページの左上からの位置に記述し直す。
(ステップS914)
1つのオブジェクトに対するコマンドの記述変換が終了したら、タイル内の全てのオブジェクトのコマンドの記述変換が終了したか否かを判定する。終了していない場合(ステップS914でNO)、ステップS910に戻り、次のコマンドに対して、ステップS910〜ステップS913の処理を繰り返す。一方、終了した場合(ステップS914でYES)、ステップS915へ進む。
(ステップS915)
全てのコマンドの記述変換が終了したら、ページベクタデータとしてシステムメモリ5への書出を実行する。ページベクタデータとしては、ステップS912及びステップS913で記述されたコマンドに対し、タイルの開始と終了を示すコマンドを削除したようなフォーマットで記述される。
まず、ページ内の一番最初のタイルに記述されたコマンドの書出時点では、システムメモリ5内にオブジェクトがない状態のページベクタデータを生成しておく。これは、図10の記述を用いて説明すると、コマンドC1〜C6、コマンドC22だけで記述されるページベクタデータである。
(ステップS916)
1つコマンドのページベクタへの書出が終了すると、そのタイルのオブジェクトの記述が全て終了したか否かを判定する。終了していない場合(ステップS916でNO)、ステップS910に戻る。一方、終了した場合(ステップS916でYES)、ステップS917に進む。
(ステップS917)
1つのタイルベクタデータの書出が終了すると、そのページのタイルベクタデータの記述に対する処理が全て終了したか否かを判定する。終了していない場合(ステップS917でNO)、ステップS910に戻る。一方、終了した場合(ステップS917でYES)、処理を終了する。
[画像データ展開部(RIP)]
次に、コントローラ1中の画像データ展開部18の詳細について説明する。
まず、コピーやプリント、送信等の画像データに対する処理を開始する前に、ローカルメモリ19の初期化と、作成するオブジェクトの解像度の設定を行っておく。実施形態1では、生成解像度は600dpiとし、ポイントサイズやmm等の単位系で指定された印刷コマンドは、この値を用いてドット数に変換されることになる。
以下では、画像データ展開部18によって、タイルベクタデータ展開を実行する場合の処理について、図14を用いて説明する。
図14は本発明の実施形態1の画像データ展開部が実行する処理を示すフローチャートである。
(ステップS101)
システムメモリ5より、SBB2を経由して、RIP18に一定サイズ分入力されたタイルベクタデータは、ローカルメモリ19のタイルベクタ領域に一時的に格納する。
(ステップS102)
タイルベクタデータをローカルメモリ19に格納したら、RIP18内のμRIP18a〜18dのいずれかが、タイルベクタデータを展開可能(処理可能)であるか否かを判定する。μRIP18a〜18dのいずれもタイルベクタデータの展開(処理)中である場合(ステップS102でNO)、それらのいずれかが展開可能になるまで待機する。
(ステップS103)
μRIP18a〜18dのいずれかがタイルベクタデータを展開可能になれば、予め定められた文法に従って、ローカルメモリ19に格納されたタイルベクタデータのコマンド解析を実行する。
(ステップS104)
コマンド解析結果に基づいて、コマンドが描画命令であるか排紙命令であるかを判定する。描画命令である場合(ステップS104でYES)、ステップS105に進む。一方、排紙命令である場合(ステップS104でNO)、ステップS106に進む。
(ステップS105)
コマンドが描画命令である場合、描画オブジェクト(DLデータ)の生成を実行する。タイルベクタデータ内のコマンドが文字の描画命令である場合、そのコマンドで指定されるフォントの書体や、文字サイズ、文字コードを元にフォントオブジェクトを生成して、ローカルメモリ19のDLデータ領域に格納する。また、文字以外の描画命令、つまり、図形の描画命令である場合、そのコマンドで指定された図形(ラインや円、多角形等)の描画オブジェクトを生成し、ローカルメモリ19のDLデータ領域に格納する。
また、コマンドが描画命令で指定されない印刷データである場合には、この印刷データに応じて印刷位置移動や印刷環境設定等の印刷制御処理を実行し、一単位分のコマンド解釈を終了する。
これは、タイルベクタデータ内のコマンド全ての解釈が終了するまで、上記処理を繰り返す。
(ステップS106)
コマンドが排紙命令である場合、μRIPは、ローカルメモリ19上のタイルラスタ領域に空き領域があるか否かを判定する。空き領域がない場合(ステップS106でNO)、他のμRIPの処理が終了して、タイルラスタ領域が解放されて、空き領域ができるまで待機する。一方、空き領域がある場合(ステップS106でYES)、ステップS107に進む。
(ステップS107)
タイルラスタ領域に空き領域がある場合、ステップS105で生成された描画オブジェクトを読み出し、タイルラスタ領域に描画(ラスタライズ)する。この時、生成解像度が600dpiであれば、タイルラスタ領域には600dpiの画像としてラスタライズされる。そして、描画が終了したタイルラスタ画像は、SBB2を介して、画像処理部15に出力する。
(ステップS108)
ステップS105またはステップS107で一つのタイルベクタデータに対する、コマンド解析または描画処理が終了したら、タイルベクタ領域に格納したタイルベクタデータのすべてに対して処理が終了したか否かを判定する。未処理のタイルベクタデータがある場合(ステップS108でNO)、ステップS102に戻り、次のタイルベクタデータの処理を続ける。一方、未処理のタイルベクタデータがない場合(ステップS108でYES)、ステップS109に進む。
(ステップS109)
1ページ分のタイルベクタデータに対し、全ての処理が終了したか否かを判定する。未処理のタイルベクタデータがある場合(ステップS109でNO)、ステップS101に戻り、システムメモリ5から、タイルベクタデータを読み出して、処理を続ける。一方、未処理のタイルベクタデータがない場合(ステップS109でYES)、処理を終了する。
以上説明したように、実施形態1によれば、システムメモリ上に、入力された画像データをページベクタデータとタイルベクタデータの2種類の形式の画像データのみを記憶する構成を採用する。これにより、画像サイズの大きいラスタデータ及びDLデータをシステムメモリに記憶する必要がなくなる。そのため、システムメモリ上で確保しなければならない画像データ領域を削減することができる。
また、タイルベクタデータ生成時には、固定サイズのタイルではなく、オブジェクトのサイズに適合させた可変サイズのタイルベクタデータを生成する構成とすることで、より適切なサイズのタイルベクタデータを生成することができる。これにより、タイルベクタデータ全体のデータ量を削減することができる。
更に、個々のタイルベクタデータのタイルサイズが大きくなりすぎた場合に、並列処理性が低下することを防ぐために、所定のタイルサイズよりも大きいタイルに関しては、そのタイルを再分割して、新たなタイルを設定する。これにより、並列処理の効率を向上させることが可能となる。
[実施形態2]
実施形態1では、ラスタベクタデータからタイルベクタデータへ変換する場合、または、ページベクタデータをタイルベクタデータへ変換する場合は、オブジェクトが存在しないタイル(空白タイル)であっても、図12のコマンドC7、C8で示されるタイルの先頭位置と終端位置の情報だけをもつコマンドを生成している。
これに対して、実施形態2では、図15に示すように、空白タイルに関しては、ベクタデータを生成しないで(つまり、ベクタデータの生成を禁止して)、オブジェクトが存在する場合だけ、タイルベクタデータを生成するようにしても良い。
つまり、図15では、図12の描画命令部分1403に対応する描画命令部分が省略され、図12の描画命令部分1401、1404、1405、1406に対応する描画命令部分1101、1104、1105、1106のみが記述されている。
このように、タイルベクタデータ中に、空白タイルの情報を省略することにより、MFP内部で扱うデータ量をより削減することが可能となる。
尚、実施形態2の構成の場合は、図12のフローチャートにおいて、ステップ907の処理において、空白タイルに関しての処理を省略することになる。
以上説明したように、実施形態2によれば、実施形態1で説明した効果に加えて、タイルベクタデータのデータ量をより削減することができる。
[実施形態3]
実施形態3は、実施形態1の応用例である。
特に、実施形態3では、画像データ中で複数のオブジェクトそれぞれを内包する矩形領域(タイル)を一旦設定した後、その矩形領域同士の重複部の割合に基づいて、より適切なタイルを再設定(結合/分割)する構成について説明する。
まず、本発明の実施形態3の画像処理システムでのコピー動作に係るデータフローについて、図2を用いて説明する。
尚、ここでは、実施形態1のコピー動作における処理内容の内、異なる処理内容の部分だけ説明する。特に、実施形態3では、実施形態1における(S22)の処理内容が異なる。
[コピー]
(S22):画像処理部15による画像処理が終了し、画像処理部15から出力された画像データはラスタ/タイルベクタ変換部14に入力され、タイルベクタ変換処理が実行される。
ここでは、まず、ラスタ/タイルベクタ変換部14は、画像データ中のオブジェクトを内包する矩形領域を一旦設定する。そして、画像データ中で複数のオブジェクトそれぞれを内包する矩形領域が重複していない場合は、オブジェクト毎に、この矩形領域の大きさのブロック(タイル)を確定して、その大きさのブロックに画像データ中のオブジェクトを分割する。
一方、複数のオブジェクトそれぞれを内包する矩形領域が重複している場合で、特に、その重複している割合(重複度)が所定値より大きい場合は、その複数のオブジェクトを内包する矩形領域の大きさのブロック(タイル)を設定して、その大きさのブロックに画像データ中の複数のオブジェクトを分割する。一方、重複度が所定値より小さい場合は、各オブジェクトを内包する矩形領域の大きさのブロック(タイル)を設定して、その大きさのブロックに画像データ中の複数のオブジェクトの各オブジェクトを分割する。
そして、各ブロック内のラスタデータに対して、ベクトル化処理を実行して、ブロック(タイル)単位のベクタデータ(タイルベクタデータ(ブロックベクタデータ))を生成する。
生成されたタイルベクタデータは、SBB2によりバスの調停を受け、システムメモリ5へのバス権を取得し、MC4を介して、システムメモリ5に記憶される。(尚、SBB2経由でデータパスが接続される場合は、基本的にバスの調停を受け、バス権を取得する手続きを踏むが、以降のフロー説明では省略する。)
次に、本発明の実施形態3の画像処理システムでのプリント動作に係るデータフローについて、図3を用いて説明する。
尚、ここでは、実施形態1のコピー動作における処理内容の内、異なる処理内容の部分だけ説明する。特に、実施形態3では、実施形態1における(S32)の処理内容が異なる。
[プリント]
(S32):システムメモリ5に記憶されたページベクタデータは、タイル/ページベクタ変換部13より読み出され、タイルベクタ変換処理が実行される。
ここでは、まず、タイル/ページベクタ変換部13は、ページベクタデータ内に存在するオブジェクト毎に、オブジェクトを内包する矩形領域を一旦設定する。そして、ページベクタデータ中で、複数のオブジェクトが重複していない場合は、オブジェクト毎に、この矩形領域の大きさのブロック(タイル)を確定して、その大きさのブロックにページベクタデータ中のオブジェクトを分割する。
一方、複数のオブジェクトが重複している場合で、特に、その重複している割合(重複度)が所定値より大きい場合は、その複数のオブジェクトを内包する矩形領域の大きさのブロック(タイル)を設定して、その大きさのブロックにページベクタデータ中の複数のオブジェクトを分割する。一方、重複度が所定値より小さい場合は、各オブジェクトを内包する矩形領域の大きさのブロック(タイル)を設定して、その大きさのブロックにページベクタデータ中の複数のオブジェクトの各オブジェクトを分割する。
[ラスタ/タイルベクタ変換部]
次に、ラスタ/タイルベクタ変換部14の処理の詳細について説明する。
図16は本発明の実施形態3のラスタ/タイルベクタ変換部が実行する処理を示すフローチャートである。
尚、図16において、実施形態1の図5のフローチャートと同一の処理については、同一のステップ番号を付加して、その詳細については省略する。
(ステップS52a:タイル重複部算出処理)
分離された各領域は、次に、領域間の重複部の割合(重複度)を算出する。
具体例について、図17を用いて説明する。
図17は本発明の実施形態3のタイル重複部算出処理の具体例を説明するための図である。
図17に示す、ラスタデータ1600では、オブジェクト1601及び1602の2つのオブジェクトが存在している。このラスタデータ1600に対して、ステップS51のブロックセレクションを実行すると、オブジェクト1601は文字領域として認識され、オブジェクト1602は図形領域として認識される。
この処理結果に対して、タイル重複部算出処理を実行すると、ラスタデータ1600中のオブジェクト1601及び1602は、例えば、図18に示すように、それぞれのオブジェクトを含む矩形領域1701及び1702が設定される。
次に、矩形領域1701及び1702の重複部1703の面積を算出する。このとき、矩形領域1701及び1702それぞれの面積に対する、重複部1703の面積の割合を算出する。
(ステップS52b:タイル重複部割合判定処理)
次に、ステップS52aで算出した重複部1703の面積の割合が所定値αより大きいか否かを判定する。所定値α未満である場合(ステップS52bでNO)、ステップS52cへ進む。一方、所定値α未満より大きい場合(ステップS52bでYES)、ステップS52dへ進む。
(ステップS52c:タイル分割処理)
重複部1703の面積の割合が所定値α未満である場合、その重複部を形成する矩形領域(タイル)1701及び1702を含む領域(タイル)を分割し直すためのタイル分割処理を実行する。
このタイル分割処理によって、矩形領域(タイル)1701及び1702を含むページは、例えば、図19の領域(タイル)1801〜1807に分割する。この場合、オブジェクト1602をすべて包含する領域1805を生成し、その中にはオブジェクト1601の一部が含まれることとなる。一方、領域1804では、オブジェクト1601の一部のみが含まれる。
このように、オブジェクトを内包する矩形領域同士の重複部の割合が所定値未満αである場合、タイル分割処理を実行して、より適切なサイズのタイルを設定して、タイルの並列処理性の向上を図る。
(S52d:タイル結合処理)
重複部1703の面積の割合が所定値αより大きい場合、その重複部を形成する矩形領域(タイル)1701及び1702を含む領域に結合するタイル結合処理を実行する。
例えば、図20に示すように、オブジェクトを包含する矩形領域(タイル)1701及び1702がほぼ重複している場合(重複部の割合が比較的大きい場合)、つまり、両領域の重複部1901の割合が所定値αより大きい場合、矩形領域(タイル)1701及び1702を含むページ上では、図21の領域(タイル)1001〜1005を設定する。この場合、オブジェクト1601及び1602の両方を包含する領域(タイル)1003が設定される。
このように、オブジェクトの内包する矩形領域同士の重複部の割合が所定値αより大きい場合、タイルの並列処理による高速化が見込めない。そのため、このような場合には、ページを構成するタイルの量を削減し、ページ全体のデータ量を減らすために、複数のオブジェクトを包含するタイルを生成(設定)する。
[タイル/ページベクタ変換部]
次に、タイル/ページベクタ変換部13の処理の詳細を説明するにあたり、処理対象となるドキュメントデータ(画像データ)について説明する。
図22は本発明の実施形態3のネットワークから転送されてくるドキュメントデータの一例を示している。
図22では、ドキュメントデータ2201の短手方向を「X」方向、長手方向を「Y」方向とするデバイス座標系を定義する。ドキュメントデータ2201としては、ページベクタデータ、タイルベクタデータ、あるいはラスタデータ表現を含むページベクタデータ(タイルベクタデータ)、あるいはラスタデータのいずれかで構成される可能性がある。 ここで、ドキュメントデータ2201が、ページベクタデータである場合、その内容を構成する記述例について、図23を用いて説明する。
図23は本発明の実施形態3のページベクタデータの記述例を示す図である。
図23において、2301はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、2302は文字の描画命令部分、2303は図形の描画命令部分を示している。
各描画命令部分の詳細について説明する。
ドキュメント設定命令部分2301において、C1〜C5は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドC1〜C5は、ドキュメント1部について1ケ所しか付いていない。
これらドキュメントデータ全体に関係するコマンドには、実施形態1の図10で詳述した内容と同様である。
文字の描画命令部分2302及び図形の描画命令部分2303を構成するC6〜C22は、ドキュメントデータを出力するための各種コマンドである。
尚、文字の描画命令部分2302及び図形の描画命令部分2303を構成するコマンドについては、それぞれ文字及び図形の描画位置が異なる以外は、実施形態1の図10の描画命令部分1202及び図形の描画命令部分1203で詳述した内容と同様である。
一方、ドキュメントデータ2201がタイルベクタデータである場合について、図24を用いて説明する。
図24は本発明の実施形態3のタイルベクタデータの例を示す図である。
図24では、図22のドキュメントデータ2201(ページベクタデータ)を、図24に示すようなブロック(タイル)単位で分割したタイルベクタデータ(ドキュメントデータ2400)の一例を示している。
図24では、ドキュメントデータ2400の短手方向を「X」方向、長手方向を「Y」とするデバイス座標系を定義する。
ここで、このドキュメントデータ2400が、タイルベクタデータである場合、その内容を構成する記述例について、図25を用いて説明する。
図25は本発明の実施形態3のタイルベクタデータの記述例を示す図である。
図25において、2501はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、2502は描画命令部分全体、2503〜2505はそれぞれタイル2401,2404,2405の描画命令部分を示している。
各描画命令の詳細について説明する。
ドキュメント設定命令部分2501において、C1〜C5は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドC1〜C5は、ドキュメント1部について1ケ所しか付いていない。
これらドキュメントデータ全体に関係するコマンドには、実施形態1の図12で詳述した内容と同様である。
描画命令部分2502を構成するC6〜C500は、ドキュメントデータを出力するための各種コマンドである。
ここで、描画命令部分2503は、実施形態1の図12の描画命令部分1403で詳述した内容と同様である。
C9は図24のタイル2404の描画コマンドの開始を示すコマンドである。C10は文字のフォントの種類を選択するためのコマンドであり、この場合には「1」という番号の付けられたフォントセットに設定されている。C11はフォントの大きさを設定するコマンドであり、この場合には「10ポイント」の大きさに設定されている。
C12は文字の色を設定するコマンドであり、順にR(赤),G(緑),B(青)各色成分の輝度を示してある。この輝度は、例えば、0から255の256段階で量子化されているものとする。この場合は、{0,0,0}に設定されている。C13は文字を描画する開始位置の座標を示すコマンドである。座標位置(X,Y)は、ページの左上を原点に指定する。この場合は、ページの{40,150}の位置から文字の描画を開始するように設定されている。C14は実際に描画する文字列(A)を示すコマンドである。C15はタイル2404の描画コマンドの終了を示すコマンドである。
尚、実施形態3においては、このタイル2404内に存在する文字を描画する開始位置も、タイル2404を描画する開始位置と同様に、ページの左上を基準にしている。これは、文字列(A)がタイル2404とタイル2405に跨っていて、各タイル内では、自身に含まれる文字列の部分のみを描画する必要があるからである。
つまり、タイル2404では、描画コマンドC9とC15で示される矩形領域の位置情報と、文字列のページにおける位置情報とから、タイル2404内部で描画されるべき範囲内のみの文字列(A)を描画する必要がある。そのため、実施形態3では、タイル内に存在する文字を描画する開始位置も、ページの左上を基準にする座標系を採用している。
C100は図24のタイル2405の描画コマンドの開始を示すコマンドである。C101は図形描画の際の面の塗りつぶしの色を示すコマンドである。色の指定は、文字の色と同様である。C102は図形描画の線の色を指定するコマンドである。C103は図形を描画する位置の座標を示すコマンドである。
C104は円弧を描画する際の半径を指定するコマンドであり、この場合、「10」座標単位を表している。C105は閉円弧の描画をするコマンドである。コマンド内の2個のパラメータは円弧を描画する際の描画開始角度と終了角度を示している。垂直情報を0度として、この場合には0度から90度の円弧を描画することを示している。
C106〜C110は、C101〜C105のコマンドと同様に図形の描画命令による図形の面,線の色の指定、位置等を指定するコマンドである。
C111〜C114は、タイル2404で記述されている文字列(A)の一部を、タイル2405で描画するためのコマンドである。ここでは、特に、コマンドC113で設定される、文字列(A)の一部を描画する開始位置の座標と、C100とC115で設定されるタイルの領域情報とから、文字列(A)の一部を描画する。
C115はタイル2405の描画コマンドの終了を示すコマンドである。また、C500はページの終了を示すコマンドである。
次に、タイル/ページベクタ変換部13の処理の詳細について、図26を用いて説明する。
図26は本発明の実施形態3のタイル/ページベクタ変換部が実行する処理を示すフローチャートである。
(ステップS1101)
まず、システムメモリ5中に記憶されたドキュメントデータ(ベクタデータ)から、ヘッダ部分に相当するコマンド列を読み込み、処理対象となるドキュメントデータ全体に関するコマンド部分を解析する。具体的には、図23または図25のC1〜C5に相当する部分の内容を解析する。
(ステップS1102)
これは、図13のステップS902に対応するので、その説明は省略する。
(ステップS1103)
これは、図13のステップS903に対応するので、その説明は省略する。
(ステップS1104)
ステップS1103で読み込んだコマンド列を解析し、記述されているオブジェクトを内包する矩形領域を算出し、複数オブジェクト間で算出された矩形領域が重複しているか否かを判定する。つまり、オブジェクトを内包する矩形領域(タイル)の結合を実行するか、あるいは更なる分割を実行するかを判定する。
矩形領域が重複している割合が所定値より大きい場合(ステップS1104でYES)、ステップS1105へ進み、タイル結合処理を実行する。一方、矩形領域が重複している割合が所定値未満である場合(ステップS1104でNO)、ステップS1106へ進み、タイル分割処理を実行する。
(ステップS1105)
このステップでは、オブジェクトを内包するタイルの結合処理を行う。
例えば、図23のページベクタデータ中の文字の描画命令部分2302、図形の描画命令部分2303において、両者によって描画される文字と図形それぞれを包含する領域1701及び1702の重複部1901の割合が所定値より大きい場合(図20の状態の場合)、その領域(タイル)を再分割して並列処理したとしても、文字及び図形それぞれを包含する領域の重複部は分散処理しづらい。
つまり、このような場合には、分散処理による高速化が望めないので、ベクタデータ全体のデータ量を減らすために、図21で説明したように、文字及び図形それぞれを包含する領域1701及び1702(タイル)を結合し、かつその結合領域を含み、文字及び図形の両方を包含する領域を生成(設定)する。
(ステップS1106)
このステップでは、オブジェクトを内包するタイルの分割処理を行う。
例えば、図23のページベクタデータ中の文字の描画命令部分2302、図形の描画命令部分2303において、両者によって描画される文字と図形それぞれを包含する領域1701及び1702の重複部1703の割合が所定値未満である場合(図18の状態の場合)、その領域(タイル)を分割して、文字、図形を並列に処理したほうが高速化が行えると判定する。
つまり、このような場合には、図24に示すように、文字と図形それぞれを包含する領域1701及び1702をタイル2404とタイル2405の2つのタイルに分割する。この分割によって、タイル2405では、片方のオブジェクト(図形オブジェクト)は全て内包し、もう一方のオブジェクト(文字オブジェクト)の一部が含まれる。また、タイル2404のように、オブジェクトが複数のタイルに跨がる場合には、そのオブジェクトの一部がそのタイルに含まれるようになる。
(ステップS1107)
これは、図13のステップS907に対応するので、その説明は省略する。
尚、オブジェクトが存在していない場所、例えば、図24におけるタイル2401、2402、2403、2406、2407等の領域に対しては、個々の矩形領域に対して、図25のコマンドC7、C8等で示されるタイルの先頭位置と終端位置の情報を有するコマンドを生成した上で、ステップS1108へ進む。
(ステップS1108)
これは、図13のステップS908に対応するので、その説明は省略する。
次に、ステップS1103〜ステップS1107で処理されたコマンドが存在する座標のタイルに対し、オブジェクトの記述を追加する。例えば、図24のタイル2404の場合は、コマンドC9〜C15から構成される描画命令部分2504(図25)で記述される。
(ステップS1109)
これは、図13のステップS909に対応するので、その説明は省略する。
一方、ステップS1102で、ドキュメントデータのタイプが、タイルベクタデータである場合について説明する。
(ステップS1110)
これは、図13のステップS910に対応するので、その説明は省略する。
(ステップS1111)
ステップS1110で読み込まれたコマンド列を解析し、記述されているオブジェクトがそれより以前に読み込まれたタイルと重複したデータを有するか否かを判定する。そして、この重複したデータの有無に応じて、そのタイルとオブジェクトが結合可能であるか否かを判定する。結合可能でない場合(ステップS1111でNO)、ステップS1112をスキップし、ステップS1114へ進む。一方、結合可能である場合(ステップS1111でYES)、ステップS1112へ進む。
尚、オブジェクトが結合可能であるか否かの判定は、読み込んだコマンドの座標位置や、図形の種別等を基に判定する。また、文字列の場合は、フォントサイズやフォントの種類を基に判定する。例えば、図25の描画命令部分2505においては、コマンドC111〜C114までの情報は、描画命令部分2504で規定されるタイルの情報にすでに含まれている。そこで、このような場合には、この重複したデータをなくすように動作する。
(ステップS1112)
これは、図13のステップS912に対応するので、その説明は省略する。
(ステップS1114)
これは、図13のステップS914に対応するので、その説明は省略する。
(ステップS1115)
全てのコマンドの記述変換が終了したら、ページベクタとしてシステムメモリ5への書出を実行する。ページベクタデータとしては、ステップS1105及びステップS1106で記述されたコマンドに対し、タイルの開始と終了を示すコマンドを削除したようなフォーマットで記述される。
まず、ページ内の一番最初のタイルに記述されたコマンドの書出時点では、システムメモリ5内にオブジェクトがない状態のページベクタデータを生成しておく。これは、図23の記述を用いて説明すると、コマンドC1〜C6、C22だけで記述されるページである。次に、ステップS1110〜ステップS1112で処理されたオブジェクトの記述を追加する。図23の記述を用いて説明すると、描画命令部分2302のコマンドC7〜C11がこれにあたる。
(ステップS1116)
これは、図13のステップS916に対応するので、その説明は省略する。
(ステップS1117)
これは、図13のステップS917に対応するので、その説明は省略する。
尚、コントローラ1中の画像データ展開部18の詳細については、実施形態1と同様なので、その説明は省略する。
以上説明したように、実施形態3によれば、実施形態1で説明した効果に加えて、オブジェクトを内包する矩形領域同士の重複部の割合に基づいて、一旦設定した矩形領域(タイル)を再設定(結合/分割)する。
これにより、より適切なサイズの矩形領域からなるタイルベクタデータを生成することができ、タイルベクタデータの並列処理の効率性を向上させることができる。
[実施形態4]
実施形態4は、実施形態3の応用例である。実施形態4が実施形態3と異なる点は、タイルベクタデータを生成する際に、オブジェクトを内包する矩形領域において、オブジェクト毎の矩形領域の重複部が所定値未満である場合、タイルの分割をより細かく行い、分散処理による高速化をより行い易くした点である。
例えば、図16のフローチャートにおいて、図17に示すラスタデータをタイルベクタデータに変換する際、ステップS52cの処理において、図18に示すように、それぞれのオブジェクトを内包する矩形領域(タイル)1701及び1702の重複部1703の面積の割合が所定値未満である場合、タイル1701及び1702を分割し直すためのタイル分割処理を実行する。このタイル分割処理によって、矩形領域(タイル)1701及び1702を含むページは、例えば、図27の領域(タイル)1801から1808に分割する。
ここで、図19のタイル分割処理による分割方法との差異は、タイル1805aであり、複数のオブジェクトを内包する矩形領域の重複部を独立したタイルとして生成している。また、それ以外のタイルは、タイル1804、またはタイル1805bのようタイル内に、単一オブジェクトが内包するようにタイルを分割している。
このように、オブジェクトを内包する矩形領域の重複部の割合が所定値未満である場合は、並列処理による高速化が見込める。そのため、例えば、2つのオブジェクトを内包する矩形領域(タイル)が重複している割合が小さい場合は、2つの単一オブジェクトを内包するタイルと、両者の部分オブジェクトを複数の内包するタイルの計3つに分割することにより、タイルを細分化し、並列処理しやすくする。
このように、タイルをより細分化すること以外は、実施形態3と同様の処理フローでデータを処理することが可能である。
以上説明したように、実施形態4によれば、実施形態3で説明した効果に加えて、よりタイルベクタデータの並列処理の効率性を向上させることができる。
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
本発明の実施形態1の画像処理システムを構成するMFPのコントローラの詳細を示すブロック図である。 本発明の実施形態1の画像処理システムでのコピー動作に係るデータフローを示す図である。 本発明の実施形態1の画像処理システムでのプリント動作に係るデータフローを示す図である。 本発明の実施形態1の画像処理システムでの送信動作に係るデータフローを示す図である。 本発明の実施形態1のラスタ/タイルベクタ変換部が実行する処理を示すフローチャートである。 本発明の実施形態1のタイルサイズ決定処理の具体例を説明するための図である。 本発明の実施形態1のタイルサイズ決定処理の具体例を説明するための図である。 本発明の実施形態1のタイルサイズ決定処理の具体例を説明するための図である。 本発明の実施形態1のネットワークから転送されてくるドキュメントデータの一例を示している。 本発明の実施形態1のページベクタデータの記述例を示す図である。 本発明の実施形態1のタイルベクタデータの例を示す図である。 本発明の実施形態1のタイルベクタデータの記述例を示す図である。 本発明の実施形態1のタイル/ページベクタ変換部が実行する処理を示すフローチャートである。 本発明の実施形態1の画像データ展開部が実行する処理を示すフローチャートである。 本発明の実施形態2のタイルベクタデータの記述例を示す図である。 本発明の実施形態3のラスタ/タイルベクタ変換部が実行する処理を示すフローチャートである。 本発明の実施形態3のタイル重複部算出処理の具体例を説明するための図である。 本発明の実施形態3のタイル重複部算出処理の具体例を説明するための図である。 本発明の実施形態3のタイル分割処理の具体例を説明するための図である。 本発明の実施形態3のタイル結合処理の具体例を説明するための図である。 本発明の実施形態3のタイル結合処理の具体例を説明するための図である。 本発明の実施形態3のネットワークから転送されてくるドキュメントデータの一例を示している。 本発明の実施形態3のページベクタデータの記述例を示す図である。 本発明の実施形態3のタイルベクタデータの例を示す図である。 本発明の実施形態3のタイルベクタデータの記述例を示す図である。 本発明の実施形態3のタイル/ページベクタ変換部が実行する処理を示すフローチャートである。 本発明の実施形態4のタイル分割処理の具体例を説明するための図である。 従来の画像処理システムの構成を示す図である。
符号の説明
1 コントローラ
2 システムバスブリッジ
3 CPU
4 メモリコントローラ
5 システムメモリ
6 汎用バス
7 ハードディスクコントローラ
8 ハードディスクドライブ
9 操作部コントローラ
10 操作部
11 ネットワークI/F
12 ネットワーク
13 タイル/ページベクタ変換部
14 ラスタ/タイルベクタ変換部
15 画像処理部
16 スキャナ
17 プリンタ
18 画像データ展開部
18a〜18d 小画像データ展開部
19 ローカルメモリ

Claims (14)

  1. 入力された画像データに対する処理を実行する画像処理装置であって、
    画像データを入力する入力手段と、
    画像データを出力する出力手段と、
    ラスタ画像データを、設定されたブロックサイズのブロック毎に分割して、各ブロックにベクトル化処理を実行することで、ブロックベクタ画像データに変換する第1変換手段と、
    ブロックベクタ画像データを記憶する記憶手段と、
    ブロックベクタ画像データをラスタ画像データに展開する展開手段と、
    前記入力手段から入力されたラスタ画像データを前記第1変換手段でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開手段で展開して得られるラスタ画像データを前記出力手段から出力させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御手段と、
    前記第1変換手段を実行する場合に、処理対象の画像データ中のオブジェクトの大きさに基づいて、処理対象の画像データ中のオブジェクトをブロックに分割するブロックサイズを設定する設定手段と
    を備えることを特徴とする画像処理装置。
  2. 前記設定手段は、処理対象のオブジェクトを内包するブロックのブロックサイズを、処理対象の画像データ中のオブジェクトをブロックに分割するブロックサイズに設定する
    ことを特徴とする請求項1に記載の画像処理装置。
  3. 前記設定手段は、一旦設定したブロックサイズのブロックが所定サイズよりも大きい場合、そのブロックサイズより小さいブロックサイズを再設定する
    ことを特徴とする請求項2に記載の画像処理装置。
  4. 前記ページベクタ画像データ中のオブジェクトの大きさに基づいて、該ページベクタ画像データをブロックベクタ画像データへ変換する第2変換手段を更に備え、
    前記画像データ転送制御手段は、前記入力手段から入力された画像データがページベクタ画像データである場合は前記第2変換手段でブロックベクタ画像データに変換させる
    ことを特徴とする請求項1に記載の画像処理装置。
  5. 1ページ分の前記ブロックベクタ画像データから、ページ全体を示すページベクタ画像データへ変換する第3変換手段を更に備え、
    前記画像データ転送制御手段は、
    前記出力手段から出力させるべき画像データの形式がラスタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記展開手段を実行させて得られるラスタ画像データを前記出力手段から出力させ、
    前記出力手段から出力させるべき画像データの形式がベクタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記第3変換手段を実行させて得られるページベクタ画像データを前記出力手段から出力させる
    ように、装置内での処理対象の画像データの転送を制御することを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
  6. 前記第2変換手段は、前記ページベクタ画像データ中のオブジェクトのサイズが、前記オブジェクトをブロックに分割するブロックサイズの上限サイズを越えている場合は、その上限サイズを越えないブロックサイズのブロックに、該オブジェクトを分割することで、前記ページベクタ画像データを前記ブロックベクタ画像データへ変換する
    ことを特徴とする請求項4に記載の画像処理装置。
  7. 前記画像データ転送制御手段は、バスを介して、各手段に接続され、
    処理対象の画像データの形式に応じて、当該処理対象の画像データの転送に用いる前記バスの調整制御を実行するバス調停手段を備える
    ことを特徴とする請求項1に記載の画像処理装置。
  8. 前記第1変換手段あるいは前記第2変換手段は、処理対象の画像データを分割したブロック中にオブジェクトが含まれない場合には、対応するブロックベクタ画像データの生成を禁止する
    ことを特徴とする請求項4に記載の画像処理装置。
  9. 前記設定手段は、少なくとも2つのオブジェクトそれぞれを内包するブロックの重複部の割合に基づいて、前記少なくとも2つのオブジェクトをブロックに分割するブロックサイズを設定する
    ことを特徴とする請求項1に記載の画像処理装置。
  10. 前記設定手段は、前記重複部の割合が所定値より大きい場合は、前記少なくとも2つのオブジェクトを含むブロックに分割するブロックサイズを設定する
    ことを特徴とする請求項9に記載の画像処理装置。
  11. 前記設定手段は、前記重複部の割合が所定値未満である場合は、前記少なくとも2つのオブジェクトそれぞれを含むブロックに分割するブロックサイズを設定する
    ことを特徴とする請求項9に記載の画像処理装置。
  12. 前記設定手段は、前記重複部の割合が所定値未満である場合は、前記重複部を含むブロックと、該重複部以外の前記少なくとも2つのオブジェクトそれぞれを含むブロックに分割するブロックサイズを設定する
    ことを特徴とする請求項9に記載の画像処理装置。
  13. 入力された画像データに対する処理を実行する画像処理装置の制御方法であって、
    ラスタ画像データを、設定されたブロックサイズのブロック毎に分割して、各ブロックにベクトル化処理を実行することで、ブロックベクタ画像データに変換する第1変換工程と、
    ブロックベクタ画像データを記憶手段に記憶する記憶工程と、
    ブロックベクタ画像データをラスタ画像データに展開する展開工程と、
    入力されたラスタ画像データを前記第1変換工程でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開工程で展開して得られるラスタ画像データを出力部から出力させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御工程と
    前記第1変換工程を実行する場合に、処理対象の画像データ中のオブジェクトの大きさに基づいて、処理対象の画像データ中のオブジェクトをブロックに分割するブロックサイズを設定する設定工程と
    を備えることを特徴とする画像処理装置の制御方法。
  14. 入力された画像データに対する処理を実行する画像処理装置の制御を実現するプログラムであって、
    ラスタ画像データを、設定されたブロックサイズのブロック毎に分割して、各ブロックにベクトル化処理を実行することで、ブロックベクタ画像データに変換する第1変換工程のプログラムコードと、
    ブロックベクタ画像データを記憶手段に記憶する記憶工程と、
    ブロックベクタ画像データをラスタ画像データに展開する展開工程のプログラムコードと、
    入力されたラスタ画像データを前記第1変換工程でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開工程で展開して得られるラスタ画像データを出力部から出力させるように、制御する制御工程のプログラムコードと
    前記第1変換工程を実行する場合に、処理対象の画像データ中のオブジェクトの大きさに基づいて、処理対象の画像データ中のオブジェクトをブロックに分割するブロックサイズを設定する設定工程のプログラムコードと
    を備えることを特徴とするプログラム。
JP2005157609A 2005-05-30 2005-05-30 画像処理装置及びその制御方法、プログラム Expired - Fee Related JP4646703B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005157609A JP4646703B2 (ja) 2005-05-30 2005-05-30 画像処理装置及びその制御方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005157609A JP4646703B2 (ja) 2005-05-30 2005-05-30 画像処理装置及びその制御方法、プログラム

Publications (3)

Publication Number Publication Date
JP2006327155A true JP2006327155A (ja) 2006-12-07
JP2006327155A5 JP2006327155A5 (ja) 2008-07-10
JP4646703B2 JP4646703B2 (ja) 2011-03-09

Family

ID=37549338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005157609A Expired - Fee Related JP4646703B2 (ja) 2005-05-30 2005-05-30 画像処理装置及びその制御方法、プログラム

Country Status (1)

Country Link
JP (1) JP4646703B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009269355A (ja) * 2008-05-09 2009-11-19 Canon Inc 画像処理装置及びその制御方法
JP2011016317A (ja) * 2009-07-10 2011-01-27 Konica Minolta Business Technologies Inc 画像処理装置、ハードウェアアクセラレータ及び画像処理方法
JP2020113064A (ja) * 2019-01-11 2020-07-27 コニカミノルタ株式会社 印刷用ファイル加工部、印刷用ファイルの加工方法および印刷用ファイル加工プログラム
JP7328730B1 (ja) * 2023-01-30 2023-08-17 株式会社アニー 画像変換方法、及び、画像変換装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207650A (ja) * 1997-01-24 1998-08-07 Hitachi Koki Co Ltd プリンタ制御装置
JPH10307924A (ja) * 1997-05-02 1998-11-17 Fuji Xerox Co Ltd 描画処理装置
JPH11198465A (ja) * 1998-01-14 1999-07-27 Fuji Xerox Co Ltd 文字出力装置
JPH11203061A (ja) * 1998-01-12 1999-07-30 Fuji Xerox Co Ltd 画像処理装置、出力装置、画像処理システムおよび画像処理方法
JP2002014780A (ja) * 2000-06-30 2002-01-18 Canon Inc 印刷システム、印刷方法、印刷装置、端末装置およびサーバ装置
JP2003046789A (ja) * 2001-08-02 2003-02-14 Canon Inc 画像符号化装置及び画像復号化装置
JP2004120639A (ja) * 2002-09-27 2004-04-15 Canon Inc 画像処理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207650A (ja) * 1997-01-24 1998-08-07 Hitachi Koki Co Ltd プリンタ制御装置
JPH10307924A (ja) * 1997-05-02 1998-11-17 Fuji Xerox Co Ltd 描画処理装置
JPH11203061A (ja) * 1998-01-12 1999-07-30 Fuji Xerox Co Ltd 画像処理装置、出力装置、画像処理システムおよび画像処理方法
JPH11198465A (ja) * 1998-01-14 1999-07-27 Fuji Xerox Co Ltd 文字出力装置
JP2002014780A (ja) * 2000-06-30 2002-01-18 Canon Inc 印刷システム、印刷方法、印刷装置、端末装置およびサーバ装置
JP2003046789A (ja) * 2001-08-02 2003-02-14 Canon Inc 画像符号化装置及び画像復号化装置
JP2004120639A (ja) * 2002-09-27 2004-04-15 Canon Inc 画像処理方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009269355A (ja) * 2008-05-09 2009-11-19 Canon Inc 画像処理装置及びその制御方法
JP2011016317A (ja) * 2009-07-10 2011-01-27 Konica Minolta Business Technologies Inc 画像処理装置、ハードウェアアクセラレータ及び画像処理方法
JP2020113064A (ja) * 2019-01-11 2020-07-27 コニカミノルタ株式会社 印刷用ファイル加工部、印刷用ファイルの加工方法および印刷用ファイル加工プログラム
JP7172614B2 (ja) 2019-01-11 2022-11-16 コニカミノルタ株式会社 印刷用ファイル加工部、印刷用ファイルの加工方法および印刷用ファイル加工プログラム
JP7328730B1 (ja) * 2023-01-30 2023-08-17 株式会社アニー 画像変換方法、及び、画像変換装置

Also Published As

Publication number Publication date
JP4646703B2 (ja) 2011-03-09

Similar Documents

Publication Publication Date Title
JP4164518B2 (ja) 画像処理装置及びその制御方法、プログラム
JP4766657B2 (ja) 画像処理装置及びその制御方法、プログラム
JP4757120B2 (ja) 画像処理装置及びその制御方法
JP4408836B2 (ja) 画像処理装置及びその制御方法、プログラム
JP5209953B2 (ja) 画像データ供給装置および画像データ供給方法
JP6029344B2 (ja) 画像処理装置、画像処理方法、プログラム
JP3745179B2 (ja) 情報処理装置及びその制御方法及び記憶媒体
JP4646703B2 (ja) 画像処理装置及びその制御方法、プログラム
JP2008146415A (ja) 画像処理装置及びその制御方法、プログラム
JP4475680B2 (ja) 画像処理装置及びその制御方法、プログラム
JP3550979B2 (ja) 画像処理装置
JP2010111099A (ja) 画像処理装置およびその制御方法
JP4336470B2 (ja) 描画制御装置および描画制御方法およびプログラム
JP2008153764A (ja) 画像処理システム
JP2004021886A (ja) 画像処理装置及び画像処理方法
JP3236053B2 (ja) 画像処理システム及び画像処理方法
JP4379571B2 (ja) 画像処理装置及び画像処理方法
JP2006331308A (ja) 画像処理装置及びその制御方法、プログラム
JP3297448B2 (ja) 画像処理装置及び画像処理方法
JP2009033541A (ja) 画像処理システム
JP2008148066A (ja) 画像処理装置及びその制御方法、並びに制御プログラム
JP2008173946A (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JP2007081886A (ja) 描画処理装置
JPH11191055A (ja) 印刷システムおよび印刷システムのデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2002042119A (ja) 画像処理装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101206

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees