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

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

Info

Publication number
JP4408836B2
JP4408836B2 JP2005157607A JP2005157607A JP4408836B2 JP 4408836 B2 JP4408836 B2 JP 4408836B2 JP 2005157607 A JP2005157607 A JP 2005157607A JP 2005157607 A JP2005157607 A JP 2005157607A JP 4408836 B2 JP4408836 B2 JP 4408836B2
Authority
JP
Japan
Prior art keywords
image data
tile
data
block vector
raster
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.)
Expired - Fee Related
Application number
JP2005157607A
Other languages
English (en)
Other versions
JP2006333361A (ja
JP2006333361A5 (ja
Inventor
正和 木虎
信明 松井
恵司 稲葉
忠昭 前田
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 JP2005157607A priority Critical patent/JP4408836B2/ja
Priority to EP06746928.8A priority patent/EP1891802B1/en
Priority to US11/910,102 priority patent/US8274667B2/en
Priority to PCT/JP2006/310599 priority patent/WO2006129577A1/en
Publication of JP2006333361A publication Critical patent/JP2006333361A/ja
Publication of JP2006333361A5 publication Critical patent/JP2006333361A5/ja
Application granted granted Critical
Publication of JP4408836B2 publication Critical patent/JP4408836B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/40062Discrimination between different image types, e.g. two-tone, continuous tone

Description

本発明は、入力された画像データに対して画像処理を施して管理する画像処理装置及びその制御方法、プログラムに関するものである。
ネットワーク上に接続され、外部あるいは内部の画像データに対する画像データ処理を実行し、その処理した画像データを出力する画像データ入出力システムが知られている。
この画像データ入出力システムとしては、MFP(Multi Function Peripheral)と呼ばれるものがある。
ここで、従来のMFPを制御するコントローラ100を図29に示す。コントローラ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でレンダリングされたラスタ画像データが記憶される。
特開2004−120639号公報
上述のようなMFPが扱う画像データの中でも、ラスタ画像データはデータサイズが大きい。そのため、システムメモリ104のメモリサイズや、汎用バス105及びHDDCont106−HDD107間のバンド幅等のシステム・リソースを多く消費する。
これに加え、PDLデータ等のページベクタデータでは、システム中でインタプリットを行い、描画オブジェクトを生成するDLデータに展開する。その際、DLデータをシステムメモリ104にスプールするため、それによるメモリリソースの消費量も莫大なものとなっている。
一方、最近はユーザの出力画像の画質要求がますます高くなり、その解決策の1つとして、画像データに対する高解像度化(高画質化)が促進されている。また、画質と並行してシステムの処理速度向上も要求されている。
そのため、上述の様々な要求仕様を満足するために必要なシステム・リソースが肥大化してしまう。従って、プロダクトのコストパフォーマンスでの折り合いをつけることが課題となっている。
また、このプロダクトのコストパフォーマンスに対する課題とは別に、複雑、多様化するシステムを開発するための人的リソースの問題も解決することが要求されている。そして、これを満足するためには、様々な要求仕様に対し、1つの基本システムをスケーラブルな形で構成することにより、製品ラインナップを効率良く整備することが課題となっている。
例えば、図29における画像処理部110やRIP113等のモジュールを、ハイエンドな機種では複数個実装し、分散処理できるようなシステムが必要となってくる。
他方、オフィスにおいてはペーパーレス化が進行しており、紙の出力物と電子データをシームレスに扱えるような要求も生まれてきている。そのためには、紙と電子データとのI/F機器であるMFPにおいても、例えば、蓄積画像データの検索性の向上や、ラスタ画像データをオブジェクト化して再利用可能なオブジェクトデータに変換する、POD(Print On Demand)印刷に対応するために画像加工を高速化する、といったよりインテリジェントな機能を持つことが必要となっている。
本発明は上記の課題を解決するためになされたものであり、システム全体のシステム・リソースの制約を緩和し、かつトータルスループットを向上することができる画像処理装置及びその制御方法、プログラムを提供することを目的とする。
上記課題を解決するための本発明による画像処理装置は以下の構成を備える。即ち、
入力された画像データに対する処理を実行する画像処理装置であって、
画像データを入力する入力手段と、
画像データを出力する出力手段と、
ラスタ画像データを、所定の大きさのブロック毎に分割し、ベクトル化処理を実行することにより、当該所定の大きさに分割された各ブロックに対応するブロックベクタ画像データに変換する第1変換手段と、
ブロックベクタ画像データを記憶する記憶手段と、
ブロックベクタ画像データをラスタ画像データに展開する展開手段と、
前記入力手段から入力されたラスタ画像データを前記第1変換手段でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開手段で展開して得られるラスタ画像データを前記出力手段から出力させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御手段と
1ページ分のブロックベクタ画像データから、ページ全体を示すページベクタ画像データへ変換する第3変換手段とを備え、
前記展開手段は、複数のブロックベクタ画像データを並列に処理するための、複数の小展開部を有し、
前記画像データ転送制御手段は、
前記出力手段から出力させるべき画像データの形式がラスタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記展開手段を実行させて得られるラスタ画像データを前記出力手段から出力させ、
前記出力手段から出力させるべき画像データの形式がベクタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記第3変換手段を実行させて得られる前記ページベクタ画像データを前記出力手段から出力させる
ように、装置内での処理対象の画像データの転送を制御する
また、好ましくは、入力された画像データに対する処理を実行する画像処理装置であって、
画像データを入力する入力手段と、
画像データを出力する出力手段と、
ラスタ画像データを、所定の大きさのブロック毎に分割し、ベクトル化処理を実行することにより、当該所定の大きさに分割された各ブロックに対応するブロックベクタ画像データに変換する第1変換手段と、
ブロックベクタ画像データを記憶する記憶手段と、
ブロックベクタ画像データをラスタ画像データに展開する展開手段と、
前記入力手段から入力されたラスタ画像データを前記第1変換手段でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開手段で展開して得られるラスタ画像データを前記出力手段から出力させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御手段とを備え、
前記展開手段は、複数のブロックベクタ画像データを並列に処理するための、複数の小展開部と、前記複数の小展開部に対して共通のフォントキャッシュ部とを備え、
前記フォントキャッシュ部は、フォントキャッシュメモリと、前記複数の小展開部それぞれが前記フォントキャッシュメモリを参照中であることを示すロックフラグを記憶するロックフラグレジスタを備える
上記課題を解決するための本発明による画像処理装置の制御方法は以下の構成を備える。即ち、
入力された画像データに対する処理を実行する画像処理装置の制御方法であって、
ラスタ画像データを、所定の大きさのブロック毎の分割とベクトル化処理とにより、所定の大きさに分割されたブロックベクタ画像データに変換する第1変換工程と、
ブロックベクタ画像データを記憶手段に記憶する記憶工程と、
ブロックベクタ画像データをラスタ画像データに展開する展開工程と、
前記入力されたラスタ画像データを前記第1変換工程でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開工程で展開して得られるラスタ画像データを出力部から出力させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御工程と
1ページ分のブロックベクタ画像データから、ページ全体を示すページベクタ画像データへ変換する第3変換工程とを備え、
前記展開工程は、複数の小展開部によって、複数のブロックベクタ画像データを並列に処理し、
前記画像データ転送制御工程は、
前記出力部から出力させるべき画像データの形式がラスタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記展開工程を実行させて得られるラスタ画像データを前記出力部から出力させ、
前記出力部から出力させるべき画像データの形式がベクタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記第3変換工程を実行させて得られる前記ページベクタ画像データを前記出力部から出力させる
ように、装置内での処理対象の画像データの転送を制御する
上記課題を解決するための本発明によるプログラムは以下の構成を備える。即ち、
入力された画像データに対する処理をコンピュータに実行させる画像処理装置の制御を実現するプログラムであって、
ラスタ画像データを、所定の大きさのブロック毎の分割とベクトル化処理とにより、所定の大きさに分割されたブロックベクタ画像データに変換する第1変換工程と、
ブロックベクタ画像データを記憶手段に記憶する記憶工程と、
ブロックベクタ画像データをラスタ画像データに展開する展開工程と、
前記入力されたラスタ画像データを前記第1変換工程でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開工程で展開して得られるラスタ画像データを出力部から出力させるように制御する制御工程と
1ページ分のブロックベクタ画像データから、ページ全体を示すページベクタ画像データへ変換する第3変換工程とを備え、
前記展開工程は、複数の小展開部によって、複数のブロックベクタ画像データを並列に処理し、
前記制御工程は、
前記出力部から出力させるべき画像データの形式がラスタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記展開工程を実行させて得られるラスタ画像データを前記出力部から出力させ、
前記出力部から出力させるべき画像データの形式がベクタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記第3変換工程を実行させて得られる前記ページベクタ画像データを前記出力部から出力させる
ように、装置内での処理対象の画像データの転送を制御する
本発明によれば、システム全体のシステム・リソースの制約を緩和し、かつトータルスループットを向上することができる画像処理装置及びその制御方法、プログラムを提供できる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。
[実施形態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より読み出され、タイルベクタ変換処理が実行される。即ち、タイル/ページベクタ変換部は、ページベクタデータ内に存在するオブジェクトを所定の大きさのブロック(タイル)内に収まるオブジェクトに分割する。そして、タイル単位のベクタデータ(タイルベクタデータ)を生成する。
(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:ベクトル化処理)
ベクトル化処理により、各属性の領域のイメージデータをベクトルデータに変換する(ベクトル化する)。ベクトル化の方法は、例えば、以下、方法(a)〜(f)等が存在する。
(a)属性領域が文字領域のとき、さらにOCRによる文字画像のコード変換を行ったり、あるいは文字のサイズ、スタイル、字体を認識し、原稿を走査して得られた文字に可視的に忠実なフォントデータに変換する。
(b)属性領域が文字領域であり、かつOCRによる認識が不可能であったとき、文字の輪郭を追跡し、輪郭情報(アウトライン)を線分のつながりとして表現する形式に変換する。
尚、実施形態1では、文字領域に対して、OCR結果に応じて、方法(a)と方法(b)とのいずれかを用いる例を示したが、これに限るものではなく、例えば、方法(a)は用いずに全ての文字領域に対して方法(b)だけを用いるようにしても構わない。
(c)属性領域が図形領域のとき、図形オブジェクトの輪郭を追跡し、輪郭情報を線分のつながりとして表現する形式に変換する。
(d)方法(b)及び(c)の線分形式のアウトライン情報をベジエ関数等でフィッティングして、関数情報に変換する。
(e)方法(c)の図形オブジェクトの輪郭情報から、図形の形状を認識し、円、矩形、多角形、等の図形定義情報に変換する。
(f)属性領域が図形領域であって、特定領域の表形式のオブジェクトの場合、罫線や枠線を認識し、所定のフォーマットの帳票フォーマット情報に変換する。
(ステップS53:タイルベクタデータ生成処理)
ステップS52で、方法(a)〜(f)のフォーマットコード情報、図形情報、関数情報等のコマンド定義形式情報にベクトル変換されたデータに対し、コントローラ1内でページベクタデータかタイルベクタデータかを判別するベクタタイプや、当該タイルのページ内の座標位置等の座標情報を判別するためのヘッダ情報を付加した、タイルベクタデータを生成する。このようにして、タイル単位に各種情報が付加されたタイルベクタデータをSBB2へ出力する。
(ステップS54:終了判定処理)
処理対象のラスタデータの有無を判定する。処理対象のラスタデータがある場合(ステップS54でNO)、ステップS51に戻る。一方、処理対象のラスタデータがない場合(ステップS54でYES)、処理を終了する。
[タイル/ページベクタ変換部]
次に、タイル/ページベクタ変換部13の処理の詳細を説明するにあたり、処理対象となるドキュメントデータ(画像データ)について説明する。
図6は本発明の実施形態1のネットワークから転送されてくるドキュメントデータの一例を示している。
図6では、ドキュメントデータ801の短手方向を「X」方向、長手方向を「Y」方向とするデバイス座標系を定義する。ドキュメントデータ801としては、ページベクタデータ、タイルベクタデータ、あるいはラスタデータ表現を含むページベクタデータ(タイルベクタデータ)、あるいはラスタデータのいずれかで構成される可能性がある。
ここで、ドキュメントデータ801が、ページベクタデータである場合、その内容を構成する記述例について、図7を用いて説明する。
図7は本発明の実施形態1のページベクタデータの記述例を示す図である。
図7において、901はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、902は文字の描画命令部分、903は図形の描画命令部分を示している。
各描画命令部分の詳細について説明する。
ドキュメント設定命令部分901において、C1〜C5は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドC1〜C5は、ドキュメント1部について1ヶ所しか付いていない。
これらドキュメントデータ全体に関係するコマンドには、例えば、キャラクタセットコマンド(フォント指定コマンド)、スケーラブルフォントコマンド(スケーラブルフォントを使用するか否かを指定するコマンド)、ハードリセットコマンド(以前のプリンタ使用環境をリセットするコマンド)等がある。
ここで、C1はドキュメント設定開始コマンドである。C2はドキュメントデータの出力用紙サイズを示すコマンドであり、この場合には、A4の設定になっている。C3はドキュメントデータの方向を示すコマンドである。ここでは、ポートレートとランドスケープがあるが、この場合にはポートレート(PORT)の設定になっている。
C4はドキュメントデータのタイプを示すコマンドであり、ページベクタで構成されるドキュメントデータであるかタイルベクタで構成されるドキュメントデータであるかを示している。この場合には、ページ(PAGE)に設定されている。C5はドキュメント設定終了コマンドである。
文字の描画命令部分902及び図形の描画命令部分903を構成するC6〜C22は、ドキュメントデータを出力するための各種コマンドである。
C6はページの開始を示すコマンドである。C7は文字のフォントの種類を選択するためのコマンドであり、この場合には「1」という番号の付けられたフォントセットに設定されている。C8はフォントの大きさを設定するコマンドであり、この場合には「10ポイント」の大きさに設定されている。
C9は文字の色を設定するコマンドであり、順にR(赤),G(緑),B(青)各色成分の輝度を示してある。この輝度は、例えば、0から255の256段階で量子化されているものとする。この場合は、{0,0,0}に設定されている。C10は文字を描画する開始位置の座標を示すコマンドである。座標位置(X,Y)は、ページの左上を原点に指定する。この場合は、ページの{10,5}の位置から文字の描画を開始するように設定されている。C11は実際に描画する文字列(XXXX・・・YY・・・)を示すコマンドである。
C12は図形描画の際の面の塗りつぶしの色を示すコマンドである。色の指定は、文字の色と同様である。C13は図形描画の線の色を指定するコマンドである。C14は図形描画位置の座標を示すコマンドである。
C15は円弧を描画する際の半径を指定するコマンドであり、この場合、「10」座標単位を示している。C16は閉円弧の描画をするコマンドである。コマンド内の2個のパラメータは円弧を描画する際の描画開始角度と終了角度を示している。垂直情報を0度として、この場合には0度から90度の円弧を描画することを示している。
C17〜C21は、C12〜C16までのコマンドと同様に、図形描画の際の面、線の色の指定、位置の指定等のコマンドである。C22はページの終了を示すコマンドである。
一方、ドキュメントデータ801がタイルベクタデータである場合について、図8を用いて説明する。
図8は本発明の実施形態1のタイルベクタデータの例を示す図である。
図8では、図6のドキュメントデータ801(ページベクタデータ)を、ブロック(タイル)単位で分割したタイルベクタデータ(ドキュメントデータ1001)の一例を示している。
図8では、ドキュメントデータ1001の短手方向を「X」方向、長手方向を「Y」とするデバイス座標系を定義する。また、図中のX方向に配列された数列は、X方向のタイルID、Y方向に配列された数列は、Y方向のタイルIDを表す。A〜Dは、それぞれタイルID=(0,0)、(1,0)、(2、4)、(1,5)の位置にあるタイルデータを示している。
ここで、このドキュメントデータ1001が、タイルベクタデータである場合、その内容を構成する記述例について、図9を用いて説明する。
図9は本発明の実施形態1のタイルベクタデータの記述例を示す図である。
図9において、1101はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、1102は描画命令部分全体、1103〜1106はそれぞれタイルA,B,C,Dの描画命令部分を示している。1107、1108はそれぞれタイルDの文字の描画命令部分、図形の描画命令部分を示している。
各描画命令の詳細について説明する。
ドキュメント設定命令部分1101において、C1〜C5は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドC1〜C5は、ドキュメント1部について1ケ所しか付いていない。
これらドキュメントデータ全体に関係するコマンドには、例えば、キャラクタセットコマンド(フォント指定コマンド)、スケーラブルフォントコマンド(スケーラブルフォントを使用するか否かを指定するコマンド)、ハードリセットコマンド(以前のプリンタ使用環境をリセットするコマンド)等がある。
ここで、C1はドキュメント設定開始コマンドである。C2はドキュメントデータの出力用紙サイズを示すコマンドであり、この場合には、A4の設定になっている。C3はドキュメントデータの方向を示すコマンドである。ここでは、ポートレートとランドスケープがあるが、この場合にはポートレート(PORT)の設定になっている。
C4はドキュメントデータのタイプを示すコマンドであり、ページベクタで構成されるドキュメントデータあるのかタイルベクタで構成されるドキュメントデータあるかを示している。この場合には、タイル(TILE)に設定されている。C5はドキュメント設定終了コマンドである。
描画命令部分1102を構成するC6〜C500は、ドキュメントデータを出力するための各種コマンドである。
C6はページの開始を示すコマンドである。C7は図8のタイルAの描画コマンドの開始を示すコマンドである。ここで、TileStart(0,0)中の2個のパラメータは、ドキュメントデータ内におけるタイルIDを示している。C8はタイルAの描画コマンドの終了を示すコマンドである。タイルAのように、そのタイル内にオブジェクトが何も存在しない場合は、タイルの開始と終了を示すコマンドだけが記述される。
C9は図8のタイルBの描画コマンドの開始を示すコマンドである。C10は文字のフォントの種類を選択するためのコマンドであり、この場合には「1」という番号の付けられたフォントセットに設定されている。C11はフォントの大きさを設定するコマンドであり、この場合には「10ポイント」の大きさに設定されている。
C12は文字の色を設定するコマンドであり、順にR(赤),G(緑),B(青)各色成分の輝度を示してある。この輝度は、例えば、0から255の256段階で量子化されているものとする。この場合は、{0,0,0}に設定されている。C13は文字を描画する開始位置の座標を示すコマンドである。座標位置(X,Y)は、タイルの左上を原点に指定する。この場合は、タイルの{0,5}の位置から文字の描画を開始するように設定されている。C14は実際に描画する文字列(XXXX)を示すコマンドである。C15はタイルBの描画コマンドの終了を示すコマンドである。
C100は図8のタイルCの描画コマンドの開始を示すコマンドである。C101は図形描画の際の面の塗りつぶしの色を示すコマンドである。色の指定は、文字の色と同様である。C102は図形描画の線の色を指定するコマンドである。C103は図形を描画する位置の座標を示すコマンドである。
C104は円弧を描画する際の半径を指定するコマンドであり、この場合、「10」座標単位を表している。C105は閉円弧の描画をするコマンドである。コマンド内の2個のパラメータは円弧を描画する際の描画開始角度と終了角度を示している。垂直情報を0度として、この場合には0度から90度の円弧を描画することを示している。C106はタイルCの描画コマンドの終了を示すコマンドである。
C120は図8のタイルDの描画コマンドの開始を示すコマンドである。C121〜C130は、C9〜C15のコマンドと同様に文字の描画命令による文字のフォントの種類、色、大きさ等を指定するコマンド、及びC100〜C106まてのコマンドと同様に図形の描画命令による図形の面、線の色、位置等を指定するコマンドである。C131はタイルDの描画コマンドの終了を示すコマンドである。
C500はページの終了を示すコマンドである。
次に、タイル/ページベクタ変換部13の処理の詳細について、図10を用いて説明する。
図10は本発明の実施形態1のタイル/ページベクタ変換部が実行する処理を示すフローチャートである。
尚、このタイル/ページベクタ変換部13では、ページベクタデータとタイルベクタデータ間での相互変換を行うことができる。あるいは、タイル/ページベクタ変換部13は、ページベクタデータからタイルベクタデータへ変換する変換部と、タイルベクタデータからページベクタデータへ変換する変換部で構成されていても良い。
(ステップS601)
まず、システムメモリ5中に記憶されたドキュメントデータ(ベクタデータ)から、ヘッダ部分に相当するコマンド列を読み込み、処理対象となるドキュメントデータ全体に関するコマンド部分を解析する。具体的には、図7または図9のC1〜C5に相当する部分の内容を解析する。
(ステップS602)
解析の結果に基づいて、ドキュメントデータのタイプが、ページベクタデータであるか否かを判定する。ページベクタデータである場合(ステップS602でYES)、ステップS603以降のステップに進み、ページベクタ→タイルベクタ変換を実行する。一方、ページベクタデータでない場合、つまり、タイルベクタデータである場合(ステップS602でNO)、ステップS610以降のステップに進み、タイルベクタ→ページベクタ変換を実行する。
(ステップS603)
ページベクタデータから、オブジェクトを記述するコマンド列を読み込む。
(ステップS604)
ステップS603で読み込んだコマンド列を解析し、記述されているオブジェクトの大きさが分割したいタイルサイズを超えているか否かを判定する。つまり、オブジェクトの更なる分割が必要であるか否かを判定する。
オブジェクトの大きさが分割したいタイルサイズを超えていない場合(ステップS604でNO)、ステップS605をスキップして、ステップS606に進む。一方、オブジェクトの大きさが分割したいタイルサイズを超えている場合(ステップS604でYES)、ステップS605に進む。
(ステップS605)
ここでは、入力されたオブジェクトの分割処理を実行する。
例えば、図7のページベクタデータでは、文字の描画命令部分902で、「XXXX・・・YY・・・」を含む全ての文字列の描画命令を記述している。これに対して、図9のタイルベクタデータでは、例えば、タイルBに対する描画命令1104では、「XXXX」の文字列の描画命令しか記述されていない。
従って、タイルベクタデータでは、文字列が複数のタイルに跨がる場合は、その文字列を途中(タイル境界)で分割し、分割された後続の文字列は別の文字列として、次のタイルに記述を行う。次のタイルに記述が収まらなかったら、同様にまたタイルに含まれる文字列を分割し、分割された全ての文字列がタイルサイズに収まるまで繰り返す。文字列をどこで切るかは、フォントの種類、サイズからタイル内に収まる文字数を算出し、その数だけの文字を抽出する。
例えば、図7のページベクタデータの文字の描画命令部分902に対して、タイル内に収まる文字数は4つとして算出され、図7のコマンドC11の記述は、タイルBに対する描画命令を構成するコマンドC13の記述に変換される。
また、図形の描画命令部分903では、コマンドC17〜C21で記述されている図形(図6の3/4円)は、図8のタイルベクタデータを構成するタイルの1つには収まらない。そのため、この図形は、タイルDを含む複数のタイルに分割される。図形の分割は、図形の描画位置や図形の形、大きさからタイルの境界領域と接する部分を算出し、その境界とタイル内に収まっている図形の部分領域で構成される閉領域を新たな図形として記述し直す。
図7の図形の描画命令部分903で記述される図形(図6の3/4円)は、図9では、その左下の部分領域が、図形の描画命令部分1108のコマンドC126からC130のような1/4円の記述に変換される。また、残りの領域も、同様な形の1/4円の記述に変換される。
(ステップS606)
入力されたオブジェクトのコマンドの記述に対し、タイルベクタデータ内での描画位置へ変更するために、座標位置の変換を行う。ページベクタデータでは、ページの左上からの位置を記述していたのに対し、タイルベクタデータではタイルの左上からの位置に記述し直す。描画位置をタイル内の座標で記述することにより、座標計算に要するデータ長を削減することが可能になる。
(ステップS607)
1つのオブジェクトに対するコマンドの記述変換が終了したら、ページ内の全てのオブジェクトのコマンドの記述変換が終了したか否かを判定する。終了していない場合(ステップS607でNO)、ステップS603に戻り、次のコマンドに対して、ステップS603〜ステップS607の処理を繰り返す。一方、終了した場合(ステップS607でYES)、ステップS608へ進む。
(ステップS608)
全てのコマンドの記述変換が終了したら、図8のように分割されたタイルベクタデータ中の各タイルに対し、ページの左上から順にタイルベクタデータとしてシステムメモリ5への書出を実行する。タイルベクタデータとしては、ステップS605及びステップS606で記述されたコマンドに対し、タイルの開始と終了を示すコマンドを追加するようなフォーマットで記述される。
まず、ページの一番最初のコマンドの書出時点では、システムメモリ5内にオブジェクトがない状態のタイルベクタを生成しておく。オブジェクトがないタイルベクタとしては、例えば、図8のタイルAがある。このタイルAは、タイルの開始と終了を示すコマンドC7及びC8のみから構成される描画命令部分1103(図9)で記述される。
次に、ステップS603〜ステップS607で処理されたコマンドが存在する座標のタイルに対し、オブジェクトの記述を追加する。例えば、図8のタイルBの場合は、コマンドC9〜C15から構成される描画命令部分1104(図9)で記述される。また、タイルDのように、同じタイルに複数のオブジェクトが存在する場合には、描画命令部分1106のように、文字の描画命令部分1107を構成するオブジェクト記述と、図形の描画命令部分1108を構成するオブジェクト記述を列記する。
(ステップS609)
1つのオブジェクトのタイルベクタへの書出が終了すると、そのページのオブジェクトの記述が全て終了したか否かを判定する。終了していない場合(ステップS609でNO)、ステップS603に戻る。一方、終了した場合(ステップS609でYES)、処理を終了する。
一方、ステップS602で、ドキュメントデータのタイプが、タイルベクタデータである場合について説明する。
(ステップS610)
タイルベクタデータから、オブジェクトを記述するコマンド列を読み込む。
(ステップS611)
ステップS610で読み込んだコマンド列を解析し、記述されているオブジェクトがそれより以前に読み込まれたタイルと結合可能であるか否かを判定する。結合可能でない場合(ステップS611でNO)、ステップS612をスキップし、ステップS613に進む。一方、結合可能である場合(ステップS611でYES)、ステップS612に進む。
尚、オブジェクトが結合可能であるか否かの判定は、読み込んだコマンドの座標位置や、図形の種別等を基に判定する。また、文字列の場合は、フォントサイズやフォントの種類を基に判定する。
(ステップS612)
オブジェクトの結合処理を実行する。この処理は、基本的には、ステップS605の処理手順を逆にすることで実現する。
(ステップS613)
入力されたオブジェクトのコマンドの記述に対し、ページベクタデータ内での描画位置へ変更するために、座標位置の変換を行う。タイルベクタデータでは、タイルの左上からの位置を記述していたのに対し、ページベクタデータでは、ページの左上からの位置に記述し直す。
(ステップS614)
1つのオブジェクトに対するコマンドの記述変換が終了したら、タイル内の全てのオブジェクトのコマンドの記述変換が終了したか否かを判定する。終了していない場合(ステップS614でNO)、ステップS610に戻り、次のコマンドに対して、ステップS610〜ステップS613の処理を繰り返す。一方、終了した場合(ステップS614でYES)、ステップS615へ進む。
(ステップS615)
全てのコマンドの記述変換が終了したら、ページベクタデータとしてシステムメモリ5への書出を実行する。ページベクタデータとしては、ステップS612及びステップS613で記述されたコマンドに対し、タイルの開始と終了を示すコマンドを削除したようなフォーマットで記述される。
まず、ページ内の一番最初のタイルに記述されたコマンドの書出時点では、システムメモリ5内にオブジェクトがない状態のページベクタを生成しておく。これは、図7の記述を用いて説明すると、コマンドC1〜C6、コマンドC22だけで記述されるページベクタである。
次に、ステップS610〜ステップS613で処理されたオブジェクトの記述を追加する。図7の記述の場合、文字の描画命令部分902を構成するコマンドC7〜C11がそれにあたる。この場合のオブジェクトは、文字列{XXXX・・・YY・・}を示しているが、これは、ステップS612で、図9の文字の描画命令部分1104や1107等で記述される各タイル中の文字列を順次結合したオブジェクトの記述である。
(ステップS616)
1つコマンドのページベクタへの書出が終了すると、そのタイルのオブジェクトの記述が全て終了したか否かを判定する。終了していない場合(ステップS616でNO)、ステップS610に戻る。一方、終了した場合(ステップS616でYES)、ステップS617に進む。
(ステップS617)
1つのタイルベクタデータの書出が終了すると、そのページのタイルベクタデータの記述に対する処理が全て終了したか否かを判定する。終了していない場合(ステップS617でNO)、ステップS610に戻る。一方、終了した場合(ステップS617でYES)、処理を終了する。
[画像データ展開部(RIP)]
次に、コントローラ1中の画像データ展開部18の詳細について説明する。
まず、コピーやプリント、送信等の画像データに対する処理を開始する前に、ローカルメモリ19の初期化と、作成するオブジェクトの解像度の設定を行っておく。実施形態1では、生成解像度は600dpiとし、ポイントサイズやmm等の単位系で指定された印刷コマンドは、この値を用いてドット数に変換されることになる。
以下では、画像データ展開部18によって、タイルベクタデータ展開を実行する場合の処理について、図11を用いて説明する。
図11は本発明の実施形態1の画像データ展開部が実行する処理を示すフローチャートである。
(ステップS71)
システムメモリ5より、SBB2を経由して、RIP18に一定サイズ分入力されたタイルベクタデータは、ローカルメモリ19のタイルベクタ領域に一時的に格納する。
(ステップS72)
タイルベクタデータをローカルメモリ19に格納したら、RIP18内のμRIP18a〜18dのいずれかが、タイルベクタデータを展開可能(処理可能)であるか否かを判定する。μRIP18a〜18dのいずれもタイルベクタデータの展開(処理)中である場合(ステップS72でNO)、それらのいずれかが展開可能になるまで待機する。
(ステップS73)
μRIP18a〜18dのいずれかがタイルベクタデータを展開可能になれば、予め定められた文法に従って、ローカルメモリ19に格納されたタイルベクタデータのコマンド解析を実行する。
(ステップS74)
コマンド解析結果に基づいて、コマンドが描画命令であるか排紙命令であるかを判定する。描画命令である場合(ステップS74でYES)、ステップS75に進む。一方、排紙命令である場合(ステップS74でNO)、ステップS76に進む。
(ステップS75)
コマンドが描画命令である場合、描画オブジェクト(DLデータ)の生成を実行する。タイルベクタデータ内のコマンドが文字の描画命令である場合、そのコマンドで指定されるフォントの書体や、文字サイズ、文字コードを元にフォントオブジェクトを生成して、ローカルメモリ19のDLデータ領域に格納する。また、文字以外の描画命令、つまり、図形の描画命令である場合、そのコマンドで指定された図形(ラインや円、多角形等)の描画オブジェクトを生成し、ローカルメモリ19のDLデータ領域に格納する。
また、コマンドが描画命令で指定されない印刷データである場合には、この印刷データに応じて印刷位置移動や印刷環境設定等の印刷制御処理を実行し、一単位分のコマンド解釈を終了する。
これは、タイルベクタデータ内のコマンド全ての解釈が終了するまで、上記処理を繰り返す。
(ステップS76)
コマンドが排紙命令である場合、μRIPは、ローカルメモリ19上のタイルラスタ領域に空き領域があるか否かを判定する。空き領域がない場合(ステップS76でNO)、他のμRIPの処理が終了して、タイルラスタ領域が解放されて、空き領域ができるまで待機する。一方、空き領域がある場合(ステップS76でYES)、ステップS77に進む。
(ステップS77)
タイルラスタ領域に空き領域がある場合、ステップS75で生成された描画オブジェクトを読み出し、タイルラスタ領域に描画(ラスタライズ)する。この時、生成解像度が600dpiであれば、タイルラスタ領域には600dpiの画像としてラスタライズされる。そして、描画が終了したタイルラスタ画像は、SBB2を介して、画像処理部15に出力する。
(ステップS78)
ステップS75またはステップS77で一つのタイルベクタデータに対する、コマンド解析または描画処理が終了したら、タイルベクタ領域に格納したタイルベクタデータのすべてに対して処理が終了したか否かを判定する。未処理のタイルベクタデータがある場合(ステップS78でNO)、ステップS72に戻り、次のタイルベクタデータの処理を続ける。一方、未処理のタイルベクタデータがない場合(ステップS78でYES)、ステップS79に進む。
(ステップS79)
1ページ分のタイルベクタデータに対し、全ての処理が終了したか否かを判定する。未処理のタイルベクタデータがある場合(ステップS79でNO)、ステップS71に戻り、システムメモリ5から、タイルベクタデータを読み出して、処理を続ける。一方、未処理のタイルベクタデータがない場合(ステップS79でYES)、処理を終了する。
以上説明したように、実施形態1によれば、システムメモリ上に、入力された画像データをページベクタデータとタイルベクタデータの2種類の形式の画像データのみを記憶する構成を採用する。これにより、画像サイズの大きいラスタデータ及びDLデータをシステムメモリに記憶する必要がなくなる。そのため、システムメモリ上で確保しなければならない画像データ領域を削減することができる。
また、外部機器に画像データを送信する際にはタイルベクタデータをページベクタデータに変換して、画像データ内に存在するオブジェクト数を減らすことで、送信データ量を削減することができる。また、送信先への画像データをページベクタデータで送信することで、送信先では、受信した画像データ(ページベクタデータ)を、PDFやSVG等の汎用フォーマットへ容易に変換することができる。
また、データスプールをベクタデータで行うことにより、システムの解像度依存性が解消され、画質とシステムの処理速度向上が並行して実現できるようになる。つまり、コストパフォーマンスの高いシステムを構成することができる。
さらに、システム内の画像データをベクタデータで取り扱うことにより、蓄積画像データの検索性の向上や、ラスタデータをオブジェクト化して再利用するようなPOD印刷に対応するための画像加工を高速化に寄与する等の、よりインテリジェントなシステムを実現することができる。
また、ベクタデータに展開するための画像データ展開部を複数個用意して並列に動作させることで、タイルベクタデータの展開を高速化することができる。また、動作させる画像データ展開部の個数を制御することで、用途や目的に応じて、その処理機能を可変にできるスケーラブルなシステムを構築することが可能となる。
[実施形態2]
実施形態1では、MFPから外部機器への送信を行う際には、タイルベクタデータをページベクタデータに変換して、データ量の削減や画像データの汎用性を高めているが、これに限定されない。例えば、画像データを記憶する際にタイルベクタデータだけではなく、予めページベクタデータも併せて記憶するようにしても良い。このような構成の場合、送信の際に、タイルベクタデータからページベクタデータへ変換することなく、外部機器にページベクタデータを送信することもできる。
尚、システム全体の構成は、実施形態1と同様なので、その詳細については割愛する
以下、実施形態2における画像処理システムでの送信動作について説明する。
[送信]
図12は本発明の実施形態2の画像処理システムでの送信動作に係るデータフローを示す図である。
尚、このデータフローは、CPU3の制御の下、MFP1000を構成する各種構成要素を協調動作させることで実現される。
(S131):実施形態2では、1つの画像データに対し、HDD8にはタイルベクタデータとページベクタデータとが関連付けて記憶される。送信時は、その内のページベクタデータが選択され、SBB2を介して、汎用バス6に接続されたHDDCont7より読み出され、システムメモリ5に一時的に記憶される。
(S132):システムメモリ5に記憶されたページベクタデータは、汎用バス6に接続されたネットワークI/F11から読み出され、ネットワーク12に接続された外部機器へと転送される。
尚、実施形態2では、実施形態1に比べて、HDD8に記憶すべき画像データ容量が多くなるが、送信時のフローが非常に簡略化される。
以上説明したように、実施形態2によれば、実施形態1で説明した効果に加えて、1つの画像データに対して、タイルベクタデータと、それに対応するページベクタデータを併せてHDDに記憶管理しておく。これにより、記憶管理されている2種類のベクタデータをHDDから適宜選択するだけで、画像データの出力時により適切なベクタデータを、変換処理を行うことなく、出力することができる。
[実施形態3]
実施形態3では、実施形態1の図10のステップS605のオブジェクトの分割処理の応用例について説明する。
実施形態3では、タイル/ページベクタ変換部13において、特に、処理対象のオブジェクトが曲線オブジェクトである場合に、その曲線オブジェクトの分割処理について説明する。
図13は本発明の実施形態3のタイルベクタデータの例を示す図である。
図13では、ドキュメントデータ1401の短手方向を「X」方向、長手方向を「Y」と定義する。また、図中のX方向に配列された数列は、X方向のタイルID、Y方向に配列された数列は、Y方向のタイルIDを表す。A〜Cは、それぞれタイルID=(0,0)、(2,3)、(3,3)の位置にあるタイルベクタを示している。
特に、図13では、タイルB及びCに曲線オブジェクトが跨がっている、つまり、曲線オブジェクトがタイルB及びCによって分割されている例を示している。
ここで、このドキュメントデータ1401がタイル分割前のページベクタデータである場合、その内容を構成する記述例について、図14を用いて説明する。
図14は本発明の実施形態3のページベクタデータの記述例を示す図である。
図14において、1501はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、1502は描画命令部分全体を示している。
各描画命令の詳細について説明する。
ドキュメント設定命令部分1501において、C1〜C5は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドC1〜C5は、ドキュメント1部について1ケ所しか付いていない。
これらドキュメントデータ全体に関係するコマンドには、実施形態1の図7で詳述した内容と同様である。
描画命令部分を構成するC6〜C10は、ドキュメントデータを出力するための各種コマンドである。
C6はページの開始を示すコマンドである。C7は線(曲線)の色を設定するコマンドであり、順にR(赤),G(緑),B(青)各色成分の輝度を示してある。この輝度は、例えば、0から255の256段階で量子化されているものとする。この場合は、{255,92,128}に設定されている。
C8は曲線を描画する開始位置(曲線を規定する一方の端点)の座標を示すコマンドである。座標位置(X,Y)は、ページの左上を原点に指定する。この場合は、ページの{66,112}の位置から曲線の描画を開始するように設定されている。C9は曲線を描画するアンカーポイントと終了位置(曲線を規定する他方の端点)の座標を示すコマンドである。この場合は、ページの{126,98}及び{66,126}のアンカーポイントを通り、{126,112}の位置で曲線の描画を終了するように設定されている。C10はページの終了を示すコマンドである。
これに対して、ドキュメントデータ1401がタイル分割後のタイルベクタデータである場合、その内容を構成する記述例について、図15を用いて説明する。
図15は本発明の実施形態3のタイルベクタデータの記述例を示す図である。
図15において、1601はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、1602は描画命令部分全体、1603〜1605はタイルA〜Cの描画命令部分を示している。1606及び1607はタイルBの図形(曲線)の描画命令部分、1608及び1609はタイルCの図形(曲線)の描画命令部分を示している。
各描画命令の詳細について説明する。
ドキュメント設定命令部分1601において、C1〜C5は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドC1〜C5は、ドキュメント1部について1ケ所しか付いていない。
これらドキュメントデータ全体に関係するコマンドは、実施形態1の図9で詳述した内容と同様である。
描画命令部分1602を構成するC6〜C500は、ドキュメントデータを出力するための各種コマンドである。
C6はページの開始を示すコマンドである。C7は図13のタイルAの描画コマンドの開始を示すコマンドである。ここで、TileStart(0,0)中の2個のパラメータは、ドキュメントデータ内におけるタイルのIDを示している。C8はタイルAの描画コマンドの終了を示すコマンドである。タイルAのように、そのタイル内にオブジェクトが何も存在しない場合は、タイルの開始と終了を示すコマンドだけが記述される。
ここで、タイルB及びCについては、ページベクタデータ上の1つの曲線オブジェクトが、タイルB及びCによって4つの曲線オブジェクトに分割される。そして、その4つの曲線オブジェクトの内、2つの曲線オブジェクトがそれぞれタイルB及びCに属する。
そのため、タイルBの描画命令部分1604では、その2つの曲線オブジェクトを構成する色としてコマンドC101、各曲線オブジェクトの開始位置、アンカーポイント、終了位置からなる描画命令部分1606(コマンドC102及びC103)、描画命令部分1607(コマンドC104及びC105)が記述されている。
同様に、タイルCの描画命令部分1605では、その2つの曲線オブジェクトを構成する色としてコマンドC121、各曲線オブジェクトの開始位置、アンカーポイント、終了位置からなる描画命令部分1608(コマンドC122及びC123)、描画命令部分1609(コマンドC124及びC125)が記述されている。
次に、タイルB及びタイルCに跨がる曲線オブジェクトのタイル分割について、図16を用いて説明する。
図16は本発明の実施形態3の曲線オブジェクトのタイル分割を説明するための図である。
図16(a)に示す1つ以上のタイルに跨がる曲線オブジェクトは、図16(b)に示すように、まず、その曲線が内包される凸多角形P0−P1−P3−P2を算出する。次に、この曲線オブジェクトが注目タイルのどの辺と交差している可能性があるかを、タイル辺16A−16B,16B−16D,16D−16C,16C−16Aと、線分P0−P1,P1−P3,P3−P2,P2−P1のそれぞれの組み合わせで交差するか否かを評価する。
ここでは、図16(c)に示すように、線分P0−P1及び線分P3−P2と交差したタイル辺16B−16Dについて、曲線P0−P3の交点を算出し、交点P4,P5,P6を取得する。次に、曲線P0−P3を、交点P4,P5,P6を端点とした曲線P0−P4,P4−P5,P5−P6,P6−P3に分割する。更に、それぞれの曲線のアンカーポイントP7,P8,P9,P10等を算出し、分割された曲線を描画するためのコマンドを生成する。
以上のようにして、1つ以上のタイルに跨がる曲線オブジェクトを各タイルに分割することができる。
次に、曲線オブジェクトの分割処理の詳細について、図17を用いて説明する。
図17は本発明の実施形態3の曲線オブジェクトの分割処理の詳細を示すフローチャートである。
尚、この処理は、図6のステップS605のオブジェクトの分割処理において、処理対象が曲線オブジェクトである場合に実行する。
(ステップS1801)
まず、処理対象の曲線オブジェクトが、既に他の隣接タイルで分割されているか否かを判定する。分割されている場合(ステップS1801でYES)、ステップS1809に進む。一方、分割されていない場合(ステップS1801でNO)、ステップS1802に進む。
(ステップS1802)
処理対象の曲線オブジェクトを内包する凸多角形とその頂点を算出する。
(ステップS1803)
処理対象の曲線オブジェクトを内包する凸多角形が、注目タイルのどの辺と交差可能性があるかを評価する。
(ステップS1804)
ステップS1803の評価結果から、処理対象の曲線オブジェクトを内包する凸多角形が注目タイルのどれかの辺と交差可能性があるか否かを判定する。交差可能性がない場合(ステップS1804でNO)、処理を終了する。一方、交差可能性がある場合(ステップS1804でYES)、ステップS1805に進む。
(ステップS1805)
処理対象の曲線オブジェクトを内包する凸多角形と交差可能性のある注目タイルの注目辺(タイル辺)を選択し、当該タイル辺とその曲線オブジェクトの交点を算出する。また、その算出した交点をシステムメモリ5に記憶する。ここで、交点数は、例えば、0から3の可能性がある。
尚、この交点の算出は、例えば、凸多角形と構成する注目タイルのタイル辺に基づいて規定される方程式に基づいて算出する。
(ステップS1806)
処理対象の曲線オブジェクトを内包する凸多角形と交差可能性のある注目辺との交点をすべて算出したか否かを判定する。未算出の注目辺の交点がある場合(ステップS1806でNO)、ステップS1805に戻る。一方、未算出の注目辺の交点がない場合(ステップS1806でYES)、ステップS1807に進む。
ここで、ステップS1802〜ステップS1804の処理を実行することで、処理量の多い交点算出処理(ステップS1805及びステップS1806)のループ回数を低減することができる。
(ステップS1807)
注目タイルの注目辺と曲線オブジェクトの注目交点を用いて、曲線オブジェクトを分割する。また、分割された曲線の端点とアンカーポイントを算出して、システムメモリ5に記憶する。
(ステップS1808)
システムメモリ5に記憶されているタイル辺と曲線オブジェクトの交点すべてにおいて、曲線オブジェクトの分割が終了したか否かを判定する。分割が終了していない場合(ステップS1808でNO)、ステップS1807に戻る。一方、分割が終了している場合(ステップS1808でYES)、処理を終了する。
(ステップS1809)
一方、ステップS1801において、処理対象の曲線オブジェクトが、既に他の隣接タイルで分割されている場合、その他の隣接タイルで処理されたときにシステムメモリ5に記憶された、その曲線オブジェクトと隣接タイルとの交点を取得する。
(ステップS1810)
他の隣接タイルで算出した、曲線オブジェクトを内包する凸多角形とその頂点を取得して、ステップS1803へ進む。
次に、ステップS1802の処理の詳細について、図18を用いて説明する。
図18は本発明の実施形態3のステップS1802の処理の詳細を示すフローチャートである。
(ステップS1901)
曲線オブジェクトの端点及びアンカーポイントの4点で形成された四角形P0−P1−P3−P2(例えば、図16(b))の一頂点P0が、他の頂点からなる三角形P1−P2−P3に内包されるか否かを判定する。内包される場合(ステップS1901でYES)、ステップS1906へ進む。一方、内包されない場合(ステップS1901でNO)、ステップS1902へ進む。
(ステップS1902)
曲線オブジェクトの端点及びアンカーポイントの4点で形成された四角形P0−P1−P3−P2の一頂点P1が、他の頂点からなる三角形P0−P2−P3に内包されるか否かを判定する。内包される場合(ステップS1902でYES)、ステップS1907へ進む。一方、内包されない場合(ステップS1902でNO)、ステップS1903へ進む。
(ステップS1903)
曲線オブジェクトの端点及びアンカーポイントの4点で形成された四角形P0−P1−P3−P2の一頂点P2が、他の頂点からなる三角形P0−P1−P3に内包されるか否かを判定する。内包される場合(ステップS1903でYES)、ステップS1908へ進む。一方、内包されない場合(ステップS1903でNO)、ステップS1904へ進む。
(ステップS1904)
曲線オブジェクトの端点及びアンカーポイントの4点で形成された四角形P0−P1−P3−P2の一頂点P3が、他の頂点からなる三角形P0−P1−P2に内包されるか否かを判定する。内包される場合(ステップS1904でYES)、ステップS1909へ進む。一方、内包されない場合(ステップS1904でNO)、ステップS1905へ進む。
(ステップS1905)
四角形P0−P1−P3−P2を、曲線オブジェクトを内包する凸多角形とし、これの頂点としてP0,P1,P2,P3をシステムメモリ5に記憶し、処理を終了する。
(ステップS1906)
三角形P1−P2−P3を、曲線オブジェクトを内包する凸多角形とし、これの頂点としてP1,P2,P3をシステムメモリ5に記憶し、処理を終了する。
(ステップS1907)
三角形P0−P2−P3を、曲線オブジェクトを内包する凸多角形とし、これの頂点としてP0,P2,P3をシステムメモリ5に記憶し、処理を終了する。
(ステップS1908)
三角形P0−P1−P3を、曲線オブジェクトを内包する凸多角形とし、これの頂点としてP0,P1,P3をシステムメモリ5に記憶し、処理を終了する。
(ステップS1909)
三角形P0−P1−P2を、曲線オブジェクトを内包する凸多角形とし、これの頂点としてP0,P1,P2をシステムメモリ5に記憶し、処理を終了する。
次に、ステップS1803の処理の詳細について、図19を用いて説明する。
図19は本発明の実施形態3のステップS1803の処理の詳細を示すフローチャートである。
(ステップS2001)
まず、注目タイルが曲線オブジェクトを内包する凸多角形に内包されるか否かを判定する。内包される場合(ステップS2001でYES)、ステップS2002へ進む。一方、内包されない場合(ステップS2001でNO)、ステップS2003へ進む。
(ステップS2002)
すべてのタイル辺が曲線オブジェクトと交差可能性があることを示す情報をシステムメモリ5に記憶し、処理を終了する。
(ステップS2003)
曲線オブジェクトを内包する凸多角形がタイルに内包されるか否かを判定する。内包される場合(ステップS2003でYES)、ステップS2004へ進む。一方、内包されない場合(ステップS2003でNO)、ステップS2005へ進む。
(ステップS2004)
どのタイル辺も曲線オブジェクトと交差可能性がないことを示す情報をシステムメモリ5に記憶し、処理を終了する。
(ステップS2005)
4つのタイル辺のひとつを注目タイル辺として設定する。
(ステップS2006)
3つもしくは4つの凸多角形の辺のひとつを注目凸多角形辺として設定する。
(ステップS2007)
注目タイル辺と、注目凸多角形辺が交差するか否かを判定する。交差する場合(ステップS2007でYES)、ステップS2008へ進む。一方、交差しない場合(ステップS2007でNO)、ステップS2009へ進む。
(ステップS2008)
注目タイル辺が曲線オブジェクトと交差可能性があることを示す情報をシステムメモリ5に記憶する。
(ステップS2009)
3つもしくは4つの凸多角形辺すべてに関して、注目凸多角形辺に対する設定処理(ステップS2006及びステップS2007)が完了しているか否かを判定する。完了していない場合(ステップS2009でNO)、ステップS2006へ戻る。一方、完了している場合(ステップS2009でYES)、ステップS2010へ進む。
(ステップS2010)
4つのタイル辺すべてに関して、注目タイル辺に対する設定処理(ステップS2005)が完了しているか否かを判定する。完了していない場合(ステップS2010でNO)、ステップS2005へ戻る。一方、完了している場合(ステップS2010でYES)、処理を終了する。
以上説明したように、実施形態3によれば、実施形態1及び2で説明した効果に加えて、曲線オブジェクトが存在するページベクタデータをタイルベクタデータに変換する際には、その曲線オブジェクトの形状を評価して、その評価結果に基づいて、タイルベクタデータに変換する。これにより、その曲線オブジェクトが適切にタイル上に分割されたタイルベクタデータを生成することができる。
[実施形態4]
図29で示す従来のシステムでは、RIP113でページベクタデータがラスタデータにレンダリングされる際、ページベクタデータに含まれるイメージオブジェクトは、レンダリングを行う解像度に応じて解像度変換がなされた上で、ラスタデータが生成される。
イメージオブジェクトの解像度変換の際には、補間処理のないニアレストネイバー法で拡大縮小される場合と、エイリアジングの副作用を避けるためにバイリニア法やバイキュービック法等の補間処理が行われる場合がある。また、特許登録第3111971号公報に開示されているように、これら複数の補間処理を切り換えることや、補間処理を行う際に補間領域をイメージオブジェクトの境界より広げることが行われている。
一方、上記実施形態1では、イメージオブジェクトを含むページベクタデータをタイルベクタデータに変換する方法としては、例えば、以下のいくつかの方法が考えられる。
まず、イメージオブジェクトを含むページベクタデータをタイルベクタデータに分割する際、単一のイメージオブジェクトが存在する複数のタイルに、イメージオブジェクトそのものをコピーして、タイルに埋め込む方法がある。この場合、イメージオブジェクトが存在するタイルN個それぞれに対してイメージオブジェクト全体を埋め込むと、イメージオブジェクトサイズのN−1倍のデータ量がページ(画像データ)全体で増加する。このため、このような場合には、タイルベクタデータへの変換に伴ってデータ量が増大することになる。
一方、複数のタイルに跨がって存在するイメージオブジェクトをタイル境界で分割し、それぞれのタイルベクタデータに、それぞれ対応する分割後のイメージオブジェクトを埋め込む方法を採用すれば、タイルベクタデータ変換に伴うデータ量の増大は回避可能である。
ここで、イメージオブジェクトをレンダリング後の解像度に合わせて解像度変換する際には、バイリニア法やバイキュービック法等の補間処理を選択することも可能である。しかしながら、この場合、タイル境界で分割されたイメージオブジェクトは、タイル境界外に画素を持たない。
そのため、これらの補間処理を行うと、タイルベクタデータをレンダリングして、タイルラスタデータからなるページラスタデータを生成する際には、ページベクタデータ上のタイル境界に相当する位置にイメージオブジェクトの不連続領域が生じ、画質の劣化が発生することになる。
そこで、上記の2種類の方法による課題を解決するために、イメージオブジェクトをタイル境界で分割する際には、そのイメージオブジェクトを構成する一部の画素を重複して分割し、補間処理に必要なタイル境界外の画素も併せてタイルベクタデータに埋め込む方法が考えられる。
この方法を用いれば、データ増大の課題と、補間処理による画質劣化の課題を解決することが可能となる。しかしながら、この方法を採用したとしても、同一の画素を二重以上持つ必要が発生する。そのため、この方法でも、上記の方法ほどではないが、タイルベクタデータへの変換に伴ってデータ量が増大することになる。
そこで、実施形態4では、特に、イメージオブジェクトを含むページベクタデータからタイルベクタデータへ変換する際のデータ量増大を抑え、かつ画質劣化が生じるような補間処理を行わないことで、エイリアジングの発生も抑えることが可能な、イメージオブジェクトの分割処理について説明する。
実施形態4では、イメージオブジェクトの解像度は、一般的に、300dpi以下であり、この解像度は、通常は、600dpi以上となるプリント解像度よりも低解像度である場合がほとんどである点に着目している。また、エイリアジングの問題は、画像を縮小する場合が、拡大する場合よりもより顕著な問題となる点に着目している。
そこで、実施形態4では、閾値解像度を定義して、同一イメージオブジェクトを分割する際に、当該イメージオブジェクトの解像度が閾値解像度よりも高ければ、タイル境界外の周辺画素をベクタタイルデータに重複して保持する。一方、当該イメージオブジェクトの解像度が閾値解像度よりも低ければ、タイル境界外の周辺画素をベクタタイルデータに重複して保持しない構成を採用する。
更に、イメージオブジェクトのレンダリング時には、タイル境界外周辺画素がない場合にはニアレストネイバー法によって解像度を変換し、タイル境界外周辺画素がある場合にはバイキュービック法、バイリニア法等の補間処理を用いて解像度を変換するように、その変換方法を適応的に切り替える。これにより、イメージオブジェクトのタイル分割によるデータ量増大を抑え、かつ補間処理を行わないことによるエイリアジングの発生も抑えることを実現する。
以下、実施形態4では、実施形態1の図6のステップS605のオブジェクトの分割処理の応用例について説明する。
実施形態4では、タイル/ページベクタ変換部13において、特に、処理対象のオブジェクトがイメージオブジェクトである場合の、そのイメージオブジェクトの分割処理について説明する。
まず、1つ以上のタイルに跨がるイメージオブジェクトのタイル分割について、図20を用いて説明する。
図20は本発明の実施形態4のイメージオブジェクトのタイル分割を説明するための図である。
図20に示すイメージオブジェクト2000は、ページベクタデータに含まれており、タイルベクタデータに分割する際には、その配置された座標からタイル1402〜1405に跨がって存在する。
タイル/ページベクタ変換部13によるオブジェクトの分割処理では、まず、イメージオブジェクト2000の解像度と所定解像度(閾値解像度:例えば、600dpi)を比較する。
尚、この所定解像度は、通常は、RIP18が生成するラスタデータの解像度であるとする。また、複数種類の解像度のラスタデータを生成可能である場合は、それらの内、最低解像度としても良い。
比較の結果、イメージオブジェクト2000の解像度が所定解像度よりも低解像度である場合、タイル1402〜1405に跨がって存在するイメージオブジェクト2000を、そのタイル1402〜1405のタイル境界で分割する。そして、その分割されたイメージオブジェクト1406〜1409をそれぞれ対応するタイル1402〜1405へ埋め込む。
一方、イメージオブジェクト2000の解像度が所定解像度よりも高解像度である場合、タイル1402〜1405に跨がって存在するイメージオブジェクト2000を、タイル1402〜1405のタイル境界を越えるイメージオブジェクト2000の一部が互いに重複するように分割する。そして、その分割されたイメージオブジェクト1410〜1413をそれぞれ対応するタイル1402〜1405へ埋め込む。
次に、イメージオブジェクトの分割処理の詳細について、図21を用いて説明する。
図21は本発明の実施形態4のイメージオブジェクトの分割処理の詳細を示すフローチャートである。
(ステップS1501)
まず、タイルベクタデータの生成対象となる注目タイルを選択する。
(ステップS1502)
処理対象のイメージオブジェクトを規定するイメージ座標に注目タイルのタイル境界を投影する。
(ステップS1503)
イメージ座標に投影されたタイル境界とイメージオブジェクト自身の外周からなる凸多角形を算出する。当該凸多角形に外接し、かつ直立した長方形を算出する。
(ステップS1504)
イメージオブジェクトの解像度と所定解像度とを比較し、イメージオブジェクトの解像度が所定解像度より高いか否かを判定する。所定解像度以下である場合(ステップS1504でNO)、ステップS1505へ進む。一方、所定解像度より大きい場合(ステップS1504でYES)、ステップS1507へ進む。
(ステップS1505)
凸多角形に外接する直立した長方形を、イメージオブジェクトを分割する境界として設定する。
(ステップS1506)
分割後のイメージオブジェクトが、タイル境界外に画素を持たないことを示す情報をシステムメモリ5に記憶する。
(ステップS1507)
一方、ステップS1504で、イメージオブジェクトの解像度が所定解像度より大きい場合、凸多角形に外接する直立した長方形を、補間処理の参照領域分拡大した拡大長方形を算出する。
(ステップS1508)
拡大長方形を、イメージオブジェクトを分割する境界として設定する。
(ステップS1509)
分割後のイメージオブジェクトが、タイル境界外に画素を持つことを示す情報をシステムメモリ5に記憶する。
(ステップS1510)
設定された境界を外周とするイメージを、処理対象のイメージオブジェクトから抽出する。
(ステップS1511)
抽出したイメージを、イメージオブジェクトとして注目タイルへ付与して、処理を終了する。
次に、図21のイメージオブジェクトの分割処理の具体例について、図22を用いて説明する。
図22は本発明の実施形態4のイメージオブジェクトの分割処理の具体例を示す図である。
イメージオブジェクト2201は、独自のイメージ座標を持っている(図22(a))。そして、このイメージオブジェクト2201は、ページベクタデータ2202に対して、アフィン変換によってページベクタデータ座標に投影され(図22(b))、ページベクタデータ2202内でイメージ2203として構成される。このページベクタデータ2202をタイルベクタデータに変換すると、図22(c)のようになる。
オブジェクトの分割処理(図6のステップS605)による、イメージオブジェクトの分割処理では、まず、ステップS1501において注目タイル2204を選択する(図16(c))。
そして、図16(d)に示すように、続いて、注目タイル2204がイメージ座標へ投影される(ステップS1502)。次に、イメージ座標に投影されたタイル2205のタイル境界とイメージオブジェクト2201自身の外周からなる凸多角形2206を算出し、この凸多角形2206に外接し、かつ直立した長方形2207を算出する(ステップS1503)。
次に、このイメージオブジェクト2201の解像度と、所定解像度とを比較する(ステップS1504)。イメージオブジェクト2201の解像度が所定解像度よりも大きい場合(高解像度である場合)、図22(e)に示すように、この凸多角形2206に外接し、かつ直立した長方形2207を補間処理の参照領域分拡大した拡大長方形2208を算出する(ステップS1507)。
次に、拡大長方形2208を境界として、図22(f)に示すように、イメージオブジェクト2201から分割されたイメージオブジェクト2209を生成する(ステップS1510)。その後、図22(g)に示すように、注目タイル2210に埋め込まれる(ステップS1511)。注目タイル2210は、タイル内座標を独自に持ち、分割されたイメージオブジェクト2209は、タイル内座標に、イメージオブジェクト2209として投影される。
次に、図7のステップS77において、イメージオブジェクトをラスタライズする場合の処理の詳細について、図23を用いて説明する。
図23は本発明の実施形態4のステップS77における、イメージオブジェクトのラスタライズの詳細を示すフローチャートである。
(ステップS1701)
まず、タイル内座標系と、デバイス座標系の対応関係を示す第1変換行列を取得する。ここで、デバイス座標系とは、タイルベクタデータから構成されるページ全体に対して定義される座標系であり、例えば、図8で示される座標系である。
(ステップS1702)
イメージオブジェクトのイメージ座標系と、タイル内座標との対応関係を示す第2変換行列を取得する。
(ステップS1703)
ステップS1701で取得した第1変換行列と、ステップS1702で取得した第2変換行列の2つの変換行列を合成した第3変換行列を生成し、この第3変換行列を用いて、デバイス座標系とイメージ座標系の対応関係を算出する。
(ステップS1704)
デバイス座標系において、イメージオブジェクトが配置される領域内で、注目画素を選択する。
(ステップS1705)
ステップS1703で合成された第3変換行列を用いて、注目画素のデバイス座標系のデバイス座標からイメージ座標系のイメージ座標の該当画素を算出する。
(ステップS1706)
イメージオブジェクトの該当画素がタイル境界外に存在するか否かに基づいて、イメージオブジェクトの補間方法を選択する。タイル境界外に存在しない場合、補間方法として、第1補間方法(ニアレストネイバー法)を選択して、ステップS1707へ進む。一方、タイル境界外に該当画素の周辺画素が存在する場合、補間方法として、第2補間方法(バイキュービック法)を選択して、ステップS1708へ進む。
尚、この補間方法としては、ニアレストレイバー法、バイキュービック法、バイリニア法等の各種補間方法を利用することができる。
(ステップS1707)
該当画素の色を取得する。
(ステップS1708)
該当画素と周辺画素を取得する。
(ステップS1709)
該当画素と周辺画素を用いて、補間処理を実行し、処理結果の色を取得する。
(ステップS1710)
取得した色を注目画素の色として設定する。
(ステップS1711)
イメージオブジェクトが配置されるデバイス座標系のデバイス座標上の全ての画素を処理したか否かを判定する。全ての画素を処理していない場合(ステップS1711でNO)、ステップS1704へ戻る。一方、全ての画素を処理している場合(ステップS1711でYES)、処理を終了する。
以上説明したように、実施形態4によれば、実施形態1〜3で説明した効果に加えて、処理対象のイメージオブジェクトの解像度に基づいて、イメージオブジェクトのタイル分割方法を適応的に切り替えてタイルベクタデータを生成する。これにより、イメージオブジェクトのタイル分割によるデータ量増大を抑え、かつ補間処理を行わないことによるエイリアジングの発生を抑えることが可能となる。
[実施形態5]
上述の各実施形態では、画像処理システム内のデータハンドリングをリアルタイムで行える高速化に実行できるようために、タイルベクタデータを生成して、HDD8で管理する構成としている。これに対し、実施形態5では、HDD8へのタイルベクタデータを格納する時に、それを構成するタイル中にオブジェクトが存在しないタイルは、HDD8に書き込まないで管理する。
これにより、HDD8のデータアクセスの高速化を図り、画像処理システムとしてのパフォーマンスをより向上することができる。
以下、実施形態5における処理概要及び処理フローについて、図24及び図25を用いて説明する。
図24は本発明の実施形態5の処理概要を説明するための図である。また、図25は本発明の実施形態5のタイルベクタデータ書込処理を示すフローチャートである。
(ステップS2501)
実施形態5では、システムメモリ5に読み込まれた1ページ分の画像データ(ページベクタデータあるいはラスタデータ)を、所定サイズのブロック(タイル(矩形))に分割してタイルベクタデータを生成する。この際、各タイルベクタデータの位置を識別するタイルID(ブロック識別情報)を生成して、これをタイルベクタデータのヘッダに設定する。
例えば、図24(a)のページベクタデータ2401を、1辺が8画素四方のタイルで分割する場合、このページベクタデータ2401は、X方向に3個分、Y方向に3個分の分割されるとする。これにより、点線で区切られた3×3合計9個のタイルベクタデータに分割される。尚、このタイルの大きさの単位となる1辺の画素数は、ユーザ操作によって変更可能である。
各タイルは、X方向に左から0、1、2、Y方向に上から0、1、2とすることにより、各タイルの座標を規定できる。そして、これらの座標の組み合わせが各タイルの位置を識別するタイルIDとして利用することができる。例えば、左上のタイルは、タイルベクタデータの開始となるタイルとなり、そのタイルIDは(X,Y)=(0,0)となる。また、その右側のタイルのタイルIDは(X,Y)=(1,0)、一番右下のタイルのタイルIDは(X,Y)=(3,3)となる。
(ステップS2502)
システムメモリ5に読み込まれた、1ページ分のページベクタデータに存在するオブジェクトを、タイル内に収まる複数のオブジェクトに分割して、タイルベクタデータを生成する。そのために、タイル内のオブジェクトの有無を識別する識別フラグ(オブジェクト識別情報)を生成し、これをタイルベクタデータのヘッダに設定する。
具体的には、ページベクタデータ2401を構成する各タイルにおいて、オブジェクトの有無を解析する。オブジェクトがある場合は、識別フラグを「1」、オブジェクトがない場合は「0」に設定する。
例えば、タイルベクタデータ2401中のタイルID=(0,0)、(1,0)、(2,0)、(0,1)、(0,2)のタイル内には、オブジェクトが存在しないため、識別フラグは「0」となる。一方、残りのタイルID=(1,1)、(1,2)、(2,1)、(3,3)のタイル内には、オブジェクトが存在するため、識別フラグは「1」となる。
(ステップS2503)
各タイルの位置を識別するタイルID、タイル内のオブジェクトの有無を示す識別フラグ及び各タイルベクタからタイルベクタデータを生成する。そのために、システムメモリ5に、図24(b)に示すタイルテーブル2402(タイル管理テーブル)を作成する。このタイルテーブル2402では、タイルID、識別フラグ、オブジェクトの内容(オブジェクトなし(no object)、データ(Data)等)の情報を、タイル毎に管理する。この場合、タイル名Tile0〜Tile8のタイルからなるタイルテーブルが構成される。
(ステップS2504)
システムメモリ5に読み込まれた、1ページ分のページベクタデータ2401に対するタイルテーブル2402の生成が完了すると、システムメモリ5からHDD8へのタイルベクタデータの書込を開始するための書込設定を実行する。ここの書込設定においては、タイル位置を識別するタイルID=(0,0)のタイルデータから書込を開始するための設定を実行する。
(ステップS2505)
タイルIDに基づいて、処理対象のタイルのタイルテーブル2402の識別フラグを参照する。そして、その識別フラグ=1であるか否かを判定する。識別フラグ=1である場合(ステップS2505でYES)、タイル内にオブジェクトが存在するので、このタイルは、HDD8への書込対象であると判定して、ステップS2506へ進む。一方、識別フラグ=0である場合(ステップS2505でNO)、タイル内にオブジェクトが存在しないので、このタイルは、HDD8への書込対象でないと判定して、ステップS2507へ進む。
(ステップS2506):
処理対象のタイルのHDD8への書込を実行する。
(ステップS2507):
未処理タイルデータの有無を判定する。未処理タイルデータがある場合(ステップS2507でYES)、ステップS2504へ戻り、次のタイルIDが示すタイルデータを処理対象のタイルデータとして設定する。一方、未処理タイルデータがない場合(ステップS2507でNO)、処理を終了する。
ここで、ステップS1504〜ステップS1507の処理の具体的な動作について、図24(a)を用いて説明する。
まず、ステップS2504で、タイルID=(0,0)を設定する。これによって、タイルID=(0,0)の識別フラグをタイルテーブル2402で参照すると、その値は「0」であることから、対応するタイル内にオブジェクトは存在しないと判定する。そのため、このタイルID=(0,0)のタイルデータ(Tile0)は、HDD8への書込は実行しない(書込を禁止する)。
従って、この場合のタイルID=(0,0)のタイルについての処理は、ステップS2505からステップS2507へ進む。ステップS2507では、未処理のタイル(タイルID)が存在するので、ステップS2504へ戻る。
次に、ステップS2504で、タイルID=(1,0)を設定する。これによって、タイルID=(1,0)の識別フラグをタイルテーブル2402で参照すると、その値は「0」であることから、対応するタイル内にオブジェクトは存在しないと判定する。そのため、このタイルID=(1,0)のタイルデータ(Tile1)は、HDD8への書込は実行しない(書込を禁止する)。
同様にして、タイルID=(2,0)、(0,1)のタイルデータ(Tile2、Tile3)も識別フラグの値が「0」であることから、そのタイルデータのHDD8への書込動作を禁止する。
次のタイルID=(1,1)の識別フラグをタイルテーブル2402で参照すると、その値は「1」であることから、対応するタイル内にオブジェクトは存在すると判定する。そのため、このタイルID=(1,1)のタイルデータ(Tile4)は、HDD8への書込を実行する。
従って、この場合のタイルID=(1,1)のタイルについての処理は、ステップS2505からステップS2506へ進む。そして、書込が終了すると、未処理のタイル(タイルID)が存在するので、ステップS2504へ戻る。
以下、同様にして、タイルID=(2,1)のタイルデータ(Tile5)も識別フラグの値が「1」であることから、そのタイルデータのHDD8への書込動作を実行する。次のタイルID=(0,2)のタイルデータ(Tile6)は識別フラグの値が「0」であることから、そのタイルデータのHDD8への書込動作を禁止する。更に、タイルID=(1,2)、(2,2)のタイルデータ(Tile7、Tile8)の識別フラグの値が「1」であることから、そのタイルデータのHDD8への書込動作を実行する。
そして、タイルID=(2,2)に対する処理が完了した時点で、未処理のタイルがなくなるので、書込処理を終了する。
以上の処理によって、タイルテーブル2402で管理されるタイル名Tile0〜Tile8の内、HDD8には、タイル名Tile4、5、7及び8のタイルデータだけが格納されることになるので、HDD8の記憶容量を節約することができる。また、HDD8のタイルデータの格納状態として、タイルテーブル2404が生成される。
次に、HDD8に書き込まれたタイルベクタデータをシステムメモリ5へ読み出す場合の読出処理について、図26を用いて説明する。
図26は本発明の実施形態5のタイルベクタデータ読出処理を示すフローチャートである。
(ステップS2601)
HDD8に存在するタイルデータを読み出して識別するためのタイルIDの読出設定を実行する。
(ステップS2602)
HDD8に格納されているタイルテーブル2404を参照して、HDD8に実際に格納されているタイルデータのタイルIDを読み出してシステムメモリ5に記憶する。
(ステップS2603)
読出設定で設定した設定タイルIDと、HDD8から読み出した読出タイルIDが一致しているか否かを判定することで、読出順序が不連続のタイルIDの有無を判定する。一致していない場合(ステップS2603でYES)、不連続タイルIDがあると判定し、ステップS2604へ進む。一方、一致している場合(ステップS2603でNO)、不連続タイルIDがないと判定し、ステップS2605に進む。
(ステップS2604)
不連続タイルIDがある場合は、内部にオブジェクトが存在しないために、HDD8へ書き込まれなかったタイルデータが存在することになる。この場合、読出時にはそのタイルデータを、それを構成要素とするタイルベクタデータを再現するために、タイルテーブル2404の状態から、タイルテーブル2402の状態へ再構成する必要がある。
そこで、ここでは、タイルテーブル2404に対して、不連続タイルIDに該当するタイルデータに関するデータを、タイルテーブル2404に追加する。
(ステップS2605)
不連続タイルIDがない場合は、そのまま、タイルテーブル2404を参照して、タイルデータの読出を実行する。
(ステップS2606):
タイルデータの読出の実行後、未処理のタイルの有無を判定する。未処理タイルデータがある場合(ステップS2606でNO)、ステップS2601へ戻り、次のタイルIDが示すタイルデータを処理対象のタイルデータとして設定する。一方、未処理タイルデータがない場合(ステップS2606でYES)、処理を終了する。
ここで、ステップS2601〜ステップ2606の処理の具体的な動作について、図24(a)を用いて説明する。
まず、ステップS2601で、HDD8からタイルデータの読出を実行するために、その読出位置とするタイル位置を先頭ID=(0,0)(設定タイルID)に設定する。
ステップS2602で、タイルテーブル2404を参照して、HDD8からタイルIDの読出を実行し、読み出したタイルID(読出タイルID)をシステムメモリ5に記憶する。読み出したタイルIDは、後のタイルテーブルへのタイルデータの追加処理で使用するため、最新の読出タイルID履歴をいくつか保存しておく。ここでは、HDD8に記憶されているタイルテーブル2404からタイルID=(1,1)を読み出す。
ステップS2603で、タイルIDの比較を行う。ここでは、設定タイルID=(0,0)に対し、読出タイルID=(1,1)であるため、タイルIDの読出順序が不連続、つまり、不連続タイルIDとなっていることが分かる。不連続タイルIDがあるということは、内部にオブジェクトが存在しないタイルデータが存在することを示している。
そのため、ここでは、ステップS2604で、タイルテーブルへのタイルデータの追加を実行する。つまり、読出タイルID=(1,1)のタイルデータにはオブジェクトデータが存在するため、それより前の不連続分のタイルID=(0,0)、(1,0)、(2,0)、(0,1)に関して、オブジェクトが存在しないタイルデータを追加したタイルテーブル2402を作成する。この時点では、タイルテーブル2402は、タイル名がTile0〜Tile3までが構成される。
次に、ステップS2605で、タイルID=(1,1)のタイルデータをHDD8から読み出す。ステップS2606では、未処理のタイルIDが存在するので、ステップS2601へ戻る。
次に、ステップS2601では、設定タイルID=(2,1)、ステップS2602では、読出タイルID=(2,1)となる。また、ステップS2602では、読出タイルIDの履歴をシステムメモリ5に保存してあるため、ステップS2603で、設定タイルID=(2,1)に対して、前回の読出タイルID=(1,1)との比較を行う。今回は、タイルIDの読出順序が連続しているため、ステップS2605へ進み、タイルID=(2,1)のタイルデータをHDD8から読み出す。
以下、同様にして、処理を実行することにより、タイルID=(0,2)について、そのタイルデータがタイルテーブル2402に追加され、タイルID=(1,2)、(2,2)については、HDD8からのタイルデータの読出が実行される。
これにより、未処理のタイルIDがなくなるので、読出処理を終了する。この読出処理が終了することで、書込処理時と同じタイルテーブル2402が再現される。そして、このタイルテーブル2402を用いることで、タイルベクタデータ2405を復元(読出)することができる。読出処理の終了後、読出タイルIDの履歴は消去される。
以上説明したように、実施形態5によれば、実施形態1〜4で説明した効果に加えて、システムメモリ上に生成されたタイルベクタデータをHDDへ格納する場合には、そのタイルベクタデータを構成する各タイルデータの位置を識別するタイルヘッダ及び、オブジェクトの有無を識別するフラグを管理するタイルテーブルを作成し、オブジェクトが存在しないタイルデータに関しては、HDDに該当するタイルデータの書込を禁止する。
これにより、HDDへ格納するデータ量を削減することが可能となるとともに、HDDへの書込/読出処理において、アクセス回数を削減でき、動作パフォーマンスの高いシステムが構成を実現することができる。
[実施形態6]
図29に示す従来のシステムでは、ページベクタデータに含まれるフォントオブジェクトは、CPU102によりシステムメモリ104上に設けられたフォントキャッシュ(不図示)に、対応するフォントオブジェクトが既に登録されているか否かが検索される。そして、対応するフォントオブジェクトが登録されていない場合、CPU102により、そのフォントオブジェクトがビットマップ展開された後、フォントキャッシュに登録される。
そして、その登録されたフォントデータのシステムメモリ104上の位置が中間データ内で指示され登録されていれば、展開処理無しに、その展開済フォントデータのシステムメモリ104上の位置が中間データ内で指示される。
中間データを受け取った画像データ展開部113は、フォント以外の描画オブジェクトを展開処理すると共に、指示されたフォントキャッシュの位置より展開済フォントデータを読み取り、ビットマップデータを作成して、システムメモリ104へ保存する。その後、SBB101を介して画像処理部110で画像処理され、プリンタ112へ送られ印刷される。
このような画像処理システムにおいて、フォントキャッシュの有効活用を行なう構成として、例えば、特開平10−016319号公報の構成がある。この構成では、フォントキャッシュデータ毎にカウンタを設け、中間データ生成時にフォントキャッシュにヒットする毎に、カウンタをインクリメントする。また、画像データ展開処理にてヒットしたフォントキャッシュを参照する毎にカウンタをデクリメントする。そして、カウンタが初期値になるまで、フォントキャッシュデータを保持する。
しかしながら、このような構成では、ヒットする回数分以上のカウンタを用意する必要がある。ここで、通常、処理対象のデータ内に一つの文字が何回出現するかは予想できないので十分大きなカウンタが必要になる。通常、カウンタはフォントキャッシュと同じシステムメモリ上に用意されることになるので、より大きな容量のシステムメモリを必要としてしまう。
また、さらなる印刷速度向上を狙って、インタプリタ部と画像データ展開部を複数具備し、並列処理を実現した際には、カウンタに対して複数のインタプリタ部と複数の画像データ展開部からのアクセスが同時に発生してしまうことが多発し、並列処理を阻害する可能性も大きくなる。
そこで、実施形態6では、画像データ展開部が備える複数の小画像データ展開部が並列にラスタライズ処理(ベクタデータをビットマップデータへ変換)を行なう場合に、各小画像データ展開部が参照しているフォントキャッシュデータを確実に保護する構成について説明する。
このフォントキャッシュを保護するための構成は、各小画像データ展開部が同時に(独立に)操作できるようにすることで、画像データ展開処理の並列動作を阻害することを防止することができる。
また、このフォントキャッシュを保護するための構成は、該当フォントの出現回数には因らず、並列に動作する小画像データ展開部の個数分だけ用意すればよいので、メモリの使用量を削減することができる。
以下、実施形態6における、画像データ展開部18の応用例について説明する。
まず、画像データ展開部18の詳細構成について、図27を用いて説明する。
図27は本発明の実施形態6の画像データ展開部の詳細構成を示す図である。
小画像データ展開部(μRIP)18a〜18dには、それぞれが並列に入力されるタイルベクタを展開することでパフォーマンス向上を果たしている。2705は、一度展開した文字(フォント)データを再利用のために保存するフォントキャッシュである。フォントキャッシュ2705には、フォントキャッシュメモリ2706と、フォントキャッシュメモリ2706を参照中であることを示すロックフラグを記憶するロックフラグレジスタ2707〜2710より構成されている。尚、図27では図示していないが、フォントキャッシュメモリ2706は、図1のローカルメモリ19上に割り当てられる。
2711は各μRIP18a〜18dが共通のフォントキャッシュメモリ2706へアクセスするためのバスであり、各μRIP18a〜18dが展開すべき文字がフォントキャッシュ2705に登録されていれば、展開済のフォントデータを2711を介してリードするだけで文字の展開が終了する。
2712〜2715は、各μRIP18a〜18dより独立に対応するロックフラグレジスタ2707から2710を操作するための制御信号線である。μRIP18aはロックフラグレジスタ2707へ、μRIP18bはロックフラグレジスタ2708へ、μRIP18cはロックフラグレジスタ2709へ、μRIP18dはロックフラグレジスタ2710へ接続されている。
2716〜2719はそれぞれのμRIP18a〜18dで展開処理対象のタイルベクタデータの一例を示している。
尚、図27において、μRIPとロックフラグレジスタは4組示されているが、この数に限定されるものではなく、要求されるシステムのパフォーマンスに合わせて増減して良いことは言うまでもない。
次に、フォントキャッシュの動作例について、図28を用いて説明する。
図28は本発明の実施形態6のフォントキャッシュの動作例を示す図である。
図28は、フォントキャッシュメモリ2706とロックフラグレジスタ2707〜2710で構成されるフォントキャッシュ2705の一例を示している。
2100は、フォントキャッシュ2705のデータを管理するためのフォントキャッシュ管理テーブルである。2101は、n個の格納部から構成される展開済フォントデータの格納部である。フォントキャッシュ管理テーブル2100には登録されている文字を識別するための文字識別情報と、その文字の展開済フォントデータが格納されているフォントキャッシュメモリのアドレス(格納アドレス)、及び、小画像データ展開部(μRIP)の数だけのロックフラグレジスタで構成されている。
展開済フォントデータの格納部2101には、フォントキャッシュ管理テーブル2100に示される格納アドレスから、各文字の展開済フォントデータが格納されている。
以下、図27及び28を用いて、各μRIPのフォント展開処理とフォントキャッシュの動作について説明する。
μRIP18aは、タイルベクタデータ2716を受け取る。このタイルベクタデータ2716には、文字「あ」が含まれている。μRIP18aは、フォントキャッシュ管理テーブル2100の文字識別情報を検索し、テーブル内のデータエントリ2103で「あ」が登録済であることを認識する(ヒットと認識する)。
この場合、ヒットしたので、μRIP18aは、制御信号線2712によって接続されているロックフラグレジスタ2707のデータエントリ2103に相当するフラグに「1」をセットし、フォントキャッシュメモリ2706を参照中であることを示す。
その後、フォントキャッシュ管理テーブル2100内のデータエントリ2103の格納アドレスで示される「Address 1」より、展開済フォントデータ1(2109)の読出を開始し、タイルベクタデータ2716の展開処理を実行する。展開済フォントデータ1(2109)の読出が終了したら、先にセットしたロックフラグレジスタ2707のデータエントリ2103に相当するフラグを「0」にクリアし、フォントキャッシュメモリ2706の参照が終了したことを示す。
μRIP18bは、タイルベクタデータ2717を受け取る。このタイルベクタデータ2717には文字「A」が含まれている。μRIP18bは、フォントキャッシュ管理テーブル2100の文字識別情報を検索し、テーブル内の2データエントリ2105で「A」が登録済であることを認識する(ヒットと認識する)。
この場合、ヒットしたので、μRIP18bは、制御信号線2713によって接続されているロックフラグレジスタ2708のデータエントリ2105に相当するフラグに「1」をセットし、フォントキャッシュメモリ2706を参照中であることを示す。
その後、フォントキャッシュ管理テーブル2100内のデータエントリ2105の格納アドレスで示される「Address 3」より、展開済フォントデータ3(2111)の読出を開始し、タイルベクタデータ2717の展開処理を実行する。展開済フォントデータ3(2111)の読出が終了したら、先にセットしたロックフラグレジスタ2708のデータエントリ2105に相当するフラグを「0」にクリアし、フォントキャッシュメモリ2706の参照が終了したことを示す。
μRIP18cは、タイルベクタデータ2718を受け取る。このタイルベクタデータ2718には文字「A」が含まれている。μRIP18cは、フォントキャッシュ管理テーブル2100の文字識別情報を検索し、テーブル内のデータエントリ2105で「A」が登録済であることを認識する(ヒットと認識する)。
この場合、ヒットしたので、μRIP18cは、制御信号線2714によって接続されているロックフラグレジスタ2709のデータエントリ2105に相当するフラグに「1」をセットし、フォントキャッシュメモリ2706を参照中であることを示す。
その後、フォントキャッシュ管理テーブル2100内のデータエントリ2105の格納アドレスに示される「Address 3」より、展開済フォントデータ3(2111)の読出を開始し、タイルベクタデータ2718の展開処理を実行する。展開済フォントデータ3(2111)の読出が終了したら、先にセットしたロックフラグレジスタ2709のデータエントリ2105に相当するフラグを「0」にクリアし、フォントキャッシュメモリ2706の参照が終了したことを示す。
μRIP18dは、タイルベクタデータ2719を受け取る。このタイルベクタデータ2719には文字「う」が含まれている。μRIP18dは、フォントキャッシュ管理テーブル2100の文字識別情報を検索し、「う」が未登録であることを認識する(ミスと認識する)。
この場合、ミスしたので、μRIP18dは文字「う」の展開処理を実行する。展開処理が終了すると、文字「う」の展開済フォントデータをフォントキャッシュメモリ2705に登録する。このとき、μRIP18dは、フォントキャッシュ管理テーブル2100のロックフラグレジスタを参照し、どのフラグもセットされていないもの、つまり、他のどのμRIPも参照中でないものの中から置き換える展開済フォントデータを選択するように動作する。ロックフラグレジスタの内容が、図28のような状態であれば、データエントリ2103と2105は置き換え候補から除かれることになる。
以上説明したフォントキャッシュの構成と動作により、複数の小画像データ展開部(μRIP)が並列にラスタライズ処理(ベクタデータをビットマップデータへ変換)を行なう場合に、各小画像データ展開部が参照している展開済フォントデータ(フォントキャッシュデータ)は、ロックフラグがセットされているので置き換え対象とはならないので確実に保護できる効果がある。
また、ロックフラグレジスタは、各μRIP毎に用意し、独立して操作できる構成にしたので、μRIPの並列動作を阻害する要因から排除される。さらに、ロックフラグレジスタは、μRIPの個数分だけ用意すればよいので、出現回数等によるカウンタによる置き換え保護と比較して、少ないリソース(メモリ等)で実現可能である。
また、実施形態6では、フォントキャッシュを画像データ展開部内のローカルメモリ19上に配置したが、システムメモリ8上に構成しても良いことは言うまでもない。
以上説明したように、実施形態6によれば、画像データ展開部が備える複数の小画像データ展開部が並列にラスタライズ処理(ベクタデータをビットマップデータへ変換)を行なう場合に、各小画像データ展開部が参照しているフォントキャッシュデータを確実に保護することができる。
この構成によれば、各小画像データ展開部が同時に(独立に)操作できるようにすることで、画像データ展開処理の並列動作を阻害することを防止することができる。また、該当フォントの出現回数には因らず、並列に動作する小画像データ展開部の個数分だけ用意すればよいので、メモリの使用量を削減することができる。
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、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の画像データ展開部が実行する処理を示すフローチャートである。 本発明の実施形態2の画像処理システムでの送信動作に係るデータフローを示す図である。 本発明の実施形態3のタイルベクタデータの例を示す図である。 本発明の実施形態3のページベクタデータの記述例を示す図である。 本発明の実施形態3のタイルベクタデータの記述例を示す図である。 本発明の実施形態3の曲線オブジェクトのタイル分割を説明するための図である。 本発明の実施形態3の曲線オブジェクトの分割処理の詳細を示すフローチャートである。 本発明の実施形態3のステップS1802の処理の詳細を示すフローチャートである。 本発明の実施形態3のステップS1803の処理の詳細を示すフローチャートである。 本発明の実施形態4のイメージオブジェクトのタイル分割を説明するための図である。 本発明の実施形態4のイメージオブジェクトの分割処理の詳細を示すフローチャートである。 本発明の実施形態4のイメージオブジェクトの分割処理の具体例を示す図である。 本発明の実施形態4のステップS77における、イメージオブジェクトのラスタライズの詳細を示すフローチャートである。 本発明の実施形態5の処理概要を説明するための図である。 本発明の実施形態5のタイルベクタデータ書込処理を示すフローチャートである。 本発明の実施形態5のタイルベクタデータ読出処理を示すフローチャートである。 本発明の実施形態6の画像データ展開部の詳細構成を示す図である。 本発明の実施形態6のフォントキャッシュの動作例を示す図である。 従来の画像処理システムの構成を示す図である。
符号の説明
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 (9)

  1. 入力された画像データに対する処理を実行する画像処理装置であって、
    画像データを入力する入力手段と、
    画像データを出力する出力手段と、
    ラスタ画像データを、所定の大きさのブロック毎に分割し、ベクトル化処理を実行することにより、当該所定の大きさに分割された各ブロックに対応するブロックベクタ画像データに変換する第1変換手段と、
    ブロックベクタ画像データを記憶する記憶手段と、
    ブロックベクタ画像データをラスタ画像データに展開する展開手段と、
    前記入力手段から入力されたラスタ画像データを前記第1変換手段でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開手段で展開して得られるラスタ画像データを前記出力手段から出力させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御手段と
    1ページ分のブロックベクタ画像データから、ページ全体を示すページベクタ画像データへ変換する第3変換手段とを備え、
    前記展開手段は、複数のブロックベクタ画像データを並列に処理するための、複数の小展開部を有し、
    前記画像データ転送制御手段は、
    前記出力手段から出力させるべき画像データの形式がラスタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記展開手段を実行させて得られるラスタ画像データを前記出力手段から出力させ、
    前記出力手段から出力させるべき画像データの形式がベクタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記第3変換手段を実行させて得られる前記ページベクタ画像データを前記出力手段から出力させる
    ように、装置内での処理対象の画像データの転送を制御する
    ことを特徴とする画像処理装置。
  2. 入力された画像データに対する処理を実行する画像処理装置であって、
    画像データを入力する入力手段と、
    画像データを出力する出力手段と、
    ラスタ画像データを、所定の大きさのブロック毎に分割し、ベクトル化処理を実行することにより、当該所定の大きさに分割された各ブロックに対応するブロックベクタ画像データに変換する第1変換手段と、
    ブロックベクタ画像データを記憶する記憶手段と、
    ブロックベクタ画像データをラスタ画像データに展開する展開手段と、
    前記入力手段から入力されたラスタ画像データを前記第1変換手段でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開手段で展開して得られるラスタ画像データを前記出力手段から出力させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御手段とを備え、
    前記展開手段は、複数のブロックベクタ画像データを並列に処理するための、複数の小展開部と、前記複数の小展開部に対して共通のフォントキャッシュ部とを備え、
    前記フォントキャッシュ部は、フォントキャッシュメモリと、前記複数の小展開部それぞれが前記フォントキャッシュメモリを参照中であることを示すロックフラグを記憶するロックフラグレジスタを備える
    ことを特徴とする画像処理装置。
  3. 前記展開手段は、前記小展開部での処理対象のブロックベクタ画像データに含まれるフォントデータに対応する展開済フォントデータが前記フォントキャッシュ部に存在する場合、対応するロックフラグレジスタの前記ロックフラグをセットし、前記展開済フォントデータの読出が終了した時点で、前記ロックフラグをクリアする
    ことを特徴とする請求項に記載の画像処理装置。
  4. 前記展開手段は、前記小展開部で展開対象のフォントデータをラスタデータに展開する際に、前記ラスタデータを展開するための空き領域が前記フォントキャッシュメモリに存在しない場合は、前記ロックフラグレジスタでロックフラグがセットされていない該フォントキャッシュメモリ上の展開済フォントデータを、前記展開対象のフォントデータに置き換える
    ことを特徴とする請求項に記載の画像処理装置。
  5. 前記複数の小展開部それぞれに、対応するロックフラグレジスタを制御するための制御信号線が接続されている
    ことを特徴とする請求項に記載の画像処理装置。
  6. 入力された画像データに対する処理を実行する画像処理装置の制御方法であって、
    ラスタ画像データを、所定の大きさのブロック毎の分割とベクトル化処理とにより、所定の大きさに分割されたブロックベクタ画像データに変換する第1変換工程と、
    ブロックベクタ画像データを記憶手段に記憶する記憶工程と、
    ブロックベクタ画像データをラスタ画像データに展開する展開工程と、
    前記入力されたラスタ画像データを前記第1変換工程でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開工程で展開して得られるラスタ画像データを出力部から出力させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御工程と
    1ページ分のブロックベクタ画像データから、ページ全体を示すページベクタ画像データへ変換する第3変換工程とを備え、
    前記展開工程は、複数の小展開部によって、複数のブロックベクタ画像データを並列に処理し、
    前記画像データ転送制御工程は、
    前記出力部から出力させるべき画像データの形式がラスタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記展開工程を実行させて得られるラスタ画像データを前記出力部から出力させ、
    前記出力部から出力させるべき画像データの形式がベクタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記第3変換工程を実行させて得られる前記ページベクタ画像データを前記出力部から出力させる
    ように、装置内での処理対象の画像データの転送を制御する
    ことを特徴とする画像処理装置の制御方法。
  7. 入力された画像データに対する処理を実行する画像処理装置の制御方法であって、
    ラスタ画像データを、所定の大きさのブロック毎の分割とベクトル化処理とにより、所定の大きさに分割されたブロックベクタ画像データに変換する第1変換工程と、
    ブロックベクタ画像データを記憶手段に記憶する記憶工程と、
    ブロックベクタ画像データをラスタ画像データに展開する展開工程と、
    前記入力されたラスタ画像データを前記第1変換工程でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開工程で展開して得られるラスタ画像データを出力部から出力させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御工程とを備え、
    前記展開工程は、複数の小展開部と該複数の小展開部に対する共通のフォントキャッシュ部とによって、複数のブロックベクタ画像データを並列に処理し、
    前記フォントキャッシュ部は、フォントキャッシュメモリと、前記複数の小展開部それぞれが前記フォントキャッシュメモリを参照中であることを示すロックフラグを記憶するロックフラグレジスタを備える
    ことを特徴とする画像処理装置の制御方法。
  8. 入力された画像データに対する処理をコンピュータに実行させる画像処理装置の制御を実現するプログラムであって、
    ラスタ画像データを、所定の大きさのブロック毎の分割とベクトル化処理とにより、所定の大きさに分割されたブロックベクタ画像データに変換する第1変換工程と、
    ブロックベクタ画像データを記憶手段に記憶する記憶工程と、
    ブロックベクタ画像データをラスタ画像データに展開する展開工程と、
    前記入力されたラスタ画像データを前記第1変換工程でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開工程で展開して得られるラスタ画像データを出力部から出力させるように制御する制御工程と
    1ページ分のブロックベクタ画像データから、ページ全体を示すページベクタ画像データへ変換する第3変換工程とを備え、
    前記展開工程は、複数の小展開部によって、複数のブロックベクタ画像データを並列に処理し、
    前記制御工程は、
    前記出力部から出力させるべき画像データの形式がラスタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記展開工程を実行させて得られるラスタ画像データを前記出力部から出力させ、
    前記出力部から出力させるべき画像データの形式がベクタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記第3変換工程を実行させて得られる前記ページベクタ画像データを前記出力部から出力させる
    ように、装置内での処理対象の画像データの転送を制御する
    ことをコンピュータに実行させることを特徴とするプログラム。
  9. 入力された画像データに対する処理をコンピュータに実行させる画像処理装置の制御を実現するプログラムであって、
    ラスタ画像データを、所定の大きさのブロック毎の分割とベクトル化処理とにより、所定の大きさに分割されたブロックベクタ画像データに変換する第1変換工程と、
    ブロックベクタ画像データを記憶手段に記憶する記憶工程と、
    ブロックベクタ画像データをラスタ画像データに展開する展開工程と、
    前記入力されたラスタ画像データを前記第1変換工程でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させ、前記記憶手段に記憶されているブロックベクタ画像データを前記展開工程で展開して得られるラスタ画像データを出力部から出力させるように制御する制御工程とを備え、
    前記展開工程は、複数の小展開部と該複数の小展開部に対する共通のフォントキャッシュ部とによって、複数のブロックベクタ画像データを並列に処理し、
    前記フォントキャッシュ部は、フォントキャッシュメモリと、前記複数の小展開部それぞれが前記フォントキャッシュメモリを参照中であることを示すロックフラグを記憶するロックフラグレジスタを備える
    ことをコンピュータに実行させることを特徴とするプログラム。
JP2005157607A 2005-05-30 2005-05-30 画像処理装置及びその制御方法、プログラム Expired - Fee Related JP4408836B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005157607A JP4408836B2 (ja) 2005-05-30 2005-05-30 画像処理装置及びその制御方法、プログラム
EP06746928.8A EP1891802B1 (en) 2005-05-30 2006-05-22 Image processing apparatus, control method thereof, and program
US11/910,102 US8274667B2 (en) 2005-05-30 2006-05-22 Image processing apparatus, control method thereof, and storage medium storing a program for converting raster image data into block vector image format
PCT/JP2006/310599 WO2006129577A1 (en) 2005-05-30 2006-05-22 Image processing apparatus, control method thereof, and program

Applications Claiming Priority (1)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009166177A Division JP4475680B2 (ja) 2009-07-14 2009-07-14 画像処理装置及びその制御方法、プログラム

Publications (3)

Publication Number Publication Date
JP2006333361A JP2006333361A (ja) 2006-12-07
JP2006333361A5 JP2006333361A5 (ja) 2008-07-17
JP4408836B2 true JP4408836B2 (ja) 2010-02-03

Family

ID=37481506

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US8274667B2 (ja)
EP (1) EP1891802B1 (ja)
JP (1) JP4408836B2 (ja)
WO (1) WO2006129577A1 (ja)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8692844B1 (en) 2000-09-28 2014-04-08 Nvidia Corporation Method and system for efficient antialiased rendering
US7266254B2 (en) * 2002-02-13 2007-09-04 Canon Kabushiki Kaisha Data processing apparatus, image processing apparatus, and method therefor
US8775997B2 (en) 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8775112B2 (en) 2003-09-15 2014-07-08 Nvidia Corporation System and method for increasing die yield
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
US8723231B1 (en) 2004-09-15 2014-05-13 Nvidia Corporation Semiconductor die micro electro-mechanical switch management system and method
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
US8427496B1 (en) 2005-05-13 2013-04-23 Nvidia Corporation Method and system for implementing compression across a graphics bus interconnect
US8698811B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Nested boustrophedonic patterns for rasterization
US8390645B1 (en) 2005-12-19 2013-03-05 Nvidia Corporation Method and system for rendering connecting antialiased line segments
US9117309B1 (en) 2005-12-19 2015-08-25 Nvidia Corporation Method and system for rendering polygons with a bounding box in a graphics processor unit
US7889386B2 (en) * 2006-01-27 2011-02-15 Canon Kabushiki Kaisha Image processing apparatus and method for processing vector image data units of blocks
US8928676B2 (en) 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
US8427487B1 (en) 2006-11-02 2013-04-23 Nvidia Corporation Multiple tile output using interface compression in a raster stage
US8482567B1 (en) 2006-11-03 2013-07-09 Nvidia Corporation Line rasterization techniques
US8724483B2 (en) 2007-10-22 2014-05-13 Nvidia Corporation Loopback configuration for bi-directional interfaces
US8009316B2 (en) * 2007-10-26 2011-08-30 Ricoh Production Print Solutions LLC Methods and apparatus for efficient sheetside bitmap processing using meta-data information
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) * 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US7982749B2 (en) * 2008-01-31 2011-07-19 Microsoft Corporation Server-based rasterization of vector graphics
JP5089416B2 (ja) * 2008-02-13 2012-12-05 キヤノン株式会社 画像処理装置およびその制御方法並びにプログラム
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
JP2010028206A (ja) * 2008-07-15 2010-02-04 Canon Inc 画像形成システム、画像形成装置、画像処理装置および画像形成方法
US8339672B2 (en) * 2009-03-30 2012-12-25 Sharp Laboratories Of America, Inc. Methods and systems for rendering data using graphic-list partitions and associated rendering processors
US8339670B2 (en) * 2009-03-30 2012-12-25 Sharp Laboratories Of America, Inc. Methods and systems for rendering data based on graphic-list partitioning
US20100245918A1 (en) * 2009-03-30 2010-09-30 Nguyen Uoc H Methods and Systems for Rendering Data
US8411319B2 (en) * 2009-03-30 2013-04-02 Sharp Laboratories Of America, Inc. Methods and systems for concurrent rendering of graphic-list elements
US8339671B2 (en) * 2009-03-30 2012-12-25 Sharp Laboratories Of America, Inc. Methods and systems for rendering data by partitioning a graphics list
US20100245889A1 (en) * 2009-03-30 2010-09-30 Nguyen Uoc H Methods and Systems for Rendering Data
US8339653B2 (en) * 2009-03-30 2012-12-25 Sharp Laboratories Of America, Inc. Methods and systems for rendering data based on overlap characteristics
US8237968B2 (en) * 2009-05-15 2012-08-07 Hewlett-Packard Development Company, L.P. Parallelization in printing
JP5333763B2 (ja) * 2009-07-22 2013-11-06 富士ゼロックス株式会社 画像処理装置、画像処理システムおよび画像処理プログラム
US20110063305A1 (en) 2009-09-16 2011-03-17 Nvidia Corporation Co-processing techniques on heterogeneous graphics processing units
JP5370044B2 (ja) * 2009-09-24 2013-12-18 富士ゼロックス株式会社 画像処理装置、画像形成装置、およびプログラム
JP5299253B2 (ja) * 2009-12-10 2013-09-25 コニカミノルタ株式会社 画像処理装置および画像処理方法
US8847993B2 (en) * 2009-12-15 2014-09-30 Adobe Systems Incorporated Resolution independent effects in a graphics application
US9530189B2 (en) 2009-12-31 2016-12-27 Nvidia Corporation Alternate reduction ratios and threshold mechanisms for framebuffer compression
KR101014735B1 (ko) 2010-01-15 2011-02-14 김도영 판서 기능 제공 장치
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
US9014415B2 (en) * 2010-04-22 2015-04-21 The University Of North Carolina At Charlotte Spatially integrated aerial photography for bridge, structure, and environmental monitoring
AU2010202390B2 (en) 2010-06-08 2013-08-29 Canon Kabushiki Kaisha Rasterising disjoint regions of a page in parallel
JP5447219B2 (ja) * 2010-06-18 2014-03-19 コニカミノルタ株式会社 印刷データ生成装置、印刷データ生成方法および印刷データ生成プログラム
US8872848B1 (en) * 2010-09-29 2014-10-28 Google Inc. Rendering vector data as tiles
US9171350B2 (en) 2010-10-28 2015-10-27 Nvidia Corporation Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up
US20120159292A1 (en) * 2010-12-16 2012-06-21 Oce-Technologies B.V. Method of processing an object-based image file with content type dependent image processing algorithms
JP2013001043A (ja) * 2011-06-20 2013-01-07 Canon Inc 画像形成装置、画像形成方法、およびプログラム
AU2012202492A1 (en) * 2012-04-30 2013-11-14 Canon Kabushiki Kaisha System and method for fast manipulation of graphical objects
US9846958B1 (en) * 2012-10-04 2017-12-19 Aftershock Services, Inc. System and method for display object bitmap caching
US9591309B2 (en) 2012-12-31 2017-03-07 Nvidia Corporation Progressive lossy memory compression
US9607407B2 (en) 2012-12-31 2017-03-28 Nvidia Corporation Variable-width differential memory compression
US8902303B2 (en) * 2013-03-15 2014-12-02 Orcam Technologies Ltd. Apparatus connectable to glasses
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
US9192863B2 (en) * 2013-10-29 2015-11-24 Disney Enterprises, Inc. Selective caching of interactive objects
US9959362B2 (en) * 2014-07-29 2018-05-01 Sap Se Context-aware landing page
US20160110599A1 (en) * 2014-10-20 2016-04-21 Lexmark International Technology, SA Document Classification with Prominent Objects
JP6445899B2 (ja) * 2015-02-26 2018-12-26 キヤノン株式会社 画像形成装置及びその制御方法
JP6643056B2 (ja) * 2015-11-19 2020-02-12 キヤノン株式会社 画像処理装置、画像処理方法、データ生成方法及びプログラム
JP6756177B2 (ja) * 2016-07-20 2020-09-16 コニカミノルタ株式会社 画像形成装置
CN109189524A (zh) * 2018-08-09 2019-01-11 北京金山安全软件有限公司 一种图像资源的生成方法和装置
US11048932B2 (en) * 2019-08-26 2021-06-29 Adobe Inc. Transformation of hand-drawn sketches to digital images
DE102021005196B4 (de) 2021-10-13 2023-11-02 Paul Zetzsch Neustrukturierung von digitalem Bildmaterial durch Anpassung an punktbasierte Netzstrukturen

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5947666A (ja) * 1982-09-13 1984-03-17 Dainippon Screen Mfg Co Ltd 2値画像のデ−タ圧縮方法
JPH03111971A (ja) 1989-09-27 1991-05-13 Toshiba Corp ベクトル化診断方式
JPH0436908A (ja) * 1990-05-31 1992-02-06 Japan Airlines Co Ltd 線材印字装置
JP3034659B2 (ja) * 1991-09-26 2000-04-17 株式会社日立製作所 拡大画面表示回路及びそれに用いられる水平フィルタ回路
JP3323535B2 (ja) 1992-05-19 2002-09-09 キヤノン株式会社 画像記憶装置及び画像記憶装置の制御方法
EP0607988B1 (en) * 1993-01-22 1999-10-13 Matsushita Electric Industrial Co., Ltd. Program controlled processor
US5602976A (en) * 1993-02-23 1997-02-11 Adobe Systems Incorporated Method and apparatus for saving printer memory
US5542031A (en) * 1993-04-30 1996-07-30 Douglass; Clay S. Halftone computer imager
JPH0773334A (ja) * 1993-09-02 1995-03-17 Dainippon Screen Mfg Co Ltd ベジェデータ信号処理装置及び方法
US6031631A (en) 1993-09-03 2000-02-29 Canon Kabushiki Kaisha Image processing system with independent control of image forming apparatuses
DE69522166T2 (de) 1994-10-25 2002-04-11 Canon Kk Kopiergerät mit Bilddrehmöglichkeit
US5594860A (en) * 1995-01-27 1997-01-14 Varis Corporation Method for banding and rasterizing an image in a multiprocessor printing system
JP3109971B2 (ja) * 1995-02-03 2000-11-20 オリンパス光学工業株式会社 情報再生システム及び情報記録システムとその記録媒体
US6130965A (en) 1995-08-03 2000-10-10 Canon Kabushiki Kaisha Image data outputting apparatus and facsimile apparatus in which image data on a plurality of record sheets are combined into one page of image data for transmission
JPH1016319A (ja) 1996-06-28 1998-01-20 Fuji Xerox Co Ltd プリントデータ展開装置
KR100209132B1 (ko) * 1996-07-11 1999-07-15 전주범 블럭-기반 물체 윤곽 부호화 방법
JP3474078B2 (ja) * 1997-05-02 2003-12-08 富士ゼロックス株式会社 描画処理装置
US6295134B1 (en) * 1997-09-18 2001-09-25 Adobe Systems Incorporated Parallel redundant interpretation in a raster image processor
JPH11203061A (ja) * 1998-01-12 1999-07-30 Fuji Xerox Co Ltd 画像処理装置、出力装置、画像処理システムおよび画像処理方法
JP4035222B2 (ja) * 1998-03-11 2008-01-16 キヤノン株式会社 画像処理装置
EP1018706A4 (en) 1998-04-10 2004-11-17 Seiko Epson Corp IMAGE DATA INTERPOLATION DEVICE AND METHOD, AND MEDIUM ON WHICH THE IMAGE DATA INTERPOLATION PROGRAM IS RECORDED
JP3111971B2 (ja) 1998-04-10 2000-11-27 セイコーエプソン株式会社 画像データ補間装置、画像データ補間方法および画像データ補間プログラムを記録した媒体
JP3814425B2 (ja) 1998-10-16 2006-08-30 キヤノン株式会社 通信装置、通信方法、画像形成装置並びに画像形成システム
JP2001086349A (ja) * 1999-09-10 2001-03-30 Canon Inc 画像通信装置及び方法
JP3754873B2 (ja) * 2000-06-05 2006-03-15 キヤノン株式会社 画像通信装置およびその制御方法
US6934330B2 (en) * 2001-08-01 2005-08-23 Sony Corporation Image processing apparatus
EP1424859A4 (en) * 2001-08-02 2010-01-13 Sony Corp IMAGE PROCESSING APPARATUS AND METHOD AND IMAGE PROCESSING PROGRAM
US7202964B2 (en) * 2002-07-10 2007-04-10 Hewlett-Packard Development Company, L.P. Determining raster image processor cycle count to fully utilize a printer
US7379609B2 (en) * 2002-07-19 2008-05-27 Samsung Electronics Co., Ltd. Image processing apparatus and method for conversion between raster and block formats
JP4410981B2 (ja) * 2002-09-20 2010-02-10 キヤノン株式会社 映像信号処理装置及び方法
JP4136573B2 (ja) 2002-09-27 2008-08-20 キヤノン株式会社 画像処理方法、画像処理装置、プログラム及び記録媒体
US7447384B2 (en) 2002-09-27 2008-11-04 Canon Kabushiki Kaisha Image processing method and apparatus
JP2004272485A (ja) * 2003-03-06 2004-09-30 Ricoh Co Ltd 画像形成システム
US7352481B2 (en) * 2003-03-21 2008-04-01 Hewlett-Packard Develepment Company, L.P. Systems and methods for recovery of a failed raster image processor partition
JP4012140B2 (ja) 2003-11-20 2007-11-21 キヤノン株式会社 画像処理装置、情報処理装置及びそれらの制御方法、プログラム
JP3862694B2 (ja) 2003-11-20 2006-12-27 キヤノン株式会社 画像処理装置及びその制御方法、プログラム
JP3796500B2 (ja) 2003-11-21 2006-07-12 キヤノン株式会社 画像処理装置及びその制御方法、プログラム
JP3997198B2 (ja) 2003-12-05 2007-10-24 キヤノン株式会社 画像処理システム及び画像処理方法
JP4574235B2 (ja) 2004-06-04 2010-11-04 キヤノン株式会社 画像処理装置、及びその制御方法、プログラム
JP4208780B2 (ja) 2004-07-07 2009-01-14 キヤノン株式会社 画像処理システム及び画像処理装置の制御方法並びにプログラム
JP2006025129A (ja) 2004-07-07 2006-01-26 Canon Inc 画像処理システム及び画像処理方法
JP2006023945A (ja) 2004-07-07 2006-01-26 Canon Inc 画像処理システム及び画像処理方法
JP2006054817A (ja) * 2004-08-16 2006-02-23 Fuji Xerox Co Ltd ドキュメント処理装置
US7821657B2 (en) * 2004-09-14 2010-10-26 Sharp Laboratories Of America, Inc. Continuous raster image processing control across print jobs
JP2006140601A (ja) * 2004-11-10 2006-06-01 Canon Inc 画像処理装置及び画像処理装置の制御方法
JP4766657B2 (ja) * 2005-05-02 2011-09-07 キヤノン株式会社 画像処理装置及びその制御方法、プログラム
JP4164518B2 (ja) * 2006-06-05 2008-10-15 キヤノン株式会社 画像処理装置及びその制御方法、プログラム
JP4715654B2 (ja) * 2006-07-03 2011-07-06 富士ゼロックス株式会社 画像データ生成装置および画像形成装置
JP4757120B2 (ja) * 2006-07-06 2011-08-24 キヤノン株式会社 画像処理装置及びその制御方法

Also Published As

Publication number Publication date
EP1891802A4 (en) 2010-08-04
US20080273218A1 (en) 2008-11-06
JP2006333361A (ja) 2006-12-07
US8274667B2 (en) 2012-09-25
EP1891802B1 (en) 2016-07-20
WO2006129577A1 (en) 2006-12-07
EP1891802A1 (en) 2008-02-27

Similar Documents

Publication Publication Date Title
JP4408836B2 (ja) 画像処理装置及びその制御方法、プログラム
JP4164518B2 (ja) 画像処理装置及びその制御方法、プログラム
JP4995057B2 (ja) 描画装置、印刷装置、描画方法、及びプログラム
JP4757120B2 (ja) 画像処理装置及びその制御方法
JP6729766B2 (ja) 印刷データ処理装置及びプログラム
JP5209953B2 (ja) 画像データ供給装置および画像データ供給方法
JP6385406B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP5199727B2 (ja) 画像処理方法及び画像処理装置とその制御方法
JP4475680B2 (ja) 画像処理装置及びその制御方法、プログラム
JP4646703B2 (ja) 画像処理装置及びその制御方法、プログラム
JP2015005131A (ja) 印刷データ処理装置、プログラム、及びシステム
JP2006235855A (ja) 画像形成装置、画像処理装置、プログラムおよび画像処理方法
JP2008146415A (ja) 画像処理装置及びその制御方法、プログラム
JP2008107970A (ja) 画像形成装置
JP2015075839A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2006331308A (ja) 画像処理装置及びその制御方法、プログラム
JP2010111099A (ja) 画像処理装置およびその制御方法
JP3741183B2 (ja) 画像データ補間装置、画像データ補間方法および画像データ補間プログラムを記録した媒体
JP2011000794A (ja) 画像形成装置及び画像形成方法ならびに画像形成方法を実行するプログラム
JPH11191055A (ja) 印刷システムおよび印刷システムのデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2006155307A (ja) 負荷分散処理を行う画像処理システム
JP2008153764A (ja) 画像処理システム
JP2007011573A (ja) 情報処理装置の印刷処理方法
JP2006031086A (ja) 印刷処理方法
JP2008148066A (ja) 画像処理装置及びその制御方法、並びに制御プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080529

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090515

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090814

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091008

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: 20091106

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: 20091110

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees