[go: up one dir, main page]

JP2013008247A - Image processing apparatus, image processing method, and program - Google Patents

Image processing apparatus, image processing method, and program Download PDF

Info

Publication number
JP2013008247A
JP2013008247A JP2011141218A JP2011141218A JP2013008247A JP 2013008247 A JP2013008247 A JP 2013008247A JP 2011141218 A JP2011141218 A JP 2011141218A JP 2011141218 A JP2011141218 A JP 2011141218A JP 2013008247 A JP2013008247 A JP 2013008247A
Authority
JP
Japan
Prior art keywords
coordinate
data
coordinate value
resolution
unit
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.)
Withdrawn
Application number
JP2011141218A
Other languages
Japanese (ja)
Inventor
Masahito Yamazaki
雅仁 山▲崎▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2011141218A priority Critical patent/JP2013008247A/en
Publication of JP2013008247A publication Critical patent/JP2013008247A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Abstract

PROBLEM TO BE SOLVED: To solve the problem that although detail improvement is achieved by generating and storing document image data in the form of a vector without rasterization limitedly to a rendering object such as a small character and a thin line and rendering the object at a magnification rate corresponding to print settings in a printing process, a gap is formed at a border between adjacent rendering objects when an object of high resolution and an object of low resolution are rendered to the different resolutions.SOLUTION: An image processing apparatus includes rendering object generation means of interpreting PDL data and generating the rendering object; generation means of generating rendering data by quantizing coordinate values of respective pixels included in the rendering object generated by the rendering object generation means with a predetermined resolution; and holding means of holding values discarded through the quantization as additional information on coordinate values when the coordinate values are quantized by the generation means with the determined resolution. The holding means holds the additional information in an area different from the coordinate values of the determined resolution, obtained through the quantization, of the rendering data generated by the generation means.

Description

本発明はネットワークに接続され、文書画像データを処理する機能を有する画像処理装置に関する。特に、文書画像データを受信し、画像出力する機能に関する。   The present invention relates to an image processing apparatus connected to a network and having a function of processing document image data. In particular, the present invention relates to a function of receiving document image data and outputting an image.

従来、高解像度のレンダリング処理を高速に行う技術として、例えば、特許文献1で開示されている技術がある。また、ページ中の特定部分のみ高解像度でレンダリングすることによってレンダリング処理のコストを低下させる技術として、特許文献2で開示されている技術がある。さらに一般的に知られる技術として、低解像度のレンダリング済み画像に対してピクセル補間やエッジ形状パターンマッチングの手法を適用して出力解像度を上げる、スムージング技術が広く用いられている。   Conventionally, as a technique for performing high-resolution rendering processing at high speed, for example, there is a technique disclosed in Patent Document 1. Further, as a technique for reducing the cost of rendering processing by rendering only a specific portion in a page with high resolution, there is a technique disclosed in Patent Document 2. Further, as a generally known technique, a smoothing technique is widely used in which a pixel interpolation or edge shape pattern matching technique is applied to a low-resolution rendered image to increase the output resolution.

上記、従来技術を組み合わせることで画像生成の処理コストを抑えつつ、見た目の高画質化を可能にすることができる。   By combining the above-described conventional techniques, it is possible to improve the apparent image quality while suppressing the processing cost of image generation.

特開2000―137825号公報JP 2000-137825 A 特開2009−274366号公報JP 2009-274366 A 特開2010−171622号公報JP 2010-171622 A

ところで、プリンタ機能を備えるデジタル複合機は、文書画像データを蓄積できるボックス機能を活用することで、蓄積時に文書画像データに設定されていた印刷設定を、印刷出力時に変更することができる。デジタル複合機の印刷設定の項目において、集約印刷、ページサイズ変更、解像度切り替えの機能に関しては、画像の拡大縮小を伴う機能がある。従来のデジタル複合機のボックス機能では、文書画像データ保存時に設定されていた画像サイズと解像度を印刷出力時に変更すると、画像の拡大縮小処理に伴って画質的な劣化が発生するという課題があった。これは、ボックス蓄積されている文書画像データが、保存時の画像サイズと解像度に合わせたラスタイメージであることに起因している。拡大縮小に伴う画質劣化を軽減するために、スムージング技術を適用することも行われているが、ラスタ化されて保存された描画オブジェクトを変倍すると、画像中の位置によって線幅がことなる結果になることがある。   By the way, a digital multi-function peripheral having a printer function can change a print setting set in document image data at the time of printing by using a box function capable of storing document image data. Among the print setting items of the digital multi-function peripheral, there are functions associated with image enlargement / reduction regarding the functions of aggregate printing, page size change, and resolution switching. In the box function of the conventional digital multi-function peripheral, there is a problem that when the image size and resolution set at the time of saving the document image data are changed at the time of print output, image quality deterioration occurs due to the image enlargement / reduction processing. . This is because the document image data stored in the box is a raster image that matches the image size and resolution at the time of storage. In order to reduce image quality degradation due to enlargement / reduction, smoothing technology is also applied, but when drawing objects saved as rasters are scaled, the line width varies depending on the position in the image. May be.

例えば、特許文献3では、変倍を行っても線幅を安定させることができるが、線幅の問題が改善されても、そもそも微細な描画を含む画像データでは、どうしても変倍やスムージング後にディテールが失われてしまうという欠点がある。   For example, in Patent Document 3, the line width can be stabilized even when scaling is performed. However, even if the problem of the line width is improved, in the first place, in the case of image data including fine drawing, the detail after scaling and smoothing is unavoidable. Has the disadvantage of being lost.

ディテールを保存したい描画オブジェクト、例えば小さな文字や細線の描画オブジェクトに限ってラスタ化せずにベクタ情報のまま文書画像データを生成して蓄積し、プリント時に印刷設定に応じた倍率でレンダリングすれば、ディテール改善は可能ではある。ただし、文書画像データが、高解像度のオブジェクトと低解像度のオブジェクトの両方を含むと、図10に示すように、複数の描画オブジェクトが異なる解像度でレンダリングされることによって、隣り合う描画オブジェクトの境界に隙間が生じる場合がある。   Create and store document image data as vector information without rendering it into raster objects only for drawing objects for which details are to be saved, such as small character and thin line drawing objects, and render at the magnification according to the print settings when printing, Detail improvement is possible. However, when the document image data includes both a high-resolution object and a low-resolution object, a plurality of drawing objects are rendered at different resolutions as shown in FIG. There may be gaps.

図10において、左側はレンダリング前の描画オブジェクトの実数座標値の表現での配置例である。これらのオブジェクトがレンダリングされる場合の解像度でのpixel境界位置をグリッドとして重ねて表現している。右側は、レンダリングによってその描画オブジェクトが特定の解像度で座標値を量子化されて塗られるpixelを表している。図10の一番上や2番目のように、濃いグレーで表現されているオブジェクトと薄いグレーで表現されているオブジェクトとを、同じ解像度でレンダリングして量子化した場合は、右側に示すように各オブジェクトの間に隙間は生じない。一方、一番下の図では濃いグレーで表現されている小文字描画オブジェクトは1200dpiの解像度で量子化され、塗られるpixelが決定されている。また薄いグレーで表現されているグラフィックス描画オブジェクトは600dpiの解像度で量子化され、塗られるpixelが決定されている。この例に示すようなオブジェクト配置の場合、各解像度で量子化される実空間での位置が異なるので、二つの異なるオブジェクト間に塗られないpixelが生じる場合がある。   In FIG. 10, the left side is an arrangement example in the representation of real coordinate values of the drawing object before rendering. The pixel boundary position at the resolution when these objects are rendered is represented by being superimposed as a grid. The right side represents a pixel on which the drawing object is quantized and painted with a specific resolution by rendering. As shown on the right side, when an object expressed in dark gray and an object expressed in light gray are rendered at the same resolution and quantized, as shown in the top and second of FIG. There is no gap between each object. On the other hand, in the lowermost figure, a lowercase drawing object expressed in dark gray is quantized with a resolution of 1200 dpi, and a pixel to be painted is determined. A graphics drawing object expressed in light gray is quantized with a resolution of 600 dpi, and a pixel to be painted is determined. In the case of the object arrangement as shown in this example, since the position in the real space quantized at each resolution is different, a pixel that is not painted between two different objects may occur.

本発明は、文書画像データ中にラスタ化されて保存されている低解像度オブジェクトの座標精度を改善することによって、上記課題を解決する。   The present invention solves the above problem by improving the coordinate accuracy of low resolution objects stored rasterized in document image data.

上記課題を解決するために、本願発明の係る画像処理装置は以下の構成を有する。すなわち、入力されたページ記述言語により記述されたPDLデータから描画データを生成する画像処理装置であって、前記PDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段と、前記描画オブジェクト生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段と、前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段とを有し、前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持する。   In order to solve the above problems, an image processing apparatus according to the present invention has the following configuration. That is, an image processing apparatus that generates drawing data from PDL data described in an input page description language, the drawing object generating unit interpreting the PDL data and generating a drawing object, and the drawing object generating unit When the coordinate value of each pixel included in the drawing object generated by the above is quantized with a predetermined resolution to generate drawing data, and when the coordinate value is quantized with the predetermined resolution by the generating unit And holding means for holding a value to be truncated by quantization as additional information of coordinate values, and the holding means obtains the additional information by quantization of the drawing data generated by the generating means. It is held in an area different from the coordinate value at the determined resolution.

本発明によれば、文書画像データ中にラスタ化されて保存されている低解像度描画オブジェクトの描画データに対して、座標精度を補正するための付加情報を追加することによって、低解像度のオブジェクトを描画する際の品質向上が可能になる。   According to the present invention, by adding additional information for correcting the coordinate accuracy to the drawing data of the low-resolution drawing object stored rasterized in the document image data, the low-resolution object is Quality improvement in drawing becomes possible.

デジタル複合機を含む印刷環境の全体構成例を示す図。1 is a diagram illustrating an example of the overall configuration of a printing environment including a digital multifunction peripheral. デジタル複合機の制御装置の内部構成を示すブロック図。FIG. 2 is a block diagram illustrating an internal configuration of a control device of the digital multifunction peripheral. 文書画像データの生成の流れの例を示す図。The figure which shows the example of the flow of a production | generation of document image data. 文書画像データのデータ構成を示す図。The figure which shows the data structure of document image data. 文書画像データ生成プログラムの処理内容を模式化した図。The figure which modeled the processing content of the document image data generation program. 文書画像データ生成プログラムの別の処理内容を模式化した図。The figure which modeled another processing content of the document image data generation program. 文書画像データをレンダリングするプログラムの処理を示すフローチャート。The flowchart which shows the process of the program which renders document image data. エッジ座標情報のみを用いたレンダリング処理を示すフローチャート。The flowchart which shows the rendering process using only edge coordinate information. エッジ座標情報と付加情報を用いたレンダリング処理を示すフローチャート。The flowchart which shows the rendering process using edge coordinate information and additional information. 課題を説明するための図。The figure for demonstrating a subject. 画像倍率を決定する際に用いるパラメータと画像倍率との関係を示す図。The figure which shows the relationship between the parameter used when determining image magnification, and image magnification.

以下、本発明を実施するための最良の形態について図面を用いて説明する。なお、以下に示すシステムの構成等は一例であり、これに限定するものではない。   The best mode for carrying out the present invention will be described below with reference to the drawings. The configuration of the system shown below is an example, and the present invention is not limited to this.

