JP4475680B2 - Image processing apparatus, control method therefor, and program - Google Patents
Image processing apparatus, control method therefor, and program Download PDFInfo
- Publication number
- JP4475680B2 JP4475680B2 JP2009166177A JP2009166177A JP4475680B2 JP 4475680 B2 JP4475680 B2 JP 4475680B2 JP 2009166177 A JP2009166177 A JP 2009166177A JP 2009166177 A JP2009166177 A JP 2009166177A JP 4475680 B2 JP4475680 B2 JP 4475680B2
- Authority
- JP
- Japan
- Prior art keywords
- image data
- tile
- page
- format
- block 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Storing Facsimile Image Data (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Image Processing (AREA)
- Facsimiles In General (AREA)
Description
本発明は、入力された画像データに対して画像処理を施して管理する画像処理装置及びその制御方法、プログラムに関するものである。 The present invention relates to an image processing apparatus that manages image data by performing image processing on input image data, a control method thereof, and a program.
ネットワーク上に接続され、外部あるいは内部の画像データに対する画像データ処理を実行し、その処理した画像データを出力する画像データ入出力システムが知られている。 There is known an image data input / output system that is connected to a network, executes image data processing on external or internal image data, and outputs the processed image data.
この画像データ入出力システムとしては、MFP(Multi Function Peripheral)と呼ばれるものがある。 As this image data input / output system, there is a so-called MFP (Multi Function Peripheral).
ここで、従来のMFPを制御するコントローラ100を図29に示す。コントローラ100は、システムバスブリッジ(SBB)101により、CPU102、メモリコントローラ(MC)103、汎用バス105、画像処理部110、画像データ展開部(RIP(Raster Image Processor))113が接続されている。
Here, FIG. 29 shows a
汎用バス105には、画像データを蓄積するための:大容量記憶部(HDD(ハードディスクドライブ))107を制御するハードディスクコントローラ(HDDCont)106、MFPが接続されているネットワーク108を介して、外部機器間との画像データの転送を行うインターフェースになるネットワークI/F109が接続されている。この画像データとしては、ページベクタ形式(PDL(ページ記述言語)、PDF、SVG等)の画像データがある。
The general-
HDDCont106には、HDD(ハードディスクドライブ)107が接続されており、画像データの記憶媒体として使われる。同様に、MC103には、システムメモリ(Memory)104が接続されており、画像データを一時記憶するための媒体として使われる。システムメモリ104には、一般的には、DIMMが用いられる。
An HDD (hard disk drive) 107 is connected to the HDDCont 106 and is used as a storage medium for image data. Similarly, a system memory (Memory) 104 is connected to the MC 103 and is used as a medium for temporarily storing image data. Generally, a DIMM is used for the
画像処理部110には、スキャナ111及びプリンタ112が接続されている。スキャナ111から入力された画像データは、画像処理部110によって所定の画像処理が実施された後、コントローラ100へ入力される。また、コントローラ100内に記憶されている画像データは、画像処理部110によって所定の画像処理が実施され、プリンタ112へ出力される。
A scanner 111 and a printer 112 are connected to the image processing unit 110. The image data input from the scanner 111 is input to the
コントローラ100でハンドリングされる画像データは、ネットワーク経由での外部機器との入出力はページベクタ形式(PDLやPDF、SVG等)、スキャナ111やプリンタ112との入出力はラスタデータ形式でインターフェースされる。外部機器から入力されたページベクタ形式の画像データは、CPU102により、プリミティブなオブジェクトにインタプリットされ、DL(DisplayList)と呼ばれる中間データ(DLデータ)に変換されてから、RIP113に入力される。
The image data handled by the
これらの画像データはコントローラ100の内部のシステムメモリ104に一旦記憶される。そのため、システムメモリ104上には、ラスタデータ、ページベクタデータ(PDL等)、DLデータ等の多種類のデータが存在する。
These image data are temporarily stored in the
HDD107には、画像データとしてスキャナ111から入力された画像データとRIP113でレンダリングされたラスタ画像データが記憶される。
The HDD 107 stores image data input from the scanner 111 and raster image data rendered by the
上述のようなMFPが扱う画像データの中でも、ラスタ画像データはデータサイズが大きい。そのため、システムメモリ104のメモリサイズや、汎用バス105及びHDDCont106−HDD107間のバンド幅等のシステム・リソースを多く消費する。
Among the image data handled by the MFP as described above, raster image data has a large data size. Therefore, many system resources such as the memory size of the
これに加え、PDLデータ等のページベクタデータでは、システム中でインタプリットを行い、描画オブジェクトを生成するDLデータに展開する。その際、DLデータをシステムメモリ104にスプールするため、それによるメモリリソースの消費量も莫大なものとなっている。
In addition, page vector data such as PDL data is interpreted in the system and developed into DL data for generating a drawing object. At this time, since DL data is spooled in the
一方、最近はユーザの出力画像の画質要求がますます高くなり、その解決策の1つとして、画像データに対する高解像度化(高画質化)が促進されている。また、画質と並行してシステムの処理速度向上も要求されている。 On the other hand, recently, the user demands for image quality of output images are increasing, and as one of the solutions, higher resolution (higher image quality) of image data is promoted. There is also a demand for improving the processing speed of the system in parallel with the image quality.
そのため、上述の様々な要求仕様を満足するために必要なシステム・リソースが肥大化してしまう。従って、プロダクトのコストパフォーマンスでの折り合いをつけることが課題となっている。 For this reason, system resources necessary for satisfying the above various required specifications are enlarged. Therefore, it is an issue to make a trade-off between product cost performance.
また、このプロダクトのコストパフォーマンスに対する課題とは別に、複雑、多様化するシステムを開発するための人的リソースの問題も解決することが要求されている。そして、これを満足するためには、様々な要求仕様に対し、1つの基本システムをスケーラブルな形で構成することにより、製品ラインナップを効率良く整備することが課題となっている。 Apart from the cost performance issues of this product, it is also required to solve the problem of human resources for developing complicated and diversified systems. In order to satisfy this requirement, it is an issue to efficiently maintain the product lineup by configuring one basic system in a scalable form for various required specifications.
例えば、図29における画像処理部110やRIP113等のモジュールを、ハイエンドな機種では複数個実装し、分散処理できるようなシステムが必要となってくる。 For example, a system in which a plurality of modules such as the image processing unit 110 and the RIP 113 in FIG. 29 are mounted in a high-end model and can be distributed is required.
他方、オフィスにおいてはペーパーレス化が進行しており、紙の出力物と電子データをシームレスに扱えるような要求も生まれてきている。そのためには、紙と電子データとのI/F機器であるMFPにおいても、例えば、蓄積画像データの検索性の向上や、ラスタ画像データをオブジェクト化して再利用可能なオブジェクトデータに変換する、POD(Print On Demand)印刷に対応するために画像加工を高速化する、といったよりインテリジェントな機能を持つことが必要となっている。 On the other hand, paperlessness is progressing in offices, and there is a demand for seamlessly handling paper output and electronic data. For this purpose, even in an MFP, which is an I / F device for paper and electronic data, for example, improvement in searchability of stored image data, or conversion of raster image data into object data that can be converted into reusable object data. (Print On Demand) In order to support printing, it is necessary to have a more intelligent function such as speeding up image processing.
本発明は上記の課題を解決するためになされたものであり、システム全体のシステム・リソースの制約を緩和し、かつトータルスループットを向上することができる画像処理装置及びその制御方法、プログラムを提供することを目的とする。 The present invention has been made to solve the above problems, and provides an image processing apparatus, a control method therefor, and a program that can alleviate restrictions on system resources of the entire system and improve the total throughput. For the purpose.
上記課題を解決するための本発明による画像処理装置は以下の構成を備える。即ち、
入力された画像データに対する処理を実行する画像処理装置であって、
画像データを入力する入力手段と、
画像データを出力する出力手段と、
ラスタ画像データを、所定の大きさのブロック毎に分割し、ベクトル化処理を実行することにより、当該所定の大きさに分割された各ブロックに対応するブロックベクタ画像データに変換する第1変換手段と、
ブロックベクタ画像データを記憶する記憶手段と、
ブロックベクタ画像データをラスタ画像データに展開する展開手段と、
ページ全体を示すページベクタ画像データを、所定の大きさのブロックに対応するブロックベクタ画像データへ変換する第2変換手段と、
画像データ転送制御手段であって、
前記入力手段から入力された画像データがラスタ画像データである場合は、前記第1変換手段でブロックベクタ画像データに変換させ、
前記入力手段から入力された画像データが前記ページベクタ画像データである場合は、前記第2変換手段でブロックベクタ画像データに変換させ、
前記第1変換手段あるいは前記第2変換手段を用いて変換された前記ブロックベクタ画像データを前記記憶手段に記憶させ、
前記記憶手段に記憶されたブロックベクタ画像データに対して前記展開手段を実行させて得られるラスタ画像データを前記出力手段から出力させる
ように、装置内での処理対象の画像データの転送を制御する画像データ転送制御手段と
を備える。
In order to solve the above problems, an image processing apparatus according to the present invention comprises the following arrangement. That is,
An image processing apparatus that executes processing on input image data,
Input means for inputting image data;
An output means for outputting image data;
First conversion means for converting raster image data into block vector image data corresponding to each block divided into the predetermined size by dividing the raster image data into blocks of a predetermined size and executing vectorization processing When,
Storage means for storing block vector image data;
Expansion means for expanding block vector image data into raster image data;
Second conversion means for converting page vector image data indicating the entire page into block vector image data corresponding to a block of a predetermined size ;
The image data transfer control means,
When the image data input from the input means is raster image data, the first conversion means converts the image data into block vector image data,
When the image data input from the input means is the page vector image data, the second conversion means converts it to block vector image data,
Storing the block vector image data converted by using the first conversion means or the second conversion means in the storage means;
Controls transfer of image data to be processed in the apparatus so that raster image data obtained by executing the expansion means on the block vector image data stored in the storage means is output from the output means. Image data transfer control means
Is provided .
本発明によれば、システム全体のシステム・リソースの制約を緩和し、かつトータルスループットを向上することができる画像処理装置及びその制御方法、プログラムを提供できる。 According to the present invention, it is possible to provide an image processing apparatus, a control method therefor, and a program that can alleviate restrictions on system resources of the entire system and improve the total throughput.
以下、本発明の実施の形態について図面を用いて詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[実施形態1]
[MFP装置概要]
図1は本発明の実施形態1の画像処理システムを構成するMFPのコントローラの詳細を示すブロック図である。
[Embodiment 1]
[Outline of MFP device]
FIG. 1 is a block diagram showing details of a controller of the MFP constituting the image processing system according to the first embodiment of the present invention.
MFP1000を制御するコントローラ1は、システムバスブリッジ(SBB)2により、CPU3、メモリコントローラ(MC)4、汎用バス6、タイル/ページベクタ変換部13、ラスタ/タイルベクタ変換部14、画像処理部15、画像データ展開部(RIP)18が接続されている。
The
ここで、このRIP18は、タイルベクタデータを展開することが可能であり、内部には、複数の小画像データ展開部(μRIP)18a〜18dが構成されている。
Here, the
MC4には、システムメモリ(Memory)5が接続されており、画像データを一時記憶するための媒体として使われる。
A system memory (Memory) 5 is connected to the
汎用バス6には、画像データを蓄積するためのHDD8を制御するハードディスクコントローラ(HDDCont)7及び操作部(例えば、LCD等から構成されるタッチパネル)10を制御する操作部コントローラ9及び、MFP1000が接続されているネットワーク12を介して、外部機器間との画像データの転送を行うインターフェースになるネットワークI/F11が接続されている。
Connected to the general-
尚、操作部10では、実施形態1及び後述する各実施形態の各種処理の実行指示の入力や、処理結果等を表示するための操作画面が表示され、ユーザは、この操作画面を介して各種操作を実現することができる。
Note that the
ラスタ/タイルベクタ変換部14には、画像処理部15が接続されている。また、画像処理部15には、スキャナ16及びプリンタ17が接続されている。
An
また、SBB2には、RIP18が接続されている。また、RIP18には、RIP18から出力されるデータを記憶するローカルメモリ(LocalMemory)19が接続されている。
Further, the
コントローラ1でハンドリングされる画像データは、外部機器との入出力はベクタ(PDL、PDF、SVGなど)形式の画像データ(以下、ベクタデータとも言う)、スキャナ16やプリンタ17との入出力はラスタ形式の画像データ(以下、ラスタデータとも言う)でインターフェースされる。
The image data handled by the
コントローラ1では、スキャンデータ(ラスタデータ)はラスタ/タイルベクタ変換部14でタイルベクタデータに変換される。また、このタイルベクタデータからRIP18の処理によって得られるタイルDLデータは、RIP18に接続されたローカルメモリ19に記憶される。
In the
従って、システムメモリ5上には、ページベクタデータとタイルベクタデータの2種類の画像のみが記憶される。つまり、画像サイズの大きいラスタデータ及びDLデータをシステムメモリ5に記憶する必要がなくなる。そのため、システムメモリ5上で確保しなければならない画像データ領域を削減することができる。
Accordingly, only two types of images of page vector data and tile vector data are stored in the
また、RIP18から出力されるDLデータはタイル単位に分割された、タイルDLデータで記憶される。そのため、従来のページ単位のページDLデータに比べ、非常に少ないメモリ容量で記憶できる。従って、ローカルメモリ19はオンチップ上に実装することが可能になり、メモリレイテンシを小さくできる。その結果、タイルデータ展開速度を高速化することが可能となる。
The DL data output from the
また、タイルベクタデータのみを画像データとして、HDD8上に記憶すれば良いので、HDD8へのアクセス速度のボトルネックが緩和され、データ処理の高速化が図れる。同時に、タイル単位で処理することにより、RIP18のコストダウンも可能となる。
Further, since only tile vector data needs to be stored on the
より高い処理能力が要求される場合は、RIP18内に備えるμRIP18a〜18dを並列に複数実装することで、処理能力を可変にすることができる。このようにすることで、コントローラ1の処理能力がシンプルに調整できることから、スケーラビリティの確保が容易なシステムを構築できる。
When higher processing capability is required, the processing capability can be made variable by mounting a plurality of μRIPs 18a to 18d provided in the
尚、本発明では、ネットワークI/F11及びスキャナ16がコントローラ1内へ画像データを入力する画像入力部として機能する。また、ネットワークI/F11及びプリンタ17が画像データを出力する画像出力部として機能する。
In the present invention, the network I /
以下に、MFP1000が実現可能な各種処理のデータフローについて説明する。
The data flow of various processes that can be realized by the
[コピー]
図2は本発明の実施形態1の画像処理システムでのコピー動作に係るデータフローを示す図である。
[copy]
FIG. 2 is a diagram showing a data flow relating to a copy operation in the image processing system according to the first embodiment of the present invention.
尚、このデータフローは、CPU3の制御の下、MFP1000を構成する各種構成要素を協調動作させることで実現される。
This data flow is realized by cooperatively operating various components constituting the
また、図2中に示す矢印は、各種データフローを示している。特に、実線矢印はラスタデータ(ラスタ画像データ)、破線矢印はタイルベクタデータ(タイルベクタ画像データ)、1点鎖線矢印はページベクタデータ(ページベクタ画像データ)のデータフローを示している。ページベクタデータ及びタイルベクタデータについては、後述のタイル/ページベクタ変換部13で詳細に説明する。
In addition, arrows shown in FIG. 2 indicate various data flows. In particular, a solid line arrow indicates the data flow of raster data (raster image data), a broken line arrow indicates tile vector data (tile vector image data), and a one-dot chain line arrow indicates page vector data (page vector image data). The page vector data and tile vector data will be described in detail in the tile / page
(S21):操作部10より、ユーザがコピー開始を指示すると、スキャナ16は原稿画像の読取動作を開始する。スキャナ16より画像処理部15へ入力された画像(R、G、B画像)は画像処理部15のクロック同期に周波数変換された後、例えば、以下の処理が実行される。
(S21): When the user gives an instruction to start copying from the
1)スキャナ16内のCCDセンサのラインピッチや色収差等のスキャナ特性の補正処理
2)色空間補正やシャープネス等の入力画像データの画質補正処理
3)入力画像データの枠消やブック枠消等の画像加工処理
(S22):画像処理部15による画像処理が終了し、画像処理部15から出力された画像データはラスタ/タイルベクタ変換部14に入力され、タイルベクタ変換処理が実行される。即ち、ラスタ/タイルベクタ変換部14は、画像データを所定の大きさのブロック(タイル)に分割する。そして、各ブロック内のラスタデータに対して、ベクトル化処理を実行して、ブロック(タイル)単位のベクタデータ(タイルベクタデータ(ブロックベクタデータ))を生成する。
1) Correction processing of scanner characteristics such as line pitch and chromatic aberration of the CCD sensor in the scanner 16 2) Image quality correction processing of input image data such as color space correction and sharpness 3) Frame deletion of input image data, book frame deletion, etc. Image processing (S22): Image processing by the
生成されたタイルベクタデータは、SBB2によりバスの調停を受け、システムメモリ5へのバス権を取得し、MC4を介して、システムメモリ5に記憶される。(尚、SBB2経由でデータパスが接続される場合は、基本的にバスの調停を受け、バス権を取得する手続きを踏むが、以降のフロー説明では省略する。)
(S23):システムメモリ5に記憶されたタイルベクタデータは、HDDCont7とMC4を介して、SBB2経由でHDD8に記憶される。HDD8にタイルベクタデータを記憶することにより、複数部の原稿をコピーする時にソーティングをして、ページ順を変えて出力したり、MFP1000内に保存画像データとして記憶したりすることができる。
The generated tile vector data is subjected to bus arbitration by the
(S23): The tile vector data stored in the
(S24):HDD8に記憶されたタイルベクタデータは、プリンタ17内のプリンタCPU(不図示)から送られてくるプリンタレディのタイミングに合わせて、HDDCont7により読み出され、SBB2、MC4を経由してシステムメモリ5に一時的に記憶される。
(S24): The tile vector data stored in the
仮に、読み取ったタイルベクタデータをHDD8からダイレクトにプリンタ17へ出力する場合、HDD8のアクセススピードが律則したり、汎用バス6のバスの混雑度合によりプリンタ17に同期して出力することが保証できなくなる。そのため、プリンタ17に同期してデータ転送を行う前に、システムメモリ5にページベクタデータをスプールしておくことで、リアルタイムなスループットを保証する。
If the read tile vector data is directly output from the
(S25):システムメモリ5に記憶されたタイルベクタデータは、プリンタ17からコントローラ1に送られる起動信号に従って、MC4によって読み出され、SBB2を介してRIP18に転送される。
(S25): The tile vector data stored in the
RIP18では、まず、タイルベクタデータを解析し、タイル単位の描画オブジェクト(タイルDLデータ)の生成(インタプリット)を実行する。生成されたタイルDLデータはローカルメモリ19に一旦記憶される。
In the
RIP18はローカルメモリ19からタイルDLデータを読み出して、タイル単位のラスタデータ(タイルラスタデータ)へと展開し、出力する。
The
実施形態1では、上述のように、RIP18内に4つの小画像データ展開部(μRIP)18a〜18dを備えている。コントローラ1は、μRIP18a〜μRIP18dを並列に動作させることにより、タイルベクタデータの展開を高速に行わせることができる。
In the first embodiment, as described above, the
ここで、画像処理システムの全体パフォーマンスは、ベクタデータ展開時間が支配的であり、このμRIPの構成数を増やすことで、パフォーマンスアップが見込める。そのため、本発明のような構成を用いると、その構成数あるいは動作させる構成数を増減させることで、容易にスケーラブルなシステムを構築することが可能となる。 Here, the overall performance of the image processing system is dominated by vector data development time, and an increase in performance can be expected by increasing the number of components of this μRIP. Therefore, when the configuration as in the present invention is used, it is possible to easily construct a scalable system by increasing or decreasing the number of components or the number of components to be operated.
(S26):RIP18によって生成されたタイルラスタデータは、画像処理部15に転送され、例えば、以下の処理が実行される。
(S26): The tile raster data generated by the
1)タイルラスタデータからページラスタデータへの変換処理
2)プリンタの特性に合わせた出力画像の色や濃度の補正処理
3)画像データを量子化して出力画像の階調変換を行う中間調処理
4)プリンタI/Fクロックに同期して画像を出力するための周波数変換処理
そして、画像処理部15で、1)〜4)の画像処理が実行されて得られたラスタデータは、プリンタ17に転送され、記録媒体上に印刷され出力される。
1) Conversion process from tile raster data to page raster data 2) Correction process of color and density of output image in accordance with printer characteristics 3) Halftone process that performs gradation conversion of output image by quantizing image data 4 ) Frequency conversion processing for outputting an image in synchronization with the printer I / F clock The raster data obtained by executing the image processing of 1) to 4) by the
[プリント]
図3は本発明の実施形態1の画像処理システムでのプリント動作に係るデータフローを示す図である。
[Print]
FIG. 3 is a diagram showing a data flow relating to a printing operation in the image processing system according to the first embodiment of the present invention.
尚、このデータフローは、CPU3の制御の下、MFP1000を構成する各種構成要素を協調動作させることで実現される。
This data flow is realized by cooperatively operating various components constituting the
(S31):ネットワーク12に接続された外部機器より、汎用バス6に接続されたネットワークI/F11がページベクタデータを受信する。そして、SBB2の先に接続されたMC4を介してシステムメモリ5に転送する。
(S31): The network I /
(S32):システムメモリ5に記憶されたページベクタデータは、タイル/ページベクタ変換部13より読み出され、タイルベクタ変換処理が実行される。即ち、タイル/ページベクタ変換部は、ページベクタデータ内に存在するオブジェクトを所定の大きさのブロック(タイル)内に収まるオブジェクトに分割する。そして、タイル単位のベクタデータ(タイルベクタデータ)を生成する。
(S32): The page vector data stored in the
(S33):生成されたタイルベクタデータは、SBB2を介して再度システムメモリ5に記憶される。
(S33): The generated tile vector data is stored again in the
(S34):システムメモリ5に記憶されたタイルベクタデータは、HDDCont7とMC4を介して、SBB2経由でHDD8に記憶される。HDD8にタイルベクタデータを記憶することにより、複数部の原稿をコピーする時にソーティングをして、ページ順を変えて出力したり、MFP1000内に保存画像データとして記憶したりすることができる。
(S34): The tile vector data stored in the
(S35):HDD8に記憶されたタイルベクタデータは、プリンタ17内のCPU(不図示)から送られてくるプリンタレディのタイミングに合わせて、HDDCont7により読み出され、SBB2、MC4を経由してシステムメモリ5に一時的に記憶される。
(S35): The tile vector data stored in the
読み取ったタイルベクタデータをHDD8からダイレクトにプリンタ17へ出力する場合、HDD8のアクセススピードが律則したり、汎用バス6のバスの混雑度合によりプリンタ17に同期して出力することが保証できなくなる。そのため、プリンタ17に同期してデータ転送を行う前に、システムメモリ5に1ページ分のベクタ画像データをスプールすることにより、リアルタイムなスループットを保証する。
When the read tile vector data is directly output from the
(S36):システムメモリ5に記憶されたタイルベクタデータは、プリンタ17からコントローラ1に送られる起動信号に従って、MC4によって読み出され、SBB2を介してRIP18に転送される。
(S36): The tile vector data stored in the
RIP18では、まず、タイルベクタデータを解析し、タイル単位の描画オブジェクト(タイルDLデータ)の生成(インタプリット)を実行する。生成されたタイルDLデータはローカルメモリ19に一旦記憶される。
In the
RIP18はローカルメモリ19からタイルDLデータを読み出して、タイル単位のラスタデータ(タイルラスタデータ)へと展開し、出力する。
The
(S37):RIP18によって生成されたタイルラスタデータは、画像処理部15に転送され、例えば、以下の処理が実行される。
(S37): The tile raster data generated by the
1)タイルラスタデータからページラスタデータへの変換処理
2)プリンタの特性に合わせた出力画像の色や濃度の補正処理
3)画像データを量子化して出力画像の階調変換を実行する中間調処理
4)プリンタI/Fクロックに同期して画像を出力するための周波数変換処理
そして、画像処理部15で、1)〜4)の画像処理が実行されて得られたラスタデータは、プリンタ17に転送され、記録媒体上に印刷され出力される。
1) Conversion processing from tile raster data to page raster data 2) Correction processing of color and density of output image in accordance with printer characteristics 3) Halftone processing for quantizing image data and executing gradation conversion of output image 4) Frequency conversion processing for outputting an image in synchronization with the printer I / F clock The raster data obtained by executing the image processing of 1) to 4) by the
[送信]
図4は本発明の実施形態1の画像処理システムでの送信動作に係るデータフローを示す図である。
[Send]
FIG. 4 is a diagram showing a data flow relating to a transmission operation in the image processing system according to the first embodiment of the present invention.
尚、このデータフローは、CPU3の制御の下、MFP1000を構成する各種構成要素を協調動作させることで実現される。
This data flow is realized by cooperatively operating various components constituting the
また、画像データをHDD8に格納するまでのデータフローについては、ラスタデータの場合は[コピー]と、ネットワーク12上の外部機器からの入力されたページベクタデータの場合は[プリント]と同一であるので、その説明は割愛する。
The data flow until image data is stored in the
尚、画像データをHDD8に格納する処理は、ユーザからの格納指示によって実行されるようにしてもよいし、[コピー]や[プリント]の処理の際にHDD8に自動的に残しておくようにしてもよい。このようにして、HDD8に格納された画像データの中から、ユーザによって指定された画像データを送信するように指示された際に行われる送信処理について説明する。
The process of storing the image data in the
(S41):HDD8に記憶されたタイルベクタデータはSBB2を介して、汎用バス6に接続されたHDDCont7より読み出され、システムメモリ5に一時的に記憶される。
(S41): The tile vector data stored in the
(S42):システムメモリ5に記憶されたタイルベクタデータは、タイル/ページベクタ変換部13より読み出され、タイルベクタ変換処理を実行する。即ち、ブロック単位に分割されたオブジェクトを結合し、ページ全体でオブジェクトを記述したページベクタデータを生成する。つまり、1ページ分のタイルベクタデータを、ページ全体のベクタデータを示すページベクタデータを生成する。
(S42): The tile vector data stored in the
(S43):生成されたページベクタデータは、SBB2を介して再度システムメモリ5に記憶される。
(S43): The generated page vector data is stored again in the
(S44):システムメモリ5中に記憶されたページベクタデータは、汎用バス6に接続されたネットワークI/F11から読み出され、ネットワーク12に接続された外部機器へと送信転送される。
(S44): The page vector data stored in the
本発明のように、外部機器に送信する際に、タイルベクタデータをページベクタデータに戻して、そのデータを構成するオブジェクト数を減らすことで、送信データ量を削減することができる。また、PDFやSVG等の汎用フォーマットへ容易に変換することができる。 As in the present invention, when transmitting to an external device, the tile vector data is returned to page vector data, and the number of objects constituting the data is reduced, so that the amount of transmission data can be reduced. Moreover, it can be easily converted into a general-purpose format such as PDF or SVG.
尚、本発明では、スキャナ16から入力したラスタデータを、外部機器に送信することも可能である。この場合は、そのラスタデータをページベクタに変換してから、外部機器へ送信することが好ましい。 In the present invention, raster data input from the scanner 16 can also be transmitted to an external device. In this case, it is preferable that the raster data is converted into a page vector and then transmitted to an external device.
[ラスタ/タイルベクタ変換部]
次に、ラスタ/タイルベクタ変換部14の処理の詳細について説明する。
[Raster / Tile vector converter]
Next, details of the processing of the raster / tile vector conversion unit 14 will be described.
図5は本発明の実施形態1のラスタ/タイルベクタ変換部が実行する処理を示すフローチャートである。 FIG. 5 is a flowchart showing processing executed by the raster / tile vector conversion unit according to the first embodiment of the present invention.
(ステップS51:ブロックセレクション(領域分割:BS)処理)
画像処理部15より入力されたラスタデータ(イメージデータ)を、文字あるいは線画を含む文字・線画領域と、ハーフトーンの写真領域、不定形の画像領域その他に分割する。さらに、文字・線画領域については、主に文字を含む文字領域と、主に表、図形等を含む線画領域とに分離し、線画領域は表領域と図形領域に分割する。
(Step S51: Block selection (area division: BS) processing)
The raster data (image data) input from the
尚、実施形態1では、処理対象中の画像の連結画素を検知し、その連結画素の外接矩形領域の形状・サイズ・画素密度等の特徴量を用いて、属性毎の領域に分離するものとするが、その他の領域分割手法を用いても構わない。 In the first embodiment, connected pixels of an image to be processed are detected and separated into regions for each attribute using feature quantities such as the shape, size, and pixel density of a circumscribed rectangular region of the connected pixels. However, other region division methods may be used.
文字領域については、文字段落ごとの纏まった塊をブロックとして矩形ブロック(文字領域矩形ブロック)にセグメント化する。線画領域では、表、図形等の個々のオブジェクト(表領域矩形ブロック、線画領域矩形ブロック)ごとに矩形ブロックにセグメント化する。 The character area is segmented into rectangular blocks (character area rectangular blocks) as a block of clusters of character paragraphs. In the line drawing area, each object (table area rectangular block, line drawing area rectangular block) such as a table or a figure is segmented into rectangular blocks.
ハーフトーンで表現される写真領域は、画像領域矩形ブロック、背景領域矩形ブロック等のオブジェクトごとに、矩形ブロックにセグメント化する。 The photograph area expressed in halftone is segmented into rectangular blocks for each object such as an image area rectangular block and a background area rectangular block.
分離された各領域は、さらに所定の大きさの領域(タイル)単位に分割され、タイル単位で、次のベクトル化処理でベクトル化される。 Each separated area is further divided into areas (tiles) of a predetermined size, and vectorized by the following vectorization process in units of tiles.
(ステップS52:ベクトル化処理)
ベクトル化処理により、各属性の領域のイメージデータをベクトルデータに変換する(ベクトル化する)。ベクトル化の方法は、例えば、以下、方法(a)〜(f)等が存在する。
(Step S52: Vectorization process)
By the vectorization process, the image data of each attribute area is converted to vector data (vectorized). Examples of vectorization methods include methods (a) to (f) below.
(a)属性領域が文字領域のとき、さらにOCRによる文字画像のコード変換を行ったり、あるいは文字のサイズ、スタイル、字体を認識し、原稿を走査して得られた文字に可視的に忠実なフォントデータに変換する。 (A) When the attribute area is a character area, the character image code conversion is further performed by OCR, or the character size, style and font are recognized, and the character obtained by scanning the document is visually faithful. Convert to font data.
(b)属性領域が文字領域であり、かつOCRによる認識が不可能であったとき、文字の輪郭を追跡し、輪郭情報(アウトライン)を線分のつながりとして表現する形式に変換する。 (B) When the attribute area is a character area and cannot be recognized by OCR, the outline of the character is traced, and the outline information (outline) is converted into a format that represents the connection of line segments.
尚、実施形態1では、文字領域に対して、OCR結果に応じて、方法(a)と方法(b)とのいずれかを用いる例を示したが、これに限るものではなく、例えば、方法(a)は用いずに全ての文字領域に対して方法(b)だけを用いるようにしても構わない。 In the first embodiment, an example in which one of the method (a) and the method (b) is used for the character area according to the OCR result is shown. However, the present invention is not limited to this. Instead of using (a), only method (b) may be used for all character regions.
(c)属性領域が図形領域のとき、図形オブジェクトの輪郭を追跡し、輪郭情報を線分のつながりとして表現する形式に変換する。 (C) When the attribute region is a graphic region, the contour of the graphic object is tracked and converted into a format in which the contour information is expressed as a connection of line segments.
(d)方法(b)及び(c)の線分形式のアウトライン情報をベジエ関数等でフィッティングして、関数情報に変換する。 (D) The outline information in the line segment format of the methods (b) and (c) is fitted with a Bezier function or the like and converted into function information.
(e)方法(c)の図形オブジェクトの輪郭情報から、図形の形状を認識し、円、矩形、多角形、等の図形定義情報に変換する。 (E) The shape of the figure is recognized from the outline information of the figure object in the method (c), and converted into figure definition information such as a circle, a rectangle, and a polygon.
(f)属性領域が図形領域であって、特定領域の表形式のオブジェクトの場合、罫線や枠線を認識し、所定のフォーマットの帳票フォーマット情報に変換する。 (F) When the attribute area is a graphic area and the object is a tabular object in the specific area, the ruled line and the frame line are recognized and converted into form format information of a predetermined format.
(ステップS53:タイルベクタデータ生成処理)
ステップS52で、方法(a)〜(f)のフォーマットコード情報、図形情報、関数情報等のコマンド定義形式情報にベクトル変換されたデータに対し、コントローラ1内でページベクタデータかタイルベクタデータかを判別するベクタタイプや、当該タイルのページ内の座標位置等の座標情報を判別するためのヘッダ情報を付加した、タイルベクタデータを生成する。このようにして、タイル単位に各種情報が付加されたタイルベクタデータをSBB2へ出力する。
(Step S53: Tile vector data generation process)
In step S52, whether or not the data converted into the command definition format information such as format code information, graphic information, and function information in the methods (a) to (f) is page vector data or tile vector data in the
(ステップS54:終了判定処理)
処理対象のラスタデータの有無を判定する。処理対象のラスタデータがある場合(ステップS54でNO)、ステップS51に戻る。一方、処理対象のラスタデータがない場合(ステップS54でYES)、処理を終了する。
(Step S54: end determination process)
The presence / absence of raster data to be processed is determined. If there is raster data to be processed (NO in step S54), the process returns to step S51. On the other hand, if there is no raster data to be processed (YES in step S54), the process ends.
[タイル/ページベクタ変換部]
次に、タイル/ページベクタ変換部13の処理の詳細を説明するにあたり、処理対象となるドキュメントデータ(画像データ)について説明する。
[Tile / page vector converter]
Next, in describing the details of the processing of the tile / page
図6は本発明の実施形態1のネットワークから転送されてくるドキュメントデータの一例を示している。 FIG. 6 shows an example of document data transferred from the network according to the first embodiment of the present invention.
図6では、ドキュメントデータ801の短手方向を「X」方向、長手方向を「Y」方向とするデバイス座標系を定義する。ドキュメントデータ801としては、ページベクタデータ、タイルベクタデータ、あるいはラスタデータ表現を含むページベクタデータ(タイルベクタデータ)、あるいはラスタデータのいずれかで構成される可能性がある。
In FIG. 6, a device coordinate system is defined in which the lateral direction of the
ここで、ドキュメントデータ801が、ページベクタデータである場合、その内容を構成する記述例について、図7を用いて説明する。
Here, when the
図7は本発明の実施形態1のページベクタデータの記述例を示す図である。 FIG. 7 is a diagram showing a description example of page vector data according to the first embodiment of the present invention.
図7において、901はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、902は文字の描画命令部分、903は図形の描画命令部分を示している。
In FIG. 7,
各描画命令部分の詳細について説明する。 Details of each drawing command portion will be described.
ドキュメント設定命令部分901において、C1〜C5は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドC1〜C5は、ドキュメント1部について1ヶ所しか付いていない。
In the document setting
これらドキュメントデータ全体に関係するコマンドには、例えば、キャラクタセットコマンド(フォント指定コマンド)、スケーラブルフォントコマンド(スケーラブルフォントを使用するか否かを指定するコマンド)、ハードリセットコマンド(以前のプリンタ使用環境をリセットするコマンド)等がある。 These commands related to the entire document data include, for example, a character set command (font specification command), a scalable font command (command to specify whether to use a scalable font), a hard reset command (previously used printer environment) Command to reset).
ここで、C1はドキュメント設定開始コマンドである。C2はドキュメントデータの出力用紙サイズを示すコマンドであり、この場合には、A4の設定になっている。C3はドキュメントデータの方向を示すコマンドである。ここでは、ポートレートとランドスケープがあるが、この場合にはポートレート(PORT)の設定になっている。 Here, C1 is a document setting start command. C2 is a command indicating the output paper size of document data. In this case, A4 is set. C3 is a command indicating the direction of document data. Here, there are a portrait and a landscape. In this case, the portrait (PORT) is set.
C4はドキュメントデータのタイプを示すコマンドであり、ページベクタで構成されるドキュメントデータであるかタイルベクタで構成されるドキュメントデータであるかを示している。この場合には、ページ(PAGE)に設定されている。C5はドキュメント設定終了コマンドである。 C4 is a command indicating the type of document data, indicating whether it is document data composed of page vectors or document data composed of tile vectors. In this case, it is set to page (PAGE). C5 is a document setting end command.
文字の描画命令部分902及び図形の描画命令部分903を構成するC6〜C22は、ドキュメントデータを出力するための各種コマンドである。
C6 to C22 constituting the character
C6はページの開始を示すコマンドである。C7は文字のフォントの種類を選択するためのコマンドであり、この場合には「1」という番号の付けられたフォントセットに設定されている。C8はフォントの大きさを設定するコマンドであり、この場合には「10ポイント」の大きさに設定されている。 C6 is a command indicating the start of a page. C7 is a command for selecting the font type of the character, and in this case, it is set to a font set numbered "1". C8 is a command for setting the font size. In this case, the size is set to "10 points".
C9は文字の色を設定するコマンドであり、順にR(赤),G(緑),B(青)各色成分の輝度を示してある。この輝度は、例えば、0から255の256段階で量子化されているものとする。この場合は、{0,0,0}に設定されている。C10は文字を描画する開始位置の座標を示すコマンドである。座標位置(X,Y)は、ページの左上を原点に指定する。この場合は、ページの{10,5}の位置から文字の描画を開始するように設定されている。C11は実際に描画する文字列(XXXX・・・YY・・・)を示すコマンドである。 C9 is a command for setting the color of the character, and sequentially indicates the luminance of each color component of R (red), G (green), and B (blue). It is assumed that this luminance is quantized in 256 levels from 0 to 255, for example. In this case, it is set to {0, 0, 0}. C10 is a command indicating the coordinates of the start position for drawing a character. The coordinate position (X, Y) is designated with the upper left corner of the page as the origin. In this case, the character drawing is set to start from the position {10, 5} on the page. C11 is a command indicating a character string (XXXX ... YY ...) to be actually drawn.
C12は図形描画の際の面の塗りつぶしの色を示すコマンドである。色の指定は、文字の色と同様である。C13は図形描画の線の色を指定するコマンドである。C14は図形描画位置の座標を示すコマンドである。 C12 is a command that indicates the fill color of the surface when drawing a graphic. The color designation is the same as the character color. C13 is a command for designating the line color of the figure drawing. C14 is a command indicating the coordinates of the graphic drawing position.
C15は円弧を描画する際の半径を指定するコマンドであり、この場合、「10」座標単位を示している。C16は閉円弧の描画をするコマンドである。コマンド内の2個のパラメータは円弧を描画する際の描画開始角度と終了角度を示している。垂直情報を0度として、この場合には0度から90度の円弧を描画することを示している。 C15 is a command for designating a radius for drawing an arc, and in this case, indicates a “10” coordinate unit. C16 is a command for drawing a closed arc. Two parameters in the command indicate a drawing start angle and an end angle when drawing an arc. The vertical information is assumed to be 0 degree, and in this case, an arc of 0 degree to 90 degrees is drawn.
C17〜C21は、C12〜C16までのコマンドと同様に、図形描画の際の面、線の色の指定、位置の指定等のコマンドである。C22はページの終了を示すコマンドである。 C17 to C21 are commands for designating a surface, a line color, and a position for drawing a figure, like the commands C12 to C16. C22 is a command indicating the end of the page.
一方、ドキュメントデータ801がタイルベクタデータである場合について、図8を用いて説明する。
On the other hand, the case where the
図8は本発明の実施形態1のタイルベクタデータの例を示す図である。 FIG. 8 is a diagram showing an example of tile vector data according to the first embodiment of the present invention.
図8では、図6のドキュメントデータ801(ページベクタデータ)を、ブロック(タイル)単位で分割したタイルベクタデータ(ドキュメントデータ1001)の一例を示している。 FIG. 8 shows an example of tile vector data (document data 1001) obtained by dividing the document data 801 (page vector data) of FIG. 6 in units of blocks (tiles).
図8では、ドキュメントデータ1001の短手方向を「X」方向、長手方向を「Y」とするデバイス座標系を定義する。また、図中のX方向に配列された数列は、X方向のタイルID、Y方向に配列された数列は、Y方向のタイルIDを表す。A〜Dは、それぞれタイルID=(0,0)、(1,0)、(2、4)、(1,5)の位置にあるタイルデータを示している。
In FIG. 8, a device coordinate system is defined in which the lateral direction of the
ここで、このドキュメントデータ1001が、タイルベクタデータである場合、その内容を構成する記述例について、図9を用いて説明する。
Here, when the
図9は本発明の実施形態1のタイルベクタデータの記述例を示す図である。 FIG. 9 is a diagram showing a description example of tile vector data according to the first embodiment of the present invention.
図9において、1101はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、1102は描画命令部分全体、1103〜1106はそれぞれタイルA,B,C,Dの描画命令部分を示している。1107、1108はそれぞれタイルDの文字の描画命令部分、図形の描画命令部分を示している。
In FIG. 9, reference numeral 1101 denotes a document setting command part related to setting of the entire document data, 1102 denotes the entire drawing command part, and 1103 to 1106 denote drawing command parts of tiles A, B, C, and D, respectively.
各描画命令の詳細について説明する。 Details of each drawing command will be described.
ドキュメント設定命令部分1101において、C1〜C5は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドC1〜C5は、ドキュメント1部について1ケ所しか付いていない。 In the document setting command part 1101, C1 to C5 are commands related to the entire document. Therefore, these commands C1 to C5 have only one place for one document.
これらドキュメントデータ全体に関係するコマンドには、例えば、キャラクタセットコマンド(フォント指定コマンド)、スケーラブルフォントコマンド(スケーラブルフォントを使用するか否かを指定するコマンド)、ハードリセットコマンド(以前のプリンタ使用環境をリセットするコマンド)等がある。 These commands related to the entire document data include, for example, a character set command (font specification command), a scalable font command (command to specify whether to use a scalable font), a hard reset command (previously used printer environment) Command to reset).
ここで、C1はドキュメント設定開始コマンドである。C2はドキュメントデータの出力用紙サイズを示すコマンドであり、この場合には、A4の設定になっている。C3はドキュメントデータの方向を示すコマンドである。ここでは、ポートレートとランドスケープがあるが、この場合にはポートレート(PORT)の設定になっている。 Here, C1 is a document setting start command. C2 is a command indicating the output paper size of document data. In this case, A4 is set. C3 is a command indicating the direction of document data. Here, there are a portrait and a landscape. In this case, the portrait (PORT) is set.
C4はドキュメントデータのタイプを示すコマンドであり、ページベクタで構成されるドキュメントデータあるのかタイルベクタで構成されるドキュメントデータあるかを示している。この場合には、タイル(TILE)に設定されている。C5はドキュメント設定終了コマンドである。 C4 is a command indicating the type of document data, and indicates whether there is document data composed of page vectors or document data composed of tile vectors. In this case, the tile is set to TILE. C5 is a document setting end command.
描画命令部分1102を構成するC6〜C500は、ドキュメントデータを出力するための各種コマンドである。
C6 to C500 constituting the
C6はページの開始を示すコマンドである。C7は図8のタイルAの描画コマンドの開始を示すコマンドである。ここで、TileStart(0,0)中の2個のパラメータは、ドキュメントデータ内におけるタイルIDを示している。C8はタイルAの描画コマンドの終了を示すコマンドである。タイルAのように、そのタイル内にオブジェクトが何も存在しない場合は、タイルの開始と終了を示すコマンドだけが記述される。 C6 is a command indicating the start of a page. C7 is a command indicating the start of the drawing command for tile A in FIG. Here, two parameters in TileStart (0, 0) indicate tile IDs in the document data. C8 is a command indicating the end of the tile A drawing command. When there is no object in the tile as in the tile A, only commands indicating the start and end of the tile are described.
C9は図8のタイルBの描画コマンドの開始を示すコマンドである。C10は文字のフォントの種類を選択するためのコマンドであり、この場合には「1」という番号の付けられたフォントセットに設定されている。C11はフォントの大きさを設定するコマンドであり、この場合には「10ポイント」の大きさに設定されている。 C9 is a command indicating the start of the drawing command for tile B in FIG. C10 is a command for selecting the font type of the character, and in this case, it is set to the font set numbered “1”. C11 is a command for setting the font size. In this case, the size is set to "10 points".
C12は文字の色を設定するコマンドであり、順にR(赤),G(緑),B(青)各色成分の輝度を示してある。この輝度は、例えば、0から255の256段階で量子化されているものとする。この場合は、{0,0,0}に設定されている。C13は文字を描画する開始位置の座標を示すコマンドである。座標位置(X,Y)は、タイルの左上を原点に指定する。この場合は、タイルの{0,5}の位置から文字の描画を開始するように設定されている。C14は実際に描画する文字列(XXXX)を示すコマンドである。C15はタイルBの描画コマンドの終了を示すコマンドである。 C12 is a command for setting a character color, and indicates the luminance of each color component of R (red), G (green), and B (blue) in order. It is assumed that this luminance is quantized in 256 levels from 0 to 255, for example. In this case, it is set to {0, 0, 0}. C13 is a command indicating the coordinates of the start position for drawing a character. The coordinate position (X, Y) is designated with the upper left corner of the tile as the origin. In this case, the drawing of characters is set to start from the position of {0, 5} on the tile. C14 is a command indicating a character string (XXXX) to be actually drawn. C15 is a command indicating the end of the tile B drawing command.
C100は図8のタイルCの描画コマンドの開始を示すコマンドである。C101は図形描画の際の面の塗りつぶしの色を示すコマンドである。色の指定は、文字の色と同様である。C102は図形描画の線の色を指定するコマンドである。C103は図形を描画する位置の座標を示すコマンドである。 C100 is a command indicating the start of the drawing command for tile C in FIG. C101 is a command that indicates the fill color of the surface when drawing a figure. The color designation is the same as the character color. C102 is a command for designating the color of a line for drawing graphics. C103 is a command indicating the coordinates of the position to draw the figure.
C104は円弧を描画する際の半径を指定するコマンドであり、この場合、「10」座標単位を表している。C105は閉円弧の描画をするコマンドである。コマンド内の2個のパラメータは円弧を描画する際の描画開始角度と終了角度を示している。垂直情報を0度として、この場合には0度から90度の円弧を描画することを示している。C106はタイルCの描画コマンドの終了を示すコマンドである。 C104 is a command for designating a radius for drawing an arc, and in this case, represents a "10" coordinate unit. C105 is a command for drawing a closed arc. Two parameters in the command indicate a drawing start angle and an end angle when drawing an arc. The vertical information is assumed to be 0 degree, and in this case, an arc of 0 degree to 90 degrees is drawn. C106 is a command indicating the end of the drawing command for tile C.
C120は図8のタイルDの描画コマンドの開始を示すコマンドである。C121〜C130は、C9〜C15のコマンドと同様に文字の描画命令による文字のフォントの種類、色、大きさ等を指定するコマンド、及びC100〜C106まてのコマンドと同様に図形の描画命令による図形の面、線の色、位置等を指定するコマンドである。C131はタイルDの描画コマンドの終了を示すコマンドである。 C120 is a command indicating the start of a drawing command for the tile D in FIG. C121 to C130 are commands that specify the font type, color, size, etc. of a character by a character drawing command as in the commands of C9 to C15, and graphics drawing commands as in the commands of C100 to C106. This command specifies the surface of a figure, the color of the line, the position, and the like. C131 is a command indicating the end of the drawing command for tile D.
C500はページの終了を示すコマンドである。 C500 is a command indicating the end of the page.
次に、タイル/ページベクタ変換部13の処理の詳細について、図10を用いて説明する。
Next, details of the processing of the tile / page
図10は本発明の実施形態1のタイル/ページベクタ変換部が実行する処理を示すフローチャートである。 FIG. 10 is a flowchart showing processing executed by the tile / page vector conversion unit according to the first embodiment of the present invention.
尚、このタイル/ページベクタ変換部13では、ページベクタデータとタイルベクタデータ間での相互変換を行うことができる。あるいは、タイル/ページベクタ変換部13は、ページベクタデータからタイルベクタデータへ変換する変換部と、タイルベクタデータからページベクタデータへ変換する変換部で構成されていても良い。
The tile / page
(ステップS601)
まず、システムメモリ5中に記憶されたドキュメントデータ(ベクタデータ)から、ヘッダ部分に相当するコマンド列を読み込み、処理対象となるドキュメントデータ全体に関するコマンド部分を解析する。具体的には、図7または図9のC1〜C5に相当する部分の内容を解析する。
(Step S601)
First, the command sequence corresponding to the header portion is read from the document data (vector data) stored in the
(ステップS602)
解析の結果に基づいて、ドキュメントデータのタイプが、ページベクタデータであるか否かを判定する。ページベクタデータである場合(ステップS602でYES)、ステップS603以降のステップに進み、ページベクタ→タイルベクタ変換を実行する。一方、ページベクタデータでない場合、つまり、タイルベクタデータである場合(ステップS602でNO)、ステップS610以降のステップに進み、タイルベクタ→ページベクタ変換を実行する。
(Step S602)
Based on the analysis result, it is determined whether or not the document data type is page vector data. If it is page vector data (YES in step S602), the process proceeds to step S603 and subsequent steps, and page vector → tile vector conversion is executed. On the other hand, if it is not page vector data, that is, if it is tile vector data (NO in step S602), the process proceeds to step S610 and subsequent steps, and tile vector → page vector conversion is executed.
(ステップS603)
ページベクタデータから、オブジェクトを記述するコマンド列を読み込む。
(Step S603)
Reads a command sequence that describes an object from page vector data.
(ステップS604)
ステップS603で読み込んだコマンド列を解析し、記述されているオブジェクトの大きさが分割したいタイルサイズを超えているか否かを判定する。つまり、オブジェクトの更なる分割が必要であるか否かを判定する。
(Step S604)
The command sequence read in step S603 is analyzed, and it is determined whether the size of the described object exceeds the tile size to be divided. That is, it is determined whether further division of the object is necessary.
オブジェクトの大きさが分割したいタイルサイズを超えていない場合(ステップS604でNO)、ステップS605をスキップして、ステップS606に進む。一方、オブジェクトの大きさが分割したいタイルサイズを超えている場合(ステップS604でYES)、ステップS605に進む。 If the size of the object does not exceed the tile size to be divided (NO in step S604), step S605 is skipped and the process proceeds to step S606. On the other hand, if the size of the object exceeds the tile size to be divided (YES in step S604), the process proceeds to step S605.
(ステップS605)
ここでは、入力されたオブジェクトの分割処理を実行する。
(Step S605)
Here, the input object is divided.
例えば、図7のページベクタデータでは、文字の描画命令部分902で、「XXXX・・・YY・・・」を含む全ての文字列の描画命令を記述している。これに対して、図9のタイルベクタデータでは、例えば、タイルBに対する描画命令部分1104では、「XXXX」の文字列の描画命令しか記述されていない。
For example, in the page vector data of FIG. 7, a character
従って、タイルベクタデータでは、文字列が複数のタイルに跨がる場合は、その文字列を途中(タイル境界)で分割し、分割された後続の文字列は別の文字列として、次のタイルに記述を行う。次のタイルに記述が収まらなかったら、同様にまたタイルに含まれる文字列を分割し、分割された全ての文字列がタイルサイズに収まるまで繰り返す。文字列をどこで切るかは、フォントの種類、サイズからタイル内に収まる文字数を算出し、その数だけの文字を抽出する。 Therefore, in tile vector data, when a character string spans multiple tiles, the character string is divided in the middle (tile boundary), and the divided subsequent character string is set as another character string, and the next tile. Describe in. If the description does not fit in the next tile, similarly, the character string included in the tile is divided again, and the process is repeated until all the divided character strings fit within the tile size. To determine where to cut the character string, the number of characters that fit in the tile is calculated from the type and size of the font, and that many characters are extracted.
例えば、図7のページベクタデータの文字の描画命令部分902に対して、タイル内に収まる文字数は4つとして算出され、図7のコマンドC11の記述は、タイルBに対する描画命令を構成するコマンドC13の記述に変換される。
For example, the number of characters that can be contained in the tile is calculated as four for the character
また、図形の描画命令部分903では、コマンドC17〜C21で記述されている図形(図6の3/4円)は、図8のタイルベクタデータを構成するタイルの1つには収まらない。そのため、この図形は、タイルDを含む複数のタイルに分割される。図形の分割は、図形の描画位置や図形の形、大きさからタイルの境界領域と接する部分を算出し、その境界とタイル内に収まっている図形の部分領域で構成される閉領域を新たな図形として記述し直す。
Further, in the graphic
図7の図形の描画命令部分903で記述される図形(図6の3/4円)は、図9では、その左下の部分領域が、図形の描画命令部分1108のコマンドC126からC130のような1/4円の記述に変換される。また、残りの領域も、同様な形の1/4円の記述に変換される。
The figure (3/4 circle in FIG. 6) described in the figure drawing
(ステップS606)
入力されたオブジェクトのコマンドの記述に対し、タイルベクタデータ内での描画位置へ変更するために、座標位置の変換を行う。ページベクタデータでは、ページの左上からの位置を記述していたのに対し、タイルベクタデータではタイルの左上からの位置に記述し直す。描画位置をタイル内の座標で記述することにより、座標計算に要するデータ長を削減することが可能になる。
(Step S606)
In order to change the drawing position in the tile vector data for the input object command description, the coordinate position is converted. In the page vector data, the position from the upper left of the page is described, whereas in the tile vector data, the position is described from the upper left of the tile. By describing the drawing position with the coordinates in the tile, the data length required for coordinate calculation can be reduced.
(ステップS607)
1つのオブジェクトに対するコマンドの記述変換が終了したら、ページ内の全てのオブジェクトのコマンドの記述変換が終了したか否かを判定する。終了していない場合(ステップS607でNO)、ステップS603に戻り、次のコマンドに対して、ステップS603〜ステップS607の処理を繰り返す。一方、終了した場合(ステップS607でYES)、ステップS608へ進む。
(Step S607)
When the command description conversion for one object is completed, it is determined whether the command description conversion for all objects in the page is completed. If not completed (NO in step S607), the process returns to step S603, and the processes in steps S603 to S607 are repeated for the next command. On the other hand, when the process is completed (YES in step S607), the process proceeds to step S608.
(ステップS608)
全てのコマンドの記述変換が終了したら、図8のように分割されたタイルベクタデータ中の各タイルに対し、ページの左上から順にタイルベクタデータとしてシステムメモリ5への書出を実行する。タイルベクタデータとしては、ステップS605及びステップS606で記述されたコマンドに対し、タイルの開始と終了を示すコマンドを追加するようなフォーマットで記述される。
(Step S608)
When the description conversion of all commands is completed, writing to the
まず、ページの一番最初のコマンドの書出時点では、システムメモリ5内にオブジェクトがない状態のタイルベクタを生成しておく。オブジェクトがないタイルベクタとしては、例えば、図8のタイルAがある。このタイルAは、タイルの開始と終了を示すコマンドC7及びC8のみから構成される描画命令部分1103(図9)で記述される。
First, at the time of writing the first command on the page, a tile vector in which there is no object in the
次に、ステップS603〜ステップS607で処理されたコマンドが存在する座標のタイルに対し、オブジェクトの記述を追加する。例えば、図8のタイルBの場合は、コマンドC9〜C15から構成される描画命令部分1104(図9)で記述される。また、タイルDのように、同じタイルに複数のオブジェクトが存在する場合には、描画命令部分1106のように、文字の描画命令部分1107を構成するオブジェクト記述と、図形の描画命令部分1108を構成するオブジェクト記述を列記する。
Next, an object description is added to the coordinate tile where the command processed in steps S603 to S607 exists. For example, the tile B in FIG. 8 is described by a drawing command portion 1104 (FIG. 9) including commands C9 to C15. When there are a plurality of objects in the same tile, such as the tile D, an object description that forms the character
(ステップS609)
1つのオブジェクトのタイルベクタへの書出が終了すると、そのページのオブジェクトの記述が全て終了したか否かを判定する。終了していない場合(ステップS609でNO)、ステップS603に戻る。一方、終了した場合(ステップS609でYES)、処理を終了する。
(Step S609)
When the writing of one object to the tile vector is finished, it is determined whether or not all the descriptions of the objects on the page are finished. If not completed (NO in step S609), the process returns to step S603. On the other hand, when the processing is completed (YES in step S609), the processing is ended.
一方、ステップS602で、ドキュメントデータのタイプが、タイルベクタデータである場合について説明する。 On the other hand, the case where the document data type is tile vector data in step S602 will be described.
(ステップS610)
タイルベクタデータから、オブジェクトを記述するコマンド列を読み込む。
(Step S610)
Reads a command sequence that describes an object from tile vector data.
(ステップS611)
ステップS610で読み込んだコマンド列を解析し、記述されているオブジェクトがそれより以前に読み込まれたタイルと結合可能であるか否かを判定する。結合可能でない場合(ステップS611でNO)、ステップS612をスキップし、ステップS613に進む。一方、結合可能である場合(ステップS611でYES)、ステップS612に進む。
(Step S611)
The command sequence read in step S610 is analyzed, and it is determined whether or not the described object can be combined with tiles read before that time. If it cannot be combined (NO in step S611), step S612 is skipped and the process proceeds to step S613. On the other hand, if the connection is possible (YES in step S611), the process proceeds to step S612.
尚、オブジェクトが結合可能であるか否かの判定は、読み込んだコマンドの座標位置や、図形の種別等を基に判定する。また、文字列の場合は、フォントサイズやフォントの種類を基に判定する。 Whether or not the objects can be combined is determined based on the coordinate position of the read command, the type of figure, and the like. In the case of a character string, the determination is made based on the font size and font type.
(ステップS612)
オブジェクトの結合処理を実行する。この処理は、基本的には、ステップS605の処理手順を逆にすることで実現する。
(Step S612)
Executes object merge processing. This processing is basically realized by reversing the processing procedure of step S605.
(ステップS613)
入力されたオブジェクトのコマンドの記述に対し、ページベクタデータ内での描画位置へ変更するために、座標位置の変換を行う。タイルベクタデータでは、タイルの左上からの位置を記述していたのに対し、ページベクタデータでは、ページの左上からの位置に記述し直す。
(Step S613)
In order to change to the drawing position in the page vector data for the input object command description, the coordinate position is converted. In the tile vector data, the position from the upper left of the tile is described, whereas in the page vector data, the position is rewritten from the upper left of the page.
(ステップS614)
1つのオブジェクトに対するコマンドの記述変換が終了したら、タイル内の全てのオブジェクトのコマンドの記述変換が終了したか否かを判定する。終了していない場合(ステップS614でNO)、ステップS610に戻り、次のコマンドに対して、ステップS610〜ステップS613の処理を繰り返す。一方、終了した場合(ステップS614でYES)、ステップS615へ進む。
(Step S614)
When the command description conversion for one object is completed, it is determined whether or not the command description conversion for all objects in the tile is completed. If not completed (NO in step S614), the process returns to step S610, and the processes in steps S610 to S613 are repeated for the next command. On the other hand, when the process is completed (YES in step S614), the process proceeds to step S615.
(ステップS615)
全てのコマンドの記述変換が終了したら、ページベクタデータとしてシステムメモリ5への書出を実行する。ページベクタデータとしては、ステップS612及びステップS613で記述されたコマンドに対し、タイルの開始と終了を示すコマンドを削除したようなフォーマットで記述される。
(Step S615)
When the description conversion of all commands is completed, writing to the
まず、ページ内の一番最初のタイルに記述されたコマンドの書出時点では、システムメモリ5内にオブジェクトがない状態のページベクタを生成しておく。これは、図7の記述を用いて説明すると、コマンドC1〜C6、コマンドC22だけで記述されるページベクタである。
First, at the time of writing the command described in the first tile in the page, a page vector in which there is no object in the
次に、ステップS610〜ステップS613で処理されたオブジェクトの記述を追加する。図7の記述の場合、文字の描画命令部分902を構成するコマンドC7〜C11がそれにあたる。この場合のオブジェクトは、文字列{XXXX・・・YY・・}を示しているが、これは、ステップS612で、図9の文字の描画命令部分1104や1107等で記述される各タイル中の文字列を順次結合したオブジェクトの記述である。
Next, a description of the object processed in steps S610 to S613 is added. In the case of the description in FIG. 7, the commands C7 to C11 constituting the character
(ステップS616)
1つコマンドのページベクタへの書出が終了すると、そのタイルのオブジェクトの記述が全て終了したか否かを判定する。終了していない場合(ステップS616でNO)、ステップS610に戻る。一方、終了した場合(ステップS616でYES)、ステップS617に進む。
(Step S616)
When the writing of one command to the page vector is completed, it is determined whether or not the description of all the objects of the tile has been completed. If not completed (NO in step S616), the process returns to step S610. On the other hand, when the process is completed (YES in step S616), the process proceeds to step S617.
(ステップS617)
1つのタイルベクタデータの書出が終了すると、そのページのタイルベクタデータの記述に対する処理が全て終了したか否かを判定する。終了していない場合(ステップS617でNO)、ステップS610に戻る。一方、終了した場合(ステップS617でYES)、処理を終了する。
(Step S617)
When the writing of one tile vector data is finished, it is determined whether or not all the processes for the description of the tile vector data on the page are finished. If not completed (NO in step S617), the process returns to step S610. On the other hand, when the processing is completed (YES in step S617), the processing is ended.
[画像データ展開部(RIP)]
次に、コントローラ1中の画像データ展開部18の詳細について説明する。
[Image data development unit (RIP)]
Next, details of the image
まず、コピーやプリント、送信等の画像データに対する処理を開始する前に、ローカルメモリ19の初期化と、作成するオブジェクトの解像度の設定を行っておく。実施形態1では、生成解像度は600dpiとし、ポイントサイズやmm等の単位系で指定された印刷コマンドは、この値を用いてドット数に変換されることになる。
First, before starting processing for image data such as copy, print, and transmission, the
以下では、画像データ展開部18によって、タイルベクタデータ展開を実行する場合の処理について、図11を用いて説明する。
Hereinafter, processing when tile vector data expansion is executed by the image
図11は本発明の実施形態1の画像データ展開部が実行する処理を示すフローチャートである。 FIG. 11 is a flowchart showing processing executed by the image data development unit according to the first embodiment of the present invention.
(ステップS71)
システムメモリ5より、SBB2を経由して、RIP18に一定サイズ分入力されたタイルベクタデータは、ローカルメモリ19のタイルベクタ領域に一時的に格納する。
(Step S71)
Tile vector data input from the
(ステップS72)
タイルベクタデータをローカルメモリ19に格納したら、RIP18内のμRIP18a〜18dのいずれかが、タイルベクタデータを展開可能(処理可能)であるか否かを判定する。μRIP18a〜18dのいずれもタイルベクタデータの展開(処理)中である場合(ステップS72でNO)、それらのいずれかが展開可能になるまで待機する。
(Step S72)
When the tile vector data is stored in the
(ステップS73)
μRIP18a〜18dのいずれかがタイルベクタデータを展開可能になれば、予め定められた文法に従って、ローカルメモリ19に格納されたタイルベクタデータのコマンド解析を実行する。
(Step S73)
If any of the μRIPs 18a to 18d can expand the tile vector data, the command analysis of the tile vector data stored in the
(ステップS74)
コマンド解析結果に基づいて、コマンドが描画命令であるか排紙命令であるかを判定する。描画命令である場合(ステップS74でYES)、ステップS75に進む。一方、排紙命令である場合(ステップS74でNO)、ステップS76に進む。
(Step S74)
Based on the command analysis result, it is determined whether the command is a drawing command or a paper discharge command. If it is a drawing command (YES in step S74), the process proceeds to step S75. On the other hand, if it is a paper discharge command (NO in step S74), the process proceeds to step S76.
(ステップS75)
コマンドが描画命令である場合、描画オブジェクト(DLデータ)の生成を実行する。タイルベクタデータ内のコマンドが文字の描画命令である場合、そのコマンドで指定されるフォントの書体や、文字サイズ、文字コードを元にフォントオブジェクトを生成して、ローカルメモリ19のDLデータ領域に格納する。また、文字以外の描画命令、つまり、図形の描画命令である場合、そのコマンドで指定された図形(ラインや円、多角形等)の描画オブジェクトを生成し、ローカルメモリ19のDLデータ領域に格納する。
(Step S75)
When the command is a drawing command, a drawing object (DL data) is generated. If the command in the tile vector data is a character drawing command, a font object is generated based on the font type, character size, and character code specified by the command, and stored in the DL data area of the
また、コマンドが描画命令で指定されない印刷データである場合には、この印刷データに応じて印刷位置移動や印刷環境設定等の印刷制御処理を実行し、一単位分のコマンド解釈を終了する。 If the command is print data not specified by the drawing command, print control processing such as print position movement and print environment setting is executed according to this print data, and command interpretation for one unit is completed.
これは、タイルベクタデータ内のコマンド全ての解釈が終了するまで、上記処理を繰り返す。 This repeats the above process until interpretation of all commands in the tile vector data is completed.
(ステップS76)
コマンドが排紙命令である場合、μRIPは、ローカルメモリ19上のタイルラスタ領域に空き領域があるか否かを判定する。空き領域がない場合(ステップS76でNO)、他のμRIPの処理が終了して、タイルラスタ領域が解放されて、空き領域ができるまで待機する。一方、空き領域がある場合(ステップS76でYES)、ステップS77に進む。
(Step S76)
If the command is a paper discharge command, the μRIP determines whether there is an empty area in the tile raster area on the
(ステップS77)
タイルラスタ領域に空き領域がある場合、ステップS75で生成された描画オブジェクトを読み出し、タイルラスタ領域に描画(ラスタライズ)する。この時、生成解像度が600dpiであれば、タイルラスタ領域には600dpiの画像としてラスタライズされる。そして、描画が終了したタイルラスタ画像は、SBB2を介して、画像処理部15に出力する。
(Step S77)
If there is an empty area in the tile raster area, the drawing object generated in step S75 is read out and drawn (rasterized) in the tile raster area. At this time, if the generation resolution is 600 dpi, the tile raster area is rasterized as a 600 dpi image. Then, the tile raster image that has been drawn is output to the
(ステップS78)
ステップS75またはステップS77で一つのタイルベクタデータに対する、コマンド解析または描画処理が終了したら、タイルベクタ領域に格納したタイルベクタデータのすべてに対して処理が終了したか否かを判定する。未処理のタイルベクタデータがある場合(ステップS78でNO)、ステップS72に戻り、次のタイルベクタデータの処理を続ける。一方、未処理のタイルベクタデータがない場合(ステップS78でYES)、ステップS79に進む。
(Step S78)
When command analysis or drawing processing for one tile vector data is completed in step S75 or step S77, it is determined whether or not processing has been completed for all tile vector data stored in the tile vector area. If there is unprocessed tile vector data (NO in step S78), the process returns to step S72, and processing of the next tile vector data is continued. On the other hand, if there is no unprocessed tile vector data (YES in step S78), the process proceeds to step S79.
(ステップS79)
1ページ分のタイルベクタデータに対し、全ての処理が終了したか否かを判定する。未処理のタイルベクタデータがある場合(ステップS79でNO)、ステップS71に戻り、システムメモリ5から、タイルベクタデータを読み出して、処理を続ける。一方、未処理のタイルベクタデータがない場合(ステップS79でYES)、処理を終了する。
(Step S79)
It is determined whether or not all processing has been completed for tile vector data for one page. If there is unprocessed tile vector data (NO in step S79), the process returns to step S71, the tile vector data is read from the
以上説明したように、実施形態1によれば、システムメモリ上に、入力された画像データをページベクタデータとタイルベクタデータの2種類の形式の画像データのみを記憶する構成を採用する。これにより、画像サイズの大きいラスタデータ及びDLデータをシステムメモリに記憶する必要がなくなる。そのため、システムメモリ上で確保しなければならない画像データ領域を削減することができる。 As described above, according to the first embodiment, a configuration is adopted in which only the image data in two types of page vector data and tile vector data is stored in the system memory as input image data. This eliminates the need to store raster data and DL data having a large image size in the system memory. Therefore, the image data area that must be secured on the system memory can be reduced.
また、外部機器に画像データを送信する際にはタイルベクタデータをページベクタデータに変換して、画像データ内に存在するオブジェクト数を減らすことで、送信データ量を削減することができる。また、送信先への画像データをページベクタデータで送信することで、送信先では、受信した画像データ(ページベクタデータ)を、PDFやSVG等の汎用フォーマットへ容易に変換することができる。 Further, when transmitting image data to an external device, the amount of transmission data can be reduced by converting the tile vector data into page vector data and reducing the number of objects existing in the image data. Further, by transmitting the image data to the transmission destination as page vector data, the transmission destination can easily convert the received image data (page vector data) into a general-purpose format such as PDF or SVG.
また、データスプールをベクタデータで行うことにより、システムの解像度依存性が解消され、画質とシステムの処理速度向上が並行して実現できるようになる。つまり、コストパフォーマンスの高いシステムを構成することができる。 Further, by performing data spooling with vector data, resolution dependency of the system is eliminated, and image quality and system processing speed can be improved in parallel. That is, a system with high cost performance can be configured.
さらに、システム内の画像データをベクタデータで取り扱うことにより、蓄積画像データの検索性の向上や、ラスタデータをオブジェクト化して再利用するようなPOD印刷に対応するための画像加工を高速化に寄与する等の、よりインテリジェントなシステムを実現することができる。 Furthermore, handling image data in the system as vector data contributes to improving the searchability of stored image data and speeding up image processing to support POD printing in which raster data is converted into objects and reused. A more intelligent system can be realized.
また、ベクタデータに展開するための画像データ展開部を複数個用意して並列に動作させることで、タイルベクタデータの展開を高速化することができる。また、動作させる画像データ展開部の個数を制御することで、用途や目的に応じて、その処理機能を可変にできるスケーラブルなシステムを構築することが可能となる。 Further, by preparing a plurality of image data expansion units for expanding into vector data and operating them in parallel, the expansion of tile vector data can be accelerated. In addition, by controlling the number of image data development units to be operated, it is possible to construct a scalable system that can vary its processing function according to the application and purpose.
[実施形態2]
実施形態1では、MFPから外部機器への送信を行う際には、タイルベクタデータをページベクタデータに変換して、データ量の削減や画像データの汎用性を高めているが、これに限定されない。例えば、画像データを記憶する際にタイルベクタデータだけではなく、予めページベクタデータも併せて記憶するようにしても良い。このような構成の場合、送信の際に、タイルベクタデータからページベクタデータへ変換することなく、外部機器にページベクタデータを送信することもできる。
[Embodiment 2]
In the first embodiment, when transmitting from the MFP to the external device, the tile vector data is converted into page vector data to reduce the data amount and improve the versatility of the image data. However, the present invention is not limited to this. . For example, when storing image data, not only tile vector data but also page vector data may be stored in advance. In such a configuration, page vector data can be transmitted to an external device without converting tile vector data to page vector data at the time of transmission.
尚、システム全体の構成は、実施形態1と同様なので、その詳細については割愛する
以下、実施形態2における画像処理システムでの送信動作について説明する。
The configuration of the entire system is the same as that of the first embodiment, and the details thereof will be omitted. The transmission operation in the image processing system according to the second embodiment will be described below.
[送信]
図12は本発明の実施形態2の画像処理システムでの送信動作に係るデータフローを示す図である。
[Send]
FIG. 12 is a diagram showing a data flow relating to a transmission operation in the image processing system according to the second embodiment of the present invention.
尚、このデータフローは、CPU3の制御の下、MFP1000を構成する各種構成要素を協調動作させることで実現される。
This data flow is realized by cooperatively operating various components constituting the
(S131):実施形態2では、1つの画像データに対し、HDD8にはタイルベクタデータとページベクタデータとが関連付けて記憶される。送信時は、その内のページベクタデータが選択され、SBB2を介して、汎用バス6に接続されたHDDCont7より読み出され、システムメモリ5に一時的に記憶される。
(S131): In the second embodiment, tile vector data and page vector data are stored in association with each other in the
(S132):システムメモリ5に記憶されたページベクタデータは、汎用バス6に接続されたネットワークI/F11から読み出され、ネットワーク12に接続された外部機器へと転送される。
(S132): The page vector data stored in the
尚、実施形態2では、実施形態1に比べて、HDD8に記憶すべき画像データ容量が多くなるが、送信時のフローが非常に簡略化される。
In the second embodiment, the amount of image data to be stored in the
以上説明したように、実施形態2によれば、実施形態1で説明した効果に加えて、1つの画像データに対して、タイルベクタデータと、それに対応するページベクタデータを併せてHDDに記憶管理しておく。これにより、記憶管理されている2種類のベクタデータをHDDから適宜選択するだけで、画像データの出力時により適切なベクタデータを、変換処理を行うことなく、出力することができる。 As described above, according to the second embodiment, in addition to the effects described in the first embodiment, tile vector data and corresponding page vector data are stored and managed in the HDD for one image data. Keep it. As a result, it is possible to output more appropriate vector data without performing the conversion process by simply selecting two types of vector data stored and managed from the HDD as appropriate.
[実施形態3]
実施形態3では、実施形態1の図10のステップS605のオブジェクトの分割処理の応用例について説明する。
[Embodiment 3]
In the third embodiment, an application example of the object dividing process in step S605 of FIG. 10 of the first embodiment will be described.
実施形態3では、タイル/ページベクタ変換部13において、特に、処理対象のオブジェクトが曲線オブジェクトである場合に、その曲線オブジェクトの分割処理について説明する。
In the third embodiment, a process for dividing a curve object in the tile / page
図13は本発明の実施形態3のタイルベクタデータの例を示す図である。 FIG. 13 is a diagram showing an example of tile vector data according to the third embodiment of the present invention.
図13では、ドキュメントデータ1401の短手方向を「X」方向、長手方向を「Y」と定義する。また、図中のX方向に配列された数列は、X方向のタイルID、Y方向に配列された数列は、Y方向のタイルIDを表す。A〜Cは、それぞれタイルID=(0,0)、(2,3)、(3,3)の位置にあるタイルベクタを示している。
In FIG. 13, the short direction of the
特に、図13では、タイルB及びCに曲線オブジェクトが跨がっている、つまり、曲線オブジェクトがタイルB及びCによって分割されている例を示している。 In particular, FIG. 13 shows an example in which curved objects straddle tiles B and C, that is, the curved objects are divided by tiles B and C.
ここで、このドキュメントデータ1401がタイル分割前のページベクタデータである場合、その内容を構成する記述例について、図14を用いて説明する。
Here, when the
図14は本発明の実施形態3のページベクタデータの記述例を示す図である。 FIG. 14 is a diagram showing a description example of page vector data according to the third embodiment of the present invention.
図14において、1501はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、1502は描画命令部分全体を示している。
In FIG. 14,
各描画命令の詳細について説明する。 Details of each drawing command will be described.
ドキュメント設定命令部分1501において、C1〜C5は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドC1〜C5は、ドキュメント1部について1ケ所しか付いていない。
In the document setting
これらドキュメントデータ全体に関係するコマンドには、実施形態1の図7で詳述した内容と同様である。 The commands related to the entire document data are the same as those described in detail with reference to FIG.
描画命令部分を構成するC6〜C10は、ドキュメントデータを出力するための各種コマンドである。 C6 to C10 constituting the drawing command part are various commands for outputting document data.
C6はページの開始を示すコマンドである。C7は線(曲線)の色を設定するコマンドであり、順にR(赤),G(緑),B(青)各色成分の輝度を示してある。この輝度は、例えば、0から255の256段階で量子化されているものとする。この場合は、{255,92,128}に設定されている。 C6 is a command indicating the start of a page. C7 is a command for setting the color of the line (curve), and indicates the luminance of each color component of R (red), G (green), and B (blue) in order. It is assumed that this luminance is quantized in 256 levels from 0 to 255, for example. In this case, it is set to {255, 92, 128}.
C8は曲線を描画する開始位置(曲線を規定する一方の端点)の座標を示すコマンドである。座標位置(X,Y)は、ページの左上を原点に指定する。この場合は、ページの{66,112}の位置から曲線の描画を開始するように設定されている。C9は曲線を描画するアンカーポイントと終了位置(曲線を規定する他方の端点)の座標を示すコマンドである。この場合は、ページの{126,98}及び{66,126}のアンカーポイントを通り、{126,112}の位置で曲線の描画を終了するように設定されている。C10はページの終了を示すコマンドである。 C8 is a command indicating the coordinates of the start position for drawing the curve (one end point defining the curve). The coordinate position (X, Y) is designated with the upper left corner of the page as the origin. In this case, the drawing of the curve is set to start from the position {66, 112} on the page. C9 is a command indicating the coordinates of the anchor point for drawing the curve and the end position (the other end point defining the curve). In this case, the curve drawing is set to end at the position {126, 112} through the anchor points {126, 98} and {66, 126} on the page. C10 is a command indicating the end of the page.
これに対して、ドキュメントデータ1401がタイル分割後のタイルベクタデータである場合、その内容を構成する記述例について、図15を用いて説明する。
On the other hand, when the
図15は本発明の実施形態3のタイルベクタデータの記述例を示す図である。 FIG. 15 is a diagram showing a description example of tile vector data according to the third embodiment of the present invention.
図15において、1601はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、1602は描画命令部分全体、1603〜1605はタイルA〜Cの描画命令部分を示している。1606及び1607はタイルBの図形(曲線)の描画命令部分、1608及び1609はタイルCの図形(曲線)の描画命令部分を示している。
In FIG. 15,
各描画命令の詳細について説明する。 Details of each drawing command will be described.
ドキュメント設定命令部分1601において、C1〜C5は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドC1〜C5は、ドキュメント1部について1ケ所しか付いていない。
In the document setting
これらドキュメントデータ全体に関係するコマンドは、実施形態1の図9で詳述した内容と同様である。 These commands related to the entire document data are the same as the details described in FIG. 9 of the first embodiment.
描画命令部分1602を構成するC6〜C500は、ドキュメントデータを出力するための各種コマンドである。
C6 to C500 constituting the
C6はページの開始を示すコマンドである。C7は図13のタイルAの描画コマンドの開始を示すコマンドである。ここで、TileStart(0,0)中の2個のパラメータは、ドキュメントデータ内におけるタイルのIDを示している。C8はタイルAの描画コマンドの終了を示すコマンドである。タイルAのように、そのタイル内にオブジェクトが何も存在しない場合は、タイルの開始と終了を示すコマンドだけが記述される。 C6 is a command indicating the start of a page. C7 is a command indicating the start of the drawing command for tile A in FIG. Here, two parameters in TileStart (0, 0) indicate tile IDs in the document data. C8 is a command indicating the end of the tile A drawing command. When there is no object in the tile as in the tile A, only commands indicating the start and end of the tile are described.
ここで、タイルB及びCについては、ページベクタデータ上の1つの曲線オブジェクトが、タイルB及びCによって4つの曲線オブジェクトに分割される。そして、その4つの曲線オブジェクトの内、2つの曲線オブジェクトがそれぞれタイルB及びCに属する。 Here, for the tiles B and C, one curve object on the page vector data is divided into four curve objects by the tiles B and C. Of the four curved objects, two curved objects belong to tiles B and C, respectively.
そのため、タイルBの描画命令部分1604では、その2つの曲線オブジェクトを構成する色としてコマンドC101、各曲線オブジェクトの開始位置、アンカーポイント、終了位置からなる描画命令部分1606(コマンドC102及びC103)、描画命令部分1607(コマンドC104及びC105)が記述されている。
Therefore, in the
同様に、タイルCの描画命令部分1605では、その2つの曲線オブジェクトを構成する色としてコマンドC121、各曲線オブジェクトの開始位置、アンカーポイント、終了位置からなる描画命令部分1608(コマンドC122及びC123)、描画命令部分1609(コマンドC124及びC125)が記述されている。
Similarly, in the
次に、タイルB及びタイルCに跨がる曲線オブジェクトのタイル分割について、図16を用いて説明する。 Next, tile division of a curved object straddling tile B and tile C will be described with reference to FIG.
図16は本発明の実施形態3の曲線オブジェクトのタイル分割を説明するための図である。 FIG. 16 is a diagram for explaining tile division of a curved object according to the third embodiment of the present invention.
図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のそれぞれの組み合わせで交差するか否かを評価する。 As shown in FIG. 16B, the curved object extending over one or more tiles shown in FIG. 16A first calculates a convex polygon P0-P1-P3-P2 in which the curve is contained. To do. Next, to which side of the tile of interest this curved object may intersect, tile sides 16A-16B, 16B-16D, 16D-16C, 16C-16A and line segments P0-P1, P1 -Evaluate whether or not each combination of P3, P3-P2, and P2-P1 intersects.
ここでは、図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等を算出し、分割された曲線を描画するためのコマンドを生成する。 Here, as shown in FIG. 16C, the intersections of the curves P0-P3 are calculated for the tile sides 16B-16D intersecting with the line segments P0-P1 and P3-P2, and the intersection points P4, P5, P6 are calculated. To get. Next, the curves P0-P3 are divided into curves P0-P4, P4-P5, P5-P6, P6-P3 with the intersections P4, P5, P6 as end points. Further, the anchor points P7, P8, P9, P10 and the like of each curve are calculated, and a command for drawing the divided curves is generated.
以上のようにして、1つ以上のタイルに跨がる曲線オブジェクトを各タイルに分割することができる。 As described above, a curved object straddling one or more tiles can be divided into tiles.
次に、曲線オブジェクトの分割処理の詳細について、図17を用いて説明する。 Next, details of the curve object dividing process will be described with reference to FIG.
図17は本発明の実施形態3の曲線オブジェクトの分割処理の詳細を示すフローチャートである。 FIG. 17 is a flowchart showing details of the curve object dividing process according to the third embodiment of the present invention.
尚、この処理は、図6のステップS605のオブジェクトの分割処理において、処理対象が曲線オブジェクトである場合に実行する。 This process is executed when the processing target is a curve object in the object dividing process in step S605 of FIG.
(ステップS1801)
まず、処理対象の曲線オブジェクトが、既に他の隣接タイルで分割されているか否かを判定する。分割されている場合(ステップS1801でYES)、ステップS1809に進む。一方、分割されていない場合(ステップS1801でNO)、ステップS1802に進む。
(Step S1801)
First, it is determined whether or not the curve object to be processed is already divided by another adjacent tile. If it is divided (YES in step S1801), the flow advances to step S1809. On the other hand, if it is not divided (NO in step S1801), the flow advances to step S1802.
(ステップS1802)
処理対象の曲線オブジェクトを内包する凸多角形とその頂点を算出する。
(Step S1802)
A convex polygon containing a curve object to be processed and its vertex are calculated.
(ステップS1803)
処理対象の曲線オブジェクトを内包する凸多角形が、注目タイルのどの辺と交差可能性があるかを評価する。
(Step S1803)
It is evaluated which side of the tile of interest the convex polygon containing the curve object to be processed may intersect.
(ステップS1804)
ステップS1803の評価結果から、処理対象の曲線オブジェクトを内包する凸多角形が注目タイルのどれかの辺と交差可能性があるか否かを判定する。交差可能性がない場合(ステップS1804でNO)、処理を終了する。一方、交差可能性がある場合(ステップS1804でYES)、ステップS1805に進む。
(Step S1804)
From the evaluation result of step S1803, it is determined whether or not there is a possibility that the convex polygon that includes the curve object to be processed intersects any side of the target tile. If there is no possibility of intersection (NO in step S1804), the process ends. On the other hand, if there is a possibility of intersection (YES in step S1804), the process proceeds to step S1805.
(ステップS1805)
処理対象の曲線オブジェクトを内包する凸多角形と交差可能性のある注目タイルの注目辺(タイル辺)を選択し、当該タイル辺とその曲線オブジェクトの交点を算出する。また、その算出した交点をシステムメモリ5に記憶する。ここで、交点数は、例えば、0から3の可能性がある。
(Step S1805)
A target side (tile side) of a target tile that has a possibility of intersecting with a convex polygon that includes the curve object to be processed is selected, and an intersection of the tile side and the curved object is calculated. Further, the calculated intersection is stored in the
尚、この交点の算出は、例えば、凸多角形と構成する注目タイルのタイル辺に基づいて規定される方程式に基づいて算出する。 Note that this intersection point is calculated based on, for example, an equation defined based on the convex polygon and the tile side of the tile of interest.
(ステップS1806)
処理対象の曲線オブジェクトを内包する凸多角形と交差可能性のある注目辺との交点をすべて算出したか否かを判定する。未算出の注目辺の交点がある場合(ステップS1806でNO)、ステップS1805に戻る。一方、未算出の注目辺の交点がない場合(ステップS1806でYES)、ステップS1807に進む。
(Step S1806)
It is determined whether or not all intersections between the convex polygon containing the curve object to be processed and the target side that may intersect are calculated. If there is an intersection of uncalculated attention sides (NO in step S1806), the process returns to step S1805. On the other hand, if there is no intersection of uncalculated attention sides (YES in step S1806), the process proceeds to step S1807.
ここで、ステップS1802〜ステップS1804の処理を実行することで、処理量の多い交点算出処理(ステップS1805及びステップS1806)のループ回数を低減することができる。 Here, by executing the processing of steps S1802 to S1804, the number of loops of the intersection calculation processing (steps S1805 and S1806) with a large amount of processing can be reduced.
(ステップS1807)
注目タイルの注目辺と曲線オブジェクトの注目交点を用いて、曲線オブジェクトを分割する。また、分割された曲線の端点とアンカーポイントを算出して、システムメモリ5に記憶する。
(Step S1807)
The curve object is divided using the attention intersection of the attention tile and the attention intersection of the curve object. Further, the end points and anchor points of the divided curves are calculated and stored in the
(ステップS1808)
システムメモリ5に記憶されているタイル辺と曲線オブジェクトの交点すべてにおいて、曲線オブジェクトの分割が終了したか否かを判定する。分割が終了していない場合(ステップS1808でNO)、ステップS1807に戻る。一方、分割が終了している場合(ステップS1808でYES)、処理を終了する。
(Step S1808)
It is determined whether or not the division of the curve object is completed at all the intersections between the tile sides and the curve object stored in the
(ステップS1809)
一方、ステップS1801において、処理対象の曲線オブジェクトが、既に他の隣接タイルで分割されている場合、その他の隣接タイルで処理されたときにシステムメモリ5に記憶された、その曲線オブジェクトと隣接タイルとの交点を取得する。
(Step S1809)
On the other hand, when the curve object to be processed is already divided by another adjacent tile in step S1801, the curve object and the adjacent tile stored in the
(ステップS1810)
他の隣接タイルで算出した、曲線オブジェクトを内包する凸多角形とその頂点を取得して、ステップS1803へ進む。
(Step S1810)
A convex polygon including a curved object and its vertex calculated with other adjacent tiles are acquired, and the process proceeds to step S1803.
次に、ステップS1802の処理の詳細について、図18を用いて説明する。 Next, details of the processing in step S1802 will be described with reference to FIG.
図18は本発明の実施形態3のステップS1802の処理の詳細を示すフローチャートである。 FIG. 18 is a flowchart showing details of the process in step S1802 according to the third embodiment of the present invention.
(ステップS1901)
曲線オブジェクトの端点及びアンカーポイントの4点で形成された四角形P0−P1−P3−P2(例えば、図16(b))の一頂点P0が、他の頂点からなる三角形P1−P2−P3に内包されるか否かを判定する。内包される場合(ステップS1901でYES)、ステップS1906へ進む。一方、内包されない場合(ステップS1901でNO)、ステップS1902へ進む。
(Step S1901)
One vertex P0 of a quadrangle P0-P1-P3-P2 (for example, FIG. 16B) formed by the end points of the curved object and the anchor points is included in a triangle P1-P2-P3 composed of other vertices. It is determined whether or not. If included (YES in step S1901), the flow advances to step S1906. On the other hand, if not included (NO in step S1901), the process advances to step S1902.
(ステップS1902)
曲線オブジェクトの端点及びアンカーポイントの4点で形成された四角形P0−P1−P3−P2の一頂点P1が、他の頂点からなる三角形P0−P2−P3に内包されるか否かを判定する。内包される場合(ステップS1902でYES)、ステップS1907へ進む。一方、内包されない場合(ステップS1902でNO)、ステップS1903へ進む。
(Step S1902)
It is determined whether one vertex P1 of the quadrilateral P0-P1-P3-P2 formed by the end points of the curved object and the anchor points is included in a triangle P0-P2-P3 composed of other vertices. If included (YES in step S1902), the process advances to step S1907. On the other hand, if not included (NO in step S1902), the process advances to step S1903.
(ステップS1903)
曲線オブジェクトの端点及びアンカーポイントの4点で形成された四角形P0−P1−P3−P2の一頂点P2が、他の頂点からなる三角形P0−P1−P3に内包されるか否かを判定する。内包される場合(ステップS1903でYES)、ステップS1908へ進む。一方、内包されない場合(ステップS1903でNO)、ステップS1904へ進む。
(Step S1903)
It is determined whether or not one vertex P2 of the quadrilateral P0-P1-P3-P2 formed by the end points of the curved object and the anchor points is included in a triangle P0-P1-P3 composed of other vertices. If included (YES in step S1903), the flow advances to step S1908. On the other hand, if not included (NO in step S1903), the process advances to step S1904.
(ステップS1904)
曲線オブジェクトの端点及びアンカーポイントの4点で形成された四角形P0−P1−P3−P2の一頂点P3が、他の頂点からなる三角形P0−P1−P2に内包されるか否かを判定する。内包される場合(ステップS1904でYES)、ステップS1909へ進む。一方、内包されない場合(ステップS1904でNO)、ステップS1905へ進む。
(Step S1904)
It is determined whether one vertex P3 of the quadrangle P0-P1-P3-P2 formed by the end points of the curved object and the anchor points is included in a triangle P0-P1-P2 composed of other vertices. If included (YES in step S1904), the flow advances to step S1909. On the other hand, if not included (NO in step S1904), the process advances to step S1905.
(ステップS1905)
四角形P0−P1−P3−P2を、曲線オブジェクトを内包する凸多角形とし、これの頂点としてP0,P1,P2,P3をシステムメモリ5に記憶し、処理を終了する。
(Step S1905)
The quadrangular P0-P1-P3-P2 is a convex polygon that encloses the curved object, and P0, P1, P2, and P3 are stored in the
(ステップS1906)
三角形P1−P2−P3を、曲線オブジェクトを内包する凸多角形とし、これの頂点としてP1,P2,P3をシステムメモリ5に記憶し、処理を終了する。
(Step S1906)
Triangles P1-P2-P3 are convex polygons that enclose a curved object, and P1, P2, and P3 are stored in the
(ステップS1907)
三角形P0−P2−P3を、曲線オブジェクトを内包する凸多角形とし、これの頂点としてP0,P2,P3をシステムメモリ5に記憶し、処理を終了する。
(Step S1907)
Triangles P0-P2-P3 are convex polygons that enclose the curved object, and P0, P2, and P3 are stored in the
(ステップS1908)
三角形P0−P1−P3を、曲線オブジェクトを内包する凸多角形とし、これの頂点としてP0,P1,P3をシステムメモリ5に記憶し、処理を終了する。
(Step S1908)
Triangles P0-P1-P3 are convex polygons that enclose a curved object, and P0, P1, P3 are stored in the
(ステップS1909)
三角形P0−P1−P2を、曲線オブジェクトを内包する凸多角形とし、これの頂点としてP0,P1,P2をシステムメモリ5に記憶し、処理を終了する。
(Step S1909)
The triangles P0-P1-P2 are convex polygons that enclose the curved object, and P0, P1, P2 are stored in the
次に、ステップS1803の処理の詳細について、図19を用いて説明する。 Next, details of the processing in step S1803 will be described with reference to FIG.
図19は本発明の実施形態3のステップS1803の処理の詳細を示すフローチャートである。 FIG. 19 is a flowchart showing details of the process in step S1803 according to the third embodiment of the present invention.
(ステップS2001)
まず、注目タイルが曲線オブジェクトを内包する凸多角形に内包されるか否かを判定する。内包される場合(ステップS2001でYES)、ステップS2002へ進む。一方、内包されない場合(ステップS2001でNO)、ステップS2003へ進む。
(Step S2001)
First, it is determined whether or not the target tile is included in a convex polygon that includes a curved object. If included (YES in step S2001), the process advances to step S2002. On the other hand, if it is not included (NO in step S2001), the process proceeds to step S2003.
(ステップS2002)
すべてのタイル辺が曲線オブジェクトと交差可能性があることを示す情報をシステムメモリ5に記憶し、処理を終了する。
(Step S2002)
Information indicating that all tile sides may intersect the curved object is stored in the
(ステップS2003)
曲線オブジェクトを内包する凸多角形がタイルに内包されるか否かを判定する。内包される場合(ステップS2003でYES)、ステップS2004へ進む。一方、内包されない場合(ステップS2003でNO)、ステップS2005へ進む。
(Step S2003)
It is determined whether or not the convex polygon that includes the curved object is included in the tile. When included (YES in step S2003), the process proceeds to step S2004. On the other hand, if it is not included (NO in step S2003), the process proceeds to step S2005.
(ステップS2004)
どのタイル辺も曲線オブジェクトと交差可能性がないことを示す情報をシステムメモリ5に記憶し、処理を終了する。
(Step S2004)
Information indicating that there is no possibility that any tile side intersects with the curved object is stored in the
(ステップS2005)
4つのタイル辺のひとつを注目タイル辺として設定する。
(Step S2005)
One of the four tile sides is set as the target tile side.
(ステップS2006)
3つもしくは4つの凸多角形の辺のひとつを注目凸多角形辺として設定する。
(Step S2006)
One of the sides of the three or four convex polygons is set as the target convex polygon side.
(ステップS2007)
注目タイル辺と、注目凸多角形辺が交差するか否かを判定する。交差する場合(ステップS2007でYES)、ステップS2008へ進む。一方、交差しない場合(ステップS2007でNO)、ステップS2009へ進む。
(Step S2007)
It is determined whether or not the target tile side and the target convex polygon side intersect. When intersecting (YES in step S2007), the process proceeds to step S2008. On the other hand, if not intersecting (NO in step S2007), the process proceeds to step S2009.
(ステップS2008)
注目タイル辺が曲線オブジェクトと交差可能性があることを示す情報をシステムメモリ5に記憶する。
(Step S2008)
Information indicating that the tile side of interest may intersect with the curved object is stored in the
(ステップS2009)
3つもしくは4つの凸多角形辺すべてに関して、注目凸多角形辺に対する設定処理(ステップS2006及びステップS2007)が完了しているか否かを判定する。完了していない場合(ステップS2009でNO)、ステップS2006へ戻る。一方、完了している場合(ステップS2009でYES)、ステップS2010へ進む。
(Step S2009)
It is determined whether or not the setting process (step S2006 and step S2007) for the target convex polygon side has been completed for all three or four convex polygon sides. If not completed (NO in step S2009), the process returns to step S2006. On the other hand, if it has been completed (YES in step S2009), the flow advances to step S2010.
(ステップS2010)
4つのタイル辺すべてに関して、注目タイル辺に対する設定処理(ステップS2005)が完了しているか否かを判定する。完了していない場合(ステップS2010でNO)、ステップS2005へ戻る。一方、完了している場合(ステップS2010でYES)、処理を終了する。
(Step S2010)
For all four tile sides, it is determined whether or not the setting process (step S2005) for the target tile side has been completed. If not completed (NO in step S2010), the process returns to step S2005. On the other hand, if it is completed (YES in step S2010), the process ends.
以上説明したように、実施形態3によれば、実施形態1及び2で説明した効果に加えて、曲線オブジェクトが存在するページベクタデータをタイルベクタデータに変換する際には、その曲線オブジェクトの形状を評価して、その評価結果に基づいて、タイルベクタデータに変換する。これにより、その曲線オブジェクトが適切にタイル上に分割されたタイルベクタデータを生成することができる。 As described above, according to the third embodiment, in addition to the effects described in the first and second embodiments, when converting page vector data in which a curved object exists into tile vector data, the shape of the curved object is changed. Is converted into tile vector data based on the evaluation result. Thereby, tile vector data in which the curved object is appropriately divided on the tile can be generated.
[実施形態4]
図29で示す従来のシステムでは、RIP113でページベクタデータがラスタデータにレンダリングされる際、ページベクタデータに含まれるイメージオブジェクトは、レンダリングを行う解像度に応じて解像度変換がなされた上で、ラスタデータが生成される。
[Embodiment 4]
In the conventional system shown in FIG. 29, when page vector data is rendered into raster data by the
イメージオブジェクトの解像度変換の際には、補間処理のないニアレストネイバー法で拡大縮小される場合と、エイリアジングの副作用を避けるためにバイリニア法やバイキュービック法等の補間処理が行われる場合がある。また、特許登録第3111971号公報に開示されているように、これら複数の補間処理を切り換えることや、補間処理を行う際に補間領域をイメージオブジェクトの境界より広げることが行われている。 When converting the resolution of an image object, scaling may be performed by a nearest neighbor method without interpolation processing, or interpolation processing such as bilinear method or bicubic method may be performed to avoid the side effects of aliasing. . In addition, as disclosed in Japanese Patent No. 3111971, the plurality of interpolation processes are switched, and the interpolation area is expanded beyond the boundary of the image object when the interpolation process is performed.
一方、上記実施形態1では、イメージオブジェクトを含むページベクタデータをタイルベクタデータに変換する方法としては、例えば、以下のいくつかの方法が考えられる。 On the other hand, in the first embodiment, for example, the following several methods are conceivable as a method for converting page vector data including an image object into tile vector data.
まず、イメージオブジェクトを含むページベクタデータをタイルベクタデータに分割する際、単一のイメージオブジェクトが存在する複数のタイルに、イメージオブジェクトそのものをコピーして、タイルに埋め込む方法がある。この場合、イメージオブジェクトが存在するタイルN個それぞれに対してイメージオブジェクト全体を埋め込むと、イメージオブジェクトサイズのN−1倍のデータ量がページ(画像データ)全体で増加する。このため、このような場合には、タイルベクタデータへの変換に伴ってデータ量が増大することになる。 First, when dividing page vector data including an image object into tile vector data, there is a method of copying the image object itself to a plurality of tiles in which a single image object exists and embedding it in the tile. In this case, if the entire image object is embedded in each of the N tiles in which the image object exists, the data amount N-1 times the image object size increases in the entire page (image data). For this reason, in such a case, the amount of data increases with conversion to tile vector data.
一方、複数のタイルに跨がって存在するイメージオブジェクトをタイル境界で分割し、それぞれのタイルベクタデータに、それぞれ対応する分割後のイメージオブジェクトを埋め込む方法を採用すれば、タイルベクタデータ変換に伴うデータ量の増大は回避可能である。 On the other hand, if an image object that spans multiple tiles is divided at the tile boundary and a method of embedding the corresponding divided image object in each tile vector data is adopted, it will accompany tile vector data conversion. An increase in the amount of data can be avoided.
ここで、イメージオブジェクトをレンダリング後の解像度に合わせて解像度変換する際には、バイリニア法やバイキュービック法等の補間処理を選択することも可能である。しかしながら、この場合、タイル境界で分割されたイメージオブジェクトは、タイル境界外に画素を持たない。 Here, when converting the resolution of the image object in accordance with the rendered resolution, it is also possible to select an interpolation process such as a bilinear method or a bicubic method. However, in this case, the image object divided at the tile boundary does not have pixels outside the tile boundary.
そのため、これらの補間処理を行うと、タイルベクタデータをレンダリングして、タイルラスタデータからなるページラスタデータを生成する際には、ページベクタデータ上のタイル境界に相当する位置にイメージオブジェクトの不連続領域が生じ、画質の劣化が発生することになる。 Therefore, when these interpolation processes are performed, when rendering tile vector data and generating page raster data consisting of tile raster data, the discontinuity of the image object is at a position corresponding to the tile boundary on the page vector data. An area is generated and image quality is deteriorated.
そこで、上記の2種類の方法による課題を解決するために、イメージオブジェクトをタイル境界で分割する際には、そのイメージオブジェクトを構成する一部の画素を重複して分割し、補間処理に必要なタイル境界外の画素も併せてタイルベクタデータに埋め込む方法が考えられる。 Therefore, in order to solve the problems caused by the above two methods, when dividing an image object at a tile boundary, some pixels constituting the image object are divided and overlapped, which is necessary for interpolation processing. A method of embedding pixels outside the tile boundary in the tile vector data is also conceivable.
この方法を用いれば、データ増大の課題と、補間処理による画質劣化の課題を解決することが可能となる。しかしながら、この方法を採用したとしても、同一の画素を二重以上持つ必要が発生する。そのため、この方法でも、上記の方法ほどではないが、タイルベクタデータへの変換に伴ってデータ量が増大することになる。 By using this method, it is possible to solve the problem of data increase and the problem of image quality deterioration due to interpolation processing. However, even if this method is adopted, it is necessary to have two or more identical pixels. Therefore, even with this method, although not as much as the above method, the amount of data increases with the conversion to tile vector data.
そこで、実施形態4では、特に、イメージオブジェクトを含むページベクタデータからタイルベクタデータへ変換する際のデータ量増大を抑え、かつ画質劣化が生じるような補間処理を行わないことで、エイリアジングの発生も抑えることが可能な、イメージオブジェクトの分割処理について説明する。 Therefore, in the fourth embodiment, aliasing occurs particularly by suppressing an increase in the amount of data when converting page vector data including an image object to tile vector data and performing no interpolation processing that causes image quality degradation. A description will be given of image object division processing that can also suppress the above.
実施形態4では、イメージオブジェクトの解像度は、一般的に、300dpi以下であり、この解像度は、通常は、600dpi以上となるプリント解像度よりも低解像度である場合がほとんどである点に着目している。また、エイリアジングの問題は、画像を縮小する場合が、拡大する場合よりもより顕著な問題となる点に着目している。 In the fourth embodiment, attention is focused on the fact that the resolution of an image object is generally 300 dpi or less, and this resolution is usually lower than the print resolution of 600 dpi or more. . Further, attention is paid to the fact that the problem of aliasing becomes more prominent when the image is reduced than when it is enlarged.
そこで、実施形態4では、閾値解像度を定義して、同一イメージオブジェクトを分割する際に、当該イメージオブジェクトの解像度が閾値解像度よりも高ければ、タイル境界外の周辺画素をベクタタイルデータに重複して保持する。一方、当該イメージオブジェクトの解像度が閾値解像度よりも低ければ、タイル境界外の周辺画素をベクタタイルデータに重複して保持しない構成を採用する。
Therefore, in
更に、イメージオブジェクトのレンダリング時には、タイル境界外周辺画素がない場合にはニアレストネイバー法によって解像度を変換し、タイル境界外周辺画素がある場合にはバイキュービック法、バイリニア法等の補間処理を用いて解像度を変換するように、その変換方法を適応的に切り替える。これにより、イメージオブジェクトのタイル分割によるデータ量増大を抑え、かつ補間処理を行わないことによるエイリアジングの発生も抑えることを実現する。 Furthermore, when rendering an image object, the resolution is converted by the nearest neighbor method if there are no surrounding pixels outside the tile boundary, and if there are surrounding pixels outside the tile boundary, interpolation processing such as bicubic method or bilinear method is used. The conversion method is adaptively switched so as to convert the resolution. As a result, it is possible to suppress an increase in the amount of data due to tile division of the image object and to suppress aliasing caused by not performing the interpolation process.
以下、実施形態4では、実施形態1の図6のステップS605のオブジェクトの分割処理の応用例について説明する。 In the fourth embodiment, an application example of the object dividing process in step S605 of FIG. 6 of the first embodiment will be described.
実施形態4では、タイル/ページベクタ変換部13において、特に、処理対象のオブジェクトがイメージオブジェクトである場合の、そのイメージオブジェクトの分割処理について説明する。
In the fourth embodiment, the tile / page
まず、1つ以上のタイルに跨がるイメージオブジェクトのタイル分割について、図20を用いて説明する。 First, tile division of an image object straddling one or more tiles will be described with reference to FIG.
図20は本発明の実施形態4のイメージオブジェクトのタイル分割を説明するための図である。 FIG. 20 is a diagram for explaining tile division of an image object according to the fourth embodiment of the present invention.
図20に示すイメージオブジェクト2000は、ページベクタデータに含まれており、タイルベクタデータに分割する際には、その配置された座標からタイル1402〜1405に跨がって存在する。
The
タイル/ページベクタ変換部13によるオブジェクトの分割処理では、まず、イメージオブジェクト2000の解像度と所定解像度(閾値解像度:例えば、600dpi)を比較する。
In the object division processing by the tile / page
尚、この所定解像度は、通常は、RIP18が生成するラスタデータの解像度であるとする。また、複数種類の解像度のラスタデータを生成可能である場合は、それらの内、最低解像度としても良い。
Note that the predetermined resolution is normally the resolution of raster data generated by the
比較の結果、イメージオブジェクト2000の解像度が所定解像度よりも低解像度である場合、タイル1402〜1405に跨がって存在するイメージオブジェクト2000を、そのタイル1402〜1405のタイル境界で分割する。そして、その分割されたイメージオブジェクト1406〜1409をそれぞれ対応するタイル1402〜1405へ埋め込む。
As a result of the comparison, when the resolution of the
一方、イメージオブジェクト2000の解像度が所定解像度よりも高解像度である場合、タイル1402〜1405に跨がって存在するイメージオブジェクト2000を、タイル1402〜1405のタイル境界を越えるイメージオブジェクト2000の一部が互いに重複するように分割する。そして、その分割されたイメージオブジェクト1410〜1413をそれぞれ対応するタイル1402〜1405へ埋め込む。
On the other hand, when the resolution of the
次に、イメージオブジェクトの分割処理の詳細について、図21を用いて説明する。 Next, details of the image object division processing will be described with reference to FIG.
図21は本発明の実施形態4のイメージオブジェクトの分割処理の詳細を示すフローチャートである。 FIG. 21 is a flowchart showing details of image object division processing according to the fourth embodiment of the present invention.
(ステップS1501)
まず、タイルベクタデータの生成対象となる注目タイルを選択する。
(Step S1501)
First, the target tile for which tile vector data is to be generated is selected.
(ステップS1502)
処理対象のイメージオブジェクトを規定するイメージ座標に注目タイルのタイル境界を投影する。
(Step S1502)
The tile boundary of the target tile is projected onto the image coordinates that define the image object to be processed.
(ステップS1503)
イメージ座標に投影されたタイル境界とイメージオブジェクト自身の外周からなる凸多角形を算出する。当該凸多角形に外接し、かつ直立した長方形を算出する。
(Step S1503)
A convex polygon composed of the tile boundary projected on the image coordinates and the outer periphery of the image object itself is calculated. An upright rectangle circumscribing the convex polygon is calculated.
(ステップS1504)
イメージオブジェクトの解像度と所定解像度とを比較し、イメージオブジェクトの解像度が所定解像度より高いか否かを判定する。所定解像度以下である場合(ステップS1504でNO)、ステップS1505へ進む。一方、所定解像度より大きい場合(ステップS1504でYES)、ステップS1507へ進む。
(Step S1504)
The resolution of the image object is compared with a predetermined resolution to determine whether the resolution of the image object is higher than the predetermined resolution. If the resolution is below the predetermined resolution (NO in step S1504), the process proceeds to step S1505. On the other hand, if the resolution is larger than the predetermined resolution (YES in step S1504), the process advances to step S1507.
(ステップS1505)
凸多角形に外接する直立した長方形を、イメージオブジェクトを分割する境界として設定する。
(Step S1505)
An upright rectangle circumscribing the convex polygon is set as a boundary for dividing the image object.
(ステップS1506)
分割後のイメージオブジェクトが、タイル境界外に画素を持たないことを示す情報をシステムメモリ5に記憶する。
(Step S1506)
Information indicating that the divided image object has no pixels outside the tile boundary is stored in the
(ステップS1507)
一方、ステップS1504で、イメージオブジェクトの解像度が所定解像度より大きい場合、凸多角形に外接する直立した長方形を、補間処理の参照領域分拡大した拡大長方形を算出する。
(Step S1507)
On the other hand, if the resolution of the image object is larger than the predetermined resolution in step S1504, an enlarged rectangle obtained by enlarging the upright rectangle circumscribing the convex polygon by the reference area of the interpolation process is calculated.
(ステップS1508)
拡大長方形を、イメージオブジェクトを分割する境界として設定する。
(Step S1508)
Set the enlarged rectangle as the boundary that divides the image object.
(ステップS1509)
分割後のイメージオブジェクトが、タイル境界外に画素を持つことを示す情報をシステムメモリ5に記憶する。
(Step S1509)
Information indicating that the divided image object has pixels outside the tile boundary is stored in the
(ステップS1510)
設定された境界を外周とするイメージを、処理対象のイメージオブジェクトから抽出する。
(Step S1510)
An image having the set boundary as an outer periphery is extracted from the image object to be processed.
(ステップS1511)
抽出したイメージを、イメージオブジェクトとして注目タイルへ付与して、処理を終了する。
(Step S1511)
The extracted image is assigned to the target tile as an image object, and the process ends.
次に、図21のイメージオブジェクトの分割処理の具体例について、図22を用いて説明する。 Next, a specific example of the image object division processing of FIG. 21 will be described with reference to FIG.
図22は本発明の実施形態4のイメージオブジェクトの分割処理の具体例を示す図である。 FIG. 22 is a diagram showing a specific example of image object division processing according to the fourth embodiment of the present invention.
イメージオブジェクト2201は、独自のイメージ座標を持っている(図22(a))。そして、このイメージオブジェクト2201は、ページベクタデータ2202に対して、アフィン変換によってページベクタデータ座標に投影され(図22(b))、ページベクタデータ2202内でイメージ2203として構成される。このページベクタデータ2202をタイルベクタデータに変換すると、図22(c)のようになる。
The
オブジェクトの分割処理(図6のステップS605)による、イメージオブジェクトの分割処理では、まず、ステップS1501において注目タイル2204を選択する(図16(c))。
In the image object dividing process by the object dividing process (step S605 in FIG. 6), first, the
そして、図16(d)に示すように、続いて、注目タイル2204がイメージ座標へ投影される(ステップS1502)。次に、イメージ座標に投影されたタイル2205のタイル境界とイメージオブジェクト2201自身の外周からなる凸多角形2206を算出し、この凸多角形2206に外接し、かつ直立した長方形2207を算出する(ステップS1503)。
Then, as shown in FIG. 16D, subsequently, the
次に、このイメージオブジェクト2201の解像度と、所定解像度とを比較する(ステップS1504)。イメージオブジェクト2201の解像度が所定解像度よりも大きい場合(高解像度である場合)、図22(e)に示すように、この凸多角形2206に外接し、かつ直立した長方形2207を補間処理の参照領域分拡大した拡大長方形2208を算出する(ステップS1507)。
Next, the resolution of the
次に、拡大長方形2208を境界として、図22(f)に示すように、イメージオブジェクト2201から分割されたイメージオブジェクト2209を生成する(ステップS1510)。その後、図22(g)に示すように、注目タイル2210に埋め込まれる(ステップS1511)。注目タイル2210は、タイル内座標を独自に持ち、分割されたイメージオブジェクト2209は、タイル内座標に、イメージオブジェクト2209として投影される。
Next, an
次に、図7のステップS77において、イメージオブジェクトをラスタライズする場合の処理の詳細について、図23を用いて説明する。 Next, details of processing when rasterizing an image object in step S77 of FIG. 7 will be described with reference to FIG.
図23は本発明の実施形態4のステップS77における、イメージオブジェクトのラスタライズの詳細を示すフローチャートである。 FIG. 23 is a flowchart showing details of rasterization of an image object in step S77 according to the fourth embodiment of the present invention.
(ステップS1701)
まず、タイル内座標系と、デバイス座標系の対応関係を示す第1変換行列を取得する。ここで、デバイス座標系とは、タイルベクタデータから構成されるページ全体に対して定義される座標系であり、例えば、図8で示される座標系である。
(Step S1701)
First, a first transformation matrix indicating the correspondence between the in-tile coordinate system and the device coordinate system is acquired. Here, the device coordinate system is a coordinate system defined for the entire page composed of tile vector data, for example, the coordinate system shown in FIG.
(ステップS1702)
イメージオブジェクトのイメージ座標系と、タイル内座標との対応関係を示す第2変換行列を取得する。
(Step S1702)
A second transformation matrix indicating the correspondence between the image coordinate system of the image object and the coordinates in the tile is acquired.
(ステップS1703)
ステップS1701で取得した第1変換行列と、ステップS1702で取得した第2変換行列の2つの変換行列を合成した第3変換行列を生成し、この第3変換行列を用いて、デバイス座標系とイメージ座標系の対応関係を算出する。
(Step S1703)
A third transformation matrix is generated by combining two transformation matrices, the first transformation matrix obtained in step S1701 and the second transformation matrix obtained in step S1702, and the device coordinate system and the image are generated using the third transformation matrix. Calculate the correspondence of the coordinate system.
(ステップS1704)
デバイス座標系において、イメージオブジェクトが配置される領域内で、注目画素を選択する。
(Step S1704)
In the device coordinate system, the pixel of interest is selected within the area where the image object is placed.
(ステップS1705)
ステップS1703で合成された第3変換行列を用いて、注目画素のデバイス座標系のデバイス座標からイメージ座標系のイメージ座標の該当画素を算出する。
(Step S1705)
Using the third transformation matrix synthesized in step S1703, the corresponding pixel of the image coordinate of the image coordinate system is calculated from the device coordinate of the device coordinate system of the target pixel.
(ステップS1706)
イメージオブジェクトの該当画素がタイル境界外に存在するか否かに基づいて、イメージオブジェクトの補間方法を選択する。タイル境界外に存在しない場合、補間方法として、第1補間方法(ニアレストネイバー法)を選択して、ステップS1707へ進む。一方、タイル境界外に該当画素の周辺画素が存在する場合、補間方法として、第2補間方法(バイキュービック法)を選択して、ステップS1708へ進む。
(Step S1706)
An interpolation method for the image object is selected based on whether or not the corresponding pixel of the image object exists outside the tile boundary. If it does not exist outside the tile boundary, the first interpolation method (nearest neighbor method) is selected as the interpolation method, and the process proceeds to step S1707. On the other hand, if there are peripheral pixels of the corresponding pixel outside the tile boundary, the second interpolation method (bicubic method) is selected as the interpolation method, and the process proceeds to step S1708.
尚、この補間方法としては、ニアレストレイバー法、バイキュービック法、バイリニア法等の各種補間方法を利用することができる。 As the interpolation method, various interpolation methods such as a near-less tray method, a bicubic method, and a bilinear method can be used.
(ステップS1707)
該当画素の色を取得する。
(Step S1707)
Get the color of the pixel.
(ステップS1708)
該当画素と周辺画素を取得する。
(Step S1708)
The relevant pixel and surrounding pixels are acquired.
(ステップS1709)
該当画素と周辺画素を用いて、補間処理を実行し、処理結果の色を取得する。
(Step S1709)
Interpolation processing is executed using the corresponding pixel and surrounding pixels, and the color of the processing result is acquired.
(ステップS1710)
取得した色を注目画素の色として設定する。
(Step S1710)
The acquired color is set as the color of the target pixel.
(ステップS1711)
イメージオブジェクトが配置されるデバイス座標系のデバイス座標上の全ての画素を処理したか否かを判定する。全ての画素を処理していない場合(ステップS1711でNO)、ステップS1704へ戻る。一方、全ての画素を処理している場合(ステップS1711でYES)、処理を終了する。
(Step S1711)
It is determined whether or not all the pixels on the device coordinates of the device coordinate system where the image object is arranged have been processed. If all the pixels have not been processed (NO in step S1711), the process returns to step S1704. On the other hand, if all the pixels are processed (YES in step S1711), the process ends.
以上説明したように、実施形態4によれば、実施形態1〜3で説明した効果に加えて、処理対象のイメージオブジェクトの解像度に基づいて、イメージオブジェクトのタイル分割方法を適応的に切り替えてタイルベクタデータを生成する。これにより、イメージオブジェクトのタイル分割によるデータ量増大を抑え、かつ補間処理を行わないことによるエイリアジングの発生を抑えることが可能となる。 As described above, according to the fourth embodiment, in addition to the effects described in the first to third embodiments, the tile division method of the image object is adaptively switched based on the resolution of the image object to be processed. Generate vector data. As a result, it is possible to suppress an increase in the amount of data due to tile division of the image object and to suppress the occurrence of aliasing due to not performing the interpolation process.
[実施形態5]
上述の各実施形態では、画像処理システム内のデータハンドリングをリアルタイムで行える高速化に実行できるようために、タイルベクタデータを生成して、HDD8で管理する構成としている。これに対し、実施形態5では、HDD8へのタイルベクタデータを格納する時に、それを構成するタイル中にオブジェクトが存在しないタイルは、HDD8に書き込まないで管理する。
[Embodiment 5]
In each of the above-described embodiments, the tile vector data is generated and managed by the
これにより、HDD8のデータアクセスの高速化を図り、画像処理システムとしてのパフォーマンスをより向上することができる。
As a result, the data access speed of the
以下、実施形態5における処理概要及び処理フローについて、図24及び図25を用いて説明する。 Hereinafter, the processing outline and processing flow in the fifth embodiment will be described with reference to FIGS. 24 and 25.
図24は本発明の実施形態5の処理概要を説明するための図である。また、図25は本発明の実施形態5のタイルベクタデータ書込処理を示すフローチャートである。 FIG. 24 is a diagram for explaining an outline of processing according to the fifth embodiment of the present invention. FIG. 25 is a flowchart showing tile vector data write processing according to the fifth embodiment of the present invention.
(ステップS2501)
実施形態5では、システムメモリ5に読み込まれた1ページ分の画像データ(ページベクタデータあるいはラスタデータ)を、所定サイズのブロック(タイル(矩形))に分割してタイルベクタデータを生成する。この際、各タイルベクタデータの位置を識別するタイルID(ブロック識別情報)を生成して、これをタイルベクタデータのヘッダに設定する。
(Step S2501)
In the fifth embodiment, tile vector data is generated by dividing image data (page vector data or raster data) for one page read into the
例えば、図24(a)のページベクタデータ2401を、1辺が8画素四方のタイルで分割する場合、このページベクタデータ2401は、X方向に3個分、Y方向に3個分の分割されるとする。これにより、点線で区切られた3×3合計9個のタイルベクタデータに分割される。尚、このタイルの大きさの単位となる1辺の画素数は、ユーザ操作によって変更可能である。
For example, when the
各タイルは、X方向に左から0、1、2、Y方向に上から0、1、2とすることにより、各タイルの座標を規定できる。そして、これらの座標の組み合わせが各タイルの位置を識別するタイルIDとして利用することができる。例えば、左上のタイルは、タイルベクタデータの開始となるタイルとなり、そのタイルIDは(X,Y)=(0,0)となる。また、その右側のタイルのタイルIDは(X,Y)=(1,0)、一番右下のタイルのタイルIDは(X,Y)=(3,3)となる。 The coordinates of each tile can be defined by setting 0, 1, 2 from the left in the X direction and 0, 1, 2 from the top in the Y direction. A combination of these coordinates can be used as a tile ID for identifying the position of each tile. For example, the upper left tile is a tile that is the start of tile vector data, and the tile ID is (X, Y) = (0, 0). The tile ID of the right tile is (X, Y) = (1, 0), and the tile ID of the lower right tile is (X, Y) = (3, 3).
(ステップS2502)
システムメモリ5に読み込まれた、1ページ分のページベクタデータに存在するオブジェクトを、タイル内に収まる複数のオブジェクトに分割して、タイルベクタデータを生成する。そのために、タイル内のオブジェクトの有無を識別する識別フラグ(オブジェクト識別情報)を生成し、これをタイルベクタデータのヘッダに設定する。
(Step S2502)
Tile vector data is generated by dividing an object present in one page of page vector data read into the
具体的には、ページベクタデータ2401を構成する各タイルにおいて、オブジェクトの有無を解析する。オブジェクトがある場合は、識別フラグを「1」、オブジェクトがない場合は「0」に設定する。
Specifically, the presence or absence of an object is analyzed in each tile constituting the
例えば、タイルベクタデータ2405中のタイルID=(0,0)、(1,0)、(2,0)、(0,1)、(0,2)のタイル内には、オブジェクトが存在しないため、識別フラグは「0」となる。一方、残りのタイルID=(1,1)、(1,2)、(2,1)、(3,3)のタイル内には、オブジェクトが存在するため、識別フラグは「1」となる。 For example, the tile ID = (0,0), (1,0), (2,0), (0,1), (0,2) in the tile vector data 2405 has no object. Therefore, the identification flag is “0”. On the other hand, since the object exists in the remaining tile ID = (1,1), (1,2), (2,1), (3,3), the identification flag is “1”. .
(ステップS2503)
各タイルの位置を識別するタイルID、タイル内のオブジェクトの有無を示す識別フラグ及び各タイルベクタからタイルベクタデータを生成する。そのために、システムメモリ5に、図24(b)に示すタイルテーブル2402(タイル管理テーブル)を作成する。このタイルテーブル2402では、タイルID、識別フラグ、オブジェクトの内容(オブジェクトなし(no object)、データ(Data)等)の情報を、タイル毎に管理する。この場合、タイル名Tile0〜Tile8のタイルからなるタイルテーブルが構成される。
(Step S2503)
Tile vector data is generated from a tile ID for identifying the position of each tile, an identification flag indicating the presence or absence of an object in the tile, and each tile vector. For this purpose, a tile table 2402 (tile management table) shown in FIG. The tile table 2402 manages tile IDs, identification flags, and object contents (no object, data, etc.) information for each tile. In this case, a tile table including tiles with tile names Tile0 to Tile8 is configured.
(ステップS2504)
システムメモリ5に読み込まれた、1ページ分のページベクタデータ2401に対するタイルテーブル2402の生成が完了すると、システムメモリ5からHDD8へのタイルベクタデータの書込を開始するための書込設定を実行する。ここの書込設定においては、タイル位置を識別するタイルID=(0,0)のタイルデータから書込を開始するための設定を実行する。
(Step S2504)
When the generation of the tile table 2402 for the
(ステップS2505)
タイルIDに基づいて、処理対象のタイルのタイルテーブル2402の識別フラグを参照する。そして、その識別フラグ=1であるか否かを判定する。識別フラグ=1である場合(ステップS2505でYES)、タイル内にオブジェクトが存在するので、このタイルは、HDD8への書込対象であると判定して、ステップS2506へ進む。一方、識別フラグ=0である場合(ステップS2505でNO)、タイル内にオブジェクトが存在しないので、このタイルは、HDD8への書込対象でないと判定して、ステップS2507へ進む。
(Step S2505)
Based on the tile ID, the identification flag of the tile table 2402 of the tile to be processed is referred to. Then, it is determined whether or not the identification flag = 1. If the identification flag = 1 (YES in step S2505), since an object exists in the tile, it is determined that this tile is a write target to the
(ステップS2506):
処理対象のタイルのHDD8への書込を実行する。
(Step S2506):
Write the processing target tile to the
(ステップS2507):
未処理タイルデータの有無を判定する。未処理タイルデータがある場合(ステップS2507でYES)、ステップS2504へ戻り、次のタイルIDが示すタイルデータを処理対象のタイルデータとして設定する。一方、未処理タイルデータがない場合(ステップS2507でNO)、処理を終了する。
(Step S2507):
The presence / absence of unprocessed tile data is determined. If there is unprocessed tile data (YES in step S2507), the process returns to step S2504, and tile data indicated by the next tile ID is set as tile data to be processed. On the other hand, if there is no unprocessed tile data (NO in step S2507), the process ends.
ここで、ステップS1504〜ステップS1507の処理の具体的な動作について、図24(a)を用いて説明する。 Here, a specific operation of the processing in steps S1504 to S1507 will be described with reference to FIG.
まず、ステップS2504で、タイルID=(0,0)を設定する。これによって、タイルID=(0,0)の識別フラグをタイルテーブル2402で参照すると、その値は「0」であることから、対応するタイル内にオブジェクトは存在しないと判定する。そのため、このタイルID=(0,0)のタイルデータ(Tile0)は、HDD8への書込は実行しない(書込を禁止する)。 First, in step S2504, tile ID = (0, 0) is set. Accordingly, when the identification flag of tile ID = (0, 0) is referred to in the tile table 2402, the value is “0”, and therefore it is determined that no object exists in the corresponding tile. For this reason, the tile data (Tile 0) with the tile ID = (0, 0) is not written to the HDD 8 (writing is prohibited).
従って、この場合のタイルID=(0,0)のタイルについての処理は、ステップS2505からステップS2507へ進む。ステップS2507では、未処理のタイル(タイルID)が存在するので、ステップS2504へ戻る。 Accordingly, the processing for the tile with tile ID = (0, 0) in this case proceeds from step S2505 to step S2507. In step S2507, since there is an unprocessed tile (tile ID), the process returns to step S2504.
次に、ステップS2504で、タイルID=(1,0)を設定する。これによって、タイルID=(1,0)の識別フラグをタイルテーブル2402で参照すると、その値は「0」であることから、対応するタイル内にオブジェクトは存在しないと判定する。そのため、このタイルID=(1,0)のタイルデータ(Tile1)は、HDD8への書込は実行しない(書込を禁止する)。 In step S2504, tile ID = (1, 0) is set. Accordingly, when the identification flag of tile ID = (1, 0) is referred to in the tile table 2402, the value is “0”, and therefore it is determined that no object exists in the corresponding tile. Therefore, the tile data (Tile1) with this tile ID = (1, 0) is not written to the HDD 8 (writing is prohibited).
同様にして、タイルID=(2,0)、(0,1)のタイルデータ(Tile2、Tile3)も識別フラグの値が「0」であることから、そのタイルデータのHDD8への書込動作を禁止する。
Similarly, the tile data (Tile2, Tile3) of tile ID = (2, 0), (0, 1) also has an identification flag value of “0”, so that the tile data is written to the
次のタイルID=(1,1)の識別フラグをタイルテーブル2402で参照すると、その値は「1」であることから、対応するタイル内にオブジェクトは存在すると判定する。そのため、このタイルID=(1,1)のタイルデータ(Tile4)は、HDD8への書込を実行する。
When the identification flag of the next tile ID = (1, 1) is referred to in the tile table 2402, the value is “1”, so that it is determined that the object exists in the corresponding tile. Therefore, the tile data (Tile 4) with the tile ID = (1, 1) is written to the
従って、この場合のタイルID=(1,1)のタイルについての処理は、ステップS2505からステップS2506へ進む。そして、書込が終了すると、未処理のタイル(タイルID)が存在するので、ステップS2504へ戻る。 Accordingly, the processing for the tile with tile ID = (1, 1) in this case proceeds from step S2505 to step S2506. When the writing is completed, there is an unprocessed tile (tile ID), and the process returns to step S2504.
以下、同様にして、タイルID=(2,1)のタイルデータ(Tile5)も識別フラグの値が「1」であることから、そのタイルデータのHDD8への書込動作を実行する。次のタイルID=(0,2)のタイルデータ(Tile6)は識別フラグの値が「0」であることから、そのタイルデータのHDD8への書込動作を禁止する。更に、タイルID=(1,2)、(2,2)のタイルデータ(Tile7、Tile8)の識別フラグの値が「1」であることから、そのタイルデータのHDD8への書込動作を実行する。
Similarly, the tile data (Tile5) with the tile ID = (2, 1) also has an identification flag value of “1”, and thus the tile data is written to the
そして、タイルID=(2,2)に対する処理が完了した時点で、未処理のタイルがなくなるので、書込処理を終了する。 Then, when the processing for the tile ID = (2, 2) is completed, there is no unprocessed tile, so the writing processing is terminated.
以上の処理によって、タイルテーブル2402で管理されるタイル名Tile0〜Tile8の内、HDD8には、タイル名Tile4、5、7及び8のタイルデータだけが格納されることになるので、HDD8の記憶容量を節約することができる。また、HDD8のタイルデータの格納状態として、タイルテーブル2404が生成される。
With the above processing, among the tile names Tile0 to Tile8 managed in the tile table 2402, only the tile data of the tile names Tile4, 5, 7, and 8 is stored in the HDD8. Can be saved. Further, a tile table 2404 is generated as the storage state of the tile data in the
次に、HDD8に書き込まれたタイルベクタデータをシステムメモリ5へ読み出す場合の読出処理について、図26を用いて説明する。
Next, read processing when reading tile vector data written in the
図26は本発明の実施形態5のタイルベクタデータ読出処理を示すフローチャートである。 FIG. 26 is a flowchart showing tile vector data read processing according to the fifth embodiment of the present invention.
(ステップS2601)
HDD8に存在するタイルデータを読み出して識別するためのタイルIDの読出設定を実行する。
(Step S2601)
The tile ID reading setting for reading and identifying the tile data existing in the
(ステップS2602)
HDD8に格納されているタイルテーブル2404を参照して、HDD8に実際に格納されているタイルデータのタイルIDを読み出してシステムメモリ5に記憶する。
(Step S2602)
With reference to the tile table 2404 stored in the
(ステップS2603)
読出設定で設定した設定タイルIDと、HDD8から読み出した読出タイルIDが一致しているか否かを判定することで、読出順序が不連続のタイルIDの有無を判定する。一致していない場合(ステップS2603でYES)、不連続タイルIDがあると判定し、ステップS2604へ進む。一方、一致している場合(ステップS2603でNO)、不連続タイルIDがないと判定し、ステップS2605に進む。
(Step S2603)
By determining whether or not the set tile ID set in the read setting matches the read tile ID read from the
(ステップS2604)
不連続タイルIDがある場合は、内部にオブジェクトが存在しないために、HDD8へ書き込まれなかったタイルデータが存在することになる。この場合、読出時にはそのタイルデータを、それを構成要素とするタイルベクタデータを再現するために、タイルテーブル2404の状態から、タイルテーブル2402の状態へ再構成する必要がある。
(Step S2604)
If there is a discontinuous tile ID, there is no object in the interior, so tile data that has not been written to the
そこで、ここでは、タイルテーブル2404に対して、不連続タイルIDに該当するタイルデータに関するデータを、タイルテーブル2404に追加する。 Therefore, here, data relating to tile data corresponding to the discontinuous tile ID is added to the tile table 2404 with respect to the tile table 2404.
(ステップS2605)
不連続タイルIDがない場合は、そのまま、タイルテーブル2404を参照して、タイルデータの読出を実行する。
(Step S2605)
If there is no discontinuous tile ID, the tile data is read with reference to the tile table 2404 as it is.
(ステップS2606):
タイルデータの読出の実行後、未処理のタイルの有無を判定する。未処理タイルデータがある場合(ステップS2606でNO)、ステップS2601へ戻り、次のタイルIDが示すタイルデータを処理対象のタイルデータとして設定する。一方、未処理タイルデータがない場合(ステップS2606でYES)、処理を終了する。
(Step S2606):
After executing the reading of tile data, it is determined whether or not there is an unprocessed tile. If there is unprocessed tile data (NO in step S2606), the process returns to step S2601, and the tile data indicated by the next tile ID is set as tile data to be processed. On the other hand, if there is no unprocessed tile data (YES in step S2606), the process ends.
ここで、ステップS2601〜ステップ2606の処理の具体的な動作について、図24(a)を用いて説明する。 Here, a specific operation of the processing in steps S2601 to S2606 will be described with reference to FIG.
まず、ステップS2601で、HDD8からタイルデータの読出を実行するために、その読出位置とするタイル位置を先頭ID=(0,0)(設定タイルID)に設定する。
First, in step S2601, in order to execute reading of tile data from the
ステップS2602で、タイルテーブル2404を参照して、HDD8からタイルIDの読出を実行し、読み出したタイルID(読出タイルID)をシステムメモリ5に記憶する。読み出したタイルIDは、後のタイルテーブルへのタイルデータの追加処理で使用するため、最新の読出タイルID履歴をいくつか保存しておく。ここでは、HDD8に記憶されているタイルテーブル2404からタイルID=(1,1)を読み出す。
In step S2602, the tile ID is read from the
ステップS2603で、タイルIDの比較を行う。ここでは、設定タイルID=(0,0)に対し、読出タイルID=(1,1)であるため、タイルIDの読出順序が不連続、つまり、不連続タイルIDとなっていることが分かる。不連続タイルIDがあるということは、内部にオブジェクトが存在しないタイルデータが存在することを示している。 In step S2603, tile IDs are compared. Here, since the read tile ID = (1, 1) with respect to the set tile ID = (0, 0), it can be seen that the tile ID read order is discontinuous, that is, the discontinuous tile ID. . The presence of a discontinuous tile ID indicates that there is tile data in which no object exists.
そのため、ここでは、ステップS2604で、タイルテーブルへのタイルデータの追加を実行する。つまり、読出タイルID=(1,1)のタイルデータにはオブジェクトデータが存在するため、それより前の不連続分のタイルID=(0,0)、(1,0)、(2,0)、(0,1)に関して、オブジェクトが存在しないタイルデータを追加したタイルテーブル2402を作成する。この時点では、タイルテーブル2402は、タイル名がTile0〜Tile3までが構成される。 Therefore, here, addition of tile data to the tile table is executed in step S2604. That is, since the object data exists in the tile data of the read tile ID = (1, 1), the discontinuous tile IDs before that (= 0, 0), (1, 0), (2, 0 ) And (0, 1), a tile table 2402 to which tile data having no object is added is created. At this time, the tile table 2402 includes tile names Tile0 to Tile3.
次に、ステップS2605で、タイルID=(1,1)のタイルデータをHDD8から読み出す。ステップS2606では、未処理のタイルIDが存在するので、ステップS2601へ戻る。
Next, in step S2605, tile data of tile ID = (1, 1) is read from the
次に、ステップS2601では、設定タイルID=(2,1)、ステップS2602では、読出タイルID=(2,1)となる。また、ステップS2602では、読出タイルIDの履歴をシステムメモリ5に保存してあるため、ステップS2603で、設定タイルID=(2,1)に対して、前回の読出タイルID=(1,1)との比較を行う。今回は、タイルIDの読出順序が連続しているため、ステップS2605へ進み、タイルID=(2,1)のタイルデータをHDD8から読み出す。
Next, in step S2601, set tile ID = (2, 1), and in step S2602, read tile ID = (2, 1). In step S2602, since the history of the read tile ID is stored in the
以下、同様にして、処理を実行することにより、タイルID=(0,2)について、そのタイルデータがタイルテーブル2402に追加され、タイルID=(1,2)、(2,2)については、HDD8からのタイルデータの読出が実行される。
In the same manner, the tile data is added to the tile table 2402 for the tile ID = (0, 2) by executing the process in the same manner. For the tile ID = (1, 2), (2, 2) Then, reading of tile data from the
これにより、未処理のタイルIDがなくなるので、読出処理を終了する。この読出処理が終了することで、書込処理時と同じタイルテーブル2402が再現される。そして、このタイルテーブル2402を用いることで、タイルベクタデータ2405を復元(読出)することができる。読出処理の終了後、読出タイルIDの履歴は消去される。 As a result, there is no unprocessed tile ID, and the reading process ends. When this reading process is completed, the same tile table 2402 as in the writing process is reproduced. By using this tile table 2402, the tile vector data 2405 can be restored (read). After the reading process is completed, the history of the reading tile ID is deleted.
以上説明したように、実施形態5によれば、実施形態1〜4で説明した効果に加えて、システムメモリ上に生成されたタイルベクタデータをHDDへ格納する場合には、そのタイルベクタデータを構成する各タイルデータの位置を識別するタイルヘッダ及び、オブジェクトの有無を識別するフラグを管理するタイルテーブルを作成し、オブジェクトが存在しないタイルデータに関しては、HDDに該当するタイルデータの書込を禁止する。 As described above, according to the fifth embodiment, in addition to the effects described in the first to fourth embodiments, when the tile vector data generated on the system memory is stored in the HDD, the tile vector data is stored in the HDD. Create a tile table that manages the tile header that identifies the position of each piece of tile data and a flag that identifies the presence or absence of an object, and for tile data that does not have an object, writing the tile data that corresponds to the HDD is prohibited To do.
これにより、HDDへ格納するデータ量を削減することが可能となるとともに、HDDへの書込/読出処理において、アクセス回数を削減でき、動作パフォーマンスの高いシステムが構成を実現することができる。 As a result, the amount of data stored in the HDD can be reduced, and the number of accesses can be reduced in writing / reading processing to the HDD, so that a system with high operating performance can be realized.
[実施形態6]
図29に示す従来のシステムでは、ページベクタデータに含まれるフォントオブジェクトは、CPU102によりシステムメモリ104上に設けられたフォントキャッシュ(不図示)に、対応するフォントオブジェクトが既に登録されているか否かが検索される。そして、対応するフォントオブジェクトが登録されていない場合、CPU102により、そのフォントオブジェクトがビットマップ展開された後、フォントキャッシュに登録される。
[Embodiment 6]
In the conventional system shown in FIG. 29, whether or not a font object included in the page vector data is already registered in a font cache (not shown) provided on the
そして、その登録されたフォントデータのシステムメモリ104上の位置が中間データ内で指示され登録されていれば、展開処理無しに、その展開済フォントデータのシステムメモリ104上の位置が中間データ内で指示される。
If the position of the registered font data on the
中間データを受け取ったRIP113は、フォント以外の描画オブジェクトを展開処理すると共に、指示されたフォントキャッシュの位置より展開済フォントデータを読み取り、ビットマップデータを作成して、システムメモリ104へ保存する。その後、SBB101を介して画像処理部110で画像処理され、プリンタ112へ送られ印刷される。
Receiving the intermediate data, the
このような画像処理システムにおいて、フォントキャッシュの有効活用を行なう構成として、例えば、特開平10−016319号公報の構成がある。この構成では、フォントキャッシュデータ毎にカウンタを設け、中間データ生成時にフォントキャッシュにヒットする毎に、カウンタをインクリメントする。また、画像データ展開処理にてヒットしたフォントキャッシュを参照する毎にカウンタをデクリメントする。そして、カウンタが初期値になるまで、フォントキャッシュデータを保持する。 In such an image processing system, as a configuration for effectively using a font cache, for example, there is a configuration disclosed in Japanese Patent Laid-Open No. 10-016319. In this configuration, a counter is provided for each font cache data, and the counter is incremented each time the font cache is hit when generating intermediate data. The counter is decremented every time the font cache hit in the image data development process is referred to. The font cache data is held until the counter reaches the initial value.
しかしながら、このような構成では、ヒットする回数分以上のカウンタを用意する必要がある。ここで、通常、処理対象のデータ内に一つの文字が何回出現するかは予想できないので十分大きなカウンタが必要になる。通常、カウンタはフォントキャッシュと同じシステムメモリ上に用意されることになるので、より大きな容量のシステムメモリを必要としてしまう。 However, in such a configuration, it is necessary to prepare counters equal to or more than the number of hits. Here, since it is usually impossible to predict how many times one character appears in the data to be processed, a sufficiently large counter is required. Usually, since the counter is prepared in the same system memory as the font cache, a larger system memory is required.
また、さらなる印刷速度向上を狙って、インタプリタ部と画像データ展開部を複数具備し、並列処理を実現した際には、カウンタに対して複数のインタプリタ部と複数の画像データ展開部からのアクセスが同時に発生してしまうことが多発し、並列処理を阻害する可能性も大きくなる。 In order to further improve the printing speed, a plurality of interpreter units and image data expansion units are provided, and when parallel processing is realized, access from a plurality of interpreter units and a plurality of image data expansion units to the counter is possible. It often occurs at the same time, and the possibility of hindering parallel processing increases.
そこで、実施形態6では、画像データ展開部が備える複数の小画像データ展開部が並列にラスタライズ処理(ベクタデータをビットマップデータへ変換)を行なう場合に、各小画像データ展開部が参照しているフォントキャッシュデータを確実に保護する構成について説明する。 Therefore, in the sixth embodiment, when a plurality of small image data expansion units included in the image data expansion unit perform rasterization processing (converting vector data into bitmap data) in parallel, each small image data expansion unit refers to A configuration for reliably protecting existing font cache data will be described.
このフォントキャッシュを保護するための構成は、各小画像データ展開部が同時に(独立に)操作できるようにすることで、画像データ展開処理の並列動作を阻害することを防止することができる。 The configuration for protecting the font cache can prevent the parallel operation of the image data expansion processing from being hindered by allowing the small image data expansion units to operate simultaneously (independently).
また、このフォントキャッシュを保護するための構成は、該当フォントの出現回数には因らず、並列に動作する小画像データ展開部の個数分だけ用意すればよいので、メモリの使用量を削減することができる。 In addition, the configuration for protecting the font cache only requires the number of small image data development units operating in parallel regardless of the number of appearances of the corresponding font, thereby reducing the amount of memory used. be able to.
以下、実施形態6における、画像データ展開部18の応用例について説明する。
Hereinafter, an application example of the image
まず、画像データ展開部18の詳細構成について、図27を用いて説明する。
First, a detailed configuration of the image
図27は本発明の実施形態6の画像データ展開部の詳細構成を示す図である。 FIG. 27 is a diagram showing a detailed configuration of the image data development unit according to the sixth embodiment of the present invention.
小画像データ展開部(μRIP)18a〜18dには、それぞれが並列に入力されるタイルベクタを展開することでパフォーマンス向上を果たしている。2705は、一度展開した文字(フォント)データを再利用のために保存するフォントキャッシュである。フォントキャッシュ2705には、フォントキャッシュメモリ2706と、フォントキャッシュメモリ2706を参照中であることを示すロックフラグを記憶するロックフラグレジスタ2707〜2710より構成されている。尚、図27では図示していないが、フォントキャッシュメモリ2706は、図1のローカルメモリ19上に割り当てられる。
The small image data development units (μRIP) 18a to 18d improve performance by developing tile vectors input in parallel.
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組示されているが、この数に限定されるものではなく、要求されるシステムのパフォーマンスに合わせて増減して良いことは言うまでもない。 In FIG. 27, four sets of μRIP and lock flag register are shown, but the number is not limited to this number, and it goes without saying that the number may be increased or decreased according to the required system performance.
次に、フォントキャッシュの動作例について、図28を用いて説明する。 Next, an operation example of the font cache will be described with reference to FIG.
図28は本発明の実施形態6のフォントキャッシュの動作例を示す図である。 FIG. 28 is a diagram showing an operation example of the font cache according to the sixth embodiment of the present invention.
図28は、フォントキャッシュメモリ2706とロックフラグレジスタ2707〜2710で構成されるフォントキャッシュ2705の一例を示している。
FIG. 28 shows an example of a
2100は、フォントキャッシュ2705のデータを管理するためのフォントキャッシュ管理テーブルである。2101は、n個の格納部から構成される展開済フォントデータの格納部である。フォントキャッシュ管理テーブル2100には登録されている文字を識別するための文字識別情報と、その文字の展開済フォントデータが格納されているフォントキャッシュメモリのアドレス(格納アドレス)、及び、小画像データ展開部(μRIP)の数だけのロックフラグレジスタで構成されている。
展開済フォントデータの格納部2101には、フォントキャッシュ管理テーブル2100に示される格納アドレスから、各文字の展開済フォントデータが格納されている。
The expanded font
以下、図27及び28を用いて、各μRIPのフォント展開処理とフォントキャッシュの動作について説明する。 Hereinafter, the font development processing and font cache operation of each μRIP will be described with reference to FIGS.
μRIP18aは、タイルベクタデータ2716を受け取る。このタイルベクタデータ2716には、文字「あ」が含まれている。μRIP18aは、フォントキャッシュ管理テーブル2100の文字識別情報を検索し、テーブル内のデータエントリ2103で「あ」が登録済であることを認識する(ヒットと認識する)。
The
この場合、ヒットしたので、μRIP18aは、制御信号線2712によって接続されているロックフラグレジスタ2707のデータエントリ2103に相当するフラグに「1」をセットし、フォントキャッシュメモリ2706を参照中であることを示す。
In this case, since it hits, the
その後、フォントキャッシュ管理テーブル2100内のデータエントリ2103の格納アドレスで示される「Address 1」より、展開済フォントデータ1(2109)の読出を開始し、タイルベクタデータ2716の展開処理を実行する。展開済フォントデータ1(2109)の読出が終了したら、先にセットしたロックフラグレジスタ2707のデータエントリ2103に相当するフラグを「0」にクリアし、フォントキャッシュメモリ2706の参照が終了したことを示す。
Thereafter, reading of expanded font data 1 (2109) is started from “
μRIP18bは、タイルベクタデータ2717を受け取る。このタイルベクタデータ2717には文字「A」が含まれている。μRIP18bは、フォントキャッシュ管理テーブル2100の文字識別情報を検索し、テーブル内の2データエントリ2105で「A」が登録済であることを認識する(ヒットと認識する)。
The
この場合、ヒットしたので、μRIP18bは、制御信号線2713によって接続されているロックフラグレジスタ2708のデータエントリ2105に相当するフラグに「1」をセットし、フォントキャッシュメモリ2706を参照中であることを示す。
In this case, since it hits, the
その後、フォントキャッシュ管理テーブル2100内のデータエントリ2105の格納アドレスで示される「Address 3」より、展開済フォントデータ3(2111)の読出を開始し、タイルベクタデータ2717の展開処理を実行する。展開済フォントデータ3(2111)の読出が終了したら、先にセットしたロックフラグレジスタ2708のデータエントリ2105に相当するフラグを「0」にクリアし、フォントキャッシュメモリ2706の参照が終了したことを示す。
Thereafter, reading of expanded font data 3 (2111) is started from “
μRIP18cは、タイルベクタデータ2718を受け取る。このタイルベクタデータ2718には文字「A」が含まれている。μRIP18cは、フォントキャッシュ管理テーブル2100の文字識別情報を検索し、テーブル内のデータエントリ2105で「A」が登録済であることを認識する(ヒットと認識する)。
The
この場合、ヒットしたので、μRIP18cは、制御信号線2714によって接続されているロックフラグレジスタ2709のデータエントリ2105に相当するフラグに「1」をセットし、フォントキャッシュメモリ2706を参照中であることを示す。
In this case, since a hit occurs, the
その後、フォントキャッシュ管理テーブル2100内のデータエントリ2105の格納アドレスに示される「Address 3」より、展開済フォントデータ3(2111)の読出を開始し、タイルベクタデータ2718の展開処理を実行する。展開済フォントデータ3(2111)の読出が終了したら、先にセットしたロックフラグレジスタ2709のデータエントリ2105に相当するフラグを「0」にクリアし、フォントキャッシュメモリ2706の参照が終了したことを示す。
Thereafter, reading of expanded font data 3 (2111) is started from “
μRIP18dは、タイルベクタデータ2719を受け取る。このタイルベクタデータ2719には文字「う」が含まれている。μRIP18dは、フォントキャッシュ管理テーブル2100の文字識別情報を検索し、「う」が未登録であることを認識する(ミスと認識する)。
The
この場合、ミスしたので、μRIP18dは文字「う」の展開処理を実行する。展開処理が終了すると、文字「う」の展開済フォントデータをフォントキャッシュ2705に登録する。このとき、μRIP18dは、フォントキャッシュ管理テーブル2100のロックフラグレジスタを参照し、どのフラグもセットされていないもの、つまり、他のどのμRIPも参照中でないものの中から置き換える展開済フォントデータを選択するように動作する。ロックフラグレジスタの内容が、図28のような状態であれば、データエントリ2103と2105は置き換え候補から除かれることになる。
In this case, since a mistake has been made, the
以上説明したフォントキャッシュの構成と動作により、複数の小画像データ展開部(μRIP)が並列にラスタライズ処理(ベクタデータをビットマップデータへ変換)を行なう場合に、各小画像データ展開部が参照している展開済フォントデータ(フォントキャッシュデータ)は、ロックフラグがセットされているので置き換え対象とはならないので確実に保護できる効果がある。 With the configuration and operation of the font cache described above, when a plurality of small image data expansion units (μRIP) perform rasterization processing (conversion of vector data to bitmap data) in parallel, each small image data expansion unit refers to Since the expanded font data (font cache data) is not set as a replacement target because the lock flag is set, there is an effect that can be surely protected.
また、ロックフラグレジスタは、各μRIP毎に用意し、独立して操作できる構成にしたので、μRIPの並列動作を阻害する要因から排除される。さらに、ロックフラグレジスタは、μRIPの個数分だけ用意すればよいので、出現回数等によるカウンタによる置き換え保護と比較して、少ないリソース(メモリ等)で実現可能である。 Further, since the lock flag register is prepared for each μRIP and can be operated independently, it is excluded from factors that hinder the parallel operation of μRIP. Furthermore, since it is sufficient to prepare as many lock flag registers as the number of μRIPs, the lock flag registers can be realized with fewer resources (memory or the like) as compared with replacement protection by a counter based on the number of appearances.
また、実施形態6では、フォントキャッシュを画像データ展開部内のローカルメモリ19上に配置したが、システムメモリ8上に構成しても良いことは言うまでもない。
In the sixth embodiment, the font cache is arranged on the
以上説明したように、実施形態6によれば、画像データ展開部が備える複数の小画像データ展開部が並列にラスタライズ処理(ベクタデータをビットマップデータへ変換)を行なう場合に、各小画像データ展開部が参照しているフォントキャッシュデータを確実に保護することができる。 As described above, according to the sixth embodiment, when a plurality of small image data expansion units included in the image data expansion unit perform rasterization processing (converting vector data into bitmap data) in parallel, each small image data The font cache data referred to by the development unit can be reliably protected.
この構成によれば、各小画像データ展開部が同時に(独立に)操作できるようにすることで、画像データ展開処理の並列動作を阻害することを防止することができる。また、該当フォントの出現回数には因らず、並列に動作する小画像データ展開部の個数分だけ用意すればよいので、メモリの使用量を削減することができる。 According to this configuration, it is possible to prevent the parallel operations of the image data expansion processing from being hindered by allowing the small image data expansion units to be operated simultaneously (independently). Further, since only the number of small image data expansion units operating in parallel need to be prepared regardless of the number of appearances of the corresponding font, the amount of memory used can be reduced.
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。 Although the embodiments have been described in detail above, the present invention can take an embodiment as, for example, a system, an apparatus, a method, a program, or a storage medium, and specifically includes a plurality of devices. The present invention may be applied to a system that is configured, or may be applied to an apparatus that includes a single device.
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。 In the present invention, a software program (in the embodiment, a program corresponding to the flowchart shown in the drawing) that realizes the functions of the above-described embodiment is directly or remotely supplied to the system or apparatus, and the computer of the system or apparatus Is also achieved by reading and executing the supplied program code.
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。 Accordingly, since the functions of the present invention are implemented by computer, the program code installed in the computer also implements the present invention. In other words, the present invention includes a computer program itself for realizing the functional processing of the present invention.
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。 In that case, as long as it has the function of a program, it may be in the form of object code, a program executed by an interpreter, script data supplied to the OS, or the like.
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。 As a recording medium for supplying the program, for example, floppy (registered trademark) disk, hard disk, optical disk, magneto-optical disk, MO, CD-ROM, CD-R, CD-RW, magnetic tape, nonvolatile memory card ROM, DVD (DVD-ROM, DVD-R) and the like.
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。 As another program supply method, a client computer browser is used to connect to an Internet homepage, and the computer program of the present invention itself or a compressed file including an automatic installation function is downloaded from the homepage to a recording medium such as a hard disk. Can also be supplied. It can also be realized by dividing the program code constituting the program of the present invention into a plurality of files and downloading each file from a different homepage. That is, the present invention includes a WWW server that allows a plurality of users to download a program file for realizing the functional processing of the present invention on a computer.
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。 In addition, the program of the present invention is encrypted, stored in a storage medium such as a CD-ROM, distributed to users, and key information for decryption is downloaded from a homepage via the Internet to users who have cleared predetermined conditions. It is also possible to execute the encrypted program by using the key information and install the program on a computer.
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。 In addition to the functions of the above-described embodiments being realized by the computer executing the read program, the OS running on the computer based on an instruction of the program is a part of the actual processing. Alternatively, the functions of the above-described embodiment can be realized by performing all of them and performing the processing.
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。 Furthermore, after the program read from the recording medium is written to a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion board or The CPU or the like provided in the function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are also realized by the processing.
1 コントローラ
2 システムバスブリッジ
3 CPU
4 メモリコントローラ
5 システムメモリ
6 汎用バス
7 ハードディスクコントローラ
8 ハードディスクドライブ
9 操作部コントローラ
10 操作部
11 ネットワークI/F
12 ネットワーク
13 タイル/ページベクタ変換部
14 ラスタ/タイルベクタ変換部
15 画像処理部
16 スキャナ
17 プリンタ
18 画像データ展開部
18a〜18d 小画像データ展開部
19 ローカルメモリ
1
4
DESCRIPTION OF
Claims (18)
画像データを入力する入力手段と、
画像データを出力する出力手段と、
ラスタ画像データを、所定の大きさのブロック毎に分割し、ベクトル化処理を実行することにより、当該所定の大きさに分割された各ブロックに対応するブロックベクタ画像データに変換する第1変換手段と、
ブロックベクタ画像データを記憶する記憶手段と、
ブロックベクタ画像データをラスタ画像データに展開する展開手段と、
ページ全体を示すページベクタ画像データを、所定の大きさのブロックに対応するブロックベクタ画像データへ変換する第2変換手段と、
画像データ転送制御手段であって、
前記入力手段から入力された画像データがラスタ画像データである場合は、前記第1変換手段でブロックベクタ画像データに変換させ、
前記入力手段から入力された画像データが前記ページベクタ画像データである場合は、前記第2変換手段でブロックベクタ画像データに変換させ、
前記第1変換手段あるいは前記第2変換手段を用いて変換された前記ブロックベクタ画像データを前記記憶手段に記憶させ、
前記記憶手段に記憶されたブロックベクタ画像データに対して前記展開手段を実行させて得られるラスタ画像データを前記出力手段から出力させる
ように、装置内での処理対象の画像データの転送を制御する画像データ転送制御手段と
を備えることを特徴とする画像処理装置。 An image processing apparatus that executes processing on input image data,
Input means for inputting image data;
An output means for outputting image data;
First conversion means for converting raster image data into block vector image data corresponding to each block divided into the predetermined size by dividing the raster image data into blocks of a predetermined size and executing vectorization processing When,
Storage means for storing block vector image data;
Expansion means for expanding block vector image data into raster image data;
Second conversion means for converting page vector image data indicating the entire page into block vector image data corresponding to a block of a predetermined size ;
The image data transfer control means,
When the image data input from the input means is raster image data, the first conversion means converts the image data into block vector image data,
When the image data input from the input means is the page vector image data, the second conversion means converts it to block vector image data,
Storing the block vector image data converted by using the first conversion means or the second conversion means in the storage means;
Controls transfer of image data to be processed in the apparatus so that raster image data obtained by executing the expansion means on the block vector image data stored in the storage means is output from the output means. Image data transfer control means
The image processing apparatus comprising: a.
画像データを入力する入力手段と、
画像データを出力する出力手段と、
ラスタ画像データを、所定の大きさのブロック毎に分割し、ベクトル化処理を実行することにより、当該所定の大きさに分割された各ブロックに対応するブロックベクタ画像データに変換する第1変換手段と、
ブロックベクタ画像データを記憶する記憶手段と、
ブロックベクタ画像データをラスタ画像データに展開する展開手段と、
前記入力手段から入力されたラスタ画像データを前記第1変換手段でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御手段と、
1ページ分のブロックベクタ画像データから、ページ全体を示すページベクタ画像データへ変換する第3変換手段とを備え、
前記画像データ転送制御手段は、更に、
前記出力手段から出力させるべき画像データの形式がラスタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記展開手段を実行させて得られるラスタ画像データを前記出力手段から出力させ、
前記出力手段から出力させるべき画像データの形式がベクタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記第3変換手段を実行させて得られる前記ページベクタ画像データを前記出力手段から出力させる
ように、装置内での処理対象の画像データの転送を制御する
ことを特徴とする画像処理装置。 An image processing apparatus that executes processing on input image data,
Input means for inputting image data;
An output means for outputting image data;
First conversion means for converting raster image data into block vector image data corresponding to each block divided into the predetermined size by dividing the raster image data into blocks of a predetermined size and executing vectorization processing When,
Storage means for storing block vector image data;
Expansion means for expanding block vector image data into raster image data;
The raster image data input from said input means is converted into the block vector image data by the first conversion means, to the transformed block vector image data Ru is stored in the storage means, processed in the apparatus Image data transfer control means for controlling the transfer of the image data;
Third conversion means for converting block vector image data for one page into page vector image data indicating the entire page,
The image data transfer control means further includes:
When it is determined that the format of the image data to be output from the output unit is a raster image data format, raster image data obtained by executing the expansion unit on the block vector image data stored in the storage unit Is output from the output means,
When it is determined that the format of the image data to be output from the output means is a vector image data format, the third conversion means obtained by executing the third conversion means on the block vector image data stored in the storage means An image processing apparatus, wherein transfer of image data to be processed in the apparatus is controlled so that page vector image data is output from the output means.
ことを特徴とする請求項1に記載の画像処理装置。 2. The input unit includes an image processing unit that inputs raster image data from a scanner unit, and an interface unit that inputs the page vector image data transmitted from an external device. Image processing apparatus.
ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。 The image processing apparatus according to claim 1, wherein the output unit includes an image processing unit that outputs the raster image data to a printer unit.
ことを特徴とする請求項2に記載の画像処理装置。 The image processing apparatus according to claim 2, wherein the output unit includes an interface unit that outputs page vector image data indicating an entire page to an external apparatus.
ことを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。 The image data transfer control means is connected to the respective means via a bus, and performs bus arbitration control for executing the bus arbitration control for transferring the processing target image data in accordance with the processing target image data. The image processing apparatus according to claim 1, further comprising:
画像データを入力する入力手段と、
画像データを出力する出力手段と、
ラスタ画像データを、所定の大きさのブロック毎に分割し、ベクトル化処理を実行することにより、当該所定の大きさに分割された各ブロックに対応するブロックベクタ画像データに変換する第1変換手段と、
1ページ分のブロックベクタ画像データから、ページ全体を示すページベクタ画像データへ変換する第3変換手段と、
ブロックベクタ画像データとページベクタ画像データを記憶する記憶手段と、
ブロックベクタ画像データをラスタ画像データに展開する展開手段と、
前記入力手段から入力されたラスタ画像データを前記第1変換手段でブロックベクタ画像データに変換させ、前記変換されたブロックベクタ画像データを前記第3変換手段でページベクタ画像データへ変換させ、当該変換されたブロックベクタ画像データと当該変換されたページベクタ画像データとを関連付けて前記記憶手段に予め記憶させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御手段とを備え、
前記画像データ転送制御手段は、更に、
前記出力手段から出力させるべき画像データの形式がラスタ画像データ形式であると判断した場合は、前記記憶手段に予め記憶されているブロックベクタ画像データを前記展開手段で展開して得られるラスタ画像データを前記出力手段から出力させ、
前記出力手段から出力させるべき画像データの形式がベクタ画像データ形式であると判断した場合は、前記記憶手段に予め記憶されているページベクタ画像データを前記出力手段から出力させるように、装置内での処理対象の画像データの転送を制御する
ことを特徴とする画像処理装置。 An image processing apparatus that executes processing on input image data,
Input means for inputting image data;
An output means for outputting image data;
First conversion means for converting raster image data into block vector image data corresponding to each block divided into the predetermined size by dividing the raster image data into blocks of a predetermined size and executing vectorization processing When,
Third conversion means for converting block vector image data for one page into page vector image data indicating the entire page;
Storage means for storing block vector image data and page vector image data ;
Expansion means for expanding block vector image data into raster image data;
The raster image data input from the input means is converted to block vector image data by the first conversion means, the converted block vector image data is converted to page vector image data by the third conversion means, and the conversion is performed. block vector image data and such that the Ru transformed in association with page vector image data is previously stored in the storage means which is an image data transfer control means for controlling the transfer of image data to be processed in the apparatus With
The image data transfer control means further includes:
When it is determined that the format of the image data to be output from the output unit is a raster image data format, raster image data obtained by expanding the block vector image data stored in advance in the storage unit by the expansion unit Is output from the output means,
If it is determined that the format of the image data to be output from the output unit is a vector image data format, the page vector image data stored in advance in the storage unit is output from the output unit in the apparatus. An image processing apparatus that controls transfer of image data to be processed.
前記第2変換手段は、
前記曲線オブジェクトを内包する凸多角形を算出する算出手段と、
前記算出手段で算出した凸多角形と注目ブロックの辺と交差するか否かを評価する評価手段と、
前記評価手段の評価結果に基づいて、前記注目ブロックの注目辺と前記曲線オブジェクトとの交点を算出する交点算出手段と、
前記交点算出手段で算出した交点に基づいて、前記曲線オブジェクトをブロック単位で分割する分割手段と
を備えることを特徴とする請求項1に記載の画像処理装置。 When converting the page vector image data including a curved object into block vector image data corresponding to a block of a predetermined size,
The second conversion means includes
Calculating means for calculating a convex polygon containing the curve object;
Evaluation means for evaluating whether or not the convex polygon calculated by the calculation means intersects the side of the block of interest;
Based on the evaluation result of the evaluation means, an intersection calculation means for calculating an intersection between the attention side of the attention block and the curve object;
The image processing apparatus according to claim 1, further comprising: a dividing unit that divides the curved object in units of blocks based on the intersection calculated by the intersection calculating unit.
前記第2変換手段は、
前記イメージオブジェクトの解像度と所定解像度を比較する比較手段と、
前記比較手段の比較の結果、前記イメージオブジェクトの解像度が前記所定解像度以下である場合、複数のブロックに跨がって存在する該イメージオブジェクトを、その複数のブロックの各ブロック境界で分割する第1分割手段と、
前記比較手段の比較の結果、前記イメージオブジェクトの解像度が前記所定解像度より大きい場合、複数のブロックに跨がって存在する該イメージオブジェクトを、その複数のブロックの各ブロック境界を越える該イメージのオブジェクトの一部が互いに重複するように分割する第2分割手段と
を備えることを特徴とする請求項1に記載の画像処理装置。 When the page vector image data including an image object is divided into blocks of a predetermined size and converted into the block vector image data,
The second conversion means includes
A comparison means for comparing the resolution of the image object with a predetermined resolution;
As a result of the comparison by the comparison means, when the resolution of the image object is equal to or lower than the predetermined resolution, the image object existing across a plurality of blocks is divided at each block boundary of the plurality of blocks. Dividing means;
As a result of the comparison by the comparison means, if the resolution of the image object is greater than the predetermined resolution, the image object that exists across a plurality of blocks is replaced with the object of the image that exceeds each block boundary of the plurality of blocks. The image processing apparatus according to claim 1, further comprising: a second dividing unit that divides the image data so as to partially overlap each other.
1)処理対象のブロックベクタ画像データが第1分割手段で分割されたものである場合、前記ブロックベクタ画像データに含まれるイメージオブジェクトの注目画素に基づいて、該イメージオブジェクトを補間する第1補間方法を用いて、前記ブロックベクタ画像データをラスタ画像データに展開し、
2)処理対象のブロックベクタ画像データが第2分割手段で分割されたものである場合、前記ブロックベクタ画像データに含まれるイメージオブジェクトの注目画素と周辺画素に基づいて、該イメージオブジェクトを補間する第2補間方法を用いて、前記ブロックベクタ画像データをラスタ画像データに展開する
ことを特徴とする請求項9に記載の画像処理装置。 The expansion means is
1) A first interpolation method for interpolating an image object based on a pixel of interest of the image object included in the block vector image data when the block vector image data to be processed is divided by the first dividing means To develop the block vector image data into raster image data,
2) When the block vector image data to be processed is divided by the second dividing unit, the image object is interpolated based on the target pixel and the peripheral pixels of the image object included in the block vector image data. The image processing apparatus according to claim 9, wherein the block vector image data is expanded into raster image data using a two-interpolation method.
ことを特徴とする請求項9に記載の画像処理装置。 The image processing apparatus according to claim 9, wherein the predetermined resolution is a resolution of raster image data generated by the developing unit.
ラスタ画像データを、所定の大きさのブロック毎に分割し、ベクトル化処理を実行することにより、当該所定の大きさに分割された各ブロックに対応するブロックベクタ画像データに変換する第1変換工程と、
ブロックベクタ画像データを記憶手段に記憶する記憶工程と、
ブロックベクタ画像データをラスタ画像データに展開する展開工程と、
ページ全体を示すページベクタ画像データを、所定の大きさのブロックに対応するブロックベクタ画像データへ変換する第2変換工程と、
画像データ転送制御工程であって、
前記入力された画像データがラスタ画像データである場合は、前記第1変換工程でブロックベクタ画像データに変換させ、
前記入力された画像データが前記ページベクタ画像データである場合は、前記第2変換工程でブロックベクタ画像データに変換させ、
前記第1変換工程あるいは前記第2変換工程を用いて変換された前記ブロックベクタ画像データを前記記憶手段に記憶させ、
前記記憶手段に記憶されたブロックベクタ画像データに対して前記展開工程を実行させて得られるラスタ画像データを出力部から出力させる
ように、装置内での処理対象の画像データの転送を制御する画像データ転送制御工程と
を備えることを特徴とする制御方法。 A control method of an image processing apparatus for executing processing on input image data,
The raster image data is divided for each block having a predetermined size, by a child running the vectorization processing, first conversion for converting the block vector image data corresponding to each block divided into the predetermined size Process,
A storage step of storing block vector image data in a storage means;
A development process of developing block vector image data into raster image data;
A second conversion step of converting page vector image data indicating the entire page into block vector image data corresponding to a block of a predetermined size ;
An image data transfer control process ,
When the input image data is raster image data, it is converted into block vector image data in the first conversion step,
When the input image data is the page vector image data, in the second conversion step, converted into block vector image data,
Storing the block vector image data converted using the first conversion step or the second conversion step in the storage means;
An image for controlling transfer of image data to be processed in the apparatus so that raster image data obtained by executing the expansion process on block vector image data stored in the storage means is output from an output unit. Data transfer control process
Control method comprising: a.
ラスタ画像データを、所定の大きさのブロック毎に分割し、ベクトル化処理を実行することにより、当該所定の大きさに分割された各ブロックに対応するブロックベクタ画像データに変換する第1変換工程と、
ブロックベクタ画像データを記憶手段に記憶する記憶工程と、
ブロックベクタ画像データをラスタ画像データに展開する展開工程と、
前記入力されたラスタ画像データを前記第1変換工程でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段に記憶させるように、装置内での処理対象の画像データの転送を制御する画像データ転送制御工程と、
1ページ分のブロックベクタ画像データから、ページ全体を示すページベクタ画像データへ変換する第3変換工程とを備え、
前記画像データ転送制御工程では、更に、
出力部から出力させるべき画像データの形式がラスタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記展開工程を実行させて得られるラスタ画像データを前記出力部から出力させ、
前記出力部から出力させるべき画像データの形式がベクタ画像データ形式であると判断した場合は、前記記憶手段に記憶されたブロックベクタ画像データに対して前記第3変換工程を実行させて得られる前記ページベクタ画像データを前記出力部から出力させる
ように、装置内での処理対象の画像データの転送を制御する
ことを特徴とする制御方法。 A control method of an image processing apparatus for executing processing on input image data,
The raster image data is divided for each block having a predetermined size, by a child running the vectorization processing, first conversion for converting the block vector image data corresponding to each block divided into the predetermined size Process,
A storage step of storing block vector image data in a storage means;
A development process of developing block vector image data into raster image data;
Raster the input image data is converted into block vector image data in the first conversion step, as the transformed block vector image data Ru is stored in the storage unit, image data to be processed in the apparatus Image data transfer control process for controlling the transfer of
A third conversion step of converting block vector image data for one page into page vector image data indicating the entire page,
In the image data transfer control step ,
When it is determined that the format of the image data to be output from the output unit is the raster image data format, raster image data obtained by executing the expansion process on the block vector image data stored in the storage means Output from the output unit,
When it is determined that the format of the image data to be output from the output unit is a vector image data format, the third conversion step obtained by executing the third conversion step on the block vector image data stored in the storage means A control method comprising: controlling transfer of image data to be processed in the apparatus so that page vector image data is output from the output unit.
ラスタ画像データを、所定の大きさのブロック毎に分割し、ベクトル化処理を実行することにより、当該所定の大きさに分割された各ブロックに対応するブロックベクタ画像データに変換する第1変換手段と、
ブロックベクタ画像データを記憶媒体に記憶する記憶手段と、
ブロックベクタ画像データをラスタ画像データに展開する展開手段と、
ページ全体を示すページベクタ画像データを、所定の大きさのブロックに対応するブロックベクタ画像データへ変換する第2変換手段と、
制御手段であって、
前記入力された画像データがラスタ画像データである場合は、前記第1変換手段でブロックベクタ画像データに変換させ、
前記入力された画像データが前記ページベクタ画像データである場合は、前記第2変換手段でブロックベクタ画像データに変換させ、
前記第1変換手段あるいは前記第2変換手段を用いて変換された前記ブロックベクタ画像データを前記記憶手段で前記記憶媒体に記憶させ、
前記記憶媒体に記憶されたブロックベクタ画像データに対して前記展開手段を実行させて得られるラスタ画像データを出力部から出力させる
ように制御する制御手段と
して機能させるためのプログラム。 Computer
The raster image data is divided for each block having a predetermined size, by a child running the vectorization processing, first conversion for converting the block vector image data corresponding to each block divided into the predetermined size Means ,
Storage means for storing block vector image data in a storage medium ;
Expansion means for expanding block vector image data into raster image data;
Second conversion means for converting page vector image data indicating the entire page into block vector image data corresponding to a block of a predetermined size ;
Control means,
When the input image data is raster image data, the first conversion means converts it to block vector image data,
When the input image data is the page vector image data, the second conversion means converts it to block vector image data,
Storing the block vector image data converted by using the first conversion means or the second conversion means in the storage medium by the storage means;
Control means for controlling the raster image data obtained by executing the developing means on the block vector image data stored in the storage medium to be output from the output unit;
Program to make it function .
ラスタ画像データを、所定の大きさのブロック毎に分割し、ベクトル化処理を実行することにより、当該所定の大きさに分割された各ブロックに対応するブロックベクタ画像データに変換する第1変換手段と、
ブロックベクタ画像データを記憶媒体に記憶する記憶手段と、
ブロックベクタ画像データをラスタ画像データに展開する展開手段と、
前記入力されたラスタ画像データを前記第1変換手段でブロックベクタ画像データに変換させ、当該変換されたブロックベクタ画像データを前記記憶手段で前記記憶媒体に記憶させるように制御する制御手段と、
1ページ分のブロックベクタ画像データから、ページ全体を示すページベクタ画像データへ変換する第3変換手段、として機能させるためのプログラムであって、
前記制御手段では、更に、
出力部から出力させるべき画像データの形式がラスタ画像データ形式であると判断した場合は、前記記憶媒体に記憶されたブロックベクタ画像データに対して前記展開手段を実行させて得られるラスタ画像データを前記出力部から出力させ、
前記出力部から出力させるべき画像データの形式がベクタ画像データ形式であると判断した場合は、前記記憶媒体に記憶されたブロックベクタ画像データに対して前記第3変換手段を実行させて得られる前記ページベクタ画像データを前記出力部から出力させる
ように制御する
ことを特徴とするプログラム。 Computer
The raster image data is divided for each block having a predetermined size, by a child running the vectorization processing, first conversion for converting the block vector image data corresponding to each block divided into the predetermined size Means ,
Storage means for storing block vector image data in a storage medium ;
Expansion means for expanding block vector image data into raster image data;
And control means is converted into the block vector image data is controlled to the transformed block vector image data Ru is stored in the storage medium in the storage unit by the first conversion means raster the input image data,
A program for functioning as third conversion means for converting block vector image data for one page into page vector image data indicating the entire page ,
In the control means , further,
When it is determined that the format of the image data to be output from the output unit is a raster image data format, raster image data obtained by executing the expansion unit on the block vector image data stored in the storage medium Output from the output unit,
When it is determined that the format of the image data to be output from the output unit is the vector image data format, the third conversion unit obtained by executing the third conversion unit on the block vector image data stored in the storage medium A program for controlling page vector image data to be output from the output unit.
ページラスタ形式またはページベクタ形式の画像データを入力する入力手段と、
前記入力手段で入力された画像データの形式がページラスタ形式である場合、前記ページラスタ形式の画像データをブロックベクタ形式の画像データに変換する第1変換手段と、
前記入力手段で入力された画像データの形式がページベクタ形式である場合、前記ページベクタ形式の画像データをブロックベクタ形式の画像データに変換する第2変換手段と、
前記第1変換手段及び前記第2変換手段によって変換されたブロックベクタ形式の画像データを記憶する記憶手段と、
前記記憶手段に記憶されている前記ブロックベクタ形式の画像データに対して所定の処理を実行し、かつ前記所定の処理が実行された後の画像データを出力する出力手段と
を備えることを特徴とする画像処理装置。 An image processing apparatus for processing input image data,
Input means for inputting page raster format or page vector format image data;
If the format of the image data input by the input means is a page raster format, the first conversion means for converting the image data in the page raster format into image data in a block vector format;
If the format of the image data input by the input means is a page vector format, second conversion means for converting the image data of the page vector format into image data of a block vector format;
Storage means for storing block vector image data converted by the first conversion means and the second conversion means;
Output means for executing a predetermined process on the image data in the block vector format stored in the storage means and outputting the image data after the predetermined process is performed. An image processing apparatus.
ページラスタ形式またはページベクタ形式の画像データを入力する入力工程と、
前記入力工程で入力された画像データの形式がページラスタ形式である場合、前記ページラスタ形式の画像データをブロックベクタ形式の画像データに変換する第1変換工程と、
前記入力工程で入力された画像データの形式がページベクタ形式である場合、前記ページベクタ形式の画像データをブロックベクタ形式の画像データに変換する第2変換工程と、
前記第1変換工程及び前記第2変換工程によって変換されたブロックベクタ形式の画像データを記憶媒体に記憶する記憶工程と、
前記記憶媒体に記憶されている前記ブロックベクタ形式の画像データに対して所定の処理を実行し、かつ前記所定の処理が実行された後の画像データを出力する出力工程と
を備えることを特徴とする画像処理装置の制御方法。 A control method of an image processing apparatus for processing input image data,
An input process for inputting image data in page raster format or page vector format;
A first conversion step of converting the image data of the page raster format into image data of a block vector format when the format of the image data input in the input step is a page raster format;
If the format of the image data input in the input step is a page vector format, a second conversion step of converting the image data in the page vector format into image data in a block vector format;
A storage step of storing, in a storage medium, block vector format image data converted by the first conversion step and the second conversion step;
An output step of performing predetermined processing on the image data in the block vector format stored in the storage medium and outputting the image data after the predetermined processing is performed. For controlling an image processing apparatus.
ページラスタ形式またはページベクタ形式の画像データを入力する入力手段と、
前記入力手段で入力された画像データの形式がページラスタ形式である場合、前記ページラスタ形式の画像データをブロックベクタ形式の画像データに変換する第1変換手段と、
前記入力手段で入力された画像データの形式がページベクタ形式である場合、前記ページベクタ形式の画像データをブロックベクタ形式の画像データに変換する第2変換手段と、
前記第1変換手段及び前記第2変換手段によって変換されたブロックベクタ形式の画像データを記憶媒体に記憶する記憶手段と、
前記記憶媒体に記憶されている前記ブロックベクタ形式の画像データに対して所定の処理を実行し、かつ前記所定の処理が実行された後の画像データを出力する出力手段と
して機能させるためのプログラム。 Computer
Input means for inputting page raster format or page vector format image data;
If the format of the image data input by the input means is a page raster format, the first conversion means for converting the image data in the page raster format into image data in a block vector format;
If the format of the image data input by the input means is a page vector format, second conversion means for converting the image data of the page vector format into image data of a block vector format;
Storage means for storing, in a storage medium, block vector format image data converted by the first conversion means and the second conversion means ;
Output means for executing predetermined processing on the image data in the block vector format stored in the storage medium and outputting the image data after the predetermined processing is executed;
Program to make it function .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009166177A JP4475680B2 (en) | 2009-07-14 | 2009-07-14 | Image processing apparatus, control method therefor, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009166177A JP4475680B2 (en) | 2009-07-14 | 2009-07-14 | Image processing apparatus, control method therefor, and program |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005157607A Division JP4408836B2 (en) | 2005-05-30 | 2005-05-30 | Image processing apparatus, control method therefor, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009284508A JP2009284508A (en) | 2009-12-03 |
JP4475680B2 true JP4475680B2 (en) | 2010-06-09 |
Family
ID=41454401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009166177A Expired - Fee Related JP4475680B2 (en) | 2009-07-14 | 2009-07-14 | Image processing apparatus, control method therefor, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4475680B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6631119B2 (en) * | 2015-09-18 | 2020-01-15 | 富士ゼロックス株式会社 | Image processing device |
CN107564078B (en) * | 2016-06-30 | 2023-06-09 | 中国电力科学研究院 | Automatic vectorization method for grid partition map with interference pixels |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5947666A (en) * | 1982-09-13 | 1984-03-17 | Dainippon Screen Mfg Co Ltd | Data compressing method of binary picture |
JPH0773334A (en) * | 1993-09-02 | 1995-03-17 | Dainippon Screen Mfg Co Ltd | Device and method for processing bazier data signal |
JPH09218959A (en) * | 1996-02-13 | 1997-08-19 | Ricoh Co Ltd | Image processor |
KR100209132B1 (en) * | 1996-07-11 | 1999-07-15 | 전주범 | Method for coding contour in block based object coding system |
JP3474078B2 (en) * | 1997-05-02 | 2003-12-08 | 富士ゼロックス株式会社 | Drawing processing device |
JPH11203061A (en) * | 1998-01-12 | 1999-07-30 | Fuji Xerox Co Ltd | Image processor, output device, image processing system and method |
JP2004272485A (en) * | 2003-03-06 | 2004-09-30 | Ricoh Co Ltd | Image forming system |
JP2006054817A (en) * | 2004-08-16 | 2006-02-23 | Fuji Xerox Co Ltd | Document processor |
JP4766657B2 (en) * | 2005-05-02 | 2011-09-07 | キヤノン株式会社 | Image processing apparatus, control method therefor, and program |
-
2009
- 2009-07-14 JP JP2009166177A patent/JP4475680B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009284508A (en) | 2009-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4408836B2 (en) | Image processing apparatus, control method therefor, and program | |
JP4164518B2 (en) | Image processing apparatus, control method therefor, and program | |
JP4995057B2 (en) | Drawing apparatus, printing apparatus, drawing method, and program | |
JP4757120B2 (en) | Image processing apparatus and control method thereof | |
JP6729766B2 (en) | Print data processing device and program | |
JP5209953B2 (en) | Image data supply apparatus and image data supply method | |
JP5199727B2 (en) | Image processing method, image processing apparatus, and control method thereof | |
JP6385406B2 (en) | Image processing apparatus, image processing method, and program | |
JP4475680B2 (en) | Image processing apparatus, control method therefor, and program | |
JP6135329B2 (en) | Print data processing apparatus, program, and system | |
JP4646703B2 (en) | Image processing apparatus, control method therefor, and program | |
JP2006235855A (en) | Image forming device, image processing device, program, and image processing method | |
JP2008107970A (en) | Image forming device | |
JP2008146415A (en) | Image processor and its control method, program | |
JP2010111099A (en) | Image processing apparatus and its control method | |
JP2015075839A (en) | Image processing apparatus, image processing method, and program | |
JP2006331308A (en) | Image processing apparatus and its control method, and program | |
JP3741183B2 (en) | Image data interpolation apparatus, image data interpolation method, and medium on which image data interpolation program is recorded | |
JP2011000794A (en) | Image forming apparatus, image forming method and program executing image forming method | |
JPH11191055A (en) | Printing system, data processing method therefor, and storage medium stored with computer-readable program | |
JP2008153764A (en) | Image processing system | |
JP2013003811A (en) | Rendering device and rendering method | |
JP2009033541A (en) | Image processing system | |
JP2001146048A (en) | Printer control device, printer control method and recording medium having printer control program recorded thereon | |
JP2006031086A (en) | Print processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091008 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091124 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100122 |
|
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: 20100305 |
|
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: 20100308 |
|
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: 20130319 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140319 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |