Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7614840B2 - Image processing device, control method and program thereof - Google Patents
[go: Go Back, main page]

JP7614840B2 - Image processing device, control method and program thereof - Google Patents

Image processing device, control method and program thereof Download PDF

Info

Publication number
JP7614840B2
JP7614840B2 JP2020218946A JP2020218946A JP7614840B2 JP 7614840 B2 JP7614840 B2 JP 7614840B2 JP 2020218946 A JP2020218946 A JP 2020218946A JP 2020218946 A JP2020218946 A JP 2020218946A JP 7614840 B2 JP7614840 B2 JP 7614840B2
Authority
JP
Japan
Prior art keywords
area
data
command
image
image processing
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
JP2020218946A
Other languages
Japanese (ja)
Other versions
JP2022103993A (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 JP2020218946A priority Critical patent/JP7614840B2/en
Publication of JP2022103993A publication Critical patent/JP2022103993A/en
Application granted granted Critical
Publication of JP7614840B2 publication Critical patent/JP7614840B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Facsimile Image Signal Circuits (AREA)

Description

本発明は、画像処理装置及びその制御方法及びプログラムに関する。 The present invention relates to an image processing device and a control method and program thereof.

一般的に、スキャナ等の読取り機器、プリンタ等の印刷機器やディスプレイ等の表示機器の多くは、カラー画像/カラー原稿(例えばRGBカラー画像、CMYKカラー画像などの複数色を有する画像)に対応可能である。このため、このような機器の多くに搭載される画像処理装置は、カラー処理を基本として装置が構成される。画像処理装置は、例えば、RGBカラー画像に対しては3色を、CMYKカラー画像に対しては4色を、処理する画像処理回路を備える。一般的な画像処理回路は、その回路を1つの処理のみでなく他の処理にも使用できるように、例えば、ディザ処理で参照する閾値テーブルはレジスタ設定などで任意に設定変更できるように設計されることが多い。そのため、各色に対応するディザ回路は同一回路でありうる。画像処理装置は、例えば、RGBカラー画像に対しては3基、CMYKカラー画像に対しては4基、というように、対応する色の数だけディザ回路を並列に備えることができる。このようなカラー処理を基本とした画像処理装置において、カラー画像が入力されると、複数のディザ回路を用いて各色の画素データに対して並列にディザ処理を行うことができる。また、モノクロ(単色)画像が入力される場合についても、複数のディザ回路を用いて、モノクロ画像の複数の画素データに対して並列にディザ処理を行い、処理性能を向上させることができる。このディザ処理は、好適なドット分散性を得るためにブルーノイズ特性を有する閾値テーブルを用いる場合がある。このブルーノイズ特性は、視覚特性において、感度の高い低周波領域はほとんどパワーを持たず、感度の低い高周波領域にパワーを持つようになっている。このため、ブルーノイズ特性を有する閾値テーブルを用いて量子化処理を行った画像を人間が目視した場合、ドットの偏りや周期性が感知され難く、良好な画像として認識される。このようなブルーノイズ特性を有する閾値テーブルを使用してディザ処理を行うと出力画像のドット配置も同様にブルーノイズ特性を持つ。 Generally, many reading devices such as scanners, printing devices such as printers, and display devices such as displays are capable of handling color images/color originals (for example, images having multiple colors such as RGB color images and CMYK color images). For this reason, the image processing devices installed in many of these devices are configured based on color processing. The image processing device has an image processing circuit that processes, for example, three colors for RGB color images and four colors for CMYK color images. General image processing circuits are often designed so that the threshold table referenced in dither processing can be arbitrarily changed by register settings, so that the circuit can be used for not only one process but also other processes. Therefore, the dither circuits corresponding to each color can be the same circuit. The image processing device can have as many dither circuits in parallel as the number of corresponding colors, for example, three for RGB color images and four for CMYK color images. In such an image processing device based on color processing, when a color image is input, dither processing can be performed in parallel on pixel data of each color using multiple dither circuits. Also, when a monochrome (single-color) image is input, multiple dither circuits can be used to perform dither processing on multiple pixel data of the monochrome image in parallel, improving processing performance. This dither processing may use a threshold table with blue noise characteristics to obtain favorable dot dispersion. This blue noise characteristic is a visual characteristic in which the low-frequency region with high sensitivity has almost no power, and the high-frequency region with low sensitivity has power. For this reason, when a human visually views an image that has been quantized using a threshold table with blue noise characteristics, the bias or periodicity of the dots is difficult to detect, and the image is recognized as being of good quality. When dither processing is performed using a threshold table with such blue noise characteristics, the dot arrangement of the output image also has blue noise characteristics.

このようなカラー処理を基本とした画像処理装置において、複数の部分画像を入力して各部分画像に対応したブルーノイズ特性を有する閾値テーブルを参照して並列にディザ処理を行うことで、出力画像全体にブルーノイズ特性を持たせつつ、処理性能を向上できる。 In such an image processing device based on color processing, multiple partial images are input and dithering is performed in parallel by referencing a threshold table having blue noise characteristics corresponding to each partial image, thereby improving processing performance while imparting blue noise characteristics to the entire output image.

例えば、特許文献1に記載の技術は、複数の色成分で構成されるカラー画像を処理する画像処理装置において、モノクロ画像を処理対象とする場合に、複数の色成分を格納できる複数のフィールドに、モノクロ画像の複数の部分画像を格納し、画像処理回路が複数の部分画像に対して同時に画像処理を行うことが記載されている。また、特許文献2に記載の技術は、入力画像がモノクロ画像の場合、モノクロ画像を矩形サイズに分割して、疑似的に複数の異なる座標の画素データを矩形画像処理部に入力して同時に画像処理を行うことが記載されている。 For example, the technology described in Patent Document 1 describes that in an image processing device that processes a color image composed of multiple color components, when a monochrome image is to be processed, multiple partial images of the monochrome image are stored in multiple fields that can store multiple color components, and an image processing circuit performs image processing on the multiple partial images simultaneously. Also, the technology described in Patent Document 2 describes that when the input image is a monochrome image, the monochrome image is divided into rectangular sizes, and pixel data of multiple different coordinates is input to a rectangular image processing unit in a pseudo manner to perform image processing simultaneously.

特開2015-115837号公報JP 2015-115837 A 特開2007-221343号公報JP 2007-221343 A

特許文献1で開示された技術によれば、モノクロ画像データの画像処理を実行すると、モノクロ画像データから複数の部分画像を抽出し、複数の部分画像のそれぞれからモノクロの画素値を取得する。その上で、複数のモノクロの画素値を画像処理コマンドの複数のフィールドに格納して、画像処理を実行することにより、画像処理の性能を分散並列化して高速化することができる。 According to the technology disclosed in Patent Document 1, when image processing of monochrome image data is performed, multiple partial images are extracted from the monochrome image data, and monochrome pixel values are obtained from each of the multiple partial images. The multiple monochrome pixel values are then stored in multiple fields of an image processing command, and image processing is performed, thereby distributing and parallelizing the performance of image processing to increase speed.

しかし、特許文献1には、モノクロ画像データの複数の部分画像に対してディザ処理を並列処理するための手段については記載されていない。仮に、特許文献1の手法にもとづき複数の部分画像に対してディザ処理を行う場合、ディザ回路の記憶領域に部分画像の大きさに対応したブルーノイズ特性を有する閾値テーブルを、並列処理する部分画像の数だけ配置する必要がある。そのため、モノクロ画像を並列にディザ処理するための回路規模が増大してしまう。 However, Patent Document 1 does not disclose any means for performing dither processing on multiple partial images of monochrome image data in parallel. If dither processing is performed on multiple partial images based on the method of Patent Document 1, it would be necessary to place threshold tables having blue noise characteristics corresponding to the size of the partial images in the memory area of the dither circuit as many times as the number of partial images to be processed in parallel. This would result in an increase in the circuit scale for dithering monochrome images in parallel.

本発明は、かかる問題に鑑みなされたものである。そして、本願発明は、画像データを、それぞれが限られた記憶領域を有する複数の処理回路を用いながらも、それぞれの記憶領域のサイズを超える個数の設定値に基づく画像処理を実行できる技術を提供しようとするものである。 The present invention has been made in consideration of such problems. The present invention aims to provide a technology that can process image data using multiple processing circuits, each of which has a limited memory area, and yet can execute image processing based on a number of setting values that exceeds the size of each memory area.

この課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
画像データを、行列状に配置された複数の設定値で構成されるマトリクスデータに基づいて画像処理する画像処理装置であって、
複数の処理回路であって、それぞれが、内部に前記設定値を格納するための記憶領域を有し、当該記憶領域に設定された設定値と入力した画像データとに基づく画像処理を行う複数の処理回路と、
利用するマトリクスデータのサイズと前記記憶領域のサイズに基づき、前記マトリクスデータを分割した場合の部分領域のサイズを決定する決定手段と、
該決定手段で決定した部分領域の設定値を、前記複数の処理回路に設定する設定手段と、
前記画像データを、前記部分領域のサイズに基づく複数の部分画像データに分割する分割手段と、
前記複数の処理回路を制御し、それぞれに前記分割手段で分割した部分画像データに対する処理を実行させる制御手段とを有する。
In order to solve this problem, for example, an image processing device according to the present invention has the following arrangement.
An image processing device that processes image data based on matrix data composed of a plurality of setting values arranged in a matrix,
a plurality of processing circuits, each of which has a memory area for storing the setting values therein and performs image processing based on the setting values set in the memory area and input image data;
a determining means for determining a size of a partial area when the matrix data is divided based on a size of the matrix data to be used and a size of the storage area;
a setting means for setting the partial region setting values determined by the determining means to the plurality of processing circuits;
A dividing means for dividing the image data into a plurality of partial image data based on the size of the partial region;
The image processing device further comprises a control means for controlling the plurality of processing circuits and causing each of the processing circuits to execute processing on the partial image data divided by the dividing means.

本発明によれば、画像データを、それぞれが限られた記憶領域を有する複数の処理回路を用いながらも、それぞれの記憶領域のサイズを超える個数の設定値に基づく画像処理を実行できる技術を提供できる。 The present invention provides a technology that can process image data using multiple processing circuits, each of which has a limited memory area, and yet can perform image processing based on a number of setting values that exceeds the size of each memory area.

実施形態の画像処理装置の全体構成を示すブロック図。1 is a block diagram showing the overall configuration of an image processing apparatus according to an embodiment; 実施形態における画像領域を示す図。FIG. 4 is a diagram showing an image area in the embodiment. 実施形態に係わる閾値テーブルを示す図。FIG. 4 is a diagram showing a threshold table according to the embodiment. 第1の実施形態における制御レジスタと動作レジスタの設定処理を示すフローチャート。5 is a flowchart showing a process of setting a control register and an operation register in the first embodiment. 第1の実施形態における入出力の画像領域を矩形領域に分割した図。4A and 4B are diagrams illustrating input and output image areas divided into rectangular areas according to the first embodiment. 第1の実施形態における矩形領域と分割した閾値テーブルの関係を示す図。5A and 5B are diagrams showing the relationship between rectangular areas and divided threshold tables according to the first embodiment. 画像処理回路部の構成を示すブロック図。FIG. 2 is a block diagram showing a configuration of an image processing circuit unit. 実施形態において、入出力制御回路部と画像処理実行回路部との間で交わされコマンドの構造を示す図。5A and 5B are diagrams showing the structure of commands exchanged between an input/output control circuit unit and an image processing execution circuit unit in the embodiment. 実施形態におけるカラー画像データコマンド及びモノクロがオズデータコマンドの構造を示す図。6A and 6B are diagrams showing the structures of a color image data command and a monochrome odd data command in the embodiment. ディザ回路部の構成を示すブロック図。FIG. 4 is a block diagram showing a configuration of a dither circuit unit. 第2の実施形態における制御レジスタと動作レジスタの設定処理を示すフローチャート。10 is a flowchart showing a process of setting a control register and an operation register according to the second embodiment. 第2の実施形態における入出力の画像領域を矩形領域に分割した図。13A and 13B are diagrams illustrating input and output image areas divided into rectangular areas according to the second embodiment. 第2の実施形態における矩形領域と閾値テーブルの関係を示す図。13A and 13B are diagrams showing the relationship between rectangular areas and threshold tables according to the second embodiment.

以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。 The following embodiments are described in detail with reference to the attached drawings. Note that the following embodiments do not limit the invention according to the claims. Although the embodiments describe multiple features, not all of these multiple features are necessarily essential to the invention, and multiple features may be combined in any manner. Furthermore, in the attached drawings, the same reference numbers are used for the same or similar configurations, and duplicate explanations are omitted.

[第1の実施形態]
図1は、第1の実施形態に係わる画像処理装置の全体構成を示すブロック図である。この装置は、CPU100、RAM101、ROM102、画像処理回路部103、I/F部104、及び、これらは互いに通信可能に接続するシステムバス105を有する。I/F部104は、ネットワーク経由で外部の装置とデータの送受信を行うことができる。CPU100は、画像処理装置全体を制御する中央演算ユニットであり、RAM101またはROM102にロードされた制御プログラムを実行する。CPU100は、この制御プログラムに従って、I/F104から受信した入力画像データをRAM101に格納し、画像処理回路部103を利用した画像処理を実行する。画像処理回路部103は、RAM101に格納された入力画像データに対して画像処理を行い、画像処理した結果である出力画像データをRAM101に格納する。CPU100は、制御プログラムに従って、RAM101に格納された出力画像データをI/F104を通して外部の装置に送信する処理も行う。
[First embodiment]
1 is a block diagram showing the overall configuration of an image processing apparatus according to the first embodiment. This apparatus includes a CPU 100, a RAM 101, a ROM 102, an image processing circuit section 103, an I/F section 104, and a system bus 105 that connects these components to each other so that they can communicate with each other. The I/F section 104 can transmit and receive data to and from an external device via a network. The CPU 100 is a central processing unit that controls the entire image processing apparatus, and executes a control program loaded into the RAM 101 or the ROM 102. The CPU 100 stores input image data received from the I/F 104 in the RAM 101 according to the control program, and executes image processing using the image processing circuit section 103. The image processing circuit section 103 performs image processing on the input image data stored in the RAM 101, and stores output image data, which is the result of the image processing, in the RAM 101. The CPU 100 also performs processing to transmit the output image data stored in the RAM 101 to an external device through the I/F 104 according to the control program.

上記構成において、実施形態の装置は、例えばI/F部104を介して入力した画像データを、後述する画像領域200を単位に処理を実行する。I/F部104が入力する画像データの発生源は特に問わないが、例えばイメージスキャナ、或いは、処理対象の画像データを記憶している記憶装置が、当該I/F部104に接続されているものとする。 In the above configuration, the device of the embodiment processes image data input via the I/F unit 104, for example, in units of image areas 200 (described below). There is no particular limit to the source of the image data input by the I/F unit 104, but it is assumed that, for example, an image scanner or a storage device that stores the image data to be processed is connected to the I/F unit 104.

図2は、本実施形態に係わる画像領域を示す図である。画像領域200の大きさは、画像領域の幅Pl、画像領域の高さPhと表す(単位は画素の数とする)。本実施形態では処理対象の入力画像を格納する画像領域200と、処理済みの出力画像を格納する画像領域200それぞれが、予めRAM101に確保されている。ここで、入力画像に対して拡大処理や縮小処理を行うために入力画像を格納する画像領域と出力画像を格納する画像領域の大きさが異なる構成としてもよい。 Figure 2 is a diagram showing an image area according to this embodiment. The size of the image area 200 is represented by the width Pl of the image area and the height Ph of the image area (in units of the number of pixels). In this embodiment, the image area 200 for storing the input image to be processed and the image area 200 for storing the processed output image are each reserved in advance in the RAM 101. Here, the image area for storing the input image and the image area for storing the output image may be configured to have different sizes in order to perform enlargement or reduction processing on the input image.

図3は、本実施形態に係わる閾値テーブルを示す図である。この閾値テーブルの大きさは、閾値テーブルの幅W、閾値テーブルの高さDhであり、W×Dh個の要素数で定義される。そして、幅W、高さDh、並びに、格納されている閾値の並びは、処理の種類やユーザによる設定に依存するものとする。また、ROM102には、サイズ、閾値の並びに応じた複数の閾値テーブルが格納されており、図3は、そのうちの1つであるものとする。 Figure 3 is a diagram showing a threshold table according to this embodiment. The size of this threshold table is the width W of the threshold table and the height Dh of the threshold table, and is defined as the number of elements W x Dh. The width W, height Dh, and the arrangement of the stored thresholds depend on the type of processing and settings made by the user. In addition, multiple threshold tables corresponding to the size and arrangement of the thresholds are stored in ROM 102, and Figure 3 shows one of them.

また、この閾値テーブル全体は、2次元の行列状のディザマトリクスデータとして定義されるものでもある。ここで、画像領域200の幅さPlは、図3の閾値テーブルの幅W以上である。本実施形態では、入力画像が256レベルの階調を持つため、閾値テーブルの各要素に8ビットの0~255の閾値データが格納されている。この閾値データは必ずしも256レベルである必要はなく、入力画像の階調数に合わせて他のレベルであってもよい。ここで、閾値テーブルの高さDhは、画像領域の高さPhに近いほど、ブルーノイズ特性を保つことができ、ディザ処理後の画質を向上させる可能性がある。また、閾値テーブルの幅Wは所定の長さを定義することで、画像領域の幅Plよりも小さくても、画像領域200に対して、閾値テーブル300を主走査方向に繰り返し参照することで、ブルーノイズ特性を保つことができる。本実施形態では、閾値テーブル300をRAM101に配置し、画像処理回路部103でディザ処理を開始する前に、CPU100が閾値テーブル300の参照範囲を部分的にディザ回路の記憶領域に転送する。ここで、閾値テーブルの高さDhは、画像領域の高さPhと等しく、閾値テーブルの幅Wは画像領域の幅Plよりも小さい。 The entire threshold table is also defined as a two-dimensional matrix-like dither matrix data. Here, the width Pl of the image area 200 is equal to or greater than the width W of the threshold table in FIG. 3. In this embodiment, since the input image has 256 levels of gradation, 8-bit threshold data of 0 to 255 is stored in each element of the threshold table. This threshold data does not necessarily have to be 256 levels, and may be another level according to the number of gradations of the input image. Here, the closer the height Dh of the threshold table is to the height Ph of the image area, the more blue noise characteristics can be maintained, and the more likely it is that the image quality after dither processing will be improved. In addition, by defining the width W of the threshold table as a predetermined length, even if it is smaller than the width Pl of the image area, the blue noise characteristics can be maintained by repeatedly referring to the threshold table 300 in the main scanning direction for the image area 200. In this embodiment, the threshold table 300 is placed in the RAM 101, and before the image processing circuit unit 103 starts dither processing, the CPU 100 transfers a part of the reference range of the threshold table 300 to the storage area of the dither circuit. Here, the height Dh of the threshold table is equal to the height Ph of the image area, and the width W of the threshold table is smaller than the width Pl of the image area.

図4は、CPU100が、モノクロの画像領域200を副走査方向に沿って、複数の矩形領域に分割して、画像処理回路部103に対して複数の矩形領域を並列画像処理するためのレジスタ設定を行うフローチャートである。なお、実施形態の装置は、YMCK等の4色成分のカラー画像に対する処理を行える。そして、モノクロ画像については、4色の各成分ごとに用意された4つのディザ回路1000a乃至1000dを利用してディザ処理を4並列処理する例を説明する。なお、ディザ処理回路1000a乃至1000dは同じ回路構成であり、特にこだわらない限り、その1つを示す指し示す際には単にディザ回路1000と言う。また、ディザ回路1000a乃至1000dそれぞれは、自身内に記憶領域を有し、そのサイズは利用しようとするディザマトリクスのサイズに対して十分に小さいものとする。逆に言えば、実施形態のディザ回路1000a乃至1000dは、利用しようとするディザマトリクスサイズよりも少ないサイズの記憶領域しか有さなくても、処理性能を向上させて処理するものである。 Figure 4 is a flow chart showing how the CPU 100 divides the monochrome image area 200 into multiple rectangular areas along the sub-scanning direction and sets the registers for the image processing circuit unit 103 to perform parallel image processing on the multiple rectangular areas. The device of the embodiment can process color images of four color components such as YMCK. For monochrome images, an example is described in which four dither circuits 1000a to 1000d are used for each of the four color components to perform four parallel dither processing. The dither processing circuits 1000a to 1000d have the same circuit configuration, and unless otherwise specified, the dither processing circuits 1000a to 1000d are simply referred to as the dither circuit 1000 when referring to one of them. Each of the dither circuits 1000a to 1000d has its own internal storage area, the size of which is sufficiently small compared to the size of the dither matrix to be used. Conversely, the dither circuits 1000a to 1000d of the embodiment improve processing performance even if they have a memory area smaller than the dither matrix size to be used.

S400にて、CPU100は、ディザ回路1000が有する記憶領域に格納する閾値テーブルのサイズS、つまり、ディザ回路1000の閾値テーブルブロック600の領域サイズSを取得する。ここで、ディザ回路1000の閾値テーブルブロック600の領域サイズは、RAM101に格納されている、これから利用しようとしている閾値テーブル300の領域サイズよりも小さいとする。 At S400, the CPU 100 acquires the size S of the threshold table to be stored in the memory area of the dither circuit 1000, i.e., the area size S of the threshold table block 600 of the dither circuit 1000. Here, it is assumed that the area size of the threshold table block 600 of the dither circuit 1000 is smaller than the area size of the threshold table 300 to be used, which is stored in the RAM 101.

S401にて、CPU100は、ディザ回路部1000の記憶領域に格納する閾値テーブルの幅Wを取得する。この閾値テーブルの幅Wは画像領域200に対して、閾値テーブル601、602、603、604を主走査方向に繰り返し適用した場合、ブルーノイズ特性を保つこが可能な所定の長さである。ここで、この閾値テーブルの幅Wは、予めROM102に格納されている値としてもよいし、I/F部104を通して外部の装置から取得した値でもよい。 At S401, the CPU 100 acquires the width W of the threshold table to be stored in the memory area of the dither circuit unit 1000. The width W of this threshold table is a predetermined length that can maintain the blue noise characteristics when the threshold tables 601, 602, 603, and 604 are repeatedly applied to the image area 200 in the main scanning direction. Here, the width W of this threshold table may be a value that is stored in advance in the ROM 102, or may be a value acquired from an external device via the I/F unit 104.

S402にて、CPU100は、S400にて取得した閾値テーブルブロック600の領域サイズSを、S401で取得した閾値テーブルの幅Wで除算することで、ディザ回路部1000の記憶領域に格納する閾値テーブルの高さThを求める。この計算式により、ブルーノイズ特性を保つことが可能な閾値テーブルの大きさを決定できる。 At S402, the CPU 100 divides the area size S of the threshold table block 600 obtained at S400 by the width W of the threshold table obtained at S401 to obtain the height Th of the threshold table to be stored in the memory area of the dither circuit unit 1000. This formula makes it possible to determine the size of the threshold table that can maintain the blue noise characteristics.

S403にて、CPU100は、画像処理回路部103が処理可能な入出力画像の最大色成分Dmaxを取得する。ここで、最大色成分Dmaxはカラー画像を処理するための2色以上の色数であればよい。実施形態の装置は、CMYK等の最大4色成分のカラー画像に対処可能としているので、Dmaxは“4”である。先に説明したディザ回路1000が4つ有するのも、この理由である。なお、Dmaxの値は、装置設定に応じた値であるので、必ずしも4である必要はない。また、RGBの3色の入力画像(Dmax=3)に対して画像処理を行い、CMYKの4色の出力画像(Dmax=4)を出力する場合等、入力画像と出力画像の色数Dmaxが異なっても構わない。 In S403, the CPU 100 acquires the maximum color component Dmax of the input/output image that the image processing circuit unit 103 can process. Here, the maximum color component Dmax may be any number of colors greater than or equal to two colors for processing a color image. The device of the embodiment is capable of handling color images with a maximum of four color components, such as CMYK, so Dmax is "4". This is also the reason why the dither circuits 1000 described above have four. Note that the value of Dmax is a value according to the device settings, so it does not necessarily have to be 4. In addition, the number of colors Dmax of the input image and the output image may differ, for example, when performing image processing on an input image with three colors, RGB (Dmax = 3), and outputting an output image with four colors, CMYK (Dmax = 4).

S404にて、CPU100は、S402で決定した閾値テーブルの高さThを持つ画像領域200を矩形領域に分割して並列処理するために、矩形領域の高さBhを求める。具体的には、CPU100は、S402で計算した閾値テーブルの高さThを、画像処理回路103が同時に処理可能な色数、つまり、S403で取得した入出力画像の最大色成分数Dmaxで除算し、矩形領域の高さBhを求める。 In S404, the CPU 100 calculates the height Bh of the rectangular region in order to divide the image region 200 having the height Th of the threshold table determined in S402 into rectangular regions for parallel processing. Specifically, the CPU 100 divides the height Th of the threshold table calculated in S402 by the number of colors that can be simultaneously processed by the image processing circuit 103, that is, by the maximum number of color components Dmax of the input/output images acquired in S403, to calculate the height Bh of the rectangular region.

S405にて、CPU100は、図5に示すように画像領域200を画像領域の長さPl、S404で計算した矩形領域の高さBhの大きさの矩形領域に分割する。具体的には、図5に示すように入力の画像を格納するための画像領域を、A0-0、A0-1、A0-2、A0-3、A1-0、A1-1、A1-2、A1-3、A2-0、A2-1、A2-2、A2-3の12個の矩形領域(部分画像もしくは部分画像データとも言う)に分割する。さらに、出力画像(ディザ処理後の画像)の格納するため画像領域をB0-0、B0-1、B0-2、B0-3、B1-0、B1-1、B1-2、B1-3、B2-0、B2-1、B2-2、B2-3の12個の矩形領域に分割する。 At S405, the CPU 100 divides the image area 200 into rectangular areas with the image area length Pl and the rectangular area height Bh calculated at S404, as shown in FIG. 5. Specifically, as shown in FIG. 5, the image area for storing the input image is divided into 12 rectangular areas (also called partial images or partial image data) A0-0, A0-1, A0-2, A0-3, A1-0, A1-1, A1-2, A1-3, A2-0, A2-1, A2-2, and A2-3. Furthermore, the image area for storing the output image (image after dithering) is divided into 12 rectangular areas B0-0, B0-1, B0-2, B0-3, B1-0, B1-1, B1-2, B1-3, B2-0, B2-1, B2-2, and B2-3.

S406にて、CPU100は、入出力画像の最大色成分数Dmax(実施形態では“4”)を取得したことを受けて、並列処理数Vnを4とする。ここで入出力画像の最大色成分数Dmaxは必ずしも4色である必要はなく、2色以上の特定の値としてもよい。 In S406, the CPU 100 acquires the maximum number of color components Dmax ("4" in the embodiment) of the input/output images and sets the number of parallel processes Vn to 4. Here, the maximum number of color components Dmax of the input/output images does not necessarily have to be four colors, and may be a specific value of two or more colors.

S407にて、CPU100は、S405で分割した矩形領域を、S406で取得した並列処理数Vn(=4)に基づいて、入力の矩形領域を入力領域500、501、502に、出力の矩形領域を出力領域503、504、505にグループ化する。 At S407, the CPU 100 groups the rectangular areas divided at S405 into input areas 500, 501, and 502 as input rectangular areas, and into output rectangular areas 503, 504, and 505 as output rectangular areas, based on the number of parallel processes Vn (=4) obtained at S406.

S408にて、CPU100は、S405で分割した各矩形領域の先頭アドレスを、S407でグループ化した単位で上から順に並列画像処理するように、ディザ回路1000a乃至1000d内の制御レジスタに設定する。具体的には、入力領域500を入力して出力領域503を出力するように入力領域500と出力領域503それぞれに対して各矩形領域の先頭アドレスと矩形領域の領域サイズを、ディザ回路1000a乃至1000dそれぞれの制御レジスタに設定する。ここで、入力領域500内の各矩形領域の先頭アドレスを制御レジスタに設定し、入力領域501と入力領域502内の各矩形領域の先頭アドレス情報として、入力領域500の各矩形領域の先頭アドレスからのオフセット値を制御レジスタに設定してもよい。 In S408, the CPU 100 sets the start address of each rectangular area divided in S405 in the control registers in the dither circuits 1000a to 1000d so that parallel image processing is performed in the order from top to bottom in the units grouped in S407. Specifically, the start address and area size of each rectangular area for the input area 500 and the output area 503 are set in the control registers of the dither circuits 1000a to 1000d so that the input area 500 is input and the output area 503 is output. Here, the start address of each rectangular area in the input area 500 may be set in the control register, and an offset value from the start address of each rectangular area in the input area 500 may be set in the control register as start address information for each rectangular area in the input area 501 and the input area 502.

S409にて、CPU100は、図6(a)に示す閾値テーブル300内の分割した閾値テーブルを、画像処理回路部103に転送するための制御レジスタを設定する。具体的には、CPU100は、転送元である閾値テーブル601、602、603、604のアドレスとサイズを制御レジスタに設定する。さらに、CPU100は、転送先であるディザ回路部1000の閾値テーブル分割ブロック613、614、615、616のアドレスを制御レジスタに設定する。 In S409, the CPU 100 sets a control register for transferring the divided threshold tables in the threshold table 300 shown in FIG. 6A to the image processing circuit unit 103. Specifically, the CPU 100 sets the addresses and sizes of the threshold tables 601, 602, 603, and 604, which are the transfer source, in the control register. Furthermore, the CPU 100 sets the addresses of the threshold table divided blocks 613, 614, 615, and 616 of the dither circuit unit 1000, which are the transfer destination, in the control register.

S410にて、CPU100は、ディザ回路部1000a~1000dが各矩形領域をディザ処理する際に参照する閾値テーブルブロック600内の閾値テーブルの参照開始位置を動作レジスタに設定する。ここで、以降では、RAM101に格納されている閾値テーブル300内の分割したテーブル601~612に関しても閾値テーブルと記載する。具体的には、CPU100は、閾値テーブル分割ブロック613、614、615、616の各領域の参照開始位置を、ディザ回路1000a~1000dそれぞれの動作レジスタに設定する。つまり、モノクロ画像データコマンド901のK1領域の画素データに対してディザ処理を行うディザ回路1000aには、閾値テーブル分割ブロック613の閾値テーブルを参照するように動作レジスタに設定する。また、モノクロ画像データコマンド901のK2領域の画素データに対してディザ処理を行うディザ回路1000bには、閾値テーブル分割ブロック614の閾値テーブルを参照するように動作レジスタに設定する。また、モノクロ画像データコマンド901のK3領域の画素データに対してディザ処理を行うディザ回路1000cには、閾値テーブル分割ブロック615の閾値テーブルを参照するように動作レジスタに設定する。モノクロ画像データコマンド901のK4領域の画素データに対してディザ処理を行うディザ回路1000dには、閾値テーブル分割ブロック616の閾値テーブルを参照するように動作レジスタに設定する。 At S410, the CPU 100 sets the reference start position of the threshold table in the threshold table block 600, which the dither circuit units 1000a to 1000d refer to when dithering each rectangular area, in the operation register. Hereinafter, the divided tables 601 to 612 in the threshold table 300 stored in the RAM 101 are also referred to as threshold tables. Specifically, the CPU 100 sets the reference start position of each area of the threshold table division blocks 613, 614, 615, and 616 in the operation register of each of the dither circuits 1000a to 1000d. In other words, the operation register is set so that the dither circuit 1000a, which performs dithering on the pixel data in the K1 area of the monochrome image data command 901, refers to the threshold table in the threshold table division block 613. Also, the operation register is set so that the dither circuit 1000b, which performs dithering on the pixel data in the K2 area of the monochrome image data command 901, refers to the threshold table in the threshold table division block 614. In addition, the dither circuit 1000c, which performs dither processing on pixel data in the K3 region of the monochrome image data command 901, is set in the operation register to refer to the threshold table in the threshold table division block 615. The dither circuit 1000d, which performs dither processing on pixel data in the K4 region of the monochrome image data command 901, is set in the operation register to refer to the threshold table in the threshold table division block 616.

S411にて、CPU100は、ディザ回路部1000a乃至1000dが、各矩形領域に対してS410で設定した閾値テーブルの参照開始位置に基づいた閾値テーブルを各矩形領域内で主走査方向に繰り返し参照するように動作レジスタを設定する。具体的には、図6(b)に示すように矩形領域A0-0は、ディザ回路1000aが担当することになり、閾値テーブル分割ブロック613に格納された閾値テーブル601を主走査方向に繰り返し参照するように、同回路の動作レジスタを設定する。矩形領域A0-1はディザ回路1000bが担当することになり、閾値テーブル分割ブロック614に格納された閾値テーブル602を主走査方向に繰り返し参照するように同回路の動作レジスタを設定する。矩形領域A0-2は、ディザ回路1000cが担当することになり、閾値テーブル分割ブロック615に格納された閾値テーブル603を主走査方向に繰り返し参照するように、同回路の動作レジスタを設定する。矩形領域A0-3はディザ回路1000dが担当することになり、閾値テーブル分割ブロック616に格納された閾値テーブル604を主走査方向に繰り返し参照するように同回路の動作レジスタを設定する。 In S411, the CPU 100 sets the operation register so that the dither circuit units 1000a to 1000d repeatedly refer to the threshold table in the main scanning direction within each rectangular region based on the reference start position of the threshold table set in S410 for each rectangular region. Specifically, as shown in FIG. 6B, the rectangular region A0-0 is assigned to the dither circuit 1000a, and the operation register of the circuit is set so that the threshold table 601 stored in the threshold table division block 613 is repeatedly referred to in the main scanning direction. The rectangular region A0-1 is assigned to the dither circuit 1000b, and the operation register of the circuit is set so that the threshold table 602 stored in the threshold table division block 614 is repeatedly referred to in the main scanning direction. The rectangular region A0-2 is assigned to the dither circuit 1000c, and the operation register of the circuit is set so that the threshold table 603 stored in the threshold table division block 615 is repeatedly referred to in the main scanning direction. The rectangular area A0-3 is handled by the dither circuit 1000d, and the operation register of that circuit is set so that the threshold table 604 stored in the threshold table division block 616 is repeatedly referenced in the main scanning direction.

次に画像処理回路部103が図4のフローチャートに基づきCPU100により設定された図7に示す閾値テーブル設定値、動作レジスタ設定値、制御レジスタ設定値、画像処理実行コマンド、入力画像データを受信し、並列画像処理を行うフローについて図7乃至10を参照して説明する。 Next, the flow of the image processing circuit unit 103 receiving the threshold table setting values, operation register setting values, control register setting values, image processing execution command, and input image data shown in FIG. 7, which are set by the CPU 100 based on the flowchart in FIG. 4, and performing parallel image processing will be described with reference to FIGS. 7 to 10.

まず、画像処理回路部103の構成について説明する。 図7は、画像処理回路部103の構成を示すブロック図である。画像処理回路部103は、レジスタ設定値、閾値テーブル、入力画像データを入力し、出力画像データを出力する入出力制御回路部700と、入出力制御回路部700から入力されるコマンド単位で画像処理を行う画像処理実行回路部701で構成される。入出力制御回路部700は、データ入力部702、中間バッファ703、レジスタブロック719、コマンド生成部704、コマンド送信部705、コマンド受信部716、コマンド解析部717、データ出力部718で構成される。次に、画像処理実行回路部701の構成について説明する。画像処理実行回路部701は、画像処理回路(1)709、画像処理回路(2)712、…、画像処理回路(P)715のP個の画像処理回路とインターコネクト706で構成される。P個の画像処理回路とインターコネクト706とは、入力ポート707、710、713等、及び出力ポート708、711、714等のポートを介して互いに接続される。 First, the configuration of the image processing circuit unit 103 will be described. FIG. 7 is a block diagram showing the configuration of the image processing circuit unit 103. The image processing circuit unit 103 is composed of an input/output control circuit unit 700 that inputs register setting values, a threshold table, and input image data and outputs output image data, and an image processing execution circuit unit 701 that performs image processing on a command basis input from the input/output control circuit unit 700. The input/output control circuit unit 700 is composed of a data input unit 702, an intermediate buffer 703, a register block 719, a command generation unit 704, a command transmission unit 705, a command reception unit 716, a command analysis unit 717, and a data output unit 718. Next, the configuration of the image processing execution circuit unit 701 will be described. The image processing execution circuit unit 701 is composed of P image processing circuits, namely, an image processing circuit (1) 709, an image processing circuit (2) 712, ..., an image processing circuit (P) 715, and an interconnect 706. The P image processing circuits and the interconnect 706 are connected to each other via input ports 707, 710, 713, etc., and output ports 708, 711, 714, etc.

本実施形態では、画像処理回路(P)715がディザ処理を行うディザ回路1000a乃至1000dを含んでいる。画像処理回路(P)715以外の画像処理回路は、例えば、入力色補正処理、色空間変換、濃度補正処理、空間フィルタ処理、解像度変換、トリミング処理、端部拡張処理、IP変換、クロマ・アップサンプリングの1つ以上を含む処理を行う。P個から構成される画像処理回路は、パイプライン回路等のハードウェアで実現されてもよいし、プロセッサーとプログラム(ソフトウェア)等で実現されてもよい。本実施形態では、画像処理実行回路部701は、画像処理回路(1)709、画像処理回路(2)712、ディザ回路部1000である画像処理回路(P)715の順で画像処理を行うようにインターコネクト706を設定する。 In this embodiment, the image processing circuit (P) 715 includes dither circuits 1000a to 1000d that perform dither processing. The image processing circuits other than the image processing circuit (P) 715 perform processing including one or more of, for example, input color correction processing, color space conversion, density correction processing, spatial filter processing, resolution conversion, trimming processing, edge expansion processing, IP conversion, and chroma upsampling. The P image processing circuits may be realized by hardware such as a pipeline circuit, or may be realized by a processor and a program (software), etc. In this embodiment, the image processing execution circuit unit 701 sets the interconnect 706 so that image processing is performed in the order of the image processing circuit (1) 709, the image processing circuit (2) 712, and the image processing circuit (P) 715, which is the dither circuit unit 1000.

ここで、入出力制御回路部700と画像処理実行回路部701との間で送受信されるコマンドのフォーマットについて図8と図9を用いて説明する。 Here, the format of commands sent and received between the input/output control circuit unit 700 and the image processing execution circuit unit 701 will be explained using Figures 8 and 9.

図8(a)に示す動作レジスタコマンド800は、画像処理回路(1)709 、画像処理回路(2)712、像処理回路(P)715 のうち該当する画像処理回路の1個の動作レジスタ設定値を設定するためのコマンドである。動作レジスタコマンド800のフォーマットは、ヘッダ領域、アドレス領域、データ領域から構成される。ここで、動作レジスタコマンド800のヘッダ領域には少なくとも動作レジスタコマンドであることを示す識別子と画像処理回路(1)709 、画像処理回路(2)712、画像処理回路(P)715のいずれかを指し示す識別子、並びにその中のサブ回路のいずれかを指し示す識別子(実施形態では、画像処理回路(P)715が有するディザ処理回路1000a乃至1000dがこれに該当する) が設定される。動作レジスタコマンド800のアドレス領域にはヘッダ領域内の識別子が指し示す画像処理回路内の特定レジスタを指し示すアドレスが設定される。動作レジスタコマンド800のデータ領域にはアドレス領域のアドレスが指し示す動作レジスタに設定する値が設定される。図8(b)に示す閾値データコマンド801は、ディザ処理を行う画像処理回路(P)715に対して1個の画素データをディザ処理するための閾値データを設定するためのコマンドである。閾値データコマンド801のフォーマットは、ヘッダ領域、アドレス領域、データ領域から構成される。ここで、閾値データコマンド801のヘッダ領域には少なくとも閾値データコマンドであることを示す識別子と画像処理回路(P)715のディザ回路を指し示す識別子が設定される。閾値データコマンド801のアドレス領域には画像処理回路(P)715のディザ回路部1000の閾値テーブルブロック600内の特定アドレスが設定される。閾値データコマンド801のデータ領域にはアドレス領域のアドレスが指し示すアドレスに格納するための閾値データが設定される。 The operation register command 800 shown in FIG. 8(a) is a command for setting the operation register setting value of one of the image processing circuits, the image processing circuit (1) 709, the image processing circuit (2) 712, and the image processing circuit (P) 715. The format of the operation register command 800 is composed of a header area, an address area, and a data area. Here, the header area of the operation register command 800 contains at least an identifier indicating that it is an operation register command, an identifier indicating one of the image processing circuits (1) 709, the image processing circuit (2) 712, and the image processing circuit (P) 715, and an identifier indicating one of the subcircuits therein (in the embodiment, the dither processing circuits 1000a to 1000d of the image processing circuit (P) 715 correspond to this). The address area of the operation register command 800 contains an address indicating a specific register in the image processing circuit indicated by the identifier in the header area. The data area of the operation register command 800 contains a value to be set in the operation register indicated by the address in the address area. The threshold data command 801 shown in FIG. 8(b) is a command for setting threshold data for dithering one pixel data for the image processing circuit (P) 715 that performs dithering. The format of the threshold data command 801 is composed of a header area, an address area, and a data area. Here, the header area of the threshold data command 801 contains at least an identifier indicating that it is a threshold data command and an identifier indicating the dither circuit of the image processing circuit (P) 715. The address area of the threshold data command 801 contains a specific address in the threshold table block 600 of the dither circuit section 1000 of the image processing circuit (P) 715. The data area of the threshold data command 801 contains threshold data to be stored at an address indicated by the address in the address area.

図9(a)に示すカラー画像データコマンド900と図9(b)に示すモノクロ画像データコマンド901は、画像処理回路(1)709、画像処理回路(2)712、画像処理回路(P)715の各画像処理回路が画像処理を行うためのコマンドである。本実施形態では、モノクロ画像データコマンド901を用いる。カラー画像データコマンド900は、ヘッダ領域と4個のカラーの画素データ領域C(Cyan)領域、M(Magenta)領域、Y(Yellow)領域、K(Black)領域から構成される。ここで、カラー画像データコマンド900のヘッダ領域には、少なくとも画素データを格納したコマンドであることを示す識別子と画像領域200を分割した各矩形領域の中の画素位置を示すフラグが設定される。モノクロ画像データコマンド901は、ヘッダ領域と4個のモノクロの画素データ領域K1領域、K2領域、K3領域、K4領域から構成される。ここで、モノクロ画像データコマンド901のヘッダ領域には、カラー画像データコマンド900と同様、少なくとも画素データを格納したコマンドであることを示す識別子と画像領域200を分割した各矩形領域の中の画素位置を示すフラグが設定される。この画素位置を示すフラグに関して、例えば、図5の矩形領域A0-0~A0-3に対して左上の画素をモノクロ画像データコマンド901に設定する場合は、矩形領域の先頭の画素であることを示す識別子を設定する。さらに、図5の矩形領域A0-0~A0-3に対して下端のいずれかの画素をモノクロ画像データコマンド901に設定する場合は、矩形領域の下端の画素であることを示す識別子を設定する。 The color image data command 900 shown in FIG. 9(a) and the monochrome image data command 901 shown in FIG. 9(b) are commands for the image processing circuits (1) 709, (2) 712, and (P) 715 to perform image processing. In this embodiment, the monochrome image data command 901 is used. The color image data command 900 is composed of a header area and four color pixel data areas C (Cyan), M (Magenta), Y (Yellow), and K (Black). Here, the header area of the color image data command 900 contains at least an identifier indicating that it is a command that stores pixel data and a flag indicating the pixel position in each rectangular area into which the image area 200 is divided. The monochrome image data command 901 is composed of a header area and four monochrome pixel data areas K1, K2, K3, and K4. Here, in the header area of the monochrome image data command 901, as in the color image data command 900, at least an identifier indicating that it is a command that stores pixel data and a flag indicating the pixel position within each rectangular area divided from the image area 200 are set. With regard to the flag indicating the pixel position, for example, if the upper left pixel of rectangular areas A0-0 to A0-3 in Figure 5 is set in the monochrome image data command 901, an identifier indicating that it is the first pixel of the rectangular area is set. Furthermore, if one of the pixels at the bottom of rectangular areas A0-0 to A0-3 in Figure 5 is set in the monochrome image data command 901, an identifier indicating that it is the bottom pixel of the rectangular area is set.

次に、画像処理回路部103が閾値テーブル設定値を読み込むフローについて説明する。 Next, we will explain the flow in which the image processing circuit unit 103 reads the threshold table setting values.

入出力制御回路部700のデータ入力部702は、CPU100が設定するディザ回路部1000を含む画像処理回路(P)715の記憶領域に格納するための閾値テーブル設定値を読み込む。データ入力部702は、RAM101に格納されている閾値テーブルの部分領域601、602、603、604を所定の単位で読み出し、中間バッファ703に格納する。続いて、データ入力部702は、中間バッファ703に格納された閾値データを1要素単位で読み出し、コマンド生成部704に入力する。コマンド生成部704は、1要素単位の閾値データを含む閾値データコマンド801を生成し、コマンド送信部705に入力する。コマンド送信部705は、閾値データコマンド801を画像処理実行回路部701に入力する。次に画像処理実行回路部701は、インターコネクト706を介して、入力ポート707に対して閾値データコマンド801を送信する。画像処理回路(1)709は入力ポート707から閾値データコマンド801を受信すると、閾値データコマンド801のヘッダ領域の識別子を参照して、他の画像処理回路に対する閾値データコマンド801と判断する。その上で、受信した閾値データコマンド801を出力ポート708に送信する。続いて、インターコネクト706は出力ポート708から受信した閾値データコマンド801を入力ポート710に送信する。画像処理回路(2)712は入力ポート710から閾値データコマンド801を受信すると、閾値データコマンド801のヘッダ領域の識別子を参照して、他の画像処理回路に対する閾値データコマンド801と判断する。その上で、受信した閾値データコマンド801を出力ポート711に送信する。続いて、インターコネクト706は出力ポート711から受信した閾値データコマンド801を入力ポート713に送信する。 The data input unit 702 of the input/output control circuit unit 700 reads the threshold table setting value to be stored in the memory area of the image processing circuit (P) 715 including the dither circuit unit 1000 set by the CPU 100. The data input unit 702 reads the partial areas 601, 602, 603, and 604 of the threshold table stored in the RAM 101 in a predetermined unit and stores them in the intermediate buffer 703. Next, the data input unit 702 reads the threshold data stored in the intermediate buffer 703 in units of one element and inputs it to the command generation unit 704. The command generation unit 704 generates a threshold data command 801 including the threshold data in units of one element and inputs it to the command transmission unit 705. The command transmission unit 705 inputs the threshold data command 801 to the image processing execution circuit unit 701. Next, the image processing execution circuit unit 701 transmits the threshold data command 801 to the input port 707 via the interconnect 706. When the image processing circuit (1) 709 receives the threshold data command 801 from the input port 707, it refers to the identifier in the header area of the threshold data command 801 and determines that it is a threshold data command 801 for another image processing circuit. It then transmits the received threshold data command 801 to the output port 708. The interconnect 706 then transmits the threshold data command 801 received from the output port 708 to the input port 710. When the image processing circuit (2) 712 receives the threshold data command 801 from the input port 710, it refers to the identifier in the header area of the threshold data command 801 and determines that it is a threshold data command 801 for another image processing circuit. It then transmits the received threshold data command 801 to the output port 711. The interconnect 706 then transmits the threshold data command 801 received from the output port 711 to the input port 713.

ここで、ディザ回路1000である画像処理回路(P)715が、閾値データコマンド801を受信した際のフローについて図10のディザ回路部1000を用いて説明する。コマンド受信部1001は閾値データコマンド801を受信する。コマンド解析部1002は、閾値データコマンド801のヘッダ領域に格納されている識別子を解析し、受信したコマンドが閾値データコマンド801であると解釈する。その上で、閾値データコマンド801のアドレス領域からディザ回路部1000の閾値テーブルを格納するための閾値テーブルブロック600内のアドレスを取得し、データ領域から1要素の閾値データを取得する。閾値データ書き込み部1005は、コマンド解析部1002で取得した閾値テーブルブロック600内のアドレス、つまり、閾値テーブルブロック600のアドレスに対して1要素の閾値データを格納する。次に、コマンド送信部1010は、コマンド受信部1001で受信した閾値データコマンド801を出力ポート714に送信する。 Here, the flow when the image processing circuit (P) 715, which is the dither circuit 1000, receives the threshold data command 801 will be described using the dither circuit unit 1000 in FIG. 10. The command receiving unit 1001 receives the threshold data command 801. The command analyzing unit 1002 analyzes the identifier stored in the header area of the threshold data command 801 and interprets that the received command is the threshold data command 801. Then, it obtains an address in the threshold table block 600 for storing the threshold table of the dither circuit unit 1000 from the address area of the threshold data command 801, and obtains one element of threshold data from the data area. The threshold data writing unit 1005 stores one element of threshold data in the address in the threshold table block 600 obtained by the command analyzing unit 1002, that is, the address of the threshold table block 600. Next, the command transmitting unit 1010 transmits the threshold data command 801 received by the command receiving unit 1001 to the output port 714.

次に、画像処理回路部103のディザ回路部1000である画像処理回路(P)715が動作レジスタ設定値を読み込むフローについて説明する。入出力制御回路部700のデータ入力部702は、CPU100が設定する画像処理回路(1)709、画像処理回路(2)712、画像処理回路(P)715の画像処理回路の動作レジスタ設定値を順次読み込む。コマンド生成部704は、ディザ回路部1000である画像処理回路(P)715に対する動作レジスタコマンド800を生成し、コマンド送信部705に入力する。コマンド送信部705は、動作レジスタコマンド800を画像処理実行回路部701に入力する。次に、画像処理実行回路部701は、インターコネクト706を介して、入力ポート707に対して動作レジスタコマンド800を送信する。画像処理回路(1)709は入力ポート707から動作レジスタコマンド800を受信すると、動作レジスタコマンド800のヘッダ領域の識別子を参照して、他の画像処理回路に対する動作レジスタコマンド800と判断する。その上で、受信した動作レジスタコマンド800を出力ポート708に送信する。続いて、インターコネクト706は出力ポート708から受信した動作レジスタコマンド800を入力ポート710に送信する。画像処理回路(2)712は入力ポート710から動作レジスタコマンド800を受信すると、動作レジスタコマンド800のヘッダ領域の識別子を参照して、他の画像処理回路に対する動作レジスタコマンド800と判断する。その上で、受信した動作レジスタコマンド800を出力ポート711に送信する。続いて、インターコネクト706は出力ポート711から受信した動作レジスタコマンド800を入力ポート713に送信する。 Next, the flow of reading the operation register setting value by the image processing circuit (P) 715, which is the dither circuit unit 1000 of the image processing circuit unit 103, will be described. The data input unit 702 of the input/output control circuit unit 700 sequentially reads the operation register setting values of the image processing circuits of the image processing circuit (1) 709, the image processing circuit (2) 712, and the image processing circuit (P) 715 set by the CPU 100. The command generation unit 704 generates an operation register command 800 for the image processing circuit (P) 715, which is the dither circuit unit 1000, and inputs it to the command transmission unit 705. The command transmission unit 705 inputs the operation register command 800 to the image processing execution circuit unit 701. Next, the image processing execution circuit unit 701 transmits the operation register command 800 to the input port 707 via the interconnect 706. When the image processing circuit (1) 709 receives the operation register command 800 from the input port 707, it refers to the identifier in the header area of the operation register command 800 and determines that it is an operation register command 800 for another image processing circuit. Then, it transmits the received operation register command 800 to the output port 708. Then, the interconnect 706 transmits the operation register command 800 received from the output port 708 to the input port 710. When the image processing circuit (2) 712 receives the operation register command 800 from the input port 710, it refers to the identifier in the header area of the operation register command 800 and determines that it is an operation register command 800 for another image processing circuit. Then, it transmits the received operation register command 800 to the output port 711. Then, the interconnect 706 transmits the operation register command 800 received from the output port 711 to the input port 713.

ここで、ディザ回路部1000である画像処理回路(P)715が動作レジスタコマンド800を受信した際のフローについて図10のディザ回路部1000を用いて説明する。コマンド受信部1001は動作レジスタコマンド800を受信する。コマンド解析部1002は、動作レジスタコマンド800のヘッダ領域に格納されている識別子を解析し、受信したコマンドが動作レジスタコマンド800であると解釈する。その上で、動作レジスタコマンド800のアドレス領域からディザ回路部1000の特定のレジスタを指し示すアドレス、つまり、レジスタブロック1004の特定のアドレスを取得し、データ領域からレジスタ設定値を取得する。レジスタ値書込み部1003は、コマンド解析部1002で取得したレジスタブロック1004の特定のアドレスに対してレジスタ設定値を書き込む。次に、コマンド送信部1010は、コマンド受信部1001で受信した動作レジスタコマンド800を出力ポート714に送信する。ここで、ディザ回路部1000である画像処理回路(P)715に対して、少なくとも図4のステップS410で設定した閾値テーブル分割ブロック613、614、615、616の参照開始位置を示す動作レジスタコマンド800を設定する。さらに、ステップS411で設定した閾値テーブルを各矩形領域内で主走査方向に繰り返し参照するための動作レジスタコマンド800を設定する。 Here, the flow when the image processing circuit (P) 715, which is the dither circuit unit 1000, receives the operation register command 800 will be described using the dither circuit unit 1000 in FIG. 10. The command receiving unit 1001 receives the operation register command 800. The command analyzing unit 1002 analyzes the identifier stored in the header area of the operation register command 800 and interprets that the received command is the operation register command 800. Then, it obtains an address indicating a specific register of the dither circuit unit 1000 from the address area of the operation register command 800, that is, a specific address of the register block 1004, and obtains a register setting value from the data area. The register value writing unit 1003 writes the register setting value to the specific address of the register block 1004 obtained by the command analyzing unit 1002. Next, the command transmitting unit 1010 transmits the operation register command 800 received by the command receiving unit 1001 to the output port 714. Here, an operation register command 800 is set for the image processing circuit (P) 715, which is the dither circuit unit 1000, indicating the reference start positions of at least the threshold table division blocks 613, 614, 615, and 616 set in step S410 of FIG. 4. Furthermore, an operation register command 800 is set for repeatedly referencing the threshold table set in step S411 in the main scanning direction within each rectangular area.

続いて、画像処理回路(1)709、画像処理回路(2)712に対する動作レジスタコマンド800についても同様のフローで各画像処理回路内のレジスタブロックに動作レジスタ設定値を設定する。 Next, the operation register command 800 for the image processing circuit (1) 709 and the image processing circuit (2) 712 is also used in a similar flow to set the operation register setting value in the register block within each image processing circuit.

次に、入出力制御回路部700が制御レジスタ設定値を設定するフローについて説明する。入出力制御回路部700のデータ入力部702は、CPU100が設定する制御レジスタ設定値を読み、レジスタブロック719に書き込む。ここで、少なくとも以下に示す制御レジスタを書き込む。
・図4のS408で設定した入力領域500内の矩形領域A0-0、A0-1、A0-2、A0-3の先頭アドレスを示す制御レジスタ
・S408で設定した出力領域503内の矩形領域B0-0、B0-1、B0-2、B0-3の先頭アドレスを示す制御レジスタ
・S405で決定した矩形領域の大きさに基づく矩形領域の領域サイズPl*Bhを示す制御レジスタ
次に、入出力制御回路部700が画像処理実行コマンドを読み込むフローについて説明する。入出力制御回路部700のデータ入力部702は、画像処理実行コマンドを読み込むと、レジスタブロック719から以下の制御レジスタを読み込む。
・S408で設定した入力領域500内の矩形領域A0-0、A0-1、A0-2、A0-3の先頭アドレスを示す制御レジスタ
・S408で設定した出力領域503内の矩形領域B0-0、B0-1、B0-2、B0-3の先頭アドレスを示す制御レジスタ
・S405で決定した矩形領域の大きさに基づく矩形領域の領域サイズPl*Bhを示す制御レジスタ
その上で、データ入力部702は、それらの制御レジスタ設定値にもとづいて入力領域500から所定のブロック単位で入力画像データを読み出し、中間バッファ703に格納する。続いて、データ入力部702は、中間バッファ703に格納されたA0-0~A0-3のブロックデータをそれぞれ1画素単位で読み出し、コマンド生成部704に入力する。コマンド生成部704は、A0-0~A0-3に対応する4個の画像データをモノクロ画像データコマンド901のK1領域、K2領域、K3領域、K4領域に設定してモノクロ画像データコマンド901を生成し、コマンド送信部705に入力する。この結果、画像処理回路(P)715が有するディザ回路1000a乃至1000dそれぞれへの画像データの送信が行われることになる。
Next, a flow of setting the control register setting value by the input/output control circuit section 700 will be described. The data input section 702 of the input/output control circuit section 700 reads the control register setting value set by the CPU 100 and writes it to the register block 719. At least the following control registers are written here.
4 ; a control register indicating the start addresses of rectangular areas A0-0, A0-1, A0-2, and A0-3 in the input area 500 set in S408 in Fig. 4; a control register indicating the start addresses of rectangular areas B0-0, B0-1, B0-2, and B0-3 in the output area 503 set in S408; a control register indicating the area size Pl*Bh of the rectangular area based on the size of the rectangular area determined in S405 Next, a flow in which the input/output control circuit unit 700 reads an image processing execution command will be described. When the data input unit 702 of the input/output control circuit unit 700 reads an image processing execution command, it reads the following control registers from the register block 719.
A control register indicating the start addresses of rectangular areas A0-0, A0-1, A0-2, and A0-3 in the input area 500 set in S408 A control register indicating the start addresses of rectangular areas B0-0, B0-1, B0-2, and B0-3 in the output area 503 set in S408 A control register indicating the area size Pl*Bh of the rectangular area based on the size of the rectangular area determined in S405 Then, the data input unit 702 reads out the input image data in predetermined block units from the input area 500 based on the control register setting values, and stores it in the intermediate buffer 703. Next, the data input unit 702 reads out the block data A0-0 to A0-3 stored in the intermediate buffer 703 in units of one pixel, and inputs it to the command generation unit 704. The command generation unit 704 sets the four image data corresponding to A0-0 to A0-3 in the K1 area, K2 area, K3 area, and K4 area of the monochrome image data command 901 to generate the monochrome image data command 901, and inputs it to the command transmission unit 705. As a result, the image data is transmitted to each of the dither circuits 1000a to 1000d of the image processing circuit (P) 715.

次に、画像処理実行回路部701が入出力制御回路部700からモノクロ画像データコマンド901を受信し、並列画像処理を行うフローについて説明する。画像処理回路(1)709は、インターコネクト706を介して、入力ポート707からモノクロ画像データコマンド901を受信する。画像処理回路(1)709はモノクロ画像データコマンド901のK1~K4領域から4個の画素データを取り出して並列画像処理を行い、並列画像処理後の画像データをモノクロ画像データコマンド901のK1~K4領域に格納して出力ポート709に出力する。続いて、画像処理回路(2)712はインターコネクト706を介して、入力ポート710からモノクロ画像データコマンド901を受信する。画像処理回路(2)712はモノクロ画像データコマンド901のK1~K4領域から4個の画素データを取り出して並列画像処理を行い、並列画像処理後の画像データをモノクロ画像データコマンド901のK1~K4領域に格納して出力ポート711に出力する。 Next, the flow of the image processing execution circuit unit 701 receiving the monochrome image data command 901 from the input/output control circuit unit 700 and performing parallel image processing will be described. The image processing circuit (1) 709 receives the monochrome image data command 901 from the input port 707 via the interconnect 706. The image processing circuit (1) 709 extracts four pixel data from the K1 to K4 areas of the monochrome image data command 901 and performs parallel image processing, stores the image data after parallel image processing in the K1 to K4 areas of the monochrome image data command 901, and outputs it to the output port 709. Next, the image processing circuit (2) 712 receives the monochrome image data command 901 from the input port 710 via the interconnect 706. The image processing circuit (2) 712 extracts four pixel data from the K1 to K4 areas of the monochrome image data command 901 and performs parallel image processing, stores the image data after parallel image processing in the K1 to K4 areas of the monochrome image data command 901, and outputs it to the output port 711.

続いて、ディザ回路1000a乃至1000dを有する画像処理回路(P)715は、インターコネクト706を介して、入力ポート713からモノクロ画像データコマンド901を受信する。画像処理回路(P)715は、内部のディザ回路1000a乃至1000dを利用して、モノクロ画像データコマンド901のK1~K4領域から4個の画素データを取り出して並列にディザ処理を行う。その上で、ディザ処理後の画像データをモノクロ画像データコマンド901のK1~K4領域に格納して出力ポート714に出力させる。 Then, the image processing circuit (P) 715 having the dither circuits 1000a to 1000d receives the monochrome image data command 901 from the input port 713 via the interconnect 706. The image processing circuit (P) 715 uses the internal dither circuits 1000a to 1000d to extract four pixel data from the K1 to K4 areas of the monochrome image data command 901 and perform dither processing in parallel. The image data after the dither processing is then stored in the K1 to K4 areas of the monochrome image data command 901 and output to the output port 714.

ここで、ディザ回路部1000である画像処理回路(P)715がモノクロ画像データコマンド901を受信した際の、ディザ回路1000a(4つのうちの1)のフローを、図10を用いて説明する。なお、他のディザ回路1000b乃至1000cも同様である。 Here, the flow of the dither circuit 1000a (one of four) when the image processing circuit (P) 715, which is the dither circuit unit 1000, receives the monochrome image data command 901 will be explained using FIG. 10. The other dither circuits 1000b to 1000c are similar.

まず、ディザ回路部1000aが1個目のモノクロ画像データコマンド901に対してディザ処理するフローについて説明する。コマンド受信部1001はモノクロ画像データコマンド901を受信する。コマンド解析部1002は、モノクロ画像データコマンド901のヘッダ領域に格納されている識別子を解析し、受信したコマンドがモノクロ画像データコマンド901であると解釈する。さらに、コマンド解析部1002は、ヘッダ領域に格納されている別の識別子を解析し、モノクロ画像データコマンド901に設定されている画素データの画素位置が矩形領域A0-0の先頭の画素であると解釈する。その上で、モノクロ画像データコマンド901のK1領域から1個の画素データを取得する。ディザ処理部1006は、閾値データ取得部1008に対してコマンド解析部1002で取得した1個の画素データそれぞれに対応する閾値データの取得を要求する。閾値データ取得部1008は、モノクロ画像データコマンド901に指定される画素データの画素位置を座標形式で管理している。具体的には、図5に示すように矩形領域A0-0の左上を原点とし、左から右に向かう主走査方向をx座標値の大きくなる方向とする。また、上から下に向かう副走査方向を、y座標値の大きくなる方向とする。ここで、モノクロ画像データコマンド901のK1領域に格納される矩形領域A0-0の画素データの画素位置は座標値K1(x1,y1)と表現する。 First, the flow of dither processing of the first monochrome image data command 901 by the dither circuit unit 1000a will be described. The command receiving unit 1001 receives the monochrome image data command 901. The command analyzing unit 1002 analyzes the identifier stored in the header area of the monochrome image data command 901 and interprets that the received command is the monochrome image data command 901. Furthermore, the command analyzing unit 1002 analyzes another identifier stored in the header area and interprets that the pixel position of the pixel data set in the monochrome image data command 901 is the first pixel of the rectangular area A0-0. Then, one pixel data is obtained from the K1 area of the monochrome image data command 901. The dither processing unit 1006 requests the threshold data obtaining unit 1008 to obtain threshold data corresponding to each pixel data obtained by the command analyzing unit 1002. The threshold data obtaining unit 1008 manages the pixel positions of the pixel data specified in the monochrome image data command 901 in a coordinate format. Specifically, as shown in Figure 5, the upper left corner of rectangular area A0-0 is the origin, and the main scanning direction from left to right is the direction in which the x coordinate value increases. Additionally, the sub-scanning direction from top to bottom is the direction in which the y coordinate value increases. Here, the pixel position of the pixel data of rectangular area A0-0 stored in the K1 area of the monochrome image data command 901 is expressed as the coordinate value K1 (x1, y1).

閾値データ取得部1008は、モノクロ画像データコマンド901の画素データが矩形領域A0-0の先頭の画素であることから、座標値K1(x1、y1)を(0,0)に初期化する。次に閾値データ取得部1008は、レジスタブロック1004からS410で書き込んだ閾値テーブル分割ブロック613に対する参照開始位置K1(b)を取得する。ここで、参照開始位置は閾値テーブル分割ブロック613の左上を原点とした閾値テーブルの要素単位の論理アドレスとして表現される。閾値データ取得部1008は、モノクロ画像データコマンド901のK1領域に格納される矩形領域A0-0の座標値K1(x1,y1)に対応した閾値テーブルの論理アドレスK1(p0)を算出する。具体的には、座標値K1(x1,y1)とS401で取得した閾値テーブルの幅Wを用いて、K1(p0)=K1(b)+y1*W+x1として算出する。その上で、閾値データ取得部1008は、閾値テーブルブロック600の論理アドレスK1(p0)に格納されている閾値データK1(q0)を取得する。 Since the pixel data of the monochrome image data command 901 is the first pixel of the rectangular area A0-0, the threshold data acquisition unit 1008 initializes the coordinate value K1 (x1, y1) to (0, 0). Next, the threshold data acquisition unit 1008 acquires the reference start position K1 (b) for the threshold table division block 613 written in S410 from the register block 1004. Here, the reference start position is expressed as an element-by-element logical address of the threshold table with the upper left corner of the threshold table division block 613 as the origin. The threshold data acquisition unit 1008 calculates the logical address K1 (p0) of the threshold table corresponding to the coordinate value K1 (x1, y1) of the rectangular area A0-0 stored in the K1 area of the monochrome image data command 901. Specifically, the calculation is performed as K1 (p0) = K1 (b) + y1 * W + x1 using the coordinate value K1 (x1, y1) and the width W of the threshold table acquired in S401. Then, the threshold data acquisition unit 1008 acquires the threshold data K1(q0) stored at logical address K1(p0) of the threshold table block 600.

続いて、ディザ処理部1006では、閾値データ取得部1008から閾値データK1(q0)を取得する。ディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK1領域に格納されている画素データと閾値データK1(q0)を比較し、二値化する。具体的には、K1領域の画素データが閾値データK1(q0)以上のときドットを打つと判定し、K1領域の画素データが閾値データK1(q0)未満のときドットを打たないと判定して二値化し、出力画素データK1(r0)を生成する。なお、出力画素データは、2値であるので1ビットで十分である。 Next, the dither processing unit 1006 acquires threshold data K1 (q0) from the threshold data acquisition unit 1008. The dither processing unit 1006 compares the pixel data stored in the K1 area of the monochrome image data command 901 acquired by the command analysis unit 1002 with the threshold data K1 (q0) and performs binarization. Specifically, when the pixel data in the K1 area is equal to or greater than the threshold data K1 (q0), it is determined that a dot is to be printed, and when the pixel data in the K1 area is less than the threshold data K1 (q0), it is determined that a dot is not to be printed, and performs binarization to generate output pixel data K1 (r0). Note that the output pixel data is binary, so 1 bit is sufficient.

次に、座標更新部1007は閾値データ取得部1008で管理されている画素データの画素位置を示す座標値K1(x1,y1)を更新する。座標更新部1007は1個目のモノクロ画像データコマンドの画素データを指し示す座標値K1(x1,y1)においてy座標に対して画素位置を一つ下方向にシフトさせる。具体的には、y座標の値に1を加算し、次のモノクロ画像データコマンドに指定される画素データの画素位置をK1(x1,y1+1)に更新する。
次にコマンド生成部1009は、モノクロ画像データコマンド901のK1領域にディザ処理部1006で出力した画素データK1(r0)を設定する。コマンド送信部1010は、コマンド生成部1009で生成したモノクロ画像データコマンド901を出力ポート714に出力する。
次に、ディザ回路1000aが2個目のモノクロ画像データコマンド901に対してディザ処理するフローについて説明する。
Next, the coordinate update unit 1007 updates the coordinate value K1 (x1, y1) indicating the pixel position of the pixel data managed by the threshold data acquisition unit 1008. The coordinate update unit 1007 shifts the pixel position downward by one position with respect to the y coordinate in the coordinate value K1 (x1, y1) indicating the pixel data of the first monochrome image data command. Specifically, the coordinate update unit 1007 adds 1 to the value of the y coordinate, and updates the pixel position of the pixel data specified in the next monochrome image data command to K1 (x1, y1 + 1).
Next, the command generation unit 1009 sets the pixel data K1 (r0) output by the dither processing unit 1006 in the K1 area of the monochrome image data command 901. The command transmission unit 1010 outputs the monochrome image data command 901 generated by the command generation unit 1009 to the output port 714.
Next, a flow of dither processing performed by the dither circuit 1000a on the second monochrome image data command 901 will be described.

コマンド受信部1001はモノクロ画像データコマンド901を受信する。コマンド解析部1002は、モノクロ画像データコマンド901のヘッダ領域に格納されている識別子を解析し、受信したコマンドがモノクロ画像データコマンド901であると解釈する。その上で、モノクロ画像データコマンド901のK1領域の画素データを取得する。ディザ処理部1006は閾値データ取得部1008に対してコマンド解析部1002で取得した画素データに対応する閾値データの取得を要求する。モノクロ画像データコマンド901のK1領域に格納される矩形領域A0-0の画素データの画素位置は、座標値K1(x1,y1+1)である。 The command receiving unit 1001 receives the monochrome image data command 901. The command analyzing unit 1002 analyzes the identifier stored in the header area of the monochrome image data command 901 and interprets that the received command is the monochrome image data command 901. Then, it acquires the pixel data of the K1 area of the monochrome image data command 901. The dither processing unit 1006 requests the threshold data acquisition unit 1008 to acquire threshold data corresponding to the pixel data acquired by the command analyzing unit 1002. The pixel position of the pixel data of the rectangular area A0-0 stored in the K1 area of the monochrome image data command 901 is the coordinate value K1 (x1, y1+1).

閾値データ取得部1008は、座標値K1(x1,y1+1)を取得する。次に閾値データ取得部1008は、レジスタブロック1004からS410で書き込んだ閾値テーブル分割ブロック613に対する参照開始位置K1(b)を取得する。閾値データ取得部1008は、モノクロ画像データコマンド901のK1領域に格納される矩形領域A0-0の座標値K1(x1,y1+1)に対応した閾値テーブルの論理アドレスK1(p1)を算出する。具体的には、座標値K1(x1,y1+1)とS401で取得した閾値テーブルの幅Wを用いて、K1(p1)=K1(b)+(y1+1)*W+x1として算出する。その上で、閾値データ取得部1008は、閾値テーブルブロック600の論理アドレスK1(p1)に格納されている閾値データK1(q1)を取得する。 The threshold data acquisition unit 1008 acquires the coordinate value K1 (x1, y1+1). Next, the threshold data acquisition unit 1008 acquires the reference start position K1 (b) for the threshold table division block 613 written in S410 from the register block 1004. The threshold data acquisition unit 1008 calculates the logical address K1 (p1) of the threshold table corresponding to the coordinate value K1 (x1, y1+1) of the rectangular area A0-0 stored in the K1 area of the monochrome image data command 901. Specifically, using the coordinate value K1 (x1, y1+1) and the width W of the threshold table acquired in S401, the calculation is made as K1 (p1) = K1 (b) + (y1 + 1) * W + x1. Then, the threshold data acquisition unit 1008 acquires the threshold data K1 (q1) stored in the logical address K1 (p1) of the threshold table block 600.

続いて、ディザ処理部1006は、閾値データ取得部1008から閾値データK1(q1)を取得する。ディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK1領域に格納されている画素データと閾値データK1(q1)を比較し、二値化する。具体的には、K1領域の画素データが閾値データK1(q1)以上のときドットを打つと判定し、K1領域の画素データが閾値データK1(q1)未満のときドットを打たないと判定して二値化し、出力画素データK1(r1)を生成する。 The dither processing unit 1006 then acquires threshold data K1 (q1) from the threshold data acquisition unit 1008. The dither processing unit 1006 compares the pixel data stored in the K1 area of the monochrome image data command 901 acquired by the command analysis unit 1002 with the threshold data K1 (q1) and performs binarization. Specifically, when the pixel data in the K1 area is equal to or greater than the threshold data K1 (q1), it is determined that a dot is to be printed, and when the pixel data in the K1 area is less than the threshold data K1 (q1), it is determined that a dot is not to be printed, and performs binarization to generate output pixel data K1 (r1).

次に、座標更新部1007は閾値データ取得部1008で管理されている画素データの画素位置を示す座標値K1(x1,y1+1)を更新する。座標更新部1007は2個目のモノクロ画像データコマンドの画素データを指し示す座標値K1(x1,y1+1)においてy座標に対して画素位置を一つ下方向にシフトさせる。具体的には、y座標の値に1を加算し、次のモノクロ画像データコマンドに指定される画素データの画素位置をK1(x1,y1+2)に更新する。 Next, the coordinate update unit 1007 updates the coordinate value K1 (x1, y1+1) indicating the pixel position of the pixel data managed by the threshold data acquisition unit 1008. The coordinate update unit 1007 shifts the pixel position downward by one position relative to the y coordinate in the coordinate value K1 (x1, y1+1) indicating the pixel data of the second monochrome image data command. Specifically, it adds 1 to the value of the y coordinate and updates the pixel position of the pixel data specified in the next monochrome image data command to K1 (x1, y1+2).

次にコマンド生成部1009は、モノクロ画像データコマンド901のK1領域にディザ処理部1006で出力した画素データK1(r1)を設定する。コマンド送信部1010は、コマンド生成部1009で生成したモノクロ画像データコマンド901を出力ポート714に出力する。 Next, the command generation unit 1009 sets the pixel data K1 (r1) output by the dither processing unit 1006 to the K1 area of the monochrome image data command 901. The command transmission unit 1010 outputs the monochrome image data command 901 generated by the command generation unit 1009 to the output port 714.

以上のようなフローにもとづき、ディザ回路1000aは、3個目以降のモノクロ画像データコマンド901に対してディザ処理を行い、矩形領域の画素数分のディザ処理を繰り返す。 Based on the above flow, the dither circuit 1000a performs dither processing on the third and subsequent monochrome image data commands 901, and repeats dither processing for the number of pixels in the rectangular area.

上記は、ディザ回路1000aの処理であったが、他のディザ回路1000b乃至1000dも同様である。ただし、ディザ回路1000bは矩形領域A0-01のK2領域に格納されている画素データを処理対象とし、コマンド生成部1009は、モノクロ画像データコマンド901のK2領域にディザ処理部1006で出力した画素データK2(ri)(i=0,1,2、…)を設定し、出力ポート714に出力することになる。また、ディザ回路1000cは、矩形領域A0-02のK2領域に格納されている画素データを処理対象とし、コマンド生成部1009は、モノクロ画像データコマンド901のK3領域にディザ処理部1006で出力した画素データK3(ri)(i=0,1,2、…)を設定し、出力ポート714に出力することになる。そして、ディザ回路1000dは矩形領域A0-03のK4領域に格納されている画素データを処理対象とし、コマンド生成部1009は、モノクロ画像データコマンド901のK4領域にディザ処理部1006で出力した画素データK4(ri)(i=0,1,2、…)を設定し、出力ポート714に出力することになる。 The above is the processing of the dither circuit 1000a, but the other dither circuits 1000b to 1000d are similar. However, the dither circuit 1000b processes the pixel data stored in the K2 area of the rectangular area A0-01, and the command generation unit 1009 sets the pixel data K2(ri) (i = 0, 1, 2, ...) output by the dither processing unit 1006 in the K2 area of the monochrome image data command 901 and outputs it to the output port 714. The dither circuit 1000c processes the pixel data stored in the K2 area of the rectangular area A0-02, and the command generation unit 1009 sets the pixel data K3(ri) (i = 0, 1, 2, ...) output by the dither processing unit 1006 in the K3 area of the monochrome image data command 901 and outputs it to the output port 714. The dither circuit 1000d then processes the pixel data stored in the K4 area of the rectangular area A0-03, and the command generation unit 1009 sets the pixel data K4(ri) (i = 0, 1, 2, ...) output by the dither processing unit 1006 in the K4 area of the monochrome image data command 901, and outputs it to the output port 714.

なお、座標更新部1007は、各y座標の値が矩形領域A0-0の下端の画素を指し示す場合、次に処理する画素位置を矩形領域の右の列に1画素シフトし、y座標を矩形領域の上端に戻す制御を行う。具体的には、y=Bh-1の場合、座標値を(x+1,0)として、x座標方向の値を1加算し、y座標方向の値を0に設定する。また、座標更新部1007は、コマンド解析部1002が解析した画素位置に基づき、各y座標の値が矩形領域A0-0の下端の画素を指し示し、かつ、各x座標の値が図6に示す閾値テーブルの長さW-1である場合、座標値を(0,0)に設定する。かかる点は、ディザ回路1000b乃至1000cの座標更新部1007も同様である。 When the value of each y coordinate indicates a pixel at the bottom of the rectangular area A0-0, the coordinate update unit 1007 shifts the pixel position to be processed next by one pixel to the right column of the rectangular area and returns the y coordinate to the top of the rectangular area. Specifically, when y=Bh-1, the coordinate value is set to (x+1,0), the value in the x coordinate direction is added by 1, and the value in the y coordinate direction is set to 0. Furthermore, based on the pixel position analyzed by the command analysis unit 1002, when the value of each y coordinate indicates a pixel at the bottom of the rectangular area A0-0 and the value of each x coordinate is the length W-1 of the threshold table shown in FIG. 6, the coordinate update unit 1007 sets the coordinate value to (0,0). This also applies to the coordinate update units 1007 of the dither circuits 1000b to 1000c.

入出力制御回路部700は、矩形領域B0-0~B0-3の出力が完了すると、CPU100に対して、割込みを上げて入力領域500の並列画像処理が完了したことを通知する。CPU100で動作するソフトウェアは入出力制御回路部700から割込みを受信すると、入力領域501に対する並列画像処理の制御を行い、続いて、入力領域502に対する並列画像処理の制御を行う。 When the input/output control circuit section 700 has completed outputting rectangular areas B0-0 to B0-3, it issues an interrupt to the CPU 100 to notify it that parallel image processing of the input area 500 has been completed. When the software running on the CPU 100 receives the interrupt from the input/output control circuit section 700, it controls the parallel image processing of the input area 501, and then controls the parallel image processing of the input area 502.

以上のようにディザマトリクス等に代表されるマトリクスデータを、処理回路(ディザ回路)が持つ記憶領域のサイズに応じた高さを持つ複数の部分マトリクスデータに分割し、分割した複数の部分マトリクスデータのうち、処理回路の数ぶんの部分マトリクスデータを処理回路に格納する。そして、画像データについても、部分マトリクスデータの高さの矩形領域に分割して、各処理回路で並列処理を実行させることができる。例えば、実施形態の場合には、ディザの閾値テーブルは図6に示すように、幅W×高さDhで示される個数の閾値を有するものであるが、1つのディザ回路1000(1000a乃至1000dのいずれか)に設定するディザ処理用の閾値の個数は、図6の場合、1/12のサイズで良くなる。且つ、幅W×高さDhで示される閾値テーブルを用いたディザ処理と等価の処理が実現できので、ブルーノイズ特性を低下させることなく、処理性能を向上できる。 As described above, matrix data such as dither matrices are divided into a plurality of partial matrix data each having a height according to the size of the storage area of the processing circuit (dither circuit), and the plurality of partial matrix data divided are stored in the processing circuit for the number of processing circuits. Then, image data can also be divided into rectangular areas of the height of the partial matrix data, and parallel processing can be performed in each processing circuit. For example, in the embodiment, the dither threshold table has a number of thresholds indicated by width W x height Dh as shown in FIG. 6, but the number of thresholds for dither processing set in one dither circuit 1000 (any of 1000a to 1000d) can be 1/12 the size in the case of FIG. 6. In addition, since processing equivalent to dither processing using a threshold table indicated by width W x height Dh can be realized, processing performance can be improved without degrading blue noise characteristics.

[第2の実施形態]
以下では、同一の閾値テーブルを参照して並列にディザ処理を行うために、画像領域を閾値テーブルの幅に合わせて主走査方向に沿って分割し、さらに、ディザ回路部の記憶領域を最大限使用するために、分割した画像領域を副走査方向に沿って閾値テーブルの高さで分割して、並列処理する例について説明する。ここで、本第2の実施形態では、第1の実施形態と同様、図1、図2、図3、図8、図9の構成にもとづき、図7、図10、図11、図12、図13を用いて説明する。
Second Embodiment
In the following, an example will be described in which an image area is divided in the main scanning direction according to the width of the threshold table in order to perform dither processing in parallel by referring to the same threshold table, and further, in order to make maximum use of the memory area of the dither circuit section, the divided image area is divided in the sub-scanning direction by the height of the threshold table, and parallel processing is performed. Here, in the second embodiment, as in the first embodiment, the description will be made using Figures 7, 10, 11, 12, and 13 based on the configurations in Figures 1, 2, 3, 8, and 9.

図11は、モノクロの画像領域200を主走査方向に沿って分割し、さらに、分割した各領域に対して副走査方向に沿って矩形領域に分割後、画像処理回路部103に対して複数の矩形領域を並列画像処理するためのレジスタ設定を行うフローチャートである。 Figure 11 is a flowchart showing how a monochrome image area 200 is divided along the main scanning direction, and each divided area is then divided into rectangular areas along the sub-scanning direction, after which register settings are made in the image processing circuit unit 103 to perform parallel image processing on the multiple rectangular areas.

S1100にて、CPU100は、ディザ回路1000の記憶領域に格納する閾値テーブルのサイズS、つまり、ディザ回路部1000の閾値テーブルブロック1300の領域サイズSを取得する。ここで、ディザ回路1000の閾値テーブルブロック1300の領域サイズは、RAM101に格納されている閾値テーブル300の領域サイズよりも小さい。 At S1100, the CPU 100 acquires the size S of the threshold table to be stored in the memory area of the dither circuit 1000, i.e., the area size S of the threshold table block 1300 of the dither circuit unit 1000. Here, the area size of the threshold table block 1300 of the dither circuit 1000 is smaller than the area size of the threshold table 300 stored in the RAM 101.

S1101にて、CPU100は、ディザ回路1000の記憶領域に格納する閾値テーブルの幅Wを取得する。この閾値テーブルの幅Wは画像領域200に対して、閾値テーブル1301、1302、1303を主走査方向に繰り返し適用した場合、ブルーノイズ特性を保つこが可能な所定の長さである。この閾値テーブルの幅Wは、予めROM102に格納されている値としてもよいし、I/F部104を通して外部の装置から取得した値でもよい。 At S1101, the CPU 100 acquires the width W of the threshold table to be stored in the memory area of the dither circuit 1000. The width W of this threshold table is a predetermined length that can maintain the blue noise characteristics when the threshold tables 1301, 1302, and 1303 are repeatedly applied to the image area 200 in the main scanning direction. The width W of this threshold table may be a value that is stored in advance in the ROM 102, or may be a value acquired from an external device via the I/F unit 104.

S1102にて、CPU100は、S1100で取得した閾値テーブルブロック1300の領域サイズSを、S1101で取得した閾値テーブルの幅Wで除算し、ディザ回路部1000の記憶領域に格納する閾値テーブルの高さThを求める。この計算式により、ブルーノイズ特性を保つことが可能な閾値テーブルの大きさを決定できる。 At S1102, the CPU 100 divides the area size S of the threshold table block 1300 obtained at S1100 by the width W of the threshold table obtained at S1101 to obtain the height Th of the threshold table to be stored in the memory area of the dither circuit unit 1000. This formula makes it possible to determine the size of the threshold table that can maintain the blue noise characteristics.

S1103にて、CPU100は、画像領域200を副走査方向に沿って分割するための矩形領域の高さBhを、S1102で計算した閾値テーブルの高さThとする。 In S1103, the CPU 100 sets the height Bh of the rectangular region for dividing the image area 200 along the sub-scanning direction to the height Th in the threshold table calculated in S1102.

S1104にて、CPU100は、画像領域200の画像領域の幅Plと画像領域の高さPhを取得する。 At S1104, the CPU 100 obtains the image area width Pl and image area height Ph of the image area 200.

S1105にて、CPU100は、入出力画像の最大色成分数Dmaxを取得し、並列処理数Vnを4とする。ここで、入出力画像の最大色成分数Dmaxは必ずしも4である必要はなく、2色以上の特定の値としてもよい。 In S1105, the CPU 100 obtains the maximum number of color components Dmax of the input/output images, and sets the number of parallel processes Vn to 4. Here, the maximum number of color components Dmax of the input/output images does not necessarily have to be 4, and may be a specific value of two or more colors.

S1106にて、CPU100は、S1103で決定した矩形領域の高さBhで主走査方向の沿った分割領域に対して、並列画像処理するための各領域の右側に付加するダミー領域の幅Dlを、以下の計算式と条件式により計算する。
・Ple = W * Vn * n (Ple≧Pl、n≧1)
・Dl = Ple - Pl
ここで、図12に示すように、Plは入力の画像領域の幅、Dlはダミー領域の長さ、Pleはダミー領域を含む画像領域の長さである。ここで、ダミー領域は、図7の画像処理回路(1)709で付加される。つまり、図12に示すダミー領域を含む画像領域の長さPleは、画像処理回路(1)709による画像処理後の画像領域の長さである。さらに、WはS1101で取得した閾値テーブルの幅W、VnはS1105で設定した並列処理数、nは並列処理数の繰り返し回数を表す1以上の整数である。ここで、図12とS1106の条件式に示すようにダミー領域を含む画像領域の長さPleはダミー領域を含まない画像領域の長さPl以上であり、CPU100は、この条件式を満たす1以上の最小の整数nを求める。繰り返し回数nを最小化するのはダミー領域の長さを最小化するためである。また、ダミー領域を含む画像領域の長さPleは閾値テーブルの幅Wと並列処理数Vnを乗算した値の倍数の数であり、各並列処理における各矩形領域の数が常にVnとなり、かつ、各矩形領域の幅がWとなるようにダミー領域を含めて補正することを意味する。具体的には、S1107で取得した入出力画像の最大色成分数Dmaxが4、Plは図12に示すように(W*3)<Pl<(W*4)である。具体的には、n(1)とするとPleはW*4となり、Ple≧Plを満たし、ダミー領域の長さDlは図12に示すように(W*4)-Plとなる。ここで、本実施形態では、繰り返し回数nが1の場合について示したが、nが2以上となる場合は、2回目の並列処理で参照する各矩形領域の先頭アドレスもしくはその先頭アドレスを算出するためのオフセット値を制御レジスタに設定する必要がある。
In S1106, the CPU 100 calculates the width Dl of a dummy area to be added to the right side of each area for parallel image processing for the divided area along the main scanning direction with the height Bh of the rectangular area determined in S1103, using the following calculation formula and conditional formula.
・Ple = W * Vn * n (Ple≧Pl, n≧1)
・Dl = Ple - Pl
Here, as shown in FIG. 12, Pl is the width of the input image area, Dl is the length of the dummy area, and Ple is the length of the image area including the dummy area. Here, the dummy area is added by the image processing circuit (1) 709 in FIG. 7. That is, the length Ple of the image area including the dummy area shown in FIG. 12 is the length of the image area after image processing by the image processing circuit (1) 709. Furthermore, W is the width W of the threshold table acquired in S1101, Vn is the number of parallel processes set in S1105, and n is an integer of 1 or more that represents the number of repetitions of the number of parallel processes. Here, as shown in FIG. 12 and the conditional expression in S1106, the length Ple of the image area including the dummy area is equal to or greater than the length Pl of the image area not including the dummy area, and the CPU 100 finds the smallest integer n of 1 or more that satisfies this conditional expression. The reason for minimizing the number of repetitions n is to minimize the length of the dummy area. Also, the length Ple of the image area including the dummy area is a multiple of the value obtained by multiplying the width W of the threshold table by the number of parallel processes Vn, which means that the number of rectangular areas in each parallel process is always Vn, and the dummy area is corrected so that the width of each rectangular area is W. Specifically, the maximum number of color components Dmax of the input/output image acquired in S1107 is 4, and Pl is (W*3)<Pl<(W*4) as shown in FIG. 12. Specifically, when n is (1), Ple becomes W*4, which satisfies Ple≧Pl, and the length Dl of the dummy area becomes (W*4)-Pl as shown in FIG. 12. Here, in this embodiment, the case where the number of repetitions n is 1 is shown, but when n is 2 or more, it is necessary to set the start address of each rectangular area referred to in the second parallel process or an offset value for calculating the start address in the control register.

S1107にて、CPU100は、矩形領域の幅を、S1101で取得した閾値テーブルの幅Wとし、矩形領域の高さをS1103で決定したBhとする。 At S1107, the CPU 100 sets the width of the rectangular area to the width W of the threshold table obtained at S1101, and the height of the rectangular area to Bh determined at S1103.

S1108にて、CPU100は、まず、図12(a)に示すように同一の閾値テーブルを参照して並列にディザ処理するために、閾値テーブルブロック1300に格納可能な閾値テーブルの幅Wに合わせて画像領域を主走査方向に沿って分割する。具体的には、図12(a)に示すように入力領域1200を、C0、C1、C2、C3の4個の領域に分割し、出力領域1204についてもD0、D1、D2、D3の4個の領域に分割する。ここで、領域C0~C4、D0~D4それぞれは、ディザマトリクスの幅の整数倍である。そのため、ここで入力領域1200と出力領域1204は、S1106で補正したダミー領域を含む画像領域の幅Ple、画像領域の高さPhを有する。 In S1108, the CPU 100 first divides the image area along the main scanning direction according to the width W of the threshold table that can be stored in the threshold table block 1300 in order to perform dither processing in parallel by referencing the same threshold table as shown in FIG. 12(a). Specifically, as shown in FIG. 12(a), the input area 1200 is divided into four areas C0, C1, C2, and C3, and the output area 1204 is also divided into four areas D0, D1, D2, and D3. Here, each of the areas C0 to C4 and D0 to D4 is an integer multiple of the width of the dither matrix. Therefore, the input area 1200 and the output area 1204 have the width Ple and height Ph of the image area including the dummy area corrected in S1106.

ここで、本第2の実施形態では、図12に示すように画像領域の高さPhは閾値テーブルブロック1300に格納可能な閾値テーブルの高さThの3倍の高さである。そのため、次に、閾値テーブルブロック1300に格納可能な閾値テーブルの大きさに合わせて図12(a)で分割した各領域を分割する。具体的には、まず、図12(b)に示すように入力領域1200において、領域C0をC0-0、C0-1、C0-2に、領域C1をC1-0、C1-1、C1-2に、領域C2をC2-0、C2-1、C2-2に、領域C3をC3-0、C3-1、C3-2の矩形領域に分割する。 Here, in this second embodiment, as shown in FIG. 12, the height Ph of the image area is three times the height Th of the threshold table that can be stored in the threshold table block 1300. Therefore, next, each area divided in FIG. 12(a) is divided according to the size of the threshold table that can be stored in the threshold table block 1300. Specifically, first, as shown in FIG. 12(b), in the input area 1200, area C0 is divided into rectangular areas C0-0, C0-1, C0-2, area C1 into C1-0, C1-1, C1-2, area C2 into C2-0, C2-1, C2-2, and area C3 into C3-0, C3-1, C3-2.

次に、図12(b)に示すように出力領域1204において、領域D0をD0-0、D0-1、D0-2に、領域D1をD1-0、D1-1、D1-2に、領域D2をD2-0、D2-1、D2-2に、領域D3をD3-0、D3-1、D3-2の矩形領域に分割する。 Next, as shown in FIG. 12(b), in the output area 1204, area D0 is divided into rectangular areas D0-0, D0-1, and D0-2, area D1 is divided into rectangular areas D1-0, D1-1, and D1-2, area D2 is divided into rectangular areas D2-0, D2-1, and D2-2, and area D3 is divided into rectangular areas D3-0, D3-1, and D3-2.

S1109にて、CPU100は、S1106で計算した画像処理機の右側に付加するダミー領域の長さDlを制御レジスタに設定する。 In S1109, the CPU 100 sets the length Dl of the dummy area to be added to the right side of the image processor, calculated in S1106, in the control register.

S1110では、S1108で分割した各矩形領域の先頭アドレスを並列画像処理するように制御レジスタに設定する。具体的には、入力領域1201を入力して出力領域1205を出力するように入力領域1201内と出力領域1205それぞれに対して各矩形領域の先頭アドレスと矩形領域の領域サイズを制御レジスタに設定する。 In S1110, the start address of each rectangular area divided in S1108 is set in a control register so that parallel image processing is performed. Specifically, the start address of each rectangular area and the area size of the rectangular area are set in the control register for the input area 1201 and the output area 1205 so that the input area 1201 is input and the output area 1205 is output.

S1111にて、CPU100は、S1101で取得した閾値テーブルの幅W、S1102で計算した閾値テーブルの高さThに基づいて、閾値テーブル300を画像処理回路部103に分割して転送するための制御レジスタを設定する。具体的には、図13(a)の閾値テーブル300内の閾値テーブル1301をディザ回路部1000の閾値テーブルブロック1300に転送するための各閾値テーブルのアドレスとサイズ、及び各閾値テーブル分割ブロックのアドレスを制御レジスタに設定する。 At S1111, the CPU 100 sets a control register for dividing and transferring the threshold table 300 to the image processing circuit unit 103 based on the width W of the threshold table obtained at S1101 and the height Th of the threshold table calculated at S1102. Specifically, the address and size of each threshold table and the address of each threshold table division block for transferring the threshold table 1301 in the threshold table 300 in FIG. 13(a) to the threshold table block 1300 of the dither circuit unit 1000 are set in the control register.

S1112では、ディザ回路部1000が各矩形領域をディザ処理する際に参照する共通の閾値テーブルブロック1300の参照開始位置として閾値テーブルブロック1300の先頭アドレスを動作レジスタに設定する。具体的には、図12の入力領域1201内の矩形領域に対して、ディザ回路部1000の閾値テーブルブロック1300に閾値テーブル1301を転送するため、図13(b)の入力領域1201に示すように各矩形領域は共通の閾値テーブル1301を参照する。ここで、モノクロ画像データコマンド901のK1領域の画素データに対してディザ処理を行う際は閾値テーブル1301を参照するように動作レジスタに設定する。また、モノクロ画像データコマンド901のK2領域の画素データに対してディザ処理を行う際は閾値テーブル1301を参照するように動作レジスタに設定する。また、モノクロ画像データコマンド901のK3領域の画素データに対してディザ処理を行う際は閾値テーブル1301を参照するように動作レジスタに設定する。モノクロ画像データコマンド901のK4領域の画素データに対してディザ処理を行う際は閾値テーブル1301を参照するように動作レジスタに設定する。 In S1112, the start address of the threshold table block 1300 is set in the operation register as the reference start position of the common threshold table block 1300 that the dither circuit unit 1000 refers to when dithering each rectangular area. Specifically, in order to transfer the threshold table 1301 to the threshold table block 1300 of the dither circuit unit 1000 for the rectangular area in the input area 1201 of FIG. 12, each rectangular area refers to the common threshold table 1301 as shown in the input area 1201 of FIG. 13(b). Here, when dithering pixel data in the K1 area of the monochrome image data command 901, the operation register is set to refer to the threshold table 1301. Also, when dithering pixel data in the K2 area of the monochrome image data command 901, the operation register is set to refer to the threshold table 1301. Also, when dithering pixel data in the K3 area of the monochrome image data command 901, the operation register is set to refer to the threshold table 1301. When performing dithering on pixel data in the K4 region of the monochrome image data command 901, the operation register is set to refer to the threshold table 1301.

画像処理回路部103が閾値テーブル設定値を読み込むフローについては第1の実施形態と同様である。 The flow in which the image processing circuit unit 103 reads the threshold table setting values is the same as in the first embodiment.

画像処理回路部103における、ディザ回路1000a乃至1000dを有する画像処理回路(P)715が動作レジスタ設定値を読み込むフローについても第1の実施形態と同様である。ここで、ディザ回路部1000a乃至1000dに対して、少なくとも図11のS1112で設定した閾値テーブルブロック1300に対する共通の閾値テーブルの参照開始位置を示す動作レジスタコマンド800を設定する。 The flow in which the image processing circuit (P) 715 having the dither circuits 1000a to 1000d in the image processing circuit unit 103 reads the operation register setting value is the same as in the first embodiment. Here, an operation register command 800 is set for the dither circuit units 1000a to 1000d, which indicates the start position of reference to the common threshold table for at least the threshold table block 1300 set in S1112 of FIG. 11.

次に、入出力制御回路部700が制御レジスタ設定値を設定するフローについて説明する。入出力制御回路部700のデータ入力部702は、CPU100が設定する制御レジスタ設定値を読み、レジスタブロック719に書き込む。ここで、少なくとも以下の制御レジスタを書き込む
・図11のS1110で設定した入力領域1201内の矩形領域C0-0、C1-0、C2-0、C3-0の先頭アドレスを示す制御レジスタ
・S1110で設定した出力領域1205内の矩形領域D0-0、D1-0、D2-0、D3-0の先頭アドレスを示す制御レジスタ
・S1107で決定した矩形領域の大きさに基づく矩形領域の領域サイズW*Bhを示す制御レジスタ
次に、入出力制御回路部700が画像処理実行コマンドを読み込むフローについて説明する。入出力制御回路部700のデータ入力部702は、画像処理実行コマンドを読み込むと、レジスタブロック719から図11のS1110でCPU100により設定された制御レジスタを読み込む。その上で、データ入力部702がそれらの制御レジスタ設定値にもとづいて入力領域1201から所定のブロック単位で入力画像データを読み出し、中間バッファ703に格納する。続いて、データ入力部702は、中間バッファ703に格納された矩形領域C0-0~C3-0のブロックデータをそれぞれ1画素単位で読み出し、コマンド生成部704に入力する。コマンド生成部704は、矩形領域C0-0~C3-0に対応する4個の画像データをモノクロ画像データコマンド901のK1領域、K2領域、K3領域、K4領域に設定してモノクロ画像データコマンド901を生成し、コマンド送信部705に入力する。
Next, a flow in which the input/output control circuit unit 700 sets the control register setting value will be described. The data input unit 702 of the input/output control circuit unit 700 reads the control register setting value set by the CPU 100 and writes it to the register block 719. Here, at least the following control registers are written: A control register indicating the start addresses of the rectangular areas C0-0, C1-0, C2-0, and C3-0 in the input area 1201 set in S1110 of FIG. 11; A control register indicating the start addresses of the rectangular areas D0-0, D1-0, D2-0, and D3-0 in the output area 1205 set in S1110; A control register indicating the area size W*Bh of the rectangular area based on the size of the rectangular area determined in S1107. Next, a flow in which the input/output control circuit unit 700 reads the image processing execution command will be described. When the data input unit 702 of the input/output control circuit unit 700 reads the image processing execution command, it reads the control register set by the CPU 100 in S1110 of FIG. 11 from the register block 719. Then, the data input unit 702 reads out the input image data in units of a predetermined block from the input area 1201 based on these control register setting values, and stores the input image data in the intermediate buffer 703. Next, the data input unit 702 reads out the block data of the rectangular areas C0-0 to C3-0 stored in the intermediate buffer 703 in units of one pixel each, and inputs the data to the command generation unit 704. The command generation unit 704 sets the four pieces of image data corresponding to the rectangular areas C0-0 to C3-0 in the K1 area, K2 area, K3 area, and K4 area of the monochrome image data command 901, generates the monochrome image data command 901, and inputs the generated command to the command transmission unit 705.

次に、画像処理実行回路部701が入出力制御回路部700からモノクロ画像データコマンド901を受信し、並列画像処理を行うフローについて説明する。画像処理回路(1)709は、インターコネクト706を介して、入力ポート707からモノクロ画像データコマンド901を受信する。画像処理回路(1)709はモノクロ画像データコマンド901のK1~K4領域から4個の画素データを取り出して並列画像処理を行い、並列画像処理後の画像データをモノクロ画像データコマンド901のK1~K4領域に格納して出力ポート709に出力する。続いて、画像処理回路(2)712はインターコネクト706を介して、入力ポート710からモノクロ画像データコマンド901を受信する。画像処理回路(2)712はモノクロ画像データコマンド901のK1~K4領域から4個の画素データを取り出して並列画像処理を行い、並列画像処理後の画像データをモノクロ画像データコマンド901のK1~K4領域に格納して出力ポート711に出力する。続いて、ディザ回路部1000である画像処理回路(P)715はインターコネクト706を介して、入力ポート713からモノクロ画像データコマンド901を受信する。 Next, the flow of the image processing execution circuit unit 701 receiving the monochrome image data command 901 from the input/output control circuit unit 700 and performing parallel image processing will be described. The image processing circuit (1) 709 receives the monochrome image data command 901 from the input port 707 via the interconnect 706. The image processing circuit (1) 709 extracts four pixel data from the K1 to K4 areas of the monochrome image data command 901 and performs parallel image processing, stores the image data after parallel image processing in the K1 to K4 areas of the monochrome image data command 901, and outputs it to the output port 709. Next, the image processing circuit (2) 712 receives the monochrome image data command 901 from the input port 710 via the interconnect 706. The image processing circuit (2) 712 extracts four pixel data from the K1 to K4 areas of the monochrome image data command 901 and performs parallel image processing, stores the image data after parallel image processing in the K1 to K4 areas of the monochrome image data command 901, and outputs it to the output port 711. Next, the image processing circuit (P) 715, which is the dither circuit unit 1000, receives the monochrome image data command 901 from the input port 713 via the interconnect 706.

画像処理回路(P)715は、モノクロ画像データコマンド901のK1~K4領域から4個の画素データを取り出して、ディザ回路部1000a乃至1000dにより、並列にディザ処理を行う。その上で、ディザ処理後の画像データをモノクロ画像データコマンド901のK1~K4領域に格納して出力ポート714に出力する。 The image processing circuit (P) 715 extracts four pixel data from the K1 to K4 areas of the monochrome image data command 901 and performs dither processing in parallel using the dither circuits 1000a to 1000d. The image data after dither processing is then stored in the K1 to K4 areas of the monochrome image data command 901 and output to the output port 714.

ここで、画像処理回路(P)715のディザ回路1000aが、モノクロ画像データコマンド901を受信した際のフローを、図10を参照して説明する。なお、ディザ回路100b乃至1000cは、領域K2乃至K4(分割領域C1乃至C3)に対する処理を行う点が、異なる。 Here, the flow when the dither circuit 1000a of the image processing circuit (P) 715 receives the monochrome image data command 901 will be described with reference to FIG. 10. Note that the dither circuits 100b to 1000c differ in that they perform processing on areas K2 to K4 (division areas C1 to C3).

ディザ回路部1000aの、1個目のモノクロ画像データコマンド901に対してディザ処理するフローについて説明する。コマンド受信部1001はモノクロ画像データコマンド901を受信する。コマンド解析部1002は、モノクロ画像データコマンド901のヘッダ領域に格納されている識別子を解析し、受信したコマンドがモノクロ画像データコマンド901であると解釈する。さらに、コマンド解析部1002は、ヘッダ領域に格納されている別の識別子を解析し、モノクロ画像データコマンド901に設定されている画素データの画素位置が矩形領域C0-0の先頭の画素であると解釈する。その上で、モノクロ画像データコマンド901のK1領域の画素データを取得する。ディザ処理部1006は閾値データ取得部1008に対してコマンド解析部1002で取得した画素データに対応する閾値データの取得を要求する。閾値データ取得部1008は、モノクロ画像データコマンド901に指定される画素データの画素位置を座標形式で管理している。具体的には、図12に示すように矩形領域C0-0の左上を原点とし、左から右に向かう主走査方向をx座標、上から下に向かう副走査方向をy座標とする。ここで、モノクロ画像データコマンド901のK1領域に格納される矩形領域C0-0の各画素データの画素位置は、共通の座標値K(x,y)と表現する。 The flow of dither processing of the first monochrome image data command 901 by the dither circuit unit 1000a will be described. The command receiving unit 1001 receives the monochrome image data command 901. The command analyzing unit 1002 analyzes the identifier stored in the header area of the monochrome image data command 901 and interprets that the received command is the monochrome image data command 901. Furthermore, the command analyzing unit 1002 analyzes another identifier stored in the header area and interprets that the pixel position of the pixel data set in the monochrome image data command 901 is the first pixel of the rectangular area C0-0. Then, the pixel data of the K1 area of the monochrome image data command 901 is acquired. The dither processing unit 1006 requests the threshold data acquisition unit 1008 to acquire threshold data corresponding to the pixel data acquired by the command analyzing unit 1002. The threshold data acquisition unit 1008 manages the pixel positions of the pixel data specified in the monochrome image data command 901 in coordinate format. Specifically, as shown in Figure 12, the upper left corner of rectangular area C0-0 is the origin, the main scanning direction from left to right is the x coordinate, and the sub-scanning direction from top to bottom is the y coordinate. Here, the pixel position of each pixel data of rectangular area C0-0 stored in the K1 area of the monochrome image data command 901 is expressed as a common coordinate value K(x, y).

閾値データ取得部1008は、モノクロ画像データコマンド901の画素データが矩形領域C0-0の先頭の画素であることから、共通の座標値K(x,y)を(0,0)に初期化する。次に閾値データ取得部1008は、レジスタブロック1004からS1112で書き込んだ閾値テーブルブロック1300の先頭を指し示す共通の参照開始位置K(b)を取得する。ここで、参照開始位置は閾値テーブルブロック1300の左上を原点とした閾値テーブルの要素単位の論理アドレスとして表現される。閾値データ取得部1008は、モノクロ画像データコマンド901のK1領域に格納される矩形領域C0-0の座標値K(x,y)(他のディザ回路と共通)に対応した閾値テーブルの論理アドレスK(p0)を算出する。具体的には、座標値K(x,y)とS1101で取得した閾値テーブルの幅Wを用いて、K(p0)=K(b)+y*W+xとして算出する。その上で、閾値データ取得部1008は、閾値テーブルブロック1300の論理アドレスK(p0)に格納されている閾値データK(q0)を取得する。 Since the pixel data of the monochrome image data command 901 is the first pixel of the rectangular area C0-0, the threshold data acquisition unit 1008 initializes the common coordinate value K(x,y) to (0,0). Next, the threshold data acquisition unit 1008 acquires the common reference start position K(b) indicating the beginning of the threshold table block 1300 written in S1112 from the register block 1004. Here, the reference start position is expressed as an element-by-element logical address of the threshold table with the upper left corner of the threshold table block 1300 as the origin. The threshold data acquisition unit 1008 calculates the logical address K(p0) of the threshold table corresponding to the coordinate value K(x,y) (shared with other dither circuits) of the rectangular area C0-0 stored in the K1 area of the monochrome image data command 901. Specifically, the calculation is performed as K(p0)=K(b)+y*W+x using the coordinate value K(x,y) and the width W of the threshold table acquired in S1101. Then, the threshold data acquisition unit 1008 acquires the threshold data K(q0) stored at logical address K(p0) of the threshold table block 1300.

続いて、ディザ処理部1006は、閾値データ取得部1008から閾値データK(q0)を取得する。ディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK1領域に格納されている画素データと閾値データK(q0)を比較し、二値化する。具体的には、K1領域の画素データが閾値データK(q0)以上のときドットを打つと判定し、K1領域の画素データが閾値データK(q0)未満のときドットを打たないと判定して二値化し、出力画素データK1(r0)を生成する。 The dither processing unit 1006 then acquires threshold data K(q0) from the threshold data acquisition unit 1008. The dither processing unit 1006 compares the pixel data stored in the K1 area of the monochrome image data command 901 acquired by the command analysis unit 1002 with the threshold data K(q0) and performs binarization. Specifically, when the pixel data in the K1 area is equal to or greater than the threshold data K(q0), it is determined that a dot is to be printed, and when the pixel data in the K1 area is less than the threshold data K(q0), it is determined that a dot is not to be printed, and performs binarization to generate output pixel data K1(r0).

なお、ディザ回路1000bのディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK2領域に格納されている画素データと閾値データK(q0)を比較し、二値化する。具体的には、K2領域の画素デーが閾値データK(q0)以上のときドットを打ち、K2領域の画素データが閾値データK(q0)未満のときドットを打たないと判定して二値化し、出力画素データK2(r0)を生成する。 The dither processing unit 1006 of the dither circuit 1000b compares the pixel data stored in the K2 area of the monochrome image data command 901 acquired by the command analysis unit 1002 with the threshold data K(q0) and performs binarization. Specifically, when the pixel data in the K2 area is equal to or greater than the threshold data K(q0), it is determined that a dot is to be printed, and when the pixel data in the K2 area is less than the threshold data K(q0), it is determined that a dot is not to be printed, and binarizes the data to generate the output pixel data K2(r0).

ディザ回路1000cのディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK3領域に格納されている画素データと閾値データK(q0)を比較し、二値化する。具体的には、K3領域の画素デーが閾値データK(q0)以上のときドットを打ち、K3領域の画素データが閾値データK(q0)未満のときドットを打たないと判定して二値化し、出力画素データK3(r0)を生成する。 The dither processing unit 1006 of the dither circuit 1000c compares the pixel data stored in the K3 area of the monochrome image data command 901 acquired by the command analysis unit 1002 with the threshold data K(q0) and performs binarization. Specifically, when the pixel data in the K3 area is equal to or greater than the threshold data K(q0), it is determined that a dot is to be printed, and when the pixel data in the K3 area is less than the threshold data K(q0), it is determined that a dot is not to be printed, and binarizes the data to generate the output pixel data K3(r0).

更にディザ回路1000dのディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK4領域に格納されている画素データと閾値データK(q0)を比較し、二値化する。具体的には、K4領域の画素デーが閾値データK(q0)以上のときドットを打ち、K4領域の画素データが閾値データK(q0)未満のときドットを打たないと判定して二値化し、出力画素データK4(r0)を出力する。 Furthermore, the dither processing unit 1006 of the dither circuit 1000d compares the pixel data stored in the K4 area of the monochrome image data command 901 acquired by the command analysis unit 1002 with the threshold data K(q0) and performs binarization. Specifically, when the pixel data in the K4 area is equal to or greater than the threshold data K(q0), it is determined that a dot is to be printed, and when the pixel data in the K4 area is less than the threshold data K(q0), it is determined that a dot is not to be printed, and binarizes the data, outputting the output pixel data K4(r0).

ディザ回路1000aの説明に戻る。次に、座標更新部1007は閾値データ取得部1008で管理されている画素データの画素位置を示す共通の座標値K(x,y)を更新する。ここで、本実施形態では、矩形領域C0-0の画素を副査方向に上から下に向かって順次画素データを処理する。ただし、画素の走査方向は主走査方向に左から右に向かって順次画像データを並列画像処理する構成としてもよい。 Returning to the explanation of the dither circuit 1000a, the coordinate update unit 1007 then updates the common coordinate value K(x,y) that indicates the pixel position of the pixel data managed by the threshold data acquisition unit 1008. In this embodiment, the pixels in the rectangular area C0-0 are processed sequentially from top to bottom in the sub-scanning direction. However, the pixel scanning direction may be configured to process image data sequentially in parallel from left to right in the main scanning direction.

座標更新部1007は、初期化した共通の座標K(x,y)においてy座標に対して画素位置を一つ下にシフトさせる。具体的には、y座標の値に1を加算し、次のモノクロ画像データコマンドに指定される画素データの画素位置をK1(x,y+1)に更新する。次にコマンド生成部1009は、モノクロ画像データコマンド901のK1領域にディザ処理部1006によるディザ処理結果の画素データK1(r0)を設定する。コマンド送信部1010は、コマンド生成部1009で生成したモノクロ画像データコマンド901を出力ポート714に出力する。 The coordinate update unit 1007 shifts the pixel position downward by one with respect to the y coordinate at the initialized common coordinate K(x,y). Specifically, it adds 1 to the value of the y coordinate and updates the pixel position of the pixel data specified in the next monochrome image data command to K1(x,y+1). Next, the command generation unit 1009 sets the pixel data K1(r0) resulting from the dither processing by the dither processing unit 1006 in the K1 area of the monochrome image data command 901. The command transmission unit 1010 outputs the monochrome image data command 901 generated by the command generation unit 1009 to the output port 714.

次に、ディザ回路部1000aが2個目のモノクロ画像データコマンド901に対してディザ処理するフローについて説明する。コマンド受信部1001はモノクロ画像データコマンド901を受信する。コマンド解析部1002は、モノクロ画像データコマンド901のヘッダ領域に格納されている識別子を解析し、受信したコマンドがモノクロ画像データコマンド901であると解釈する。その上で、モノクロ画像データコマンド901のK1領域から画素データを取得する。ディザ処理部1006は閾値データ取得部1008に対してコマンド解析部1002で取得した画素データに対応する閾値データの取得を要求する。モノクロ画像データコマンド901のK1領域に格納される矩形領域C0-0の画素データの画素位置は、各ディザ回路に共通の座標値K(x,y+1)である。閾値データ取得部1008は、この共通の座標値K(x,y+1)を取得する。次に閾値データ取得部1008は、レジスタブロック1004からS1112で書き込んだ閾値テーブルブロック1300の先頭を指し示す共通の参照開始位置K(b)を取得する。閾値データ取得部1008は、モノクロ画像データコマンド901のK1領域に格納される矩形領域C0-0の共通の座標値K(x,y+1)に対応した閾値テーブルの論理アドレスK(p1)を算出する。具体的には、座標値K(x,y+1)とS1101で取得した閾値テーブルの幅Wを用いて、K(p1)=K(b)+(y+1)*W+xとして算出する。その上で、閾値データ取得部1008は、閾値テーブルブロック1300の論理アドレスK(p1)に格納されている閾値データK(q1)を取得する。 Next, the flow of dither processing by the dither circuit unit 1000a on the second monochrome image data command 901 will be described. The command receiving unit 1001 receives the monochrome image data command 901. The command analyzing unit 1002 analyzes the identifier stored in the header area of the monochrome image data command 901 and interprets that the received command is the monochrome image data command 901. Then, pixel data is obtained from the K1 area of the monochrome image data command 901. The dither processing unit 1006 requests the threshold data obtaining unit 1008 to obtain threshold data corresponding to the pixel data obtained by the command analyzing unit 1002. The pixel position of the pixel data of the rectangular area C0-0 stored in the K1 area of the monochrome image data command 901 is the coordinate value K(x, y+1) common to each dither circuit. The threshold data obtaining unit 1008 obtains this common coordinate value K(x, y+1). Next, the threshold data acquisition unit 1008 acquires from the register block 1004 the common reference start position K(b) that indicates the beginning of the threshold table block 1300 written in S1112. The threshold data acquisition unit 1008 calculates the logical address K(p1) of the threshold table corresponding to the common coordinate value K(x, y+1) of the rectangular area C0-0 stored in the K1 area of the monochrome image data command 901. Specifically, the calculation is performed as K(p1) = K(b) + (y+1) * W + x using the coordinate value K(x, y+1) and the width W of the threshold table acquired in S1101. Then, the threshold data acquisition unit 1008 acquires the threshold data K(q1) stored at the logical address K(p1) of the threshold table block 1300.

続いて、ディザ処理部1006では、閾値データ取得部1008から閾値データK(q1)を取得する。ディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK1領域に格納されている画素データと閾値データK(q1)を比較し、二値化する。具体的には、K1領域の画素デーが閾値データK(q1)以上のときドットを打つと判定し、K1領域の画素データが閾値データK(q1)未満のときドットを打たないと判定することで二値化し、出力画素データK1(r1)を生成する。 Next, the dither processing unit 1006 acquires threshold data K(q1) from the threshold data acquisition unit 1008. The dither processing unit 1006 compares the pixel data stored in the K1 area of the monochrome image data command 901 acquired by the command analysis unit 1002 with the threshold data K(q1) and performs binarization. Specifically, when the pixel data in the K1 area is equal to or greater than the threshold data K(q1), it is determined that a dot is to be printed, and when the pixel data in the K1 area is less than the threshold data K(q1), it is determined that a dot is not to be printed, thereby performing binarization and generating output pixel data K1(r1).

なお、ディザ回路1000bのディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK2領域に格納されている画素データと閾値データK(q1)を比較し、二値化する。具体的には、K2領域の画素デーが閾値データK(q1)以上のときドットを打つと判定し、K2領域の画素データが閾値データK(q1)未満のときドットを打たないと判定して二値化し、出力画素データK2(r1)を生成する。 The dither processing unit 1006 of the dither circuit 1000b compares the pixel data stored in the K2 area of the monochrome image data command 901 acquired by the command analysis unit 1002 with the threshold data K(q1) and performs binarization. Specifically, when the pixel data in the K2 area is equal to or greater than the threshold data K(q1), it determines that a dot is to be printed, and when the pixel data in the K2 area is less than the threshold data K(q1), it determines that a dot is not to be printed, performs binarization, and generates the output pixel data K2(r1).

また、ディザ回路1000cのディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK3領域に格納されている画素データと閾値データK(q1)を比較し、二値化する。具体的には、K3領域の画素デーが閾値データK(q1)以上のときドットを打つと判定し、K3領域の画素データが閾値データK(q1)未満のときドットを打たないと判定して二値化し、出力画素データK3(r1)を生成する。 The dither processing unit 1006 of the dither circuit 1000c compares the pixel data stored in the K3 area of the monochrome image data command 901 acquired by the command analysis unit 1002 with the threshold data K(q1) and performs binarization. Specifically, when the pixel data in the K3 area is equal to or greater than the threshold data K(q1), it determines that a dot is to be printed, and when the pixel data in the K3 area is less than the threshold data K(q1), it determines that a dot is not to be printed, performs binarization, and generates the output pixel data K3(r1).

そして、ディザ回路1000dのディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK4領域に格納されている画素データと閾値データK(q1)を比較し、二値化する。具体的には、K4領域の画素デーが閾値データK(q1)以上のときドットを打つと判定し、K4領域の画素データが閾値データK(q1)未満のときドットを打たないと判定して二値化し、出力画素データK4(r1)を出力する。 The dither processing unit 1006 of the dither circuit 1000d then compares the pixel data stored in the K4 area of the monochrome image data command 901 acquired by the command analysis unit 1002 with the threshold data K(q1) and performs binarization. Specifically, when the pixel data in the K4 area is equal to or greater than the threshold data K(q1), it determines that a dot is to be printed, and when the pixel data in the K4 area is less than the threshold data K(q1), it determines that a dot is not to be printed, performs binarization, and outputs the output pixel data K4(r1).

ディザ回路1000aの説明に戻る。次に、座標更新部1007は、閾値データ取得部1008で管理されている画素データの画素位置を示す共通の座標値K(x,y+1)を更新する。座標更新部1007は2個目のモノクロ画像データコマンドの画素データを指し示す共通の座標K(x,y+1)に対して副走査方向、つまりy座標において画素位置を一つ下にシフトさせる。具体的には、y座標の値に1を加算し、次のモノクロ画像データコマンドに指定される画素データの画素位置をK(x,y+2)に更新する。これは、他のディザ回路1000aにおける画素位置の更新でも同じである。 Returning to the explanation of the dither circuit 1000a, the coordinate update unit 1007 then updates the common coordinate value K(x, y+1) that indicates the pixel position of the pixel data managed by the threshold data acquisition unit 1008. The coordinate update unit 1007 shifts the pixel position down by one in the sub-scanning direction, i.e., in the y coordinate, with respect to the common coordinate K(x, y+1) that indicates the pixel data of the second monochrome image data command. Specifically, it adds 1 to the y coordinate value, and updates the pixel position of the pixel data specified in the next monochrome image data command to K(x, y+2). This is the same as updating the pixel positions in the other dither circuits 1000a.

コマンド送信部1010は、コマンド生成部1009で生成したモノクロ画像データコマンド901を出力ポート714に出力する。 The command sending unit 1010 outputs the monochrome image data command 901 generated by the command generating unit 1009 to the output port 714.

以上のようなフローにもとづき、ディザ回路部1000は3個目以降のモノクロ画像データコマンド901に対してディザ処理を行い、矩形領域の画素数分のディザ処理を繰り返す。ここで、各ディザ回路の座標更新部1007は、各y座標の値が矩形領域の下端の画素を指し示す場合、次に処理する画素位置として、x座標を矩形領域の右の列に1画素シフトし、y座標を矩形領域の上端に戻す制御を行う。具体的には、座標更新部1007は、y=Bh-1の場合、座標値を(x+1,0)として、x座標方向の値を1加算し、y座標方向の値を0に設定する。また、座標更新部1007は、コマンド解析部1002が解析した画素位置に基づき、各y座標の値が矩形領域C0-0~C3-0の下端の画素を指し示し、かつ、各x座標の値が図13に示す閾値テーブルの長さW-1である場合、座標値を(0,0)に設定する。 Based on the above flow, the dither circuit unit 1000 performs dither processing on the third and subsequent monochrome image data commands 901, and repeats dither processing for the number of pixels in the rectangular area. Here, when the value of each y coordinate indicates a pixel at the bottom of the rectangular area, the coordinate update unit 1007 of each dither circuit shifts the x coordinate by one pixel to the right column of the rectangular area as the pixel position to be processed next, and controls the y coordinate to return to the top of the rectangular area. Specifically, when y=Bh-1, the coordinate update unit 1007 sets the coordinate value to (x+1,0), adds 1 to the value in the x coordinate direction, and sets the value in the y coordinate direction to 0. Furthermore, based on the pixel position analyzed by the command analysis unit 1002, when the value of each y coordinate indicates a pixel at the bottom of the rectangular area C0-0 to C3-0 and the value of each x coordinate is the length W-1 of the threshold table shown in FIG. 13, the coordinate update unit 1007 sets the coordinate value to (0,0).

各ディザ回路の入出力制御回路部700は、矩形領域D0-0~D3-0の出力が完了すると、CPU100に対して割込みを上げて入力領域1201の並列画像処理が完了したことを通知する。CPU100で動作するソフトウェアは入出力制御回路部700から割込みを受信すると、入力領域1202に対する並列画像処理の制御を行い、続いて、入力領域1203に対する並列画像処理の制御を行う。 When the input/output control circuit unit 700 of each dither circuit completes output of rectangular areas D0-0 to D3-0, it issues an interrupt to the CPU 100 to notify it that parallel image processing of input area 1201 is complete. When the software running on the CPU 100 receives the interrupt from the input/output control circuit unit 700, it controls the parallel image processing of input area 1202, and then controls the parallel image processing of input area 1203.

以上ように、画像領域をディザ回路部の閾値テーブルブロックが表現可能な最大の閾値テーブルの大きさに分割して並列画像処理することで、各矩形領域のディザ処理において、画像領域の副走査方向に対する画素位置に対応した閾値テーブルを参照することができる。それにより、画像領域と対応した閾値テーブルの持つブルーノイズ特性を低下させることなく、処理性能を向上できる。さらに、各矩形領域のディザ処理において参照する閾値テーブルを単一にすることができ、ディザ回路の閾値テーブルブロックへのアクセス回路を1個で構成できる。 As described above, by dividing the image area into the maximum threshold table size that the threshold table block of the dither circuit section can represent and performing parallel image processing, the threshold table corresponding to the pixel position in the sub-scanning direction of the image area can be referenced in the dither processing of each rectangular area. This makes it possible to improve processing performance without degrading the blue noise characteristics of the threshold table corresponding to the image area. Furthermore, it is possible to reference a single threshold table in the dither processing of each rectangular area, and a single access circuit can be configured for the threshold table block of the dither circuit.

また、上述の実施形態では、4つの矩形領域に対する並列画像処理について説明した。しかしながら、2個以上の入力矩形領域に対する並列画像処理として実現してもよい。 In the above embodiment, parallel image processing for four rectangular regions has been described. However, parallel image processing for two or more input rectangular regions may also be implemented.

また、上述の実施形態では、モノクロの画像領域を矩形領域に分割して並列画像処理する例について説明した。しかしながら、必ずしも入力の画像領域がモノクロである必要はなく、入力の画像領域がカラーであってもよい。具体的には、第1の実施形態の手法を用いてCMYK4色の面順次の画像領域に関して、1個以上のCの矩形領域、1個以上のMの矩形領域、1個以上のYの矩形領域、1個以上のKの矩形領域に対する並列画像処理として実現してもよい。 In the above embodiment, an example was described in which a monochrome image area is divided into rectangular areas and parallel image processing is performed. However, the input image area does not necessarily have to be monochrome, and the input image area may be colored. Specifically, the method of the first embodiment may be used to realize parallel image processing of one or more C rectangular areas, one or more M rectangular areas, one or more Y rectangular areas, and one or more K rectangular areas for a frame-sequential image area of four colors CMYK.

また、上述の実施形態では、入力の画像領域のサイズと出力の画像領域のサイズが同じで、入力の画像領域に対する並列処理数Vnと出力の画像領域に対する並列処理数Vnが等しい場合について説明した。しかしながら、入力の画像領域のサイズと出力の画像領域のサイズが異なり、入力の画像領域に対する並列処理数Vnと出力の画像領域に対する並列処理数Vnが異なる並列画像処理として実現してもよい。 In the above embodiment, the size of the input image area and the size of the output image area are the same, and the number of parallel processes Vn for the input image area and the number of parallel processes Vn for the output image area are equal. However, parallel image processing may be realized in which the size of the input image area and the size of the output image area are different, and the number of parallel processes Vn for the input image area and the number of parallel processes Vn for the output image area are different.

また、上述の実施形態では、入力画像の色成分数と出力画像の色成分数が同じ場合の例について説明した。しかしながら、RGBの3色成分の入力画像に対して画像処理を行い、CMYKの4色成分の出力画像を出力する場合など、入力画像と出力画像の色数が異なってもよい。 In the above embodiment, an example was described in which the number of color components in the input image is the same as the number of color components in the output image. However, the number of colors in the input image and the output image may differ, such as when image processing is performed on an input image with three RGB color components and an output image with four CMYK color components is output.

また、上述の実施形態では、モノクロ画像をディザ処理するための単一の閾値テーブルを参照する場合について説明した。しかしながら、カラー画像をディザ処理するために各色に対応した複数の異なる閾値テーブルを参照する構成としてもよい。 In the above embodiment, a single threshold table is referenced to dither a monochrome image. However, a configuration in which multiple different threshold tables corresponding to different colors are referenced to dither a color image may also be used.

以上説明したように、第1、第2の実施形態によれば、画像処理回路の閾値テーブルを格納する記憶領域の容量に応じて画像領域を矩形領域に分割して並列画像処理を行うことにより、画像領域と対応した閾値テーブルの持つブルーノイズ特性を低下させることなく、処理性能を向上できる。 As described above, according to the first and second embodiments, the image area is divided into rectangular areas according to the capacity of the memory area that stores the threshold table of the image processing circuit, and parallel image processing is performed, thereby improving processing performance without degrading the blue noise characteristics of the threshold table corresponding to the image area.

なお、上記実施形態では、マトリクスデータを用いる処理としてディザ処理を例にして説明したが、マトリクスデータを参照して処理するのであれば適用できるので、ディザ処理に限定されるものではない。 In the above embodiment, dither processing is used as an example of processing that uses matrix data, but the processing is not limited to dither processing, and can be applied as long as the processing refers to matrix data.

(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
Other Examples
The present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-described embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., ASIC) that implements one or more of the functions.

発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。 The invention is not limited to the above-described embodiment, and various modifications and variations are possible without departing from the spirit and scope of the invention. Therefore, the following claims are appended to disclose the scope of the invention.

100…CPU、101…RAM、102…102 ROM、103…画像処理回路部、104…I/F部、105…バス 100...CPU, 101...RAM, 102...102 ROM, 103...image processing circuit section, 104...I/F section, 105...bus

Claims (7)

画像データを、行列状に配置された複数の設定値で構成されるマトリクスデータに基づいて画像処理する画像処理装置であって、
複数の処理回路であって、それぞれが、内部に前記設定値を格納するための記憶領域を有し、当該記憶領域に設定された設定値と入力した画像データとに基づく画像処理を行う複数の処理回路と、
利用するマトリクスデータのサイズと前記記憶領域のサイズに基づき、前記マトリクスデータを分割した場合の部分領域のサイズを決定する決定手段と、
該決定手段で決定した部分領域の設定値を、前記複数の処理回路に設定する設定手段と、
前記画像データを、前記部分領域のサイズに基づく複数の部分画像データに分割する分割手段と、
前記複数の処理回路を制御し、それぞれに前記分割手段で分割した部分画像データに対する処理を実行させる制御手段と、
を有することを特徴とする画像処理装置。
An image processing device that processes image data based on matrix data composed of a plurality of setting values arranged in a matrix,
a plurality of processing circuits, each of which has a memory area for storing the setting values therein and performs image processing based on the setting values set in the memory area and input image data;
a determining means for determining a size of a partial area when the matrix data is divided based on a size of the matrix data to be used and a size of the storage area;
a setting means for setting the partial region setting values determined by the determining means to the plurality of processing circuits;
A dividing means for dividing the image data into a plurality of partial image data based on the size of the partial region;
a control means for controlling the plurality of processing circuits to cause each of the processing circuits to execute processing on the partial image data divided by the dividing means;
13. An image processing device comprising:
前記決定手段は、
前記画像データを副走査方向に沿って、前記マトリクスデータのサイズと前記記憶領域に格納できるマトリクスに基づいて求めた高さを持つ複数の矩形領域に分割し、
前記設定手段は、
前記マトリクスデータを、副走査方向に沿って、前記矩形領域の高さを持つ部分マトリクスデータに分割し、分割して得られた各部分マトリクスデータのうち、前記処理回路の数ぶんの部分マトリクスデータを、該当する処理回路の記憶領域に設定する
ことを特徴とする請求項1に記載の画像処理装置。
The determining means is
Dividing the image data along a sub-scanning direction into a plurality of rectangular regions each having a height determined based on the size of the matrix data and the matrix that can be stored in the storage area;
The setting means is
2. The image processing device according to claim 1, further comprising: dividing the matrix data into partial matrix data having the height of the rectangular area along the sub-scanning direction; and setting, of the partial matrix data obtained by the division, partial matrix data corresponding to the number of the processing circuits in the memory area of the corresponding processing circuit.
前記決定手段は、
前記画像データを主走査方向に沿って、前記マトリクスデータのサイズと前記記憶領域に格納できるマトリクスに基づいて求めた幅を有し、前記処理回路の数ぶんの矩形領域に分割し、
前記設定手段は、
前記マトリクスデータの、前記矩形領域の高さを持つ共通の部分マトリクスデータを、前記処理回路それぞれの記憶領域に設定する
ことを特徴とする請求項2に記載の画像処理装置。
The determining means is
Dividing the image data into rectangular regions along a main scanning direction, the rectangular regions having widths determined based on the size of the matrix data and the matrix that can be stored in the storage area, and the number of the rectangular regions being equal to the number of the processing circuits;
The setting means is
3. The image processing apparatus according to claim 2, wherein common partial matrix data having the height of the rectangular area of the matrix data is set in a storage area of each of the processing circuits.
前記決定手段は、前記矩形領域の幅が、前記マトリクスデータの幅の整数倍となるように、ダミー領域を処理対象の画像データに付加することを特徴とする請求項3に記載の画像処理装置。 The image processing device according to claim 3, characterized in that the determining means adds a dummy area to the image data to be processed so that the width of the rectangular area is an integer multiple of the width of the matrix data. 前記複数の処理回路それぞれは、前記記憶領域に記憶された設定値を閾値として用いて、画像データのディザ処理を実行する回路であることを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。 The image processing device according to any one of claims 1 to 4, characterized in that each of the plurality of processing circuits is a circuit that performs dither processing of image data using a setting value stored in the storage area as a threshold value. 複数の処理回路であって、それぞれが、内部に設定値を格納するための記憶領域を有し、当該記憶領域に設定された設定値と入力した画像データとに基づく画像処理を行う複数の処理回路を有し、当該複数の処理回路を利用して、画像データを、行列状に配置された複数の設定値で構成されるマトリクスデータに基づいて画像処理する画像処理装置の制御方法であって、
利用するマトリクスデータのサイズと前記記憶領域のサイズに基づき、前記マトリクスデータを分割した場合の部分領域のサイズを決定する決定工程と、
該決定工程で決定した部分領域の設定値を、前記複数の処理回路に設定する設定工程と、
前記画像データを、前記部分領域のサイズに基づく複数の部分画像データに分割する分割工程と、
前記複数の処理回路を制御し、それぞれに前記分割工程で分割した部分画像データに対する処理を実行させる制御工程と、
を有することを特徴とする画像処理装置の制御方法。
A control method for an image processing device having a plurality of processing circuits, each having a memory area for storing a setting value therein, and performing image processing based on the setting value set in the memory area and input image data, the method utilizing the plurality of processing circuits to process image data based on matrix data composed of a plurality of setting values arranged in a matrix, comprising:
a determining step of determining a size of a partial area when the matrix data is divided based on a size of the matrix data to be used and a size of the storage area;
a setting step of setting the partial region setting values determined in the determining step in the plurality of processing circuits;
A dividing step of dividing the image data into a plurality of partial image data based on the sizes of the partial regions;
a control step of controlling the plurality of processing circuits to cause each of the processing circuits to execute processing on the partial image data divided in the dividing step;
13. A method for controlling an image processing apparatus comprising the steps of:
コンピュータが読み込み実行することで、前記コンピュータに、請求項6に記載の方法が有する各工程を実行させるためのプログラム。 A program that, when read and executed by a computer, causes the computer to execute each step of the method according to claim 6.
JP2020218946A 2020-12-28 2020-12-28 Image processing device, control method and program thereof Active JP7614840B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020218946A JP7614840B2 (en) 2020-12-28 2020-12-28 Image processing device, control method and program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020218946A JP7614840B2 (en) 2020-12-28 2020-12-28 Image processing device, control method and program thereof

Publications (2)

Publication Number Publication Date
JP2022103993A JP2022103993A (en) 2022-07-08
JP7614840B2 true JP7614840B2 (en) 2025-01-16

Family

ID=82279702

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020218946A Active JP7614840B2 (en) 2020-12-28 2020-12-28 Image processing device, control method and program thereof

Country Status (1)

Country Link
JP (1) JP7614840B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004222035A (en) 2003-01-16 2004-08-05 Oki Data Corp Image processing method and apparatus
JP2005094403A (en) 2003-09-18 2005-04-07 Fuji Xerox Co Ltd Image processor
JP2007194955A (en) 2006-01-19 2007-08-02 Ricoh Co Ltd Image processing device
JP2011087099A (en) 2009-10-15 2011-04-28 Seiko Epson Corp Image processing apparatus, image processing module, and dither mask control method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004222035A (en) 2003-01-16 2004-08-05 Oki Data Corp Image processing method and apparatus
JP2005094403A (en) 2003-09-18 2005-04-07 Fuji Xerox Co Ltd Image processor
JP2007194955A (en) 2006-01-19 2007-08-02 Ricoh Co Ltd Image processing device
JP2011087099A (en) 2009-10-15 2011-04-28 Seiko Epson Corp Image processing apparatus, image processing module, and dither mask control method

Also Published As

Publication number Publication date
JP2022103993A (en) 2022-07-08

Similar Documents

Publication Publication Date Title
KR101095636B1 (en) Method and apparatus for converting from source color space to target color space
JPH08331372A (en) Method for performing nonintegral resolution change of imagesignal
JP7811607B2 (en) Method and apparatus for rendering color images
US20150339546A1 (en) Data transfer apparatus and method thereof
US7991208B2 (en) Method and device for processing image
JP4898342B2 (en) Color conversion method and color conversion system
JP7614840B2 (en) Image processing device, control method and program thereof
JP5641822B2 (en) Image processing apparatus and method
JP2007049711A (en) Color transformation method and color transformation system
JP4156194B2 (en) Method for converting first resolution raster digital data to second resolution digital data
US6603573B1 (en) Constrained digital halftoning
US10635955B1 (en) Image forming method, apparatus, and program separating addresses for storing color tone data by shifting the relative address using an offset address
US8390895B2 (en) Color conversions in the real domain
KR102781162B1 (en) Electronic apparatus for real-time 2-dimensional image transformation of digital images and transformation method therefor
JP2001008043A (en) Signal processing device and signal processing method
JP3467753B2 (en) Image processing system, image processing method, and medium recording image processing module
JP3815514B2 (en) High-speed pixel interpolation method and image processing apparatus for enlarged image
JP4595796B2 (en) Color conversion using color conversion table
JP2018207258A (en) Image processing apparatus and program
JP4863846B2 (en) Color image forming apparatus and color image processing apparatus
JP2005167503A (en) Image processing apparatus and image forming apparatus having the same
JP5826147B2 (en) Image forming apparatus
JPH0454069A (en) Shading correction circuit
JP2009177284A (en) How to reconstruct the color conversion table
JPH0468867A (en) Power varying circuit

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210316

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241015

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20241227

R150 Certificate of patent or registration of utility model

Ref document number: 7614840

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150