<第一実施形態>
[システム構成]
本実施形態に係るデジタル複合機の全体構成を、図1を参照しながら説明する。本実施形態に係るデジタル複合機403は、制御装置100、操作部150、リーダ部200、プリンタ部300を含む。また、LAN400を介してPC401、402に接続されている。リーダ部(画像入力装置)200は、原稿画像を光学的に読み取り、画像データに変換する。リーダ部200は、原稿を読取るための機能を有するスキャナユニット210と、原稿用紙を搬送するための機能を有する原稿給紙ユニット250とで構成される。
<First embodiment>
[System configuration]
The overall configuration of the digital multifunction peripheral according to this embodiment will be described with reference to FIG. The digital multifunction peripheral 403 according to the present embodiment includes a control device 100, an operation unit 150, a reader unit 200, and a printer unit 300. Further, it is connected to the PCs 401 and 402 via the LAN 400. A reader unit (image input device) 200 optically reads a document image and converts it into image data. The reader unit 200 includes a scanner unit 210 having a function for reading a document and a document feeding unit 250 having a function for transporting a document sheet.

プリンタ部(画像出力装置)300は、記録紙を搬送し、その上に画像データを可視画像として印字して装置外に排紙する。プリンタ部300は、複数種類の記録紙カセットを有する給紙ユニット310と、画像データを記録紙に転写、定着させる機能を有するマーキングユニット320と、印字された記録紙を機外へ出力する機能を有する排紙ユニット330とで構成される。   A printer unit (image output device) 300 conveys recording paper, prints image data as a visible image thereon, and discharges the recording paper out of the device. The printer unit 300 has a paper feed unit 310 having a plurality of types of recording paper cassettes, a marking unit 320 having a function of transferring and fixing image data to the recording paper, and a function of outputting the printed recording paper to the outside of the apparatus. And a paper discharge unit 330.

制御装置100は、リーダ部200、プリンタ部300と電気的に接続され、さらにLAN400を介して、PC401、402や、インターネット上の各種サーバと接続される。制御装置100は、リーダ部200を制御して、原稿の画像データを読込み、プリンタ部300を制御して画像データを記録用紙に出力してコピー機能を提供する。また、制御装置100は、リーダ部200にて読取った画像データを、コードデータに変換し、LAN400を介してPC等へ送信するスキャナ機能を提供する。また、制御装置100は、PC等からLAN400を介して受信したPDL(Page Description Language)データを含むプリントジョブデータを、画像データに変換し、プリンタ部300に出力するプリンタ機能を提供する。   The control device 100 is electrically connected to the reader unit 200 and the printer unit 300, and further connected to PCs 401 and 402 and various servers on the Internet via the LAN 400. The control device 100 controls the reader unit 200 to read the image data of the original, and controls the printer unit 300 to output the image data to a recording sheet to provide a copy function. In addition, the control device 100 provides a scanner function that converts image data read by the reader unit 200 into code data and transmits the code data to a PC or the like via the LAN 400. In addition, the control device 100 provides a printer function that converts print job data including PDL (Page Description Language) data received from a PC or the like via the LAN 400 into image data and outputs the image data to the printer unit 300.

更には、制御装置100は、リーダ部200から読み取った画像データや、PC等から受信したPDLデータを含むプリントジョブデータから、文書画像データを生成する。そして、制御装置100は、制御装置100内の2次記憶装置に文書画像データを保存するボックス蓄積機能、および、上記ボックス蓄積機能で制御装置100内の2次記憶装置に蓄積された文書画像データを変換し、プリンタ部300に出力するボックス印刷機能を提供する。   Furthermore, the control device 100 generates document image data from print job data including image data read from the reader unit 200 and PDL data received from a PC or the like. Then, the control device 100 stores the box image storing function for storing the document image data in the secondary storage device in the control device 100, and the document image data stored in the secondary storage device in the control device 100 with the box storage function. Is provided, and a box printing function is provided for outputting to the printer unit 300.

操作部150は、制御装置100に接続され、液晶タッチパネル等で構成され、画像入出力システムを操作するためのユーザI/Fを提供する。PC401,402は、PDLデータを含むプリントジョブデータの生成を行い、LAN400を介して、制御装置100にプリントジョブデータを送信する。   The operation unit 150 is connected to the control device 100, is configured with a liquid crystal touch panel or the like, and provides a user I / F for operating the image input / output system. The PCs 401 and 402 generate print job data including PDL data, and transmit the print job data to the control apparatus 100 via the LAN 400.

図2は、本実施形態におけるデジタル複合機の制御装置の一構成例を示すブロック図である。図2において、制御装置100は、画像入力デバイスであるリーダ部200や画像出力デバイスであるプリンタ部300と接続し、画像データの読み取りやプリント出力のための制御を行う。また、制御装置100は、LAN400と接続することで、PDLデータを含むプリントジョブデータやデバイス情報をLAN400経由で入出力するための制御を行う。   FIG. 2 is a block diagram showing an example of the configuration of the control apparatus for the digital multifunction peripheral according to the present embodiment. In FIG. 2, a control device 100 is connected to a reader unit 200 that is an image input device and a printer unit 300 that is an image output device, and performs control for reading image data and printing output. In addition, the control device 100 performs control for inputting / outputting print job data including PDL data and device information via the LAN 400 by connecting to the LAN 400.

さらに、制御装置100は、LAN400経由で受信したPDLデータを含むプリントジョブデータ、もしくは内蔵する記憶装置(記憶部)であるHDD104内に保存されている文書画像データをプリント出力可能なイメージに展開する。さらに制御装置100は、LAN400経由で受信したPDLデータを含むプリントジョブデータをフォーマット変換し、生成した文書画像データを内蔵する記憶装置であるHDD104内に保存する。   Further, the control device 100 develops print job data including PDL data received via the LAN 400 or document image data stored in the HDD 104 as a built-in storage device (storage unit) into an image that can be printed out. . Further, the control device 100 converts the format of print job data including PDL data received via the LAN 400 and stores the generated document image data in the HDD 104 which is a storage device.

CPU101は、デジタル複合機403全体を制御するための中央処理装置である。RAM102は、CPU101が動作するためのシステムワークメモリであり、入力されたPDLデータを含むプリントジョブデータや変換中の文書画像データ、さらに印刷実行時の各種属性を一時記憶するためのメモリでもある。ROM103はブートROMであり、システムのブートプログラムが格納されている。HDD104はハードディスクドライブであり、各種処理のためのシステムソフトウェアや、変換された文書画像データなどを格納する。   The CPU 101 is a central processing unit for controlling the entire digital multifunction peripheral 403. A RAM 102 is a system work memory for the CPU 101 to operate, and is also a memory for temporarily storing print job data including input PDL data, document image data being converted, and various attributes at the time of printing. A ROM 103 is a boot ROM and stores a system boot program. An HDD 104 is a hard disk drive that stores system software for various processes, converted document image data, and the like.

操作部I/F105は、操作部150に対するインタフェース部であり、操作部150に対して操作画面データを出力する。また、操作部I/F105は、操作部150から操作者が入力した情報をCPU101に伝える役割をする。ネットワークインタフェース107は、例えばLANカード等で実現され、LAN400に接続して外部装置との間で情報の入出力を行う。以上のユニットがシステムバス106上に配置されている。   The operation unit I / F 105 is an interface unit for the operation unit 150, and outputs operation screen data to the operation unit 150. The operation unit I / F 105 serves to transmit information input by the operator from the operation unit 150 to the CPU 101. The network interface 107 is realized by a LAN card or the like, for example, and is connected to the LAN 400 to input / output information to / from an external device. The above units are arranged on the system bus 106.

イメージバスI/F109は、システムバス106と画像データを高速で転送する画像バス110とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。画像バス110上には、デバイスI/F111、プリンタ画像処理部112が接続される。   An image bus I / F 109 is an interface for connecting the system bus 106 and an image bus 110 that transfers image data at high speed, and is a bus bridge that converts a data structure. A device I / F 111 and a printer image processing unit 112 are connected on the image bus 110.

デバイスI/F111は、リーダ部200やプリンタ部300と制御装置100とを接続し、画像データの同期系/非同期系の変換を行う。プリンタ画像処理部112は、プリント出力する画像データに対して、プリンタ部300に応じた補正等の画像処理を行う。   The device I / F 111 connects the reader unit 200 or the printer unit 300 to the control device 100 and performs synchronous / asynchronous conversion of image data. The printer image processing unit 112 performs image processing such as correction according to the printer unit 300 on the image data to be printed out.

[ボックス保存機能]
次に図3を用いて、デジタル複合機403の制御装置100で動作する、ボックス保存機能プログラムと、ボックス印刷機能プログラムの説明を行う。まず、図3を用いて、プリントジョブデータ中のPDLデータから描画データである文書画像データの生成を行いHDD104内に保存するボックス保存機能プログラムの構成を説明する。また同時にボックス保存機能プログラムによる文書画像データ生成の手順を説明する。
[User Box Save Function]
Next, a box storage function program and a box printing function program that operate in the control device 100 of the digital multi-function peripheral 403 will be described with reference to FIG. First, the configuration of a box storage function program that generates document image data as drawing data from PDL data in print job data and stores it in the HDD 104 will be described with reference to FIG. At the same time, the document image data generation procedure by the box storage function program will be described.

PDLデータ3001は、RAM102もしくはHDD104内に記憶されており、PDL解釈部3002によって読み込まれる。ここでPDLデータ3001において、LIPS(登録商標) LXやUFR IIなどのページ記述言語が使われる。また、PDLデータ3001が定義する平面座標系を以後「src座標系」と呼ぶ。PDL解釈部3002は、PDLデータ3001を解釈する。さらに描画オブジェクト生成部3003にて、解釈されたPDLデータ3001から印刷に適した複数の描画オブジェクトを印刷に適した順に生成する。   The PDL data 3001 is stored in the RAM 102 or the HDD 104 and is read by the PDL interpretation unit 3002. Here, in the PDL data 3001, a page description language such as LIPS (registered trademark) LX or UFR II is used. Further, the plane coordinate system defined by the PDL data 3001 is hereinafter referred to as “src coordinate system”. The PDL interpretation unit 3002 interprets the PDL data 3001. Further, the drawing object generation unit 3003 generates a plurality of drawing objects suitable for printing from the interpreted PDL data 3001 in the order suitable for printing.

1ページに含まれる描画オブジェクトは、描画の重なりを考慮し並べられる。重なりによって覆い隠される描画オブジェクトが描画順において先に並べられ、前出のオブジェクトの少なくとも一部の上に重ねて描画される描画オブジェクトほど後に並べられる。   The drawing objects included in one page are arranged in consideration of drawing overlap. The drawing objects that are covered by the overlap are arranged in the drawing order first, and the drawing objects that are drawn over the at least part of the above-described objects are arranged later.

描画オブジェクトはそれぞれ、Text、Small_text、Graphics、thin_Line、Imageの5種類のオブジェクト属性のいずれかを保持している。Text属性を有する描画オブジェクトは、アウトラインフォントのベクタデータもしくはビットマップフォントのビットマップデータを保持している。Small_text属性を有する描画オブジェクトは、フォントデータを保持する描画オブジェクトのうち、特に文字サイズが小さな描画オブジェクトである。ここでは、所定のサイズよりも小さなサイズを有する文字とする。Graphics属性を有する描画オブジェクトは、ベクタ形式で記述されたパスデータを保持している。thin_Line属性を有する描画オブジェクトは、パスデータを保持する描画オブジェクトのうち、特に線幅が小さな描画オブジェクトである。ここでは、線幅が所定値以下の線が有するものとする。Image属性を有する描画オブジェクトは、非圧縮のビットマップ画像データもしくは圧縮画像データを保持している。   Each drawing object has one of five types of object attributes, Text, Small_text, Graphics, thin_Line, and Image. A drawing object having a Text attribute holds outline font vector data or bitmap font bitmap data. A drawing object having a Small_text attribute is a drawing object having a particularly small character size among drawing objects holding font data. Here, it is assumed that the character has a size smaller than a predetermined size. A drawing object having a Graphics attribute holds path data described in a vector format. A drawing object having a thin_Line attribute is a drawing object having a particularly small line width among drawing objects that hold path data. Here, it is assumed that a line having a line width equal to or smaller than a predetermined value has. A drawing object having an Image attribute holds uncompressed bitmap image data or compressed image data.

