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

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

Info

Publication number
JP6202908B2
JP6202908B2 JP2013140858A JP2013140858A JP6202908B2 JP 6202908 B2 JP6202908 B2 JP 6202908B2 JP 2013140858 A JP2013140858 A JP 2013140858A JP 2013140858 A JP2013140858 A JP 2013140858A JP 6202908 B2 JP6202908 B2 JP 6202908B2
Authority
JP
Japan
Prior art keywords
line
image processing
line width
data
text
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.)
Active
Application number
JP2013140858A
Other languages
Japanese (ja)
Other versions
JP2015015589A (en
Inventor
弘志 松田
弘志 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2013140858A priority Critical patent/JP6202908B2/en
Publication of JP2015015589A publication Critical patent/JP2015015589A/en
Application granted granted Critical
Publication of JP6202908B2 publication Critical patent/JP6202908B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Dot-Matrix Printers And Others (AREA)
  • Record Information Processing For Printing (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

本発明は、線幅を太らせる技術に関するものである。   The present invention relates to a technique for increasing the line width.

複写機、レーザプリンタ及びインクジェットプリンタ等の画像形成装置では、細線再現の変動要因が多数存在する。例えば、電子写真の場合、濃度変動、トナーの飛散、及び、主走査/副走査方向のプロセス特性等の影響が顕著に表れやすい。これらは、機種間差、個体差、経時変動、及び、メディアの搬送方向に依存した出力差等につながる。さらに、ホスト端末から印刷する場合には、使用するページ記述言語(PDL)によってもベクタ描画を実際のピクセルに割り当てるルール、即ち、塗りルールの違いにより、細線の再現が異なったものとなる。これらは忠実再現に関する課題であるが、必ずしも忠実再現だけが期待されるとも限らない。ホスト端末から印刷する場合には、ホスト端末のディスプレイ解像度と画像形成装置の出力解像度との違いから、ユーザの想定以上に細く見えてしまう場合もある。また、複数種類の画像形成装置を同時に使用する場合や、画像形成装置を入れ替えて使用する場合に、細線の再現幅を合わせたいという要求もある。これらの各種課題を解決するために、今日までに様々な細線補正の技術が提案されている。   In image forming apparatuses such as copying machines, laser printers, and ink jet printers, there are many factors that cause fluctuations in fine line reproduction. For example, in the case of electrophotography, influences such as density fluctuations, toner scattering, and process characteristics in the main scanning / sub-scanning directions are likely to appear significantly. These lead to differences between models, individual differences, changes over time, output differences depending on the media conveyance direction, and the like. Further, when printing from the host terminal, the reproduction of thin lines differs depending on the rule for assigning vector drawing to actual pixels, that is, the painting rule, depending on the page description language (PDL) to be used. These are issues relating to faithful reproduction, but only faithful reproduction is not necessarily expected. When printing from the host terminal, it may appear finer than the user expects due to the difference between the display resolution of the host terminal and the output resolution of the image forming apparatus. There is also a need to match the reproduction width of thin lines when using multiple types of image forming apparatuses at the same time, or when replacing image forming apparatuses. In order to solve these various problems, various fine line correction techniques have been proposed to date.

例えば、特許文献1には、細線を描画するためのコマンドを含むとともに、当該コマンドにより指定される線幅を補正するための指示を含むPDLの描画コマンドを発行する技術が開示されている。しかし、一般的なPDLにおいて、テキストはアウトラインフォントとして表現される。アウトラインフォントはテキストの輪郭を構成する曲線を定義するのみで、その線(ステム)の幅を定義するものではない。従って、細線を描画するためのコマンドのように単純に線幅を調整するといった方法を使用することはできない。また、テキストの中にはビットマップフォントして表現されるものもあり、この場合はアウトラインフォントの情報もない。   For example, Patent Document 1 discloses a technique for issuing a PDL drawing command including a command for drawing a thin line and an instruction for correcting a line width specified by the command. However, in general PDL, text is expressed as an outline font. Outline fonts only define the curves that make up the outline of the text, not the width of the lines (stems). Therefore, it is not possible to use a method of simply adjusting the line width like a command for drawing a thin line. Some text is expressed as a bitmap font. In this case, there is no outline font information.

特許文献2には、テキストの中に含まれる細線の幅を補正する技術として、パターンマッチングを用いる技術が開示されている。しかしながら、パターンマッチングによる太らせでは予め定義したパターンに依存した指向性が発生し易い。例えば、注目ピクセルの上か左のピクセルがテキストを構成するピクセルであった場合に注目ピクセルを塗り足す場合を考える。水平線及び垂直線は、この場合、1ピクセル塗り足されることになる。45度の斜め線は、左上から右下に描画される線は2ピクセル塗り足されることになる。右上から左下に描画される線は1ピクセル塗り足されることになる。このように線の描画方向により太り方が異なってしまう。上下左右の全方向に太らせればよいが、必ず2ピクセル太ることになってしまい、太り過ぎてしまう懸念がある。即ち、パターンマッチングによる細線の補正は指向性が課題といえる。   Patent Document 2 discloses a technique using pattern matching as a technique for correcting the width of a fine line included in a text. However, thickening by pattern matching tends to generate directivity depending on a predefined pattern. For example, let us consider a case where a pixel of interest is added when the pixel above or to the left of the pixel of interest is a pixel constituting text. In this case, the horizontal line and the vertical line are added by one pixel. As for the 45 degree diagonal line, a line drawn from the upper left to the lower right is added by 2 pixels. A line drawn from the upper right to the lower left is added by one pixel. In this way, the way of weighting varies depending on the line drawing direction. Although it is only necessary to increase the thickness in all directions, up, down, left, and right, there is a concern that the pixel will always increase by 2 pixels and become too fat. That is, directivity is an issue in the fine line correction by pattern matching.

特開2009−105827号公報JP 2009-105827 A 特開2007−125827号公報Japanese Patent Laid-Open No. 2007-125827

従来技術の特性を考慮すると、直線や曲線等のラインに対してはベクタデータ段階での線幅の補正、テキストに対してはパターンマッチングによる線幅の補正が好ましいと考えられる。しかしながら、補正量を別々に指定する方法では、テキストとラインとの太らせ方に差異が生じる可能性がある。パターンマッチングにより線幅を太らせる方法では、ピクセル単位での太り方になるのに対して、ベクタデータ段階では論理線幅を増やす必要があるためである。PDLではデバイス依存性をなくすために、描画用の座標空間として論理座標系を定義するものが多い。論理座標系でラインを太らせると、出力解像度に依存せずに太らせることが可能である。しかし、これは出力解像度によって太るピクセル数が異なることにも繋がり、パターンマッチングによるテキストの太らせと不一致が生じる。また、1つのメディアに複数のページを配置するN−UP処理等のレイアウト制御を行う場合も、縮小が起こるために不一致が生じる。   Considering the characteristics of the prior art, it is considered preferable to correct the line width at the vector data stage for lines such as straight lines and curves, and to correct the line width by pattern matching for text. However, in the method of specifying the correction amount separately, there is a possibility that a difference occurs in how the text and the line are thickened. This is because the method of thickening the line width by pattern matching is to increase the thickness in pixel units, whereas the logical line width needs to be increased at the vector data stage. Many PDLs define a logical coordinate system as a coordinate space for drawing in order to eliminate device dependency. If the line is thickened in the logical coordinate system, it is possible to thicken the line without depending on the output resolution. However, this also leads to a difference in the number of pixels to be fat depending on the output resolution, resulting in text thickening and mismatch due to pattern matching. Also, when performing layout control such as N-UP processing in which a plurality of pages are arranged on one medium, a mismatch occurs due to reduction.

そこで、本発明の目的は、シンプルな操作で効果的に線幅を太らせることにある。   Therefore, an object of the present invention is to increase the line width effectively with a simple operation.

本発明の画像処理装置は、線幅を設定する設定手段と、前記設定手段により設定される線幅に応じてプリントデータに含まれるラインの幅を変更するように、前記プリントデータであるベクタデータを定義する定義手段と、前記定義手段により定義された前記ベクタデータに基づいて、ビットマップデータを生成する生成手段と、前記設定手段により設定される線幅に応じて前記プリントデータに含まれるテキストの幅を変更するように、前記ビットマップデータに対して画像処理を施す画像処理手段とを有することを特徴とする。   An image processing apparatus according to the present invention includes: a setting unit that sets a line width; and vector data that is the print data so as to change a line width included in the print data in accordance with the line width set by the setting unit. Definition means for defining the image, generation means for generating bitmap data based on the vector data defined by the definition means, and text included in the print data according to the line width set by the setting means Image processing means for performing image processing on the bitmap data so as to change the width of the bitmap data.

本発明によれば、シンプルな操作で効果的に線幅を太らせることが可能となる。   According to the present invention, it is possible to effectively increase the line width with a simple operation.

本発明の実施形態に係る画像形成装置の構成を示す図である。1 is a diagram illustrating a configuration of an image forming apparatus according to an embodiment of the present invention. 本発明の実施形態に係る画像形成装置のソフトウェアモジュールの構成を示す図である。FIG. 3 is a diagram illustrating a configuration of a software module of the image forming apparatus according to the embodiment of the present invention. 操作部の液晶タッチパネルに表示される線幅補正の設定画面を示す図である。It is a figure which shows the setting screen of the line | wire width correction | amendment displayed on the liquid crystal touch panel of an operation part. コントローラユニットにて実行される基本プリント処理を示すフローチャートである。It is a flowchart which shows the basic print process performed with a controller unit. 線幅指定PSオペレータの再定義について説明するための図である。It is a figure for demonstrating redefinition of line width designation | designated PS operator. 出力画像の中でどのように線幅が太るのかについて説明するための図である。It is a figure for demonstrating how line width becomes thick in an output image. 図4に示す基本プリント処理におけるスレッドCの処理を詳細に示すフローチャートである。6 is a flowchart showing in detail a process of a thread C in the basic print process shown in FIG. 図7のステップS1212において実行される、パターンマッチングによりテキストを太らせる処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the process which thickens a text by pattern matching performed in step S1212 of FIG. 図8を用いて説明したパターンマッチングによりテキストを太らせる処理を適用した例を示す図である。It is a figure which shows the example which applied the process which thickens a text by the pattern matching demonstrated using FIG. 本発明の第2の実施形態が解決する課題を説明するための図である。It is a figure for demonstrating the subject which the 2nd Embodiment of this invention solves. テキストとラインとの重なりを検知するための処理を示すフローチャートである。It is a flowchart which shows the process for detecting the overlap of a text and a line. 図7のステップS1212において実行される、パターンマッチングによりテキストを太らせる処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the process which thickens a text by pattern matching performed in step S1212 of FIG. 本発明の第3の実施形態において、図8に示す処理に代わって実行される処理を示すフローチャートである。FIG. 9 is a flowchart showing a process executed in place of the process shown in FIG. 8 in the third embodiment of the present invention. FIG.

以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。   DESCRIPTION OF EXEMPLARY EMBODIMENTS Hereinafter, preferred embodiments to which the invention is applied will be described in detail with reference to the accompanying drawings.

先ず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る画像形成装置100の構成を示す図である。なお、本実施形態では、画像形成装置100単体の場合を例に挙げるが、ネットワークを介して接続されるホストコンピュータ上に多くの処理を分離実行させる構成であってもよい。   First, a first embodiment of the present invention will be described. FIG. 1 is a diagram showing a configuration of an image forming apparatus 100 according to the first embodiment of the present invention. In this embodiment, the case of the image forming apparatus 100 alone is taken as an example, but a configuration in which many processes are separately executed on a host computer connected via a network may be employed.

図1において、200は、コントローラユニットであり、画像データやデバイス情報の入出力を制御する。CPU1は、ROM3又はHDD4に記憶されたプログラムをRAM2に読み出して実行する。さらに、システムバス5に接続される各デバイスをCPU1が統括的に制御する。RAM2は、CPU1の主メモリ及びワークエリアとして機能する。ROM3には、電源ON時に実行されるブートプログラムが格納され、HDD4には、オペレーティングシステム及び画像形成装置100の制御プログラムが格納される。また、HDD4は、画像データやプリントデータ等の大容量データを一時的又は長期的に保持する目的でも使用される。   In FIG. 1, reference numeral 200 denotes a controller unit that controls input / output of image data and device information. The CPU 1 reads the program stored in the ROM 3 or the HDD 4 into the RAM 2 and executes it. Further, the CPU 1 comprehensively controls each device connected to the system bus 5. The RAM 2 functions as a main memory and work area for the CPU 1. The ROM 3 stores a boot program that is executed when the power is turned on, and the HDD 4 stores an operating system and a control program for the image forming apparatus 100. The HDD 4 is also used for temporarily or long-term holding large-capacity data such as image data and print data.

ネットワークI/F6は、ローカルエリアネットワーク13とのインタフェースであり、印刷データやデバイス情報の入出力を担う。操作部I/F7は、操作部14とのインタフェースであり、表示させる画像データを操作部14に対して出力する。また、操作部I/F7は、画像形成装置100のユーザが操作部14から入力した情報を、CPU1に伝える役割をする。操作部14は、出力器として液晶パネル及び音源を備え、入力器としてタッチパネル及びハードキーを備えるものである。   The network I / F 6 is an interface with the local area network 13 and inputs and outputs print data and device information. The operation unit I / F 7 is an interface with the operation unit 14 and outputs image data to be displayed to the operation unit 14. The operation unit I / F 7 serves to transmit information input from the operation unit 14 by the user of the image forming apparatus 100 to the CPU 1. The operation unit 14 includes a liquid crystal panel and a sound source as an output device, and includes a touch panel and hard keys as input devices.

コントローラユニット200は、デバイスI/F8を介してプリンタエンジン15に接続される。デバイスI/F8は、CPU1の指示に基づき、画像データの送信処理、デバイス動作の指示処理、及び、デバイス情報の受信処理を行う。プリンタエンジン15は、コントローラユニット200から入力した画像データを媒体上に出力する出力部であり、電子写真方式及びインクジェット方式の何れでも構わない。   The controller unit 200 is connected to the printer engine 15 via the device I / F 8. The device I / F 8 performs image data transmission processing, device operation instruction processing, and device information reception processing based on an instruction from the CPU 1. The printer engine 15 is an output unit that outputs the image data input from the controller unit 200 onto a medium, and may be either an electrophotographic system or an inkjet system.

RIP(Raster Image Processor)9は、ディスプレイリスト(以下、DLと称す)をラスタイメージに展開する専用ハードウェアである。このディスプレイリストはRIP9が解釈可能な形式の中間データである。RIP9は、CPU1によりRAM2上に生成されたDLを高速、且つ、CPU1の実行と並列に処理するものである。プリンタ画像処理部10は、プリント出力画像データに対して、画像補正及びハーフトーニング等を行う。画像回転部12は、画像データの回転処理を行う。画像圧伸部11は、多値画像データに対してはJPEG形式の圧縮伸張処理を行い、2値画像データに対してはJBIG、MMR、MH形式の圧縮伸張処理を行う。   A RIP (Raster Image Processor) 9 is dedicated hardware for developing a display list (hereinafter referred to as DL) into a raster image. This display list is intermediate data in a format that RIP 9 can interpret. The RIP 9 processes the DL generated on the RAM 2 by the CPU 1 at high speed and in parallel with the execution of the CPU 1. The printer image processing unit 10 performs image correction, halftoning, and the like on the print output image data. The image rotation unit 12 performs image data rotation processing. The image companding unit 11 performs JPEG compression / decompression processing for multi-valued image data, and JBIG, MMR, and MH format compression / decompression processing for binary image data.

図2は、第1の実施形態に係る画像形成装置100のソフトウェアモジュールの構成を示す図である。図2に示した各ソフトウェアモジュールは、プログラムとしてHDD4に格納され、RAM2にロードされ、CPU1により実行されるものである。より具体的には、各ソフトウェアモジュールは、CPU1上で動作するOS(オペレーティングシステム)によりRAM2にロードされ、スレッド単位で実行権を付与され、実行されるものである。   FIG. 2 is a diagram illustrating a configuration of a software module of the image forming apparatus 100 according to the first embodiment. Each software module shown in FIG. 2 is stored as a program in the HDD 4, loaded into the RAM 2, and executed by the CPU 1. More specifically, each software module is loaded into the RAM 2 by an OS (operating system) that operates on the CPU 1, is given execution rights in units of threads, and is executed.

データ受信部201は、ホスト端末から送信されたプリントデータを受信する。データ受信部201において受信したプリントデータは、ジョブ制御部202を介してジョブデータ管理部208で保持される。   The data receiving unit 201 receives print data transmitted from the host terminal. The print data received by the data receiving unit 201 is held by the job data management unit 208 via the job control unit 202.

ジョブ制御部202は、プリントデータの受信処理から印刷処理までのジョブ制御の全般を司る。PSインタプリタ203は、PostScript(登録商標)データを解釈して、中間データであるDLを生成する。生成されたDLは、ジョブ制御部202を介してジョブデータ管理部208で保持される。レンダラ204は、DLからビットマップイメージを生成するモジュールであり、多くの処理は専用ハードウェアRIP9により実行される。生成されたビットマップイメージは、ジョブ制御部202を介してジョブデータ管理部208で保持される。プリンタドライバ205は、デバイスI/F8を介してプリンタエンジン15に対する印刷指示処理とビットマップイメージの送信処理とを実行する。この際に、プリンタドライバ205は、プリンタ画像処理部10による画像補正も行う。ユーザインタフェース206は、操作部I/F7を介して、操作部14を制御するモジュールである。主に、ユーザインタフェース206は、操作部14の液晶パネルに表示するデータを生成し、タッチパネルからの入力に従って液晶パネルの表示を更新する。また、タッチパネルからの入力が何らかのジョブ実行指示であった場合、ユーザインタフェース206は、ジョブ制御部202に指示を伝達する。ジョブデータ管理部208は、プリントデータ、DL、ビットマップイメージのそれぞれを一時的又は長期的に管理するデータベースである。   The job control unit 202 is responsible for overall job control from print data reception processing to print processing. The PS interpreter 203 interprets PostScript (registered trademark) data and generates DL as intermediate data. The generated DL is held in the job data management unit 208 via the job control unit 202. The renderer 204 is a module that generates a bitmap image from the DL, and many processes are executed by the dedicated hardware RIP 9. The generated bitmap image is held in the job data management unit 208 via the job control unit 202. The printer driver 205 executes print instruction processing and bitmap image transmission processing for the printer engine 15 via the device I / F 8. At this time, the printer driver 205 also performs image correction by the printer image processing unit 10. The user interface 206 is a module that controls the operation unit 14 via the operation unit I / F 7. Mainly, the user interface 206 generates data to be displayed on the liquid crystal panel of the operation unit 14 and updates the display of the liquid crystal panel according to the input from the touch panel. If the input from the touch panel is a job execution instruction, the user interface 206 transmits the instruction to the job control unit 202. The job data management unit 208 is a database that manages print data, DL, and bitmap images temporarily or for a long term.

図3は、操作部14の液晶タッチパネルに表示される線幅補正の設定画面を示す図である。「線幅補正」項目301において、「ON」302が押下されると、線幅補正が有効となり、「OFF」303が押下されると、線幅補正が無効となる。また、「太らせ幅(ピクセル)」項目304において、「1」305が押下されると、太らせ幅は1ピクセルと設定され、「2」306が押下されると、太らせ幅は2ピクセルと設定される。ここで、CPU1は、設定画面上の押下された位置から選択された項目を判定し、その設定値をRAM2に保存する。例えば、CPU1は、液晶タッチパネル上の「ON」302が押下されたことを検知して、RAM2に細線補正が有効という情報を記憶する。同様に、CPU1は、液晶タッチパネルの「1」305の領域が押下されたことを検知して、RAM2に太らせ幅1ピクセルという情報を記憶する。   FIG. 3 is a diagram showing a line width correction setting screen displayed on the liquid crystal touch panel of the operation unit 14. In the “line width correction” item 301, when “ON” 302 is pressed, the line width correction is enabled, and when “OFF” 303 is pressed, the line width correction is disabled. In addition, in the “weighting width (pixel)” item 304, when “1” 305 is pressed, the thickness is set to 1 pixel, and when “2” 306 is pressed, the thickness is 2 pixels. Is set. Here, the CPU 1 determines an item selected from the pressed position on the setting screen, and stores the setting value in the RAM 2. For example, the CPU 1 detects that “ON” 302 on the liquid crystal touch panel is pressed, and stores information that the thin line correction is valid in the RAM 2. Similarly, the CPU 1 detects that the area “1” 305 of the liquid crystal touch panel has been pressed, and stores the information about the width of 1 pixel in the RAM 2.

図4は、コントローラユニット200にて実行されるプリント処理を示すフローチャートである。なお、図4のフローチャートに示す処理は、HDD4に記憶された図2の各ソフトウェアモジュール内のプログラムがRAM2に読み出され、CPU1により実行されることにより実現される。また、図4のフローチャートに示す処理では、スレッドA、スレッドB及びスレッドCの三つのスレッドが並列に実行される。各スレッドは、オペレーティングシステムにより時分割され、その実行権が割り振られる。時分割の単位は十分に小さいため、三つのスレッドは並列動作するとみなすことができる。オペレーティングシステムによるマルチスレッディング処理は一般に広く知られた技術であるため、詳細な説明は省略する。スレッドA、スレッドB及びスレッドCは、画像形成装置100の起動時にオペレーティングシステムにより生成される常駐スレッドである。   FIG. 4 is a flowchart showing print processing executed by the controller unit 200. The process shown in the flowchart of FIG. 4 is realized by reading the program in each software module of FIG. 2 stored in the HDD 4 into the RAM 2 and executing it by the CPU 1. In the process shown in the flowchart of FIG. 4, three threads of thread A, thread B, and thread C are executed in parallel. Each thread is time-shared by the operating system and its execution right is allocated. Since the unit of time division is sufficiently small, three threads can be regarded as operating in parallel. Since the multi-threading process by the operating system is a generally well-known technique, a detailed description thereof is omitted. Thread A, thread B, and thread C are resident threads generated by the operating system when the image forming apparatus 100 is started.

先ず、スレッドAについて説明する。ステップS101において、データ受信部201は、プリントデータであるPSデータを受信し、ジョブ制御部202を介してジョブデータ管理部208に格納する。ステップS102において、PSインタプリタ203は、出力解像度及びレイアウトの内容に応じて、論理座標とデバイス座標間のアフィン変換マトリックスをPSインタプリタ203自身に設定する。画像形成装置100では、出力解像度として600dpiと1200dpiとの二つをサポートしているものとする。また、画像形成装置100では、1ページを一枚の用紙に配置する1UPと2ページを一枚の用紙の左右に並べて配置する2UPとの二つのレイアウトをサポートしているものとする。PostScriptでは、論理座標の基準単位は、ポイント(1ポイントは1/72インチ)であり、座標原点はページの左下角の点となる。また、デバイス座標の基準単位はピクセルであり、座標原点は用紙の左上角の点となる。このとき、LTRサイズ(8.5×11インチ)のページを1UP、600dpiで出力した場合のアフィン変換マトリックスは(8.333,0,0,−8.333,0,6600)となる。出力解像度とレイアウト内容との設定値は、PSデータとともに送信されるジョブチケットにより指定される。ジョブチケットにより設定された設定値は、ジョブ制御部202からPSインタプリタ203に通知される。   First, the thread A will be described. In step S <b> 101, the data reception unit 201 receives PS data that is print data, and stores it in the job data management unit 208 via the job control unit 202. In step S102, the PS interpreter 203 sets an affine transformation matrix between logical coordinates and device coordinates in the PS interpreter 203 itself according to the output resolution and layout contents. Assume that the image forming apparatus 100 supports two output resolutions of 600 dpi and 1200 dpi. Further, it is assumed that the image forming apparatus 100 supports two layouts of 1UP for arranging one page on one sheet and 2UP for arranging two pages side by side on one sheet. In PostScript, the reference unit of logical coordinates is a point (one point is 1/72 inch), and the coordinate origin is a point at the lower left corner of the page. The reference unit of the device coordinates is a pixel, and the coordinate origin is a point at the upper left corner of the paper. At this time, when an LTR size (8.5 × 11 inch) page is output at 1 UP and 600 dpi, the affine transformation matrix is (8.333,0,0, −8.333,0,6600). The setting values of the output resolution and layout contents are specified by a job ticket transmitted together with PS data. The setting value set by the job ticket is notified from the job control unit 202 to the PS interpreter 203.

ステップS103において、PSインタプリタ203は、線幅補正の設定が有効であるか否かを判定する。ここで、PSインタプリタ203は、操作部14により設定された線幅補正の設定値をRAM2から読み出すことにより有効であるか否かを判定する。線幅補正の設定が有効である場合、処理はステップS104に移行する。一方、線幅補正の設定が有効ではない場合、処理はステップS107に移行する。   In step S103, the PS interpreter 203 determines whether or not the line width correction setting is valid. Here, the PS interpreter 203 determines whether the line width correction set value set by the operation unit 14 is effective by reading it from the RAM 2. If the line width correction setting is valid, the process proceeds to step S104. On the other hand, if the line width correction setting is not valid, the process proceeds to step S107.

ステップS104において、PSインタプリタ203は、図3の設定画面上の操作の結果RAM2に記憶された太らせ幅(線幅を太らせるピクセル数)を、取得する。図3を用いて説明したように、画像形成装置100では、1ピクセル及び2ピクセルの値をサポートしている。ステップS105において、PSインタプリタ203は、論理座標とデバイス座標間の変換マトリックスを取得し、太らせるピクセル数から太らせる論理線幅(以下、論理太らせ幅と称す)を逆算するPSコードを生成する。ステップS106において、PSインタプリタ203は、生成したPSコードを用いて、論理太らせ幅だけ太くなるように線幅指定PSオペレータ(setlinewidth)を再定義する。再定義の詳細については後述する。   In step S104, the PS interpreter 203 acquires the thickening width (the number of pixels for thickening the line width) stored in the RAM 2 as a result of the operation on the setting screen of FIG. As described with reference to FIG. 3, the image forming apparatus 100 supports values of 1 pixel and 2 pixels. In step S105, the PS interpreter 203 obtains a conversion matrix between logical coordinates and device coordinates, and generates a PS code that reversely calculates a logical line width (hereinafter referred to as a logical thickening width) to be thickened from the number of pixels to be thickened. . In step S106, the PS interpreter 203 uses the generated PS code to redefine a line width designation PS operator (setlinewidth) so as to increase the logical width. Details of the redefinition will be described later.

ステップS107において、PSインタプリタ203は、PSデータを解析処理し、当該ページのディスプレイリストを生成する。ここで、ステップS105及びS106で再定義された論理線幅を太らせるための処理は、ステップS107において実際に線幅指定PSオペレータによって線幅が指定された際に実行されることに留意されたい。即ち、ステップS107において、PSインタプリタ203は、指定されたピクセル数分だけ、論理線幅を太らせる処理をPSデータに対して実行する。また、本実施形態では、線幅指定PSオペレータの再定義により論理線幅を太らせる処理を実現するが、線幅指定PSオペレータの実行モジュール内に同様の実装を行う方法も可能である。いずれにせよ、線幅指定PSオペレータによる線幅指定時に論理線幅を補正することにより、ラスタライズ後のビットマップデータに対する補正ではなく、ベクタデータ(PSデータ)段階での線幅の補正が可能となる。   In step S107, the PS interpreter 203 analyzes the PS data and generates a display list for the page. Here, it should be noted that the process for thickening the logical line width redefined in steps S105 and S106 is executed when the line width is actually designated by the line width designation PS operator in step S107. . That is, in step S107, the PS interpreter 203 executes a process for increasing the logical line width by the specified number of pixels on the PS data. Further, in this embodiment, the process of thickening the logical line width is realized by redefining the line width designation PS operator, but a method of implementing the same in the execution module of the line width designation PS operator is also possible. In any case, by correcting the logical line width when the line width is specified by the line width specifying PS operator, it is possible to correct the line width at the vector data (PS data) stage instead of correcting the rasterized bitmap data. Become.

ステップS108において、PSインタプリタ203は、レンダラ204に対してディスプレイリストの生成完了を通知し、レンダリングを依頼する。ステップS109において、PSインタプリタ203は、全ページの処理を終了したか否かを判定する。全ページの処理が終了した場合、本フローチャートに示す処理は終了する。一方、全ページの処理が終了していない場合、残りのページについて処理を継続する。   In step S108, the PS interpreter 203 notifies the renderer 204 of the completion of display list generation and requests rendering. In step S109, the PS interpreter 203 determines whether or not all pages have been processed. If all pages have been processed, the processing shown in this flowchart ends. On the other hand, if all the pages have not been processed, the process is continued for the remaining pages.

スレッドBの処理は、レンダラ204によって実行される。ステップS111において、レンダラ204は、1ページ分のディスプレイリストの生成完了を待つ。ディスプレイリストの生成完了が通知されると、処理はステップS111からステップS112に移行する。ステップS112において、レンダラ204は、ディスプレイリストを用いてレンダリングを行うことにより、ビットマップデータ及び属性マップを生成する。ここで、生成されるビットマップデータは、CMYKの各色8ビットの諧調を有し、属性マップはビットマップデータの各ピクセルに対応した2ビットの情報を有する。ディスプレイリスト内には、各オブジェクトの属性フラグが含まれており、オブジェクトがグラフィックス、イメージ及びテキストの何れであるかが識別される。この属性フラグがレンダリング時に属性マップに展開される。即ち、属性マップは各ピクセルがグラフィックス(00)、テキスト(01)及びイメージ(10)の何れであるかを示す。   The processing of the thread B is executed by the renderer 204. In step S111, the renderer 204 waits for the completion of generation of a display list for one page. When notified of the completion of display list generation, the process proceeds from step S111 to step S112. In step S112, the renderer 204 generates bitmap data and an attribute map by rendering using the display list. Here, the generated bitmap data has a gradation of 8 bits for each color of CMYK, and the attribute map has 2-bit information corresponding to each pixel of the bitmap data. The display list includes an attribute flag for each object, and identifies whether the object is graphics, an image, or text. This attribute flag is expanded into an attribute map at the time of rendering. That is, the attribute map indicates whether each pixel is graphics (00), text (01), or image (10).

ステップS113において、レンダラ204は、ビットマップデータ及び属性マップをジョブデータ管理部208に保存し、プリンタドライバ205にプリントを依頼する。プリントの依頼は、プリンタドライバ205に対してレンダリング終了通知を送信することにより行われる。プリンタドライバ205は、プリンタエンジン15と同期して処理を実行するために、スレッドCとしてスレッドAとは別スレッドで実行される。ステップS121において、依頼を受けたプリンタドライバ205は、ビットマップデータに対して画像処理を施す。そして、プリンタドライバ205は、プリンタエンジン15に対してプリント開始要求コマンドを送信し、画像データを転送する。ここで行う画像処理には、ハーフトーニング処理とテキストを太らせる処理とがある。なお、ステップS121の詳細については後述する。   In step S113, the renderer 204 saves the bitmap data and attribute map in the job data management unit 208, and requests the printer driver 205 to print. The print request is made by transmitting a rendering end notification to the printer driver 205. The printer driver 205 is executed as a thread C in a thread different from the thread A in order to execute processing in synchronization with the printer engine 15. In step S121, the printer driver 205 that has received the request performs image processing on the bitmap data. Then, the printer driver 205 transmits a print start request command to the printer engine 15 and transfers the image data. The image processing performed here includes a halftoning process and a process of thickening text. Details of step S121 will be described later.

ステップS114において、レンダラ204は、全ページのレンダリングが完了したか否かを判定する。全ページのレンダリングが完了した場合、スレッドBの処理は終了する。一方、全ページのレンダリングが完了していない場合、処理はステップS111に戻る。   In step S114, the renderer 204 determines whether rendering of all pages has been completed. When rendering of all pages is completed, the process of thread B ends. On the other hand, if rendering of all pages has not been completed, the process returns to step S111.

次に、図5を参照しながら、線幅指定PSオペレータの再定義について説明する。図5(A)は、線幅指定PSオペレータを指定された幅よりも1ピクセル太らせるように再定義したPSコードを示している。このPSコードをPSインタプリタ203に実行させることにより線幅指定PSオペレータの再定義が完了する。図5(A)では、2〜4行目が再定義した処理の内容を示し、これを1行目及び5行目のPSコードにより既存の線幅指定PSオペレータの動作から変更する。2行目では、先ず、現在の論理座標とデバイス座標間の変換マトリックスを取得し(matrix currentmatrix)、その変換マトリックスの第一要素を取り出し(0 get)、絶対値に変換(abs)し、変倍率を求めることが定義されている。この値は1ポイントが何ピクセルに相当するかを示す。また、2行目では、変倍率と線幅指定PSオペレータに指定された論理線幅との積を計算し(dup 3 1 roll mul)、論理線幅(ポイント)をデバイス線幅(ピクセル)に変換することが定義されている。3行目では、計算したデバイス線幅に1を足して(1 add)、変倍率で割る(div)ことにより1ピクセル太らせた場合の論理線幅(ポイント)を計算することが定義されている。4行目では、その値を線幅値として設定する(systemdict /setlinewidth get exec)ことが定義されている。1行目の左括弧({)と5行目の右括弧(})に挟まれた間のPSコードが実際に実行されるのは、再定義された線幅指定PSオペレータが呼び出された際になる。図5(B)は、同様に線幅指定PSオペレータを指定された幅よりも2ピクセル太らせるように再定義したPSコードを示している。図5(A)との違いは、3行目の加算値が2となっている(2 add)箇所のみである。   Next, redefinition of the line width designation PS operator will be described with reference to FIG. FIG. 5A shows a PS code redefined so that the line width designation PS operator is thicker by one pixel than the designated width. By causing the PS interpreter 203 to execute this PS code, redefinition of the line width designation PS operator is completed. In FIG. 5A, the contents of the redefined process are shown in the 2nd to 4th lines, and this is changed from the operation of the existing line width designation PS operator by the PS codes in the 1st and 5th lines. In the second line, first, a transformation matrix between the current logical coordinates and device coordinates is obtained (matrix currentmatrix), the first element of the transformation matrix is taken out (0 get), converted into an absolute value (abs), and transformed. It is defined that the magnification is obtained. This value indicates how many pixels a point corresponds to. In the second line, the product of the scaling factor and the logical line width specified by the line width specification PS operator is calculated (dup 3 1 roll mul), and the logical line width (point) is changed to the device line width (pixel). It is defined to convert. The third line defines that the logical line width (point) is calculated when one pixel is thickened by adding 1 to the calculated device line width (1 add) and dividing by the scaling factor (div). Yes. The fourth line defines that the value is set as a line width value (systemdict / setlinewidth get exec). The PS code between the left parenthesis ({) on the first line and the right parenthesis (}) on the fifth line is actually executed when the redefined line width specification PS operator is called. become. FIG. 5B shows a PS code redefined so that the line width designation PS operator is thicker by 2 pixels than the designated width. The difference from FIG. 5A is only in the place where the added value in the third row is 2 (2 add).

次に、図6を参照しながら、出力画像の中でどのように線幅が太るのかについて説明する。図6(A)は、論理線幅が1.8ピクセルの垂直線が指定された場合を仮想的に示している。マス目の1マスは1ピクセルを示す。便宜的に特定解像度に関連付けた表記をしているが、論理線幅は解像度とは関係しないことに注意されたい。即ち、出力解像度が2倍になった場合、図6(A)の1マスは4マスに分割され、論理線幅は3.6ピクセルになる。ラインの位置は中心線の位置に指定され、中心線の両側に0.9ピクセルの厚さを持った塗りが期待される描画となる。図6(B)は、論理線幅を1ピクセル増やして2.8ピクセルとした場合を仮想的に示している。中心線の両側の厚みをそれぞれ0.5ピクセルずつ増やすことにより線幅が1ピクセル太くなる。図6(C)は、これを実際のデバイス座標上での塗りに変換した結果であるデバイス線幅を示している。デバイス座標上では整数のピクセル分しか塗れないため、デバイス線幅は四捨五入して3ピクセルとなる。1ピクセル太らせた場合に水平線又は垂直線の場合は上下、左右の何れかに追加ピクセルが偏る。しかしながら、斜め線や曲線の場合は論理座標上で中心線から均等に太らせることにより、追加ピクセルが特定方向に偏ることはない。   Next, how the line width increases in the output image will be described with reference to FIG. FIG. 6A virtually illustrates a case where a vertical line having a logical line width of 1.8 pixels is designated. One square in the square represents one pixel. Note that for convenience, the notation is associated with a specific resolution, but the logical line width is not related to the resolution. That is, when the output resolution is doubled, one square in FIG. 6A is divided into four squares, and the logical line width becomes 3.6 pixels. The position of the line is designated as the position of the center line, and the drawing is expected to be filled with a thickness of 0.9 pixels on both sides of the center line. FIG. 6B shows a virtual case where the logical line width is increased by 1 pixel to 2.8 pixels. Increasing the thickness of both sides of the center line by 0.5 pixels each increases the line width by 1 pixel. FIG. 6C shows a device line width as a result of converting this into a paint on actual device coordinates. Since only an integer number of pixels can be painted on the device coordinates, the device line width is rounded to 3 pixels. When one pixel is thickened, in the case of a horizontal line or a vertical line, the additional pixels are biased to either the top, bottom, left or right. However, in the case of diagonal lines and curves, additional pixels are not biased in a specific direction by evenly thickening from the center line on the logical coordinates.

図7は、図4に示すプリント処理におけるスレッドC(即ち、ステップS121)の処理を詳細に示すフローチャートである。スレッドCの処理は、プリンタドライバ205により実行される。   FIG. 7 is a flowchart showing in detail the processing of the thread C (that is, step S121) in the print processing shown in FIG. The process for thread C is executed by the printer driver 205.

ステップS1211において、プリンタドライバ205は、レンダリング終了通知の受信を待つ。図4のステップS113でレンダリング終了通知が発行されると、処理はステップS1212に移行する。ステップS1212において、プリンタドライバ205は、属性マップを用いて、ビットマップデータに画像処理を施す。画像処理の内容としては、テキストを太らせる処理、及び、ハーフトーニング処理であり、プリンタ画像処理部10を用いてハードウェア処理されるものである。テキストを太らせる処理の詳細については後述する。   In step S1211, the printer driver 205 waits for reception of a rendering end notification. When a rendering end notification is issued in step S113 of FIG. 4, the process proceeds to step S1212. In step S1212, the printer driver 205 performs image processing on the bitmap data using the attribute map. The contents of the image processing are text thickening processing and halftoning processing, which are hardware processed using the printer image processing unit 10. Details of the process of fattening the text will be described later.

ステップS1213において、プリンタドライバ205は、プリンタエンジン15に対してプリント開始要求コマンドを送信し、画像データを転送する。なお、ステップS1213において、プリンタドライバ205は、プリンタエンジン15との同期処理も行う。プリンタエンジン15は、所定のスピード以上では出力できない。コントローラユニット200は、そのRIP処理が速すぎる場合にプリンタエンジン15の印字出力を待つ必要がある。   In step S1213, the printer driver 205 transmits a print start request command to the printer engine 15, and transfers image data. In step S1213, the printer driver 205 also performs synchronization processing with the printer engine 15. The printer engine 15 cannot output more than a predetermined speed. The controller unit 200 needs to wait for the print output of the printer engine 15 when the RIP process is too fast.

ステップS1214において、プリンタドライバ205は、次ページがレンダリング済みであるか否かを判定する。次ページがレンダリング済みである場合、処理はステップS1212に戻る。次ページがレンダリング済みではない場合、処理はステップS1215に移行する。   In step S1214, the printer driver 205 determines whether the next page has been rendered. If the next page has been rendered, the process returns to step S1212. If the next page has not been rendered, the process proceeds to step S1215.

ステップS1215において、プリンタドライバ205は、全ページの画像転送が完了したか否かを判定する。全ページの画像転送が完了した場合、処理はステップS1216に移行する。一方、全ページの画像転送が完了していない場合、処理はステップS1211に戻る。ステップS1216において、プリンタドライバ205は、プリンタエンジン15に対してプリント完了要求コマンドを送信する。   In step S1215, the printer driver 205 determines whether image transfer for all pages has been completed. When the image transfer for all pages is completed, the process proceeds to step S1216. On the other hand, if the image transfer for all pages has not been completed, the process returns to step S1211. In step S <b> 1216, the printer driver 205 transmits a print completion request command to the printer engine 15.

図8は、図7のステップS1212において実行される、パターンマッチングによりテキストを太らせる処理の詳細を示すフローチャートである。ステップS121201において、プリンタドライバ205は、線幅補正の設定が有効であるか否かを判定する。プリンタドライバ205は、操作部14により設定された線幅補正の設定値をRAM2から読み出すことにより、線幅補正の設定が有効であるか否かを判定する。線幅補正の設定が有効である場合、処理はステップS121202に移行する。一方、線幅補正の設定が無効である場合、図8に示す処理は終了する。   FIG. 8 is a flowchart showing details of the process of thickening text by pattern matching, which is executed in step S1212 of FIG. In step S121201, the printer driver 205 determines whether the line width correction setting is valid. The printer driver 205 determines whether or not the line width correction setting is valid by reading the setting value of the line width correction set by the operation unit 14 from the RAM 2. If the line width correction setting is valid, the process proceeds to step S121202. On the other hand, when the line width correction setting is invalid, the process shown in FIG. 8 ends.

ステップS121202において、プリンタドライバ205は、注目ピクセルを画像データの左上ピクセルに設定する。ステップS121203において、プリンタドライバ205は、太らせるピクセル数が1ピクセルであるか否かを判定する。太らせるピクセル数が1ピクセルである場合、処理はステップS121204に移行する。一方、太らせるピクセル数が1ピクセルではない場合(太らせるピクセル数が2ピクセルである場合)、処理はステップS121205に移行する。   In step S121202, the printer driver 205 sets the target pixel as the upper left pixel of the image data. In step S121203, the printer driver 205 determines whether the number of pixels to be thickened is 1 pixel. If the number of pixels to be thickened is 1 pixel, the process proceeds to step S121204. On the other hand, when the number of pixels to be thickened is not 1 pixel (when the number of pixels to be thickened is 2 pixels), the process proceeds to step S121205.

ステップS121204において、プリンタドライバ205は、参照ピクセルを注目ピクセルの上ピクセル及び左ピクセルに設定する。ステップS121205において、プリンタドライバ205は、参照ピクセルを注目ピクセルの上下左右の4ピクセルに設定する。   In step S121204, the printer driver 205 sets the reference pixel as the upper pixel and the left pixel of the pixel of interest. In step S121205, the printer driver 205 sets the reference pixel to four pixels on the top, bottom, left, and right of the target pixel.

ステップS121206において、プリンタドライバ205は、参照ピクセルの何れかの属性がテキストであるか否かを属性マップにより判定する。参照ピクセルの何れかの属性がテキストである場合、処理はステップS121207に移行する。一方、参照ピクセルの何れの属性もテキストではない場合、処理はステップS121209に移行する。   In step S121206, the printer driver 205 determines from the attribute map whether any attribute of the reference pixel is text. If any attribute of the reference pixel is text, the process proceeds to step S121207. On the other hand, if any attribute of the reference pixel is not text, the process proceeds to step S121209.

ステップS121207において、プリンタドライバ205は、テキスト属性の参照ピクセルの中で最高濃度のピクセルの色値を取り出す。ステップS121208において、プリンタドライバ205は、注目ピクセルの色値を、ステップS121207で取り出した色値で上書きする。ステップS121209において、プリンタドライバ205は、全ピクセルの処理が終了したか否かを判定する。全ピクセルの処理が終了した場合、図8に示す処理は終了する。一方、全ピクセルの処理が終了していない場合、処理はステップS121210に移行する。   In step S121207, the printer driver 205 extracts the color value of the highest density pixel among the reference pixels having the text attribute. In step S121208, the printer driver 205 overwrites the color value of the target pixel with the color value extracted in step S121207. In step S121209, the printer driver 205 determines whether all pixels have been processed. When all the pixels have been processed, the process illustrated in FIG. 8 ends. On the other hand, if the processing for all the pixels has not been completed, the processing moves to step S121210.

ステップS121210において、プリンタドライバ205は、注目ピクセルを次のピクセルに設定する。そして、処理はステップS121203に戻り、処理を繰り返す。ここで、次のピクセルとは、注目ピクセルのスキャンライン方向右隣のピクセルを意味する。しかし、注目ピクセルがスキャンライン右端のピクセルである場合に限り、1ライン下のスキャンラインの左端ピクセルが次のピクセルとなる。   In step S121210, the printer driver 205 sets the target pixel as the next pixel. Then, the process returns to step S121203 to repeat the process. Here, the next pixel means a pixel on the right side in the scan line direction of the target pixel. However, only when the target pixel is the rightmost pixel of the scan line, the leftmost pixel of the scan line one line below becomes the next pixel.

図9は、図8を用いて説明したパターンマッチングによりテキストを太らせる処理の具体例を示す図である。図9(A)は、テキストの一部分をピクセル単位で示した例を示している。マス目の1マスは、1ピクセルを示す。濃く塗られたマスがテキストを構成するピクセルであり、当該ピクセルに対応する属性マップの属性もテキストとなる。図9(B)は、1ピクセル太らせる処理を実施した場合に追加で塗られるピクセルを示している。追加で塗られるピクセルはマスの中央にドットを配したピクセルである。参照ピクセルが上ピクセル及び左ピクセルになるため、右側のピクセル及び下側のピクセルが塗られることになる。図9(C)は、最終的に1ピクセル太らせるための塗りを実施した結果を示している。図9(D)は、2ピクセル太らせる処理を実施した場合に追加で塗られるピクセルを示している。同様に、追加で塗られるピクセルは、マスの中央にドットを配したピクセルである。参照ピクセルが上下左右の4ピクセルになるため、上下左右の全方向にピクセルが付加される。図9(E)は、最終的に2ピクセル太らせるための塗りを実施した結果を示している。   FIG. 9 is a diagram illustrating a specific example of the process of fattening text by the pattern matching described with reference to FIG. FIG. 9A shows an example in which a part of text is shown in units of pixels. One square cell indicates one pixel. A darkly painted cell is a pixel constituting the text, and an attribute of the attribute map corresponding to the pixel is also a text. FIG. 9B illustrates pixels that are additionally painted when the process of thickening one pixel is performed. An additional pixel is a pixel with a dot in the middle of the cell. Since the reference pixel becomes the upper pixel and the left pixel, the right pixel and the lower pixel will be painted. FIG. 9C shows the result of applying a paint to finally thicken one pixel. FIG. 9D illustrates pixels that are additionally painted when the process of thickening two pixels is performed. Similarly, the additionally painted pixel is a pixel with a dot in the middle of the cell. Since the reference pixels are 4 pixels in the vertical and horizontal directions, the pixels are added in all directions in the vertical and horizontal directions. FIG. 9E shows the result of applying a paint to finally thicken 2 pixels.

以上の手順により、ライン(線)に対してはPSデータレベル、即ち、ベクタデータ段階で線幅を太らせる処理を実行し、テキスト(文字)に対してはパターンマッチングにより太らせる処理を実行することができる。従って、本実施形態によれば、ベクタデータ段階で線幅を太らせる量を、テキストを太らせる量と連動させることにより、一貫性をもってラインとテキストとを太らせることが可能となる。また、解像度を変更した場合や、N−UP処理に代表されるレイアウト処理を行った場合でも、ラインとテキストとを太らせる量に一貫性を持たせることができる。従って、操作者は、線幅を太らせる量だけを設定すればよく、シンプルな操作により効果的に線幅を太らせることができる。   According to the above procedure, the process of thickening the line width at the PS data level, that is, the vector data stage is executed for the line (line), and the process of thickening by pattern matching is executed for the text (character). be able to. Therefore, according to the present embodiment, the line and the text can be consistently thickened by linking the amount of thickening the line width in the vector data stage with the amount of thickening the text. In addition, even when the resolution is changed or when layout processing represented by N-UP processing is performed, the amount of thickening lines and text can be made consistent. Therefore, the operator only needs to set the amount to increase the line width, and can effectively increase the line width by a simple operation.

次に、本発明の第2の実施形態について説明する。なお、第2の実施形態に係る画像形成装置は、図1及び図2に示した第1の実施形態に係る画像形成装置100と同様の構成であるため、以下の説明においても、図1及び図2に示した符号を用いるものとする。また、以下では、第1の実施形態と相違する点に主眼をおいて説明を行うものとする。   Next, a second embodiment of the present invention will be described. Note that the image forming apparatus according to the second embodiment has the same configuration as the image forming apparatus 100 according to the first embodiment shown in FIGS. 1 and 2, and therefore, in the following description, FIG. The reference numerals shown in FIG. 2 are used. In the following, description will be given focusing on differences from the first embodiment.

図10(A)は、図9(A)に示したテキスト上に、左上から右下に走る45度のラインを重ねて描画した例を示している。図10(B)は、図10(A)に示したテキストを1ピクセル太らせる処理を実行した場合に追加で塗られるピクセルを示している。追加で塗られるピクセルは、マスの中央にドットを配したピクセルである。参照ピクセルが上ピクセルと左ピクセルになるため、右側のピクセルと下側のピクセルとが塗られることになる。図10(C)は、最終的に1ピクセル太らせる処理を実行して塗りを実施した結果を示している。図10(B)及び図10(C)に示すように、テキストを太らせることによりライン上にテキストが浸食し、その部分だけラインが細くなる結果となっている。テキストとラインとの濃度が大きく異なる場合、この影響が非常に目立ち易い。第2の実施形態は、このような課題を解決するものである。   FIG. 10A shows an example in which a 45-degree line running from the upper left to the lower right is overlaid on the text shown in FIG. FIG. 10B shows pixels that are additionally painted when the process shown in FIG. 10A is performed to thicken the text by one pixel. An additional pixel is a pixel with a dot in the center of the cell. Since the reference pixel becomes the upper pixel and the left pixel, the right pixel and the lower pixel are painted. FIG. 10C shows a result of performing the painting by finally executing the process of thickening one pixel. As shown in FIGS. 10B and 10C, by thickening the text, the text is eroded on the line, and the line is thinned only by that portion. This effect is very noticeable when the density of the text and line differ greatly. The second embodiment solves such a problem.

図11は、テキストとラインとの重なりを検知するための処理を示すフローチャートである。図11に示す処理は、図4のステップS108に代わって実行されるものである。即ち、第2の実施形態では、図4のステップS107の後に図11に示す処理が実行され、図11に示す処理の後に図4のステップS109が実行されることになる。   FIG. 11 is a flowchart showing a process for detecting an overlap between a text and a line. The process shown in FIG. 11 is executed in place of step S108 in FIG. That is, in the second embodiment, the process shown in FIG. 11 is executed after step S107 in FIG. 4, and step S109 in FIG. 4 is executed after the process shown in FIG.

ステップS1101において、PSインタプリタ203は、テキストの線幅補正フラグをオンに設定する。ステップS1102において、PSインタプリタ203は、PSデータを解釈して描画コマンドを取得する。   In step S1101, the PS interpreter 203 sets the text line width correction flag to ON. In step S1102, the PS interpreter 203 interprets the PS data and acquires a drawing command.

ステップS1103において、PSインタプリタ203は、取得した描画コマンドがテキスト描画コマンドであるか否かを判定する。テキスト描画コマンドである場合、処理はステップS1104に移行する。一方、テキスト描画コマンドでない場合、処理はステップS1105に移行する。   In step S1103, the PS interpreter 203 determines whether or not the acquired drawing command is a text drawing command. If it is a text drawing command, the process proceeds to step S1104. On the other hand, if it is not a text drawing command, the process proceeds to step S1105.

ステップS1104において、PSインタプリタ203は、当該テキスト描画コマンドにより描画されるテキストのバウンディングボックスを取得し、バウンディングボックスリストに追加する。ステップS1105において、PSインタプリタ203は、取得した描画コマンドがライン描画コマンドであるか否かを判定する。ライン描画コマンドである場合、処理はステップS1106に移行する。一方、ライン描画コマンドではない場合、処理はステップS1108に移行する。   In step S1104, the PS interpreter 203 acquires the bounding box of the text drawn by the text drawing command and adds it to the bounding box list. In step S1105, the PS interpreter 203 determines whether or not the acquired drawing command is a line drawing command. If it is a line drawing command, the process proceeds to step S1106. On the other hand, if it is not a line drawing command, the process proceeds to step S1108.

ステップS1106において、PSインタプリタ203は、ライン描画コマンドにより指示されたラインの下にテキストがあるか否かを判定する。ラインの下にテキストがあるか否かの判定は、バウンディングボックスリストにラインと交わるバウンディングボックスがあるか否かにより判定される。即ち、ラインと交わるバウンディングボックスがある場合、ラインの下にテキストがあると判定され、ラインと交わるバウンディングボックスがない場合、ラインの下にテキストがないと判定される。ラインの下にテキストがある場合、処理はステップS1107に移行する。一方、ラインの下にテキストがない場合、処理はステップS1108に移行する。   In step S1106, the PS interpreter 203 determines whether there is text below the line designated by the line drawing command. Whether there is text below the line is determined by whether there is a bounding box that intersects the line in the bounding box list. That is, when there is a bounding box that intersects with the line, it is determined that there is text below the line, and when there is no bounding box that intersects with the line, it is determined that there is no text below the line. If there is text below the line, the process proceeds to step S1107. On the other hand, if there is no text below the line, the process proceeds to step S1108.

ステップS1107において、PSインタプリタ203は、テキストの線幅補正フラグをオフに設定する。ステップS1108において、PSインタプリタ203は、描画オブジェクトをディスプレイリストに追加する。   In step S1107, the PS interpreter 203 sets the text line width correction flag to OFF. In step S1108, the PS interpreter 203 adds the drawing object to the display list.

ステップS1109において、PSインタプリタ203は、ページ内の全描画処理が終了したか否か判定する。ページ内の全描画処理が終了した場合、処理はステップS1110に移行する。一方、ページ内の全描画処理が終了していない場合、処理はステップS1102に戻る。ステップS1110において、PSインタプリタ203は、テキストの線幅補正フラグの値をページに関連付けてジョブデータ管理部208に保存する。従って、複数ページからなるPSデータの場合、複数の線幅補正フラグの値がジョブデータ管理部208に保持される。   In step S1109, the PS interpreter 203 determines whether or not all drawing processing within the page has been completed. If all drawing processes in the page have been completed, the process proceeds to step S1110. On the other hand, if all the drawing processes in the page have not been completed, the process returns to step S1102. In step S1110, the PS interpreter 203 stores the value of the text line width correction flag in the job data management unit 208 in association with the page. Therefore, in the case of PS data composed of a plurality of pages, the values of a plurality of line width correction flags are held in the job data management unit 208.

図12は、図7のステップS1212において実行される、パターンマッチングによりテキストを太らせる処理の詳細を示すフローチャートである。即ち、図12に示す処理は、第1の実施形態における図8に示す処理に代わって実行される処理である。   FIG. 12 is a flowchart showing details of the process of thickening text by pattern matching, which is executed in step S1212 of FIG. That is, the process shown in FIG. 12 is a process executed in place of the process shown in FIG. 8 in the first embodiment.

ステップS121201´において、プリンタドライバ205は、線幅補正の設定が有効であり、且つ、テキストの線幅補正フラグがオンであるか否かを判定する。線幅補正フラグは、ジョブデータ管理部208において管理される当該ページに関連する線幅補正フラグである。線幅補正の設定が有効であり、且つ、テキストの線幅補正フラグがオンである場合、処理はステップS121202に移行する。一方、線幅補正の設定が無効である場合、又は、テキストの線幅補正フラグがオフである場合、処理は終了する。なお、ステップS121201´以外の処理は、図8に示した同一符号の処理と同様であるため、説明を省略する。   In step S121201 ′, the printer driver 205 determines whether the line width correction setting is valid and the text line width correction flag is ON. The line width correction flag is a line width correction flag related to the page managed by the job data management unit 208. If the line width correction setting is valid and the text line width correction flag is on, the process proceeds to step S121202. On the other hand, if the line width correction setting is invalid, or if the text line width correction flag is off, the process ends. The processing other than step S121201 ′ is the same as the processing with the same reference numeral shown in FIG.

以上により、テキストの上にラインが重なっていると判定されたページに関しては、パターンマッチングによりテキストを太らせる処理は一切実行されなくなる。従って、第2の実施形態によれば、テキストとラインとの重なりに伴う弊害を回避することができる。   As described above, with respect to a page in which it is determined that the line overlaps the text, the process of thickening the text by pattern matching is not executed at all. Therefore, according to the second embodiment, it is possible to avoid the adverse effects associated with the overlap of text and lines.

次に、本発明の第3の実施形態について説明する。第3の実施形態に係る画像形成装置は、図1及び図2に示した第1の実施形態に係る画像形成装置100と同様の構成であるため、以下の説明においても、図1及び図2に示した符号を用いるものとする。また、以下では、第1の実施形態と相違する点に主眼をおいて説明を行うものとする。   Next, a third embodiment of the present invention will be described. The image forming apparatus according to the third embodiment has the same configuration as that of the image forming apparatus 100 according to the first embodiment shown in FIGS. 1 and 2, and therefore, in the following description, FIGS. It is assumed that the reference numerals shown in FIG. In the following, description will be given focusing on differences from the first embodiment.

第2の実施形態では、テキストの上にラインが重なるページでは、パターンマッチングによりテキストを太らせる処理を実行しないことにより、テキストを太らせたことによるラインへの浸食を回避する方法について示した。第3の実施形態は、第2の実施形態とは異なる方法により、テキストを太らせたことによるラインへの浸食を回避するものである。   In the second embodiment, the method of avoiding erosion to the line due to the thickening of the text by performing the process of thickening the text by pattern matching on the page where the line overlaps the text has been described. The third embodiment avoids erosion to the line due to fattening of text by a method different from that of the second embodiment.

第1の実施形態では、属性マップに定義される属性は、グラフィックス、イメージ及びテキストの3種類であったが、第3の実施形態では、これにラインを追加した4種類の属性とする。即ち、イメージ(10)、テキスト(01)、ラインを除くグラッフィクス(00)、ライン(11)の4属性になる。これは、図4のステップS111において、ライン描画が指定されたディスプレイリスト上の描画オブジェクトに対して、レンダラ204がライン属性を付与することにより実現される。そして、パターンマッチングによりテキストを太らせる場合において、注目ピクセルがライン属性である場合に当該ピクセルに対して太らせる処理を実施しないことにより、テキストを太らせることによるラインへの浸食が回避される。   In the first embodiment, there are three types of attributes defined in the attribute map: graphics, image, and text. In the third embodiment, four types of attributes are added to the lines. That is, there are four attributes of image (10), text (01), graphics excluding line (00), and line (11). This is realized by the renderer 204 assigning a line attribute to the drawing object on the display list for which line drawing is designated in step S111 of FIG. When the text is thickened by pattern matching, when the pixel of interest has a line attribute, the process of fattening the pixel is not performed, thereby avoiding erosion of the line due to the thickening of the text.

図13は、第3の実施形態における、パターンマッチングによりテキストを太らせる処理の詳細を示すフローチャートである。即ち、第3の実施形態では、図8に示す処理に代わって、図13に示す処理が実行される。図13において、ステップS121201及びS121202は、図8に示したステップS121201及びS121202と同様の処理である。   FIG. 13 is a flowchart showing details of the process of fattening text by pattern matching in the third embodiment. That is, in the third embodiment, the process shown in FIG. 13 is executed instead of the process shown in FIG. In FIG. 13, steps S121201 and S121202 are the same processes as steps S121201 and S121202 shown in FIG.

ステップS201において、プリンタ画像処理部10は、注目ピクセルの属性がラインであるか否かを判定する。注目ピクセルの属性がラインである場合、処理はステップS121209に移行する。一方、注目ピクセルの属性がラインではない場合、処理はステップS121203に移行する。   In step S201, the printer image processing unit 10 determines whether the attribute of the pixel of interest is a line. If the attribute of the target pixel is a line, the process proceeds to step S121209. On the other hand, if the attribute of the pixel of interest is not a line, the process proceeds to step S121203.

図13におけるステップS121203〜S121210の処理は、図8における同一符号の処理と同様である。以上のように、第3の実施形態では、ステップS201で注目ピクセルの属性がラインであるか否かを判定し、注目ピクセルの属性がラインである場合、テキストを太らせる処理をスキップする。これにより、テキストを太らせることによるラインへの浸食を完全に防止しつつ、テキストの太らせとラインの太らせとを同時に実現することができる。   The processing in steps S121203 to S121210 in FIG. 13 is the same as the processing with the same reference numerals in FIG. As described above, in the third embodiment, it is determined whether or not the attribute of the pixel of interest is a line in step S201, and if the attribute of the pixel of interest is a line, the process of fattening the text is skipped. Thereby, it is possible to simultaneously realize the thickening of the text and the thickening of the line while completely preventing the erosion to the line due to the thickening of the text.

また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。   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.

201:データ受信部、202:ジョブ制御部、203:PSインタプリタ、204:レンダラ、205:プリンタドライバ、206:ユーザインタフェース、208:ジョブデータ管理部   201: Data receiving unit, 202: Job control unit, 203: PS interpreter, 204: Renderer, 205: Printer driver, 206: User interface, 208: Job data management unit

Claims (6)

線幅を設定する設定手段と、
前記設定手段により設定される線幅に応じてプリントデータに含まれるラインの幅を変更するように、前記プリントデータであるベクタデータを定義する定義手段と、
前記定義手段により定義された前記ベクタデータに基づいて、ビットマップデータを生成する生成手段と、
前記設定手段により設定される線幅に応じて前記プリントデータに含まれるテキストの幅を変更するように、前記ビットマップデータに対して画像処理を施す画像処理手段とを有することを特徴とする画像処理装置。
A setting means for setting the line width;
Defining means for defining vector data as the print data so as to change the width of a line included in the print data according to the line width set by the setting means;
Generating means for generating bitmap data based on the vector data defined by the defining means;
Image processing means for performing image processing on the bitmap data so as to change the width of text included in the print data in accordance with the line width set by the setting means Processing equipment.
前記定義手段は、論理座標とデバイス座標間の変換マトリックスを用いて、前記設定手段により設定された前記デバイス座標において太らせる線幅から前記論理座標におけるラインの幅を算出するように、前記ベクタデータを定義することを特徴とする請求項1に記載の画像処理装置。   The definition means uses the conversion matrix between logical coordinates and device coordinates, and calculates the line width in the logical coordinates from the line width to be fattened in the device coordinates set by the setting means. The image processing apparatus according to claim 1, wherein: 前記プリントデータにおいてテキストとラインとが重ねて描画されるか否かを判定する判定手段を更に有し、
前記画像処理手段は、前記判定手段によりテキストとラインとが重ねて描画されると判定された場合、前記ビットマップデータに対して画像処理を実行しないことを特徴とする請求項1又は2に記載の画像処理装置。
A determination means for determining whether text and lines are drawn in an overlapping manner in the print data;
3. The image processing unit according to claim 1, wherein the image processing unit does not perform image processing on the bitmap data when it is determined by the determination unit that text and a line are drawn in an overlapping manner. Image processing apparatus.
前記画像処理手段は、前記ビットマップデータのうちのライン属性のデータに対しては前記画像処理を施さないことを特徴とする請求項1又は2に記載の画像処理装置。   The image processing apparatus according to claim 1, wherein the image processing unit does not perform the image processing on line attribute data in the bitmap data. 画像処理装置によって実行される画像処理方法であって、
線幅を設定する設定ステップと、
前記設定ステップにより設定される線幅に応じてプリントデータに含まれるラインの幅を変更するように、前記プリントデータであるベクタデータを定義する定義ステップと、
前記定義ステップにより定義された前記ベクタデータに基づいて、ビットマップデータを生成する生成ステップと、
前記設定ステップにより設定される線幅に応じて前記プリントデータに含まれるテキストの幅を変更するように、前記ビットマップデータに対して画像処理を施す画像処理ステップとを有することを特徴とする画像処理方法。
An image processing method executed by an image processing apparatus,
A setting step to set the line width;
A definition step for defining vector data that is the print data so as to change the width of a line included in the print data according to the line width set by the setting step;
Based on the vector data defined by the defining step, a generating step for generating bitmap data;
An image processing step of performing image processing on the bitmap data so as to change a width of text included in the print data in accordance with a line width set in the setting step. Processing method.
線幅を設定する設定ステップと、
前記設定ステップにより設定される線幅に応じてプリントデータに含まれるラインの幅を変更するように、前記プリントデータであるベクタデータを定義する定義ステップと、
前記定義ステップにより定義された前記ベクタデータに基づいて、ビットマップデータを生成する生成ステップと、
前記設定ステップにより設定される線幅に応じて前記プリントデータに含まれるテキストの幅を変更するように、前記ビットマップデータに対して画像処理を施す画像処理ステップとをコンピュータに実行させるためのプログラム。
A setting step to set the line width;
A definition step for defining vector data that is the print data so as to change the width of a line included in the print data according to the line width set by the setting step;
Based on the vector data defined by the defining step, a generating step for generating bitmap data;
A program for causing a computer to execute an image processing step of performing image processing on the bitmap data so as to change a width of text included in the print data in accordance with a line width set in the setting step .
JP2013140858A 2013-07-04 2013-07-04 Image processing apparatus, image processing method, and program Active JP6202908B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013140858A JP6202908B2 (en) 2013-07-04 2013-07-04 Image processing apparatus, image processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013140858A JP6202908B2 (en) 2013-07-04 2013-07-04 Image processing apparatus, image processing method, and program

Publications (2)

Publication Number Publication Date
JP2015015589A JP2015015589A (en) 2015-01-22
JP6202908B2 true JP6202908B2 (en) 2017-09-27

Family

ID=52437031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013140858A Active JP6202908B2 (en) 2013-07-04 2013-07-04 Image processing apparatus, image processing method, and program

Country Status (1)

Country Link
JP (1) JP6202908B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6516224B2 (en) * 2015-09-02 2019-05-22 シャープ株式会社 IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD, AND PROGRAM
JP6671188B2 (en) * 2016-02-17 2020-03-25 キヤノン株式会社 Image forming apparatus, method, and program
US11057528B2 (en) 2018-09-27 2021-07-06 Canon Kabushiki Kaisha Information processing apparatus, method and storage medium
JP7282530B2 (en) * 2019-01-22 2023-05-29 キヤノン株式会社 IMAGE FORMING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM
JP7250574B2 (en) * 2019-03-11 2023-04-03 キヤノン株式会社 IMAGE FORMING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006146836A (en) * 2004-11-25 2006-06-08 Oki Data Corp Image processor, and image forming system
JP5882713B2 (en) * 2011-12-13 2016-03-09 キヤノン株式会社 Image processing apparatus, image processing method, and computer program

Also Published As

Publication number Publication date
JP2015015589A (en) 2015-01-22

Similar Documents

Publication Publication Date Title
JP4436851B2 (en) Printer driver program and image forming apparatus
US8958085B2 (en) Image processing system, image forming apparatus, image processing program, and image processing method
US8830506B2 (en) Image processing system utilizing plural parallel processors and image processing method utilizing plural parallel processors
US8780127B2 (en) Image forming apparatus, method for controlling same, and storage medium
JP6202908B2 (en) Image processing apparatus, image processing method, and program
JP2011070337A (en) Image processing system and image processing program
JP4375449B2 (en) Image processing apparatus, image processing program, and image processing method
JP4396670B2 (en) Image forming apparatus, image forming method, and program
JP2013126178A (en) Image processor and control program of the same
JP2001293936A (en) Image information processor and method of processing image information
JP6482432B2 (en) Drawing command processing apparatus and drawing command processing method
JP2006159738A (en) Print controller, its data processing method, and storage medium
JP2016066222A (en) Image processing apparatus, image processing method, and computer program
JP5424546B2 (en) Image processing apparatus and image forming system
JP6755644B2 (en) Character processing device, character processing method, character processing program
JP2017097463A (en) Print control system, print control device, and program
JP6492895B2 (en) Print data processing apparatus and program
JP4502908B2 (en) Image processing apparatus and image processing system
JP5112223B2 (en) Image processing apparatus and image processing program
JP2019004380A (en) Image processing apparatus, control method thereof, and program
JP5526863B2 (en) Printer driver and print control apparatus
JP4325339B2 (en) Printing system, host computer and printer driver
JP2024097246A (en) Image Processing Device
JP3968989B2 (en) Image processing apparatus, image processing method, and storage medium storing image processing program
US20050213126A1 (en) Image forming apparatus and image reading apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170724

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170829

R151 Written notification of patent or utility model registration

Ref document number: 6202908

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151