小文字細線オブジェクト分離部3004は、描画オブジェクト生成部3003から描画オブジェクトを受け取り、オブジェクト属性の判定を行う。オブジェクト属性が“Small_text”、または“thin_Line”である場合には、描画オブジェクトを変更することなく、文書画像データ生成部3007に渡す。オブジェクト属性が“Text”、“Graphics”、“Image”のいずれかであった場合には、描画オブジェクトを座標ヒント付エッジデータ生成部3005に渡す。   The lowercase thin line object separation unit 3004 receives the drawing object from the drawing object generation unit 3003 and determines the object attribute. When the object attribute is “Small_text” or “thin_Line”, the drawing object is passed to the document image data generation unit 3007 without being changed. When the object attribute is any one of “Text”, “Graphics”, and “Image”, the drawing object is passed to the edge data generation unit with coordinate hint 3005.

座標ヒント付エッジデータ生成部3005は、Text、Graphics、Imageの属性の各オブジェクトを、エッジデータと呼ばれるデータ構造に変換し、文書画像データ生成部3007に渡す。エッジデータについては、図4および図5を用いて後述する。ここで、座標ヒント付エッジデータ生成部3005は、エッジデータとしてスプールし(エッジデータスプール3006)、当該文書画像データに対する処理が終了したら、文書画像データ生成部3007へ渡す。   The coordinate hint-attached edge data generation unit 3005 converts each object of the Text, Graphics, and Image attributes into a data structure called edge data, and passes it to the document image data generation unit 3007. The edge data will be described later with reference to FIGS. Here, the coordinate hint-added edge data generation unit 3005 spools the data as edge data (edge data spool 3006), and passes the document image data generation unit 3007 when the processing on the document image data is completed.

文書画像データ生成部3007は、小文字細線オブジェクト分離部3004もしくは座標ヒント付エッジデータ生成部3005から描画オブジェクトを順に受け取り、定められた文書画像データフォーマットに変換する。ファイルスプーラ3008は、文書画像データ生成部3007によって随時変換され出力される文書画像データを一時的に溜め込み、文書画像データ3009として保存する。文書画像データ生成部3007がすべての描画オブジェクトの変換処理を終えると、生成された文書画像データ3009は、ボックス保存機能のファイル保存先であるHDD104に転送される。   The document image data generation unit 3007 sequentially receives drawing objects from the lowercase thin line object separation unit 3004 or the edge data generation unit with coordinate hints 3005 and converts them into a predetermined document image data format. The file spooler 3008 temporarily accumulates document image data that is converted and output as needed by the document image data generation unit 3007 and stores it as document image data 3009. When the document image data generation unit 3007 completes the conversion processing for all drawing objects, the generated document image data 3009 is transferred to the HDD 104 that is a file storage destination of the box storage function.

次に、HDD104内に保存されている文書画像データ3009を印刷出力画像に変換しプリンタ部300から出力する、ボックス印刷機能プログラムの構成を説明する。また同時に、ボックス印刷機能プログラムが文書画像データ3009を印刷出力画像に変換する手順を説明する。プリンタ部300が描く画像上に定義される座標系平面を「device座標系」と呼ぶことにする。   Next, the configuration of the box printing function program that converts the document image data 3009 stored in the HDD 104 into a print output image and outputs it from the printer unit 300 will be described. At the same time, a procedure for the box print function program to convert the document image data 3009 into a print output image will be described. A coordinate system plane defined on an image drawn by the printer unit 300 will be referred to as a “device coordinate system”.

まず、ユーザが操作部150にてボックス印刷機能を操作することによって、ボックス印刷機能プログラムは動作を開始する。ボックス印刷機能プログラムはユーザ操作に従い、HDD104内に保存されていてユーザによって印刷指示された文書画像データ3009をインストラクション処理部3010に転送する。インストラクション処理部3010は、文書画像データ3009中のインストラクション(後述)を読み込み、インストラクションの種類ごとに定められた処理を行う。   First, when the user operates the box printing function with the operation unit 150, the box printing function program starts operation. The box printing function program transfers document image data 3009 stored in the HDD 104 and instructed to be printed by the user to the instruction processing unit 3010 according to a user operation. The instruction processing unit 3010 reads an instruction (described later) in the document image data 3009 and performs a process determined for each type of instruction.

座標ヒント付エッジデータ展開部3011は、文書画像データ3009中のヒント付エッジデータを展開し、device座標系で表現されたエッジデータを生成する。ここでの「ヒント付きエッジデータ」とは、座標ヒント付エッジデータ生成部3005で生成されたデータである。つまり、“Text”、“Graphics”、“Image”のいずれかの属性を有する描画オブジェクトが対象となる。   The coordinate hint-attached edge data developing unit 3011 develops the edge-attached edge data in the document image data 3009 and generates edge data expressed in the device coordinate system. Here, the “edge data with hint” is data generated by the edge data generation unit 3005 with coordinate hint. That is, a drawing object having any attribute of “Text”, “Graphics”, and “Image” is a target.

ベクタオブジェクトエッジ生成部3012は、小文字細線オブジェクト分離部3004にて分離され文書画像データ3009に埋め込まれたベクタデータを処理する。つまり、ここで扱うデータは、“Small_text”、“thin_Line”のいずれかの属性を有する描画オブジェクトが対象となる。その際、ベクタデータはスキャンライン変換され、device座標系平面上でベクタパスとスキャンラインとの交点の座標値を含む、エッジデータが生成される。   The vector object edge generation unit 3012 processes the vector data separated by the lowercase thin line object separation unit 3004 and embedded in the document image data 3009. That is, the data handled here is a drawing object having any attribute of “Small_text” and “thin_Line”. At this time, the vector data is subjected to scan line conversion, and edge data including the coordinate value of the intersection of the vector path and the scan line on the device coordinate system plane is generated.

座標ヒント付エッジデータ展開部3011およびベクタオブジェクトエッジ生成部3012にて生成されたdevice座標系でのエッジデータは、Level処理部3013にて、エッジデータのレベル情報を用いて、描画オブジェクトの重なり状態が決定される。ここでのレベル情報については、後述する。その後、レベルの重なり状態が決定された全てのエッジデータは、Pixel生成部3014に渡され、エッジデータ中のレベルごとに指定されたFill(後述)にて定められる色値を有するPixelが生成される。ここで生成されたPixelは、ページイメージスプーラ3015によってHDD104内に確保されたページスプール3016に蓄えられ、1ページ分の画像が生成された時点でプリンタ部300に転送され印刷される。   The edge data in the device coordinate system generated by the edge data development unit 3011 with coordinate hints and the vector object edge generation unit 3012 is output by the level processing unit 3013 using the level information of the edge data. Is determined. The level information here will be described later. Thereafter, all edge data for which the level overlap state is determined is passed to the Pixel generation unit 3014, and Pixels having color values determined by Fill (described later) specified for each level in the edge data are generated. The The generated Pixel is stored in the page spool 3016 secured in the HDD 104 by the page image spooler 3015, and is transferred to the printer unit 300 and printed when an image for one page is generated.

[データ構造]
次に図4を用いて、本実施形態に係るボックス保存機能およびボックス印刷機能で用いられる文書画像データファイルの内部データ構造と、個々のデータの役割について説明をする。
[data structure]
Next, the internal data structure of the document image data file used in the box saving function and the box printing function according to this embodiment and the role of each data will be described with reference to FIG.

本実施形態に係る文書画像データ3009には、1ページに相当する領域をレンダリングするために必要な情報が含まれる。図4のインストラクション4001〜4008は、レンダリング処理の各段階の処理開始を指示するインストラクションである。個々のインストラクションは必要に応じて付加情報を有する。本実施形態に係るプログラムは、文書画像データ中のインストラクションを順に処理することで、画像を生成する。   The document image data 3009 according to this embodiment includes information necessary for rendering an area corresponding to one page. Instructions 4001 to 4008 in FIG. 4 are instructions for instructing the start of processing at each stage of the rendering process. Each instruction has additional information as necessary. The program according to the present embodiment generates an image by sequentially processing instructions in document image data.

インストラクション4001は、<START_PAGE>であり、付加情報として印刷時に用いることのできる各種設定値が記録されているPageInfo4100へのアドレス4002(PageInfoAddress)を有する。図3に示したインストラクション処理部3010は、<START_PAGE>を読み込むと、印刷画像を生成するための各種準備を行う。インストラクション処理部3010は、ページサイズやレイアウト情報、また解像度に関するデータ内での設定値と、操作部150でユーザによって指定された設定値との比較を行い、拡大縮小が行われる場合には、pixel倍率の算出を行う。   The instruction 4001 is <START_PAGE> and has an address 4002 (PageInfoAddress) to the PageInfo 4100 in which various setting values that can be used at the time of printing are recorded as additional information. When reading <START_PAGE>, the instruction processing unit 3010 illustrated in FIG. 3 performs various preparations for generating a print image. The instruction processing unit 3010 compares the setting values in the page size, layout information, and resolution data with the setting values specified by the user in the operation unit 150. Calculate the magnification.

インストラクション4003は、<LOAD_HINTED_EDGE>であり、Scanlineエッジリストアドレス(EdgeListAddress)、hint情報アドレス(HintAddress)、フィルテーブルアドレス(LevelAddress)の三つのアドレスを付加情報4004として有する。さらに付加情報4004には、像域フラグ(Text、Graphics、またはImage)、およびsrc座標系上のy座標値も記述される。インストラクション処理部3010は、<LOAD_HINTED_EDGE>を読み込むと、付加情報4004を座標ヒント付エッジデータ展開部3011に転送する。その後、座標ヒント付エッジデータ展開部3011はdevice座標系で表現されたエッジデータを生成する。   The instruction 4003 is <LOAD_HINTED_EDGE>, and includes three addresses of Scanline edge list address (EdgeListAddress), hint information address (HintAddress), and fill table address (LevelAddress) as additional information 4004. Further, the additional information 4004 also describes an image area flag (Text, Graphics, or Image) and a y-coordinate value on the src coordinate system. When the instruction processing unit 3010 reads <LOAD_HINTED_EDGE>, the instruction processing unit 3010 transfers the additional information 4004 to the edge data developing unit 3011 with coordinate hints. Thereafter, the edge data developing unit 3011 with coordinate hints generates edge data expressed in the device coordinate system.

インストラクション4005は、<LOAD_VECTOR_SEG>であり、付加情報4006としてベクタセグメントアドレス(VectSegAddress)、フィルテーブルアドレス(LevelAddress)の二つのアドレスを有する。さらに、インストラクション4005は、像域フラグ(Small_text、またはthin_Line)からなる付加情報を有する。インストラクション処理部3010は、<LOAD_VECTOR_SEG>を読み込むと、付加情報4006をベクタオブジェクトエッジ生成部3012に転送する。その後、ベクタオブジェクトエッジ生成部3012はdevice座標系で表現されたエッジデータを生成する。   The instruction 4005 is <LOAD_VECTOR_SEG>, and has two addresses, a vector segment address (VectSegAddress) and a fill table address (LevelAddress), as additional information 4006. Furthermore, the instruction 4005 has additional information including an image area flag (Small_text or thin_Line). When reading <LOAD_VECTOR_SEG>, the instruction processing unit 3010 transfers additional information 4006 to the vector object edge generation unit 3012. Thereafter, the vector object edge generation unit 3012 generates edge data expressed in the device coordinate system.

インストラクション4007は、<RENDER_EDGES>であり、付加情報はない。インストラクション処理部3010は、<RENDER_EDGES>を読み込むと、ページ内のすべてのdevice座標系で表現されたエッジ情報がそろった状態と判定する。そして、ボックス印刷機能プログラムはLevel処理部3013、Pixel生成部3014およびページイメージスプーラ3015の処理が開始される。   Instruction 4007 is <RENDER_EDGES> and there is no additional information. When reading <RENDER_EDGES>, the instruction processing unit 3010 determines that the edge information expressed in all the device coordinate systems in the page is complete. The box printing function program starts processing of the level processing unit 3013, the pixel generation unit 3014, and the page image spooler 3015.

インストラクション4008は<END_PAGE>であり、付加情報はない。インストラクション処理部3010は、<END_PAGE>を読み込むと、1ページ分の画像生成処理がすべて完了したと判断する。その後、ボックス印刷機能プログラムは、ページスプール3016内に保持された生成済み画像をプリンタ部300に転送する。   Instruction 4008 is <END_PAGE> and there is no additional information. When the instruction processing unit 3010 reads <END_PAGE>, the instruction processing unit 3010 determines that all image generation processing for one page has been completed. Thereafter, the box printing function program transfers the generated image held in the page spool 3016 to the printer unit 300.

PageInfo4100には、PDLデータ3001中に記載されていた、ページサイズ、集約レイアウト情報、データ解像度、さらに用紙情報や後処理に関する情報が記録されている。   The PageInfo 4100 records information related to page size, aggregated layout information, data resolution, paper information, and post-processing described in the PDL data 3001.

エッジデータ4200には、座標ヒント付エッジデータ生成部3005にて生成された、Scanline交点での整数値のエッジ(後述)の情報を格納している。   The edge data 4200 stores information of integer value edges (described later) at the scanline intersection generated by the coordinate hint-added edge data generation unit 3005.

座標ヒント情報4300には、上述のScanlineエッジに対する1/4座標ヒント情報4300と、Sub−Scanlineエッジに関するエッジデータ4301,4302,4303が格納されている。この座標ヒント情報4300およびエッジデータ4301〜4303がエッジ座標を補正するために用いられる。詳細については、後述する。   The coordinate hint information 4300 stores ¼ coordinate hint information 4300 for the above-mentioned Scanline edge and edge data 4301, 4302, and 4303 related to the Sub-Scanline edge. The coordinate hint information 4300 and the edge data 4301 to 4303 are used for correcting the edge coordinates. Details will be described later.

インストラクション4003、4005にて参照されるレベル情報4400において、「レベル」とは、描画されるオブジェクトの重なりを示す概念であり、大きいレベル値を有する描画オブジェクトは、小さなレベル値を有する描画オブジェクトを覆い隠す。つまり、レベルの高い描画オブジェクトが、描画順において、より上に重ねられることとなる。そのため同一座標上に複数の描画オブジェクトが重なり合って存在する場合には、最もレベル値の大きな描画オブジェクトのみがレンダリングされる。一つのレベルには、レベル値を示す番号と、そのレベルに対応するFillが格納されているアドレス情報が保持されている。「Fill」とは、画素の色値を決定するために必要な情報であり、Fillテーブル4500に収められている。   In the level information 4400 referred to in the instructions 4003 and 4005, “level” is a concept indicating an overlap of drawn objects, and a drawing object having a large level value covers a drawing object having a small level value. hide. That is, a drawing object with a high level is overlaid in the drawing order. Therefore, when a plurality of drawing objects are overlapped on the same coordinate, only the drawing object having the largest level value is rendered. One level holds a number indicating a level value and address information in which a Fill corresponding to the level is stored. “Fill” is information necessary for determining the color value of the pixel, and is stored in the Fill table 4500.

ベクタセグメント4600は、ベクタオブジェクトエッジ生成部3012が処理すべきベクタパスの座標情報を保持している。ベクタパスは、複数の連続した線分の集合で表現されており、ベクタパス開始点を示す絶対座標値(x,y)、開始点から始まる線分の終点を示す相対座標値(Dx,Dy)である。さらに、これに続く線分も相対座標値として表される。   The vector segment 4600 holds coordinate information of a vector path to be processed by the vector object edge generation unit 3012. The vector path is expressed by a set of a plurality of continuous line segments, and is represented by an absolute coordinate value (x, y) indicating the vector path start point and a relative coordinate value (Dx, Dy) indicating the end point of the line segment starting from the start point. is there. Further, the subsequent line segment is also expressed as a relative coordinate value.

ラスタイメージデータ4700は、Fillテーブル内の情報の一つの形態としてそのアドレスが記述されることでメモリ中での位置が示される。Imageで描画される領域に対する色値として、適切に拡大縮用変換されたラスタイメージデータ4700が用いられる。   The raster image data 4700 indicates its position in the memory by describing its address as one form of information in the Fill table. Raster image data 4700 that has been appropriately converted for enlargement / reduction is used as a color value for a region rendered in Image.

[処理説明]
次に図5を用いて、デジタル複合機403の制御装置100で動作するボックス保存機能プログラムにおける、座標ヒント付エッジデータ生成部3005での処理を詳細に説明する。ここでの処理において、座標ヒント付エッジデータ生成部3005は、描画オブジェクトに対し、その描画オブジェクトに含まれる画素の座標を、予め定められた解像度に量子化することで算出する。さらに、座標ヒント付エッジデータ生成部3005は、量子化により、切り捨てられるべき座標値を所定の間隔で算出し、保持する。なお、本実施形態において、切り捨てられる座標値に対する所定の間隔は、量子化により求められた座標値に対して、1/4ごとの間隔とする。したがって、ここでの処理において、量子化により求められる座標を整数座標値と記載し、切り捨てられるべき値を含む座標を実数座標値と記載する。
[Process description]
Next, the processing in the edge data generation unit with coordinate hints 3005 in the box storage function program that operates in the control device 100 of the digital multi-function peripheral 403 will be described in detail with reference to FIG. In this process, the edge data generation unit with coordinate hint 3005 calculates the coordinates of the pixels included in the drawing object by quantizing the drawing object to a predetermined resolution. Further, the coordinate hint-attached edge data generation unit 3005 calculates and holds coordinate values to be cut off at predetermined intervals by quantization. In the present embodiment, the predetermined interval with respect to the coordinate value to be discarded is set to an interval of 1/4 with respect to the coordinate value obtained by quantization. Therefore, in this processing, coordinates obtained by quantization are described as integer coordinate values, and coordinates including values to be rounded down are described as real number coordinate values.

図5の左側に太い実線で示されている格子は、PDLデータ3001が定義しているsrc座標系平面上での整数座標値を示す格子である。また縦向きの細い点線および横向きのやや細い破線で示されている格子は、src座標系平面上で整数座標値の間を四等分した、1/4、2/4、3/4の実数座標値を示す格子である。   A grid indicated by a thick solid line on the left side of FIG. 5 is a grid indicating integer coordinate values on the src coordinate system plane defined by the PDL data 3001. In addition, the grid indicated by the vertical thin dotted line and the horizontal thin dotted line is a real number of 1/4, 2/4, and 3/4, which is obtained by dividing the integer coordinate value into four equal parts on the src coordinate system plane. It is a grid showing coordinate values.

src座標系は、左上隅を原点とし、横方向がx、縦方向がyの平面座標系で定義される。src座標系平面で横向きの線が矢印となっているのは、この線が示すy座標値を用いてスキャンライン変換が行われることを表現している。斜めに示された太い実線は、Graphics属性を有する描画オブジェクト内にベクタ形式で記述されたパスを表現している。またこのパスの左側に隣接しているグレーの領域は、パスに付随する塗り領域を表現している。   The src coordinate system is defined by a planar coordinate system in which the upper left corner is the origin, the horizontal direction is x, and the vertical direction is y. The fact that the horizontal line is an arrow on the src coordinate system plane represents that the scan line conversion is performed using the y coordinate value indicated by the line. A thick solid line shown diagonally represents a path described in a vector format in a drawing object having a Graphics attribute. Further, the gray area adjacent to the left side of the path expresses a paint area associated with the path.

座標ヒント付エッジデータ生成部3005は、スキャンライン変換をy座標およびx座標が増加する方向に実行する。本明細書において、スキャンライン変換によって算出される、スキャンラインとパスの交点位置の座標値を端数切り上げ(ceil)したものを、「エッジ座標値」と定義する。またこのエッジ座標値で示される位置を「エッジ」と定義する。   The coordinate hint-attached edge data generation unit 3005 performs scan line conversion in a direction in which the y coordinate and the x coordinate increase. In this specification, a value obtained by rounding up the coordinate value of the intersection position of the scan line and the path calculated by the scan line conversion is defined as an “edge coordinate value”. The position indicated by the edge coordinate value is defined as “edge”.

ここでの処理において、まず座標ヒント付エッジデータ生成部3005は、整数y座標値でスキャンライン変換を実施する。この結果得られるエッジ座標値を「Scanline交点座標」とする。Scanline交点座標のx座標値は、まずは整数に切り上げられ、15bitの整数として保持される(図5に示すアイコン△に相当)。本実施形態では、この15bitの値には、さらに1bitの情報(IsEdgeフラグ)が付加された上で保持される。なお、IsEdgeフラグの定義については後述する。   In this process, first, the edge data generation unit with coordinate hint 3005 performs scan line conversion with an integer y coordinate value. The edge coordinate value obtained as a result is referred to as “Scanline intersection point coordinate”. The x-coordinate value of the Scanline intersection coordinate is first rounded up to an integer and held as a 15-bit integer (corresponding to the icon Δ shown in FIG. 5). In the present embodiment, 1-bit information (IsEdge flag) is further added to the 15-bit value and held. The definition of the IsEdge flag will be described later.

座標ヒント付エッジデータ生成部3005は、さらに高精度なエッジ座標値として、整数−3/4、整数−2/4、整数−1/4、整数のいずれかに切り上げられたx座標値も算出する。ここでは、この値を「1/4ヒント付き座標値」と呼ぶ。Scanline交点座標の1/4座標ヒント情報(x)は、整数x座標値に対する座標値差分(差分座標)として2bit値で表現される。本実施形態において、−3/4は“11”、−2/4は“10”、−1/4は“01”、座標値差分無しは“00”の2bit進数値が適用され、保持される(図5に示すアイコン◇に相当)。   The edge data generation unit with coordinate hint 3005 also calculates an x-coordinate value rounded up to any of integer-3 / 4, integer-2 / 4, integer-1 / 4, or integer as a more accurate edge coordinate value. To do. Here, this value is referred to as “¼ hint coordinate value”. The 1/4 coordinate hint information (x) of the Scanline intersection coordinate is expressed by a 2-bit value as a coordinate value difference (difference coordinate) with respect to the integer x coordinate value. In the present embodiment, -3/4 is "11", -2/4 is "10", -1/4 is "01", and if there is no coordinate value difference, a 2-bit decimal value of "00" is applied and held. (Equivalent to the icon ◇ shown in FIG. 5).

次に、座標ヒント付エッジデータ生成部3005は、整数+1/4、整数+2/4、整数+3/4のそれぞれの実数y座標値でのスキャンライン変換を実施する。この結果として得られるエッジ座標値をSub−Scanline交点座標とする。Sub−Scanline交点座標値(x)は、整数値に1/4単位の実数値を合わせた値に切り上げられる。切り上げられた座標値は、直前のScanline交点のエッジ座標値(x)に対する差分値(1/4の倍数)として3bit値と符合bitで表現され、さらに1bitのIsEdgeフラグを付加した5bitデータとして保持される。このような処理を整数+1/4、整数+2/4、整数+3/4のそれぞれの実数y座標値で順に3回行うため、合計15bit(5bit×3ライン)のデータが生成され保持される(図5に示すアイコン●に相当)。なお、IsEdgeフラグは、当該スキャンライン上にエッジが有るか否かを示す。   Next, the coordinate hint-attached edge data generation unit 3005 performs the scan line conversion with the real number y coordinate values of integer + 1/4, integer + 2/4, and integer + 3/4. The edge coordinate value obtained as a result is set as the Sub-Scanline intersection point coordinate. The Sub-Scanline intersection point coordinate value (x) is rounded up to a value obtained by adding a real value of ¼ unit to the integer value. The rounded-up coordinate value is expressed as a 3-bit value and a sign bit as a difference value (multiple of 1/4) with respect to the edge coordinate value (x) of the immediately preceding Scanline intersection, and is held as 5-bit data with a 1-bit IsEdge flag added. Is done. Since such a process is sequentially performed three times with each real number y coordinate value of integer + 1/4, integer + 2/4, and integer + 3/4, a total of 15 bits (5 bits × 3 lines) of data is generated and held ( This corresponds to the icon ● shown in FIG. The IsEdge flag indicates whether or not there is an edge on the scan line.

ところで、図5のパス(斜めに示された太い実線)は、その下端を超えた範囲(y>23+2/4)では、Scanline交点およびSub−Scanline交点を持たないため、エッジも存在しない。Sub−Scanline交点を持たない場合でも、エッジ座標値を保持するためのデータ領域は確保されている。そのため、座標ヒント付エッジデータ生成部3005は、Sub−Scanline交点を持たない場合にはそのエッジ座標値として“0”、さらにIsEdgeフラグに“0”をセットする。   By the way, the path of FIG. 5 (thick solid line shown diagonally) has no Scanline intersection and Sub-Scanline intersection in the range beyond the lower end (y> 23 + 2/4), so there is no edge. Even when there is no Sub-Scanline intersection, a data area for holding edge coordinate values is secured. Therefore, the edge data generation unit with coordinate hint 3005 sets “0” as the edge coordinate value and “0” in the IsEdge flag when there is no Sub-Scanline intersection.

図5のパスの上端付近(y=21+2/4)においては、Sub−Scanline交点は存在するが、上端を超えた範囲(y<21+2/4)ではScanline交点およびSub−Scanline交点を持たない。このような場合には、座標ヒント付エッジデータ生成部3005は、エッジ上端より上側の整数y座標値にて「架空のエッジ」を設定する。そのためにまず、座標ヒント付エッジデータ生成部3005は、パス上端に一番近い整数y座標(y=22)を起点に、y座標値が減少する方向(上側)に向かって、Sub−Scanline交点からエッジ座標を算出するスキャンライン変換を実施する。Sub−Scanline交点が存在する場合は、座標ヒント付エッジデータ生成部3005は、算出された交点座標値を実数値としてRAM102中の一時的な領域に保持し、さらにIsEdgeフラグを表す値として“1”を併せて保持する。パス上端を超える範囲(y<21+2/4)ではSub−Scanline交点がないため、座標ヒント付エッジデータ生成部3005は、RAM102中の一時的な領域にIsEdgeフラグを表す値である“0”のみを保持する。   In the vicinity of the upper end of the path in FIG. 5 (y = 21 + 2/4), there is a Sub-Scanline intersection, but in a range beyond the upper end (y <21 + 2/4), there is no Scanline intersection and Sub-Scanline intersection. In such a case, the coordinate hint-attached edge data generation unit 3005 sets “imaginary edge” with an integer y coordinate value above the upper end of the edge. For this purpose, first, the edge data generation unit with coordinate hint 3005 starts from the integer y coordinate (y = 22) closest to the upper end of the path, and proceeds in the sub-scanline intersection point in the direction in which the y coordinate value decreases (upward). Perform scan line conversion to calculate edge coordinates from. When a Sub-Scanline intersection exists, the edge data generation unit with coordinate hint 3005 stores the calculated intersection coordinate value as a real value in a temporary area in the RAM 102, and further sets “1” as a value representing the IsEdge flag. "Is also held. Since there is no Sub-Scanline intersection in the range exceeding the upper end of the path (y <21 + 2/4), the edge data generation unit with coordinate hint 3005 only has a value “0” representing the IsEdge flag in a temporary area in the RAM 102. Hold.

次に、座標ヒント付エッジデータ生成部3005は、整数y座標値での架空のScanline交点の算出を行う。座標ヒント付エッジデータ生成部3005は、前出のSub−Scanline交点値のうち、実数y座標値が小さい(y=21+2/4)におけるSub−ScanlineでのSub−Scanline交点座標値(x)を実数値で算出する。座標ヒント付エッジデータ生成部3005は、これを実数値から整数に切り上げ(ceil)、架空のエッジ座標値(x=426)として15bit整数を設定する。また、座標ヒント付エッジデータ生成部3005は、IsEdgeフラグに“0”を設定して保持する。これがy=21での架空のScanline交点に対するエッジとなる。この架空のエッジに対する1/4座標ヒント情報(2bit)は、“00”として設定され保持される。さらにここまでの処理においてRAM102中の一時的な領域に保持されていたSub−Scanline交点に関する実数座標値とIsEdgeフラグは、架空のScanline交点のエッジ座標に対する差分値(1/4の倍数)として再計算される。そして、3bit値と符合bit、さらに1bitのIsEdgeフラグを付加して保持される。Sub−Scanline交点は、整数+1/4、整数+2/4、整数+3/4のそれぞれの実数y座標値で再計算されるため、合計15bitのデータが生成され保持される。   Next, the edge data generation unit with coordinate hint 3005 calculates a fictitious Scanline intersection at an integer y coordinate value. The edge data generation unit with coordinate hint 3005 calculates the Sub-Scanline intersection coordinate value (x) in the Sub-Scanline when the real y-coordinate value is small (y = 21 + 2/4) among the above-mentioned Sub-Scanline intersection values. Calculate with real values. The edge data generation unit with coordinate hint 3005 rounds this up from a real value to an integer (ceil), and sets a 15-bit integer as a fictitious edge coordinate value (x = 426). Further, the edge data generation unit with coordinate hint 3005 sets the IsEdge flag to “0” and holds it. This is the edge for the fictitious Scanline intersection at y = 21. The 1/4 coordinate hint information (2 bits) for this imaginary edge is set and held as “00”. In addition, the real coordinate value and the IsEdge flag related to the Sub-Scanline intersection point held in the temporary area in the RAM 102 in the processing so far are regenerated as a difference value (a multiple of 1/4) with respect to the edge coordinate of the fictitious Scanline intersection point. Calculated. A 3-bit value, a sign bit, and a 1-bit IsEdge flag are added and held. Since the Sub-Scanline intersection is recalculated with the real number y coordinate values of integer + 1/4, integer + 2/4, and integer + 3/4, data of a total of 15 bits is generated and held.

ここで、図4と図5とに示す各データの対応関係を示す。図4のエッジデータ4200は、図5のScanline交点座標の整数(16bit)に相当する。また、図4の座標ヒント情報4300は、図5のScanline交点座標の1/4ヒント(2bit)に相当する。また、図4のエッジデータ4301〜4303それぞれは、図5のSub−Scanline交点座標の1/4座標の差分の各値(5bit)に対応する。   Here, the correspondence between the data shown in FIGS. 4 and 5 is shown. The edge data 4200 in FIG. 4 corresponds to an integer (16 bits) of the scanline intersection coordinates in FIG. Also, the coordinate hint information 4300 in FIG. 4 corresponds to a 1/4 hint (2 bits) of the scanline intersection coordinate in FIG. Further, each of the edge data 4301 to 4303 in FIG. 4 corresponds to each value (5 bits) of the difference between the 1/4 coordinates of the Sub-Scanline intersection coordinates in FIG.

[パスの水平時の処理]
ところで図5を用いて説明した座標ヒント付エッジデータ生成部3005での処理では、パスの傾きが水平に近い場合には、Scanline座標値とSub−Scanlineのエッジ座標値の差分が大きくなりすぎる。そのため、予め差分を表現するために定義されたビット数である3bitでは、この差分を表現しきれない。そのような場合の処理に関して、図6を用いて説明する。
[Process when leveling the path]
By the way, in the processing by the coordinate hint-added edge data generation unit 3005 described with reference to FIG. 5, the difference between the Scanline coordinate value and the Sub-Scanline edge coordinate value becomes too large when the inclination of the path is almost horizontal. For this reason, this difference cannot be fully expressed with 3 bits, which is the number of bits defined in advance to express the difference. Processing in such a case will be described with reference to FIG.

図6では、y=22からy=22+1/4の間のパスが水平に近く、y=22のScanline交点のエッジ座標(整数:x=426)とy=22+1/4のSub−Scanline交点のエッジ座標(実数:x=423+3/4)とが大きく離れている。その座標差分は1/4の9倍であり、3bit表現できない。座標ヒント付エッジデータ生成部3005はこのような場合を検知すると、yが22+1/4以上のSub−Scanline交点を求める処理を行わない。この場合において、仮の座標点として、整数エッジを新たに追加し、その差分を用いることで、より高解像度の座標を表現する。   In FIG. 6, the path between y = 22 and y = 22 + 1/4 is almost horizontal, the edge coordinates of the scanline intersection of y = 22 (integer: x = 426) and the sub-scanline intersection of y = 22 + 1/4. The edge coordinates (real number: x = 423 + 3/4) are far apart. The coordinate difference is 9 times 1/4, and cannot be expressed in 3 bits. When detecting such a case, the coordinate hint-attached edge data generation unit 3005 does not perform processing for obtaining a Sub-Scanline intersection having y of 22 + 1/4 or more. In this case, an integer edge is newly added as a temporary coordinate point, and a higher resolution coordinate is expressed by using the difference.

この場合において、座標ヒント付エッジデータ生成部3005は、Sub−Scanline交点座標値(3bit値と符合bit)には“0”、IsEdgeフラグには“0”を付加した5bitデータを保持する。次に、座標ヒント付エッジデータ生成部3005は、整数y座標値(y=22)での新しい架空のScanline交点(仮の座標点)の算出を行う。座標ヒント付エッジデータ生成部3005は、前出のSub−Scanline交点値(実数:x=423+3/4)を実数値から整数に切り上げ(ceil)、これを新しい架空のエッジ座標値(x=424,y=22)として15bit整数で設定する。さらに、座標ヒント付エッジデータ生成部3005は、IsEdgeフラグには“0”を設定し、保持する。これが架空のScanline交点に対するエッジとなる。座標ヒント付エッジデータ生成部3005は、この架空のエッジに対して、1/4座標ヒント情報(2bit)を“00”として設定し、保持する。   In this case, the edge data generation unit with coordinate hint 3005 holds 5-bit data in which “0” is added to the Sub-Scanline intersection coordinate value (3 bit value and sign bit) and “0” is added to the IsEdge flag. Next, the edge data generation unit with coordinate hint 3005 calculates a new fictitious Scanline intersection (temporary coordinate point) with an integer y coordinate value (y = 22). The edge data generation unit with coordinate hint 3005 rounds up the above-mentioned Sub-Scanline intersection value (real number: x = 423 + 3/4) from a real value to an integer (ceil), and calculates this as a new fictitious edge coordinate value (x = 424). , Y = 22) is set as a 15-bit integer. Further, the edge data generation unit with coordinate hint 3005 sets and holds “0” in the IsEdge flag. This is the edge for the fictitious Scanline intersection. The coordinate hint-attached edge data generation unit 3005 sets and holds 1/4 coordinate hint information (2 bits) as “00” for this imaginary edge.

座標ヒント付エッジデータ生成部3005は、y=22+1/4のSub−Scanline交点のエッジ座標値(実数:x=423+3/4)を、上記架空のScanline交点のエッジ座標値(x=424)に対する差分として再計算する。そして、座標ヒント付エッジデータ生成部3005は、Sub−Scanline交点座標値(3bit値と符合bit)に“−1”、IsEdgeフラグに“1”を付加した5bitデータを保持する。この後、座標ヒント付エッジデータ生成部3005は、y=22+2/4、y=22+3/4のそれぞれの実数y座標値でSub−Scanline交点を求める処理を行い、合計15bitデータを生成し、保持する。   The edge data generation unit 3005 with coordinate hints uses the edge coordinate value (real number: x = 423 + 3/4) of the Sub-Scanline intersection of y = 22 + 1/4 for the edge coordinate value (x = 424) of the fictitious Scanline intersection. Recalculate as difference. The coordinate hint-attached edge data generation unit 3005 holds 5 bit data in which “−1” is added to the Sub-Scanline intersection coordinate value (3 bit value and sign bit) and “1” is added to the IsEdge flag. After that, the edge data generation unit with coordinate hint 3005 performs processing for obtaining the Sub-Scanline intersection with the real number y coordinate values of y = 22 + 2/4 and y = 22 + 3/4, and generates and holds a total of 15-bit data. To do.

上記のスキャンライン変換で得られたエッジ座標値を含むデータがエッジデータであり、図4に示すデータ構造の形式で、文書画像データ生成部3007に渡される。   Data including the edge coordinate values obtained by the above scan line conversion is edge data, and is passed to the document image data generation unit 3007 in the format of the data structure shown in FIG.

図4に示すデータ構造で特徴的なのは、エッジ座標データのうち、整数値からなるエッジデータ4200と、実数座標値を再現するための1/4座標ヒント情報を含む座標ヒント情報4300が、分離された構成になっている点である。さらに、Scanline交点の1/4座標ヒント情報の座標ヒント情報4300とSub−Scanline交点のエッジデータ4301〜4303が隣接する構成になっている。このようなデータ構成をとることは、後述の画像生成処理において、データアクセス速度の向上をもたらす。   A characteristic of the data structure shown in FIG. 4 is that, among edge coordinate data, edge data 4200 consisting of integer values and coordinate hint information 4300 including 1/4 coordinate hint information for reproducing real number coordinate values are separated. It is a point that is configured. Further, the coordinate hint information 4300 of the 1/4 coordinate hint information of the Scanline intersection is adjacent to the edge data 4301 to 4303 of the Sub-Scanline intersection. Taking such a data structure leads to an improvement in data access speed in an image generation process described later.

[処理フロー]
次に図7、図8、図9のフローチャートを用いて、デジタル複合機403の制御装置100で動作するボックス印刷機能プログラムが、エッジデータ4200、4300、4301〜4303をdevice座標系上のエッジに変換する処理を説明する。各図は、ボックス印刷機能プログラムの座標ヒント付エッジデータ展開部3011が、エッジデータ4200、4300、4301〜4303をdevice座標系上のエッジに変換する処理の一部である。なお、本実施形態においては、CPU101がROM等に格納されているボックス印刷機能プログラムを読み出し、実行することにより実現される。
[Processing flow]
Next, using the flowcharts of FIGS. 7, 8, and 9, the box printing function program operating on the control device 100 of the digital multifunction peripheral 403 converts the edge data 4200, 4300, 4301 to 4303 to the edges on the device coordinate system. The conversion process will be described. Each drawing is a part of a process in which the edge data expansion unit 3011 with coordinate hints of the box printing function program converts the edge data 4200, 4300, 4301 to 4303 into edges on the device coordinate system. Note that this embodiment is realized by the CPU 101 reading and executing the box printing function program stored in the ROM or the like.

まず、図7を用いて説明する。S701において、座標ヒント付エッジデータ展開部3011は、ボックス印刷機能プログラムが印刷出力画像を生成する際の、画像データの各pixelの拡大縮小率(以下、pixel倍率)を決定する。ここで「pixel倍率」とは、src座標系で定義された1pixelが、印刷時にプリンタ部300のマーキングユニット320が描くdevice座標系平面上のpixelの何個分に相当するか、という値を示す。device座標系の原点は右上であり、横方向がX、縦方向がYの平面座標系で定義され、device座標系の単位はマーキングユニット320が描く1pixelである。   First, it demonstrates using FIG. In step S <b> 701, the coordinate hint-added edge data expansion unit 3011 determines an enlargement / reduction ratio (hereinafter, pixel magnification) of each pixel of the image data when the box print function program generates a print output image. Here, the “pixel magnification” indicates a value of how many pixels on the device coordinate system plane drawn by the marking unit 320 of the printer unit 300 corresponds to 1 pixel defined in the src coordinate system. . The origin of the device coordinate system is the upper right, is defined by a planar coordinate system in which the horizontal direction is X and the vertical direction is Y, and the unit of the device coordinate system is 1 pixel drawn by the marking unit 320.

画像データのpixel倍率は、文書画像データ3009中のPageInfo4100の印刷属性、およびユーザによって操作部150から設定され、制御装置100のRAM102に保存されている印刷時設定属性値に基づいて算出される。ここで利用するPageInfo4100中の「印刷属性」とは、集約印刷設定属性、ページサイズ属性、解像度属性であり、必ず何らかの値が設定されている。制御装置100のRAM102に保存されている印刷時設定属性値も、集約印刷設定属性、ページサイズ属性、解像度属性であり、前述のPageInfo4100中の印刷属性と同じ意味合いを有する。ただし、設定値として“defalult”を指定することができ、その際には、PageInfo4100中の印刷属性の値がそのまま適用される。   The pixel magnification of the image data is calculated based on the print attribute of PageInfo 4100 in the document image data 3009 and the setting attribute value at the time of printing set by the user from the operation unit 150 and stored in the RAM 102 of the control device 100. The “print attributes” in the PageInfo 4100 used here are an aggregate print setting attribute, a page size attribute, and a resolution attribute, and some value is always set. The printing-time setting attribute values stored in the RAM 102 of the control device 100 are also an aggregate printing setting attribute, a page size attribute, and a resolution attribute, and have the same meaning as the printing attribute in the above-described PageInfo 4100. However, “default” can be specified as the setting value, and in this case, the value of the print attribute in the PageInfo 4100 is applied as it is.

制御装置100のRAM102に保存されている印刷時設定属性値は、制御装置100で動作するボックス印刷機能プログラムの機能として、その値を変更することが可能である。その際、ユーザによる操作部150の操作結果を反映することにより、印刷時設定属性値を変更する。ただし、プリンタ部300の機器構成上の制約により、解像度やページサイズに関しては設定することができない値がある場合もある。PageInfo4100中の印刷属性の値と制御装置100のRAM102に保存されている印刷時設定属性値が決まると、画像データのpixel倍率は一意に決まる。図11に、本実施形態に係る印刷属性の値と印刷時設定属性値との対応関係により、pixel倍率が一意に決定される組み合わせ1101の例を示す。   The printing setting attribute value stored in the RAM 102 of the control device 100 can be changed as a function of a box printing function program that operates on the control device 100. At that time, the setting attribute value at the time of printing is changed by reflecting the operation result of the operation unit 150 by the user. However, due to restrictions on the device configuration of the printer unit 300, there may be values that cannot be set for the resolution and page size. When the printing attribute value in the PageInfo 4100 and the printing setting attribute value stored in the RAM 102 of the control apparatus 100 are determined, the pixel magnification of the image data is uniquely determined. FIG. 11 shows an example of a combination 1101 in which the pixel magnification is uniquely determined based on the correspondence between the print attribute value and the print setting attribute value according to the present embodiment.

S702において、座標ヒント付エッジデータ展開部3011は、pixel倍率が“1”であるかの判定を行う(すなわち、等倍か否か)。Pixel倍率が“1”の場合は(S702にてYES)、座標ヒント付エッジデータ展開部3011は、エッジデータ4200を用いて図8に示す処理を行う。Pixel倍率が1以外である場合には(S702にてNO)、座標ヒント付エッジデータ展開部3011は、エッジデータ4200、4300、4301〜4303を用いて図9に示す処理を行う。   In step S <b> 702, the edge data expansion unit 3011 with coordinate hints determines whether the pixel magnification is “1” (that is, whether or not the magnification is equal). When the Pixel magnification is “1” (YES in S702), the coordinate hint-attached edge data development unit 3011 performs the process shown in FIG. 8 using the edge data 4200. When the Pixel magnification is other than 1 (NO in S702), the coordinate hint-attached edge data expansion unit 3011 performs the processing illustrated in FIG. 9 using the edge data 4200, 4300, 4301 to 4303.

図8は、pixel倍率が“1”であった場合に実行されるエッジデータのdevice座標変換処理を説明するフローチャートである(図7に示すS703)。device座標変換処理は、device座標系平面上の原点から開始される。S801にて、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値を確認する。Y座標値の最大値は、ページサイズで定義される画像出力領域の下限に相当するY座標値である。Yが最大値を超えていなければ(S801にてNO)、S802に進む。Yが最大値を超えている場合は(S801にてYES)、ページのレンダリングが終了したと判定され、処理を終了する。   FIG. 8 is a flowchart for explaining device coordinate conversion processing of edge data executed when the pixel magnification is “1” (S703 shown in FIG. 7). The device coordinate conversion process is started from the origin on the device coordinate system plane. In step S801, the edge data developing unit with coordinate hint 3011 confirms the Y coordinate value of the device coordinate system. The maximum Y coordinate value is a Y coordinate value corresponding to the lower limit of the image output area defined by the page size. If Y does not exceed the maximum value (NO in S801), the process proceeds to S802. If Y exceeds the maximum value (YES in S801), it is determined that page rendering has ended, and the process ends.

S802において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値のスキャンラインに描画されるべきsrc座標系平面上のy座標値を求める。ここでpixel倍率が“1”であるため、y=Yとなる。S803において、座標ヒント付エッジデータ展開部3011は、src座標系のy座標値で特定されるScanline中のエッジデータを4200の中から検出する。該当するエッジデータがない場合は(S803にてNO)、device座標系のY座標値のスキャンライン上に何も描画する必要はないため、S807に進む。エッジデータが一つ以上ある場合には(S803にてYES)、S804に進む。   In step S <b> 802, the coordinate hint-added edge data development unit 3011 obtains a y coordinate value on the src coordinate system plane to be drawn on the scan line of the Y coordinate value of the device coordinate system. Here, since the pixel magnification is “1”, y = Y. In step S <b> 803, the edge data expanding unit with coordinate hint 3011 detects edge data in the scan line specified by the y coordinate value in the src coordinate system from 4200. If there is no corresponding edge data (NO in S803), it is not necessary to draw anything on the scan line of the Y coordinate value of the device coordinate system, and the process proceeds to S807. If there is one or more edge data (YES in S803), the process proceeds to S804.

S804において、座標ヒント付エッジデータ展開部3011は、エッジデータ中のIsEdgeフラグの値を確認する。IsEdgeフラグが“0”である場合には(S804にてNO)、当該エッジが架空のエッジであるため、S803に戻る。IsEdgeフラグが“1”である場合には(S804にてYES)、S805において、座標ヒント付エッジデータ展開部3011は、エッジデータ中から15bitの整数x座標値を取得する。さらにS806にて、座標ヒント付エッジデータ展開部3011は、device座標系のX座標値と、さらにこのエッジに関連付けられたレベル情報4400へのアドレスを付加し、Level処理部3013にエッジ情報を送出する。ここでは、pixel倍率が1であるため、X=xとなる。その後、S803に戻り、座標ヒント付エッジデータ展開部3011は、同一のsrc座標系のy座標値を有する次のエッジデータを確認する。   In step S804, the edge data expanding unit 3011 with coordinate hints checks the value of the IsEdge flag in the edge data. When the IsEdge flag is “0” (NO in S804), since the edge is a fictitious edge, the process returns to S803. If the IsEdge flag is “1” (YES in S804), in S805, the edge data developing unit with coordinate hints 3011 acquires a 15-bit integer x coordinate value from the edge data. In step S <b> 806, the coordinate hint-added edge data expansion unit 3011 adds the X coordinate value of the device coordinate system and the address to the level information 4400 associated with the edge, and sends the edge information to the level processing unit 3013. To do. Here, since the pixel magnification is 1, X = x. Thereafter, the processing returns to S803, and the edge data developing unit with coordinate hint 3011 confirms the next edge data having the y coordinate value of the same src coordinate system.

S807において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値をインクリメントし、S801に戻る。   In step S807, the edge data expanding unit 3011 with coordinate hint increments the Y coordinate value of the device coordinate system, and the process returns to step S801.

図9は、pixel倍率が1以外であった場合に実行されるエッジデータのdevice座標変換処理を説明するフローチャートである(図7に示すS704)。device座標変換処理は、device座標系平面上の原点から開始される。S901において、座標ヒント付エッジデータ展開部3011は、PageInfo4100中の印刷属性の値、およびの制御装置100のRAM102に保存されている印刷時設定属性値に基づいて、pixel倍率を算出し、その値を“A”とする。S902において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値を確認する。Yが最大値を超えていなければ(S902にてNO)、S903に進む。Yが最大値を超えている場合は(S902にてYES)、ページのレンダリングが終了したとして、処理を終了する。   FIG. 9 is a flowchart for explaining the device coordinate conversion processing of edge data executed when the pixel magnification is other than 1 (S704 shown in FIG. 7). The device coordinate conversion process is started from the origin on the device coordinate system plane. In step S <b> 901, the edge data expansion unit 3011 with coordinate hints calculates the pixel magnification based on the print attribute value in the PageInfo 4100 and the set attribute value at the time of printing stored in the RAM 102 of the control device 100. Is “A”. In step S902, the edge data developing unit with coordinate hint 3011 confirms the Y coordinate value of the device coordinate system. If Y does not exceed the maximum value (NO in S902), the process proceeds to S903. If Y exceeds the maximum value (YES in S902), the processing is terminated assuming that page rendering has ended.

S903において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値のスキャンラインに描画されるべきsrc座標系平面上のエッジ座標の縦方向の値を求める。ここでpixel倍率はAであり、src座標系平面上には整数座標値をとるScanlineと、さらに座標値1/4ごとにSub−Scanlineが存在することを考慮する。この場合、求めるべきsrc座標系の座標値の整数部分をyとすれば、以下の関係式を満たす最大のyおよびbの組み合わせがわかればよい。なお、本実施形態において、bは0,1,2,3のいずれかの値となる。
y≦(Y−b/4)/A
In step S <b> 903, the coordinate hint-added edge data development unit 3011 obtains the vertical value of the edge coordinate on the src coordinate system plane to be drawn on the scan line of the Y coordinate value of the device coordinate system. Here, the pixel magnification is A, and it is considered that there is a scan line that takes an integer coordinate value on the src coordinate system plane, and a sub-scan line for each coordinate value 1/4. In this case, if the integer part of the coordinate value of the src coordinate system to be obtained is y, it is only necessary to know the maximum combination of y and b that satisfies the following relational expression. In the present embodiment, b is one of 0, 1, 2, and 3.
y ≦ (Yb / 4) / A

S904において、座標ヒント付エッジデータ展開部3011は、src座標系の座標値の整数部分であるyとbの組み合わせから座標が特定されるScanlineのエッジデータ、もしくはSub−Scanlineの中のエッジデータを、エッジデータ4200、4301〜4302から検出する。エッジデータが検出されず、存在しない場合は(S904にてNO)、device座標系のY座標値のスキャンライン上に何も描画する必要はないため、S914に進む。エッジデータが一つ以上ある場合には(S904にてYES)、S905に進む。   In step S <b> 904, the edge data expansion unit 3011 with coordinate hints generates scanline edge data in which coordinates are specified from a combination of y and b, which are integer parts of coordinate values in the src coordinate system, or edge data in the sub-scanline. , From edge data 4200, 4301-4302. If the edge data is not detected and does not exist (NO in S904), it is not necessary to draw anything on the scan line of the Y coordinate value of the device coordinate system, and the process proceeds to S914. If there is one or more edge data (YES in S904), the process proceeds to S905.

S905において、座標ヒント付エッジデータ展開部3011は、検出したScanlineのエッジデータ、もしくは上記で検出したSub−Scanlineに関連付けられている元のScanlineのエッジデータから、整数のエッジ座標値を取得する。S906において、座標ヒント付エッジデータ展開部3011は、bの値を判断する。b=0であれば(S906にてYES)、src座標系平面でのScanlineのエッジを用いるべきであるとして、S907に進む。bが1,2,または3である場合には(S906にてNO)、src座標系平面でのSub−Scanlineのエッジを用いるべきとして、S910に進む。   In step S <b> 905, the edge data developing unit 3011 with coordinate hints acquires an integer edge coordinate value from the detected scanline edge data or the original scanline edge data associated with the detected sub-scanline. In step S906, the coordinate hint-added edge data development unit 3011 determines the value of b. If b = 0 (YES in step S906), it is determined that the scanline edge on the src coordinate system plane should be used, and the process advances to step S907. When b is 1, 2, or 3 (NO in S906), it is determined that the Sub-Scanline edge on the src coordinate system plane should be used, and the process proceeds to S910.

S907において、座標ヒント付エッジデータ展開部3011は、上述のScanlineのエッジデータ中のIsEdgeフラグの値を確認する。IsEdgeフラグの値が“1”であれば(S907にてYES)、S908に進む。IsEdgeフラグの値が“0”であれば(S907にてNO)、エッジデータは架空のエッジであり描画すべきエッジではないため、S904に戻る。S908において、座標ヒント付エッジデータ展開部3011は、Scanlineのエッジ情報に関連付けられた2bitの1/4座標ヒントを取得してcとする。さらにS909にて、座標ヒント付エッジデータ展開部3011は、以下の式を用いてエッジのdevice座標系のX座標値を算出する。
X=ceil(A(x−c/4))
ここでの関数ceil()は、値の切り上げを行う関数である。
In step S907, the edge data expanding unit 3011 with coordinate hints checks the value of the IsEdge flag in the above-described scanline edge data. If the value of the IsEdge flag is “1” (YES in S907), the process proceeds to S908. If the value of the IsEdge flag is “0” (NO in S907), the edge data is an imaginary edge and not an edge to be drawn, so the process returns to S904. In step S908, the coordinate hint-attached edge data development unit 3011 acquires a 2-bit 1/4 coordinate hint associated with the edge information of Scanline and sets it as c. In step S909, the edge data expanding unit 3011 with coordinate hints calculates an X coordinate value of the device coordinate system of the edge using the following equation.
X = ceil (A (x−c / 4))
The function ceil () here is a function that rounds up the value.

そして、S913に進む。   Then, the process proceeds to S913.

S910において、座標ヒント付エッジデータ展開部3011は、上述のScanlineのエッジ情報に関連付けられたb番目のSub−Scanlineのエッジ情報から差分座標値を取得して“d”とする。さらに座標ヒント付エッジデータ展開部3011は、IsEdgeフラグを取得する(エッジデータ4301〜4303)。S911において、座標ヒント付エッジデータ展開部3011は、IsEdgeフラグの値を確認する。IsEdgeフラグの値が“1”であれば(S911にてYES)、S912に進む。IsEdgeフラグの値が“0”であれば(S911にてNO)、エッジデータは架空のエッジであり描画すべきエッジではないため、S904に戻る。S911において、座標ヒント付エッジデータ展開部3011は、以下の式を用いてSub−Scanlineエッジのdevice座標系のX座標値を算出する。
X=ceil(A(x+d/4))
そして、S913に進む。
In step S <b> 910, the coordinate hint-added edge data expansion unit 3011 obtains a difference coordinate value from the b-th sub-scanline edge information associated with the above-described scanline edge information, and sets the difference coordinate value to “d”. Further, the edge data developing unit with coordinate hint 3011 acquires the IsEdge flag (edge data 4301 to 4303). In step S911, the edge data expanding unit 3011 with coordinate hints checks the value of the IsEdge flag. If the value of the IsEdge flag is “1” (YES in S911), the process proceeds to S912. If the value of the IsEdge flag is “0” (NO in S911), the edge data is an imaginary edge and not an edge to be drawn, so the process returns to S904. In S911, the edge data developing unit with coordinate hint 3011 calculates the X coordinate value of the device coordinate system of the Sub-Scanline edge using the following equation.
X = ceil (A (x + d / 4))
Then, the process proceeds to S913.

S913において、座標ヒント付エッジデータ展開部3011は、エッジのdevice座標系のX座標値と、このエッジに関連付けられたレベル情報4400へのアドレスを付加し、Level処理部3013にエッジ情報を送出する。その後、S904に戻り、座標ヒント付エッジデータ展開部3011は、同一のsrc座標系のy座標値を有する次のエッジデータを確認する。S914において、座標ヒント付エッジデータ展開部3011は、device座標系のY座標値をインクリメントし、S902に戻る。   In step S <b> 913, the edge data developing unit with coordinate hint 3011 adds the X coordinate value of the device coordinate system of the edge and the address to the level information 4400 associated with the edge, and sends the edge information to the level processing unit 3013. . Thereafter, the processing returns to S904, and the edge data developing unit with coordinate hint 3011 confirms the next edge data having the y coordinate value of the same src coordinate system. In S914, the edge data expanding unit 3011 with coordinate hint increments the Y coordinate value of the device coordinate system, and returns to S902.

図8および図9の説明で述べたように、拡大率1倍の場合に実行される図8の処理においては、文書画像データ3009中のエッジデータのうち、エッジデータ4200にのみアクセスを行う。一方、拡大率が“1”以外の場合に実行される図9の処理においては、文書画像データ3009中のエッジデータ4200、座標ヒント情報4300、エッジデータ4301〜4303のすべてにアクセスを行う。文書画像データ3009は、ヒント情報を活用することによって1/4画素単位の精度で画像生成が可能である。しかし、エッジデータ4200のみを独立したデータ領域上に配置たことで、拡大率が“1”の処理速度が低下することはない。また座標ヒント情報4300とエッジデータ4301〜4303を隣接するデータ領域に配置したことで、拡大縮小を伴う画像生成処理も効率的に実施することが可能である。   As described in the description of FIGS. 8 and 9, in the process of FIG. 8 executed when the enlargement ratio is 1 time, only the edge data 4200 is accessed among the edge data in the document image data 3009. On the other hand, in the processing of FIG. 9 executed when the enlargement ratio is other than “1”, all of the edge data 4200, coordinate hint information 4300, and edge data 4301 to 4303 in the document image data 3009 are accessed. The document image data 3009 can be generated with an accuracy of 1/4 pixel unit by utilizing the hint information. However, by arranging only the edge data 4200 in an independent data area, the processing speed with the enlargement ratio “1” is not lowered. Further, by arranging the coordinate hint information 4300 and the edge data 4301 to 4303 in adjacent data areas, it is possible to efficiently perform image generation processing with enlargement / reduction.

また低解像度描画オブジェクトと高解像度描画オブジェクトが混在した場合であっても、境界での隙間が目立たない高品位の画像を得ることが可能になる。   Further, even when a low-resolution drawing object and a high-resolution drawing object are mixed, it is possible to obtain a high-quality image in which a gap at the boundary is not conspicuous.

さらに、低解像度描画オブジェクトを拡大縮小なしにレンダリングする場合に、速度低下することなく画像生成することが可能になる。   Furthermore, when rendering a low-resolution rendering object without scaling, it is possible to generate an image without reducing the speed.

また、本実施形態では、1/4座標を用いて、座標の補正および対応するデータ構造を述べたが、これに限定するものではなく、より詳細な座標の付加情報を設定しても構わない。この場合には、図4、5に示すエッジデータの構成も変更されることとなる。   Further, in this embodiment, the coordinate correction and the corresponding data structure are described using the ¼ coordinate. However, the present invention is not limited to this, and more detailed coordinate additional information may be set. . In this case, the configuration of the edge data shown in FIGS. 4 and 5 is also changed.

<第二実施形態>
第一実施形態においては、文書画像データ処理装置が、制御装置100にてPDLデータ3001から文書画像データ3009を生成する処理と、文書画像データ3009から印刷出力画像を生成する処理を含んでいることを説明した。
<Second embodiment>
In the first embodiment, the document image data processing apparatus includes a process for generating document image data 3009 from the PDL data 3001 in the control apparatus 100 and a process for generating a print output image from the document image data 3009. Explained.

この二つの処理は、同一のデジタル複合機上で動作する必要はない。文書画像データ3009は、座標ヒント付エッジデータを含むことで、様々な解像度のプリントエンジンから出力することができる形式になっている。   These two processes do not need to operate on the same digital multi-function peripheral. The document image data 3009 is in a format that can be output from print engines having various resolutions by including edge data with coordinate hints.

図3の左側に示した各工程(3001〜3009)で行われる処理と、図3の右側に示した各工程(3009〜3016)で行われる処理を、別々のデジタル複合機で実行してもよい。その際には、文書画像データ3009はネットワークを経由して別のデジタル複合機のHDDに転送される。もしくは磁気メディア、書き換え可能な光学メディア、フラッシュメモリなどを経由して別のデジタル複合機のHDDにコピーされてもよい。   Even if the processing performed in each step (3001 to 3009) shown on the left side of FIG. 3 and the processing performed in each step (3009 to 3016) shown on the right side of FIG. Good. At that time, the document image data 3009 is transferred to the HDD of another digital multi-function peripheral via the network. Alternatively, it may be copied to the HDD of another digital multi-function peripheral via magnetic media, rewritable optical media, flash memory, or the like.

これにより、第一実施形態と同様の効果を得ることができる。   Thereby, the effect similar to 1st embodiment can be acquired.

<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
<Other embodiments>
The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, or the like) of the system or apparatus reads the program. It is a process to be executed.

Claims (10)

入力されたページ記述言語により記述されたPDLデータから描画データを生成する画像処理装置であって、
前記PDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段と、
前記描画オブジェクト生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段と、
前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段と
を有し、
前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持することを特徴とする画像処理装置。
An image processing apparatus that generates drawing data from PDL data described in an input page description language,
Drawing object generation means for interpreting the PDL data and generating a drawing object;
Generating means for quantizing the coordinate value of each pixel included in the drawing object generated by the drawing object generating means at a predetermined resolution, and generating drawing data;
Holding means for holding, as additional information of coordinate values, values to be truncated when quantizing the coordinate values at the defined resolution in the generating means;
The holding means holds the additional information in a region different from the coordinate value at the predetermined resolution obtained by quantization of the drawing data generated by the generating means. .
前記描画データをレンダリングするレンダリング手段と、
前記レンダリング手段によるレンダリングの解像度が前記定められた解像度でない場合に、前記付加情報を用いて前記定められた解像度にて量子化された座標値を補正する補正手段と
を更に有することを特徴とする請求項1に記載の画像処理装置。
Rendering means for rendering the drawing data;
And a correction unit that corrects a coordinate value quantized at the predetermined resolution using the additional information when the rendering resolution by the rendering unit is not the predetermined resolution. The image processing apparatus according to claim 1.
前記補正手段は、前記レンダリング手段によるレンダリングの解像度が前記定められた解像度と同一である場合は、前記付加情報を用いた座標値の補正を行わないことを特徴とする請求項2に記載の画像処理装置。   3. The image according to claim 2, wherein the correction unit does not correct the coordinate value using the additional information when a resolution of rendering by the rendering unit is the same as the predetermined resolution. Processing equipment. 前記描画オブジェクト生成手段により生成された描画オブジェクトの属性を判定する判定手段を更に有し、
前記保持手段は、前記描画オブジェクトの属性が所定の属性の場合には、当該描画オブジェクトに対し前記生成手段にて量子化を行っていないデータを描画データとして保持することを特徴とする請求項1乃至3のいずれか一項に記載の画像処理装置。
A determination unit for determining an attribute of the drawing object generated by the drawing object generation unit;
The holding unit holds, as drawing data, data that is not quantized by the generation unit for the drawing object when the attribute of the drawing object is a predetermined attribute. The image processing device according to any one of claims 1 to 3.
前記所定の属性は、前記描画オブジェクトが細線もしくは所定のサイズよりも小さな文字であることを特徴とする請求項4に記載の画像処理装置。   The image processing apparatus according to claim 4, wherein the predetermined attribute is that the drawing object is a thin line or a character smaller than a predetermined size. 前記付加情報は、前記定められた解像度よりも高解像度における座標値を示し、
当該高解像度における座標値は、前記定められた解像度の座標値との差分により定義されることを特徴とする請求項1乃至5のいずれか一項に記載の画像処理装置。
The additional information indicates a coordinate value at a higher resolution than the determined resolution,
6. The image processing apparatus according to claim 1, wherein the coordinate value at the high resolution is defined by a difference from the coordinate value at the predetermined resolution.
前記保持手段は、前記定められた解像度における座標値と前記高解像度における座標値との差分が、当該差分を定義するために予め定められたビット数よりも大きい場合、仮の座標点を追加し、前記予め定められた解像度における座標値に代わって当該仮の座標点の座標値との差分により、前記高解像度における座標値を定義することを特徴とする請求項6に記載の画像処理装置。   The holding unit adds a temporary coordinate point when the difference between the coordinate value at the predetermined resolution and the coordinate value at the high resolution is larger than a predetermined number of bits for defining the difference. The image processing apparatus according to claim 6, wherein the coordinate value at the high resolution is defined by a difference from the coordinate value of the temporary coordinate point instead of the coordinate value at the predetermined resolution. 前記描画オブジェクト生成手段と前記生成手段と前記保持手段とを有する画像処理装置と異なる別の画像処理装置が、前記レンダリング手段と前記補正手段を備えることを特徴とする請求項2に記載の画像処理装置。   3. The image processing according to claim 2, wherein another image processing apparatus different from the image processing apparatus having the drawing object generation unit, the generation unit, and the holding unit includes the rendering unit and the correction unit. apparatus. 入力されたページ記述言語により記述されたPDLデータから描画データを生成する画像処理方法であって、
描画オブジェクト生成手段が、前記PDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成工程と、
生成手段が、前記描画オブジェクト生成工程において生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成工程と、
保持手段が、前記生成工程にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として記憶部に保持する保持工程と
を有し、
前記保持工程において、前記付加情報を、前記生成工程により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持することを特徴とする画像処理方法。
An image processing method for generating drawing data from PDL data described in an input page description language,
A drawing object generation means for interpreting the PDL data and generating a drawing object;
A generating step of generating a drawing data by quantizing a coordinate value of each pixel included in the drawing object generated in the drawing object generating step with a predetermined resolution;
A holding unit holding a value to be truncated by quantization in the storage unit as additional information of the coordinate value when the coordinate value is quantized at the determined resolution in the generation step;
In the holding step, the additional information is held in a region different from the coordinate value at the predetermined resolution obtained by quantization of the drawing data generated in the generating step. .
コンピュータを、
ページ記述言語により記述されたPDLデータを解釈し、描画オブジェクトを生成する描画オブジェクト生成手段、
前記生成手段により生成された描画オブジェクトに含まれる各画素の座標値を定められた解像度で量子化し、描画データを生成する生成手段、
前記生成手段にて前記定められた解像度で座標値を量子化する際に、量子化によって切り捨てられるべき値を座標値の付加情報として保持する保持手段
として機能させ、
前記保持手段は、前記付加情報を、前記生成手段により生成された描画データの、量子化によって得られる前記定められた解像度での座標値とは異なる領域に保持することを特徴とするプログラム。
Computer
A drawing object generating means for interpreting PDL data described in a page description language and generating a drawing object;
Generating means for quantizing the coordinate value of each pixel included in the drawing object generated by the generating means at a predetermined resolution, and generating drawing data;
When the coordinate value is quantized with the determined resolution by the generating means, function as a holding means for holding a value to be truncated by quantization as additional information of the coordinate value,
The storage unit stores the additional information in a region different from the coordinate value at the predetermined resolution obtained by quantization of the drawing data generated by the generation unit.
JP2011141218A 2011-06-24 2011-06-24 Image processing apparatus, image processing method, and program Withdrawn JP2013008247A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011141218A JP2013008247A (en) 2011-06-24 2011-06-24 Image processing apparatus, image processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011141218A JP2013008247A (en) 2011-06-24 2011-06-24 Image processing apparatus, image processing method, and program

Publications (1)

Publication Number Publication Date
JP2013008247A true JP2013008247A (en) 2013-01-10

Family

ID=47675534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011141218A Withdrawn JP2013008247A (en) 2011-06-24 2011-06-24 Image processing apparatus, image processing method, and program

Country Status (1)

Country Link
JP (1) JP2013008247A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110333832A (en) * 2019-07-04 2019-10-15 森大(深圳)技术有限公司 Several print image typesetting spacing adjusting method, device, equipment and storage mediums

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110333832A (en) * 2019-07-04 2019-10-15 森大(深圳)技术有限公司 Several print image typesetting spacing adjusting method, device, equipment and storage mediums

Similar Documents

Publication Publication Date Title
JP4995057B2 (en) Drawing apparatus, printing apparatus, drawing method, and program
US7680358B2 (en) Image processing apparatus and control method thereof, and program
JP5643574B2 (en) Image processing apparatus and image processing method
US9477914B2 (en) Image processing apparatus, method, and medium for converting page image data
US10592766B2 (en) Image processing apparatus and medium storing program executable by image processing apparatus
US8339664B2 (en) Image processing method, image processing apparatus, and control method thereof
US9176935B2 (en) Image forming apparatus capable of displaying print preview on screen
JP5863001B2 (en) Image processing apparatus, image forming apparatus, and program
JP2017024321A (en) Image processor, image formation device, and image processing time prediction method and program
JP2011013963A (en) Image processing apparatus, image processing method, and computer program
KR101945581B1 (en) Image processing apparatus, image processing method, and storage medium
JP2008042345A (en) Image processing method and image processor
JP2013008247A (en) Image processing apparatus, image processing method, and program
JP6330790B2 (en) Print control system, print control apparatus, and program
JP2017170884A (en) Image processing device, control method thereof, and program
JP2017189968A (en) Image processing apparatus and image processing method
JP5772253B2 (en) Image processing apparatus and program
JP2011083914A (en) Image forming apparatus and method and program for controlling the same
JP2007081886A (en) Drawing processing apparatus
JP2005151064A (en) Image processing apparatus and program for image processing
JP5310538B2 (en) Print control program and information processing apparatus
JP2008290397A (en) Drawing processor, pdl processor, image forming apparatus, drawing command generation method, drawing command generation program and recording medium recorded with drawing command generation program
JP2011139161A (en) Image processing device and method of controlling the same
JP2010187177A (en) Image forming apparatus and control program
JP2018110327A (en) Image-processing device and program

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140902