JP7614840B2 - Image processing device, control method and program thereof - Google Patents
Image processing device, control method and program thereof Download PDFInfo
- 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
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.
特許文献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.
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。 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
上記構成において、実施形態の装置は、例えば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/
図2は、本実施形態に係わる画像領域を示す図である。画像領域200の大きさは、画像領域の幅Pl、画像領域の高さPhと表す(単位は画素の数とする)。本実施形態では処理対象の入力画像を格納する画像領域200と、処理済みの出力画像を格納する画像領域200それぞれが、予めRAM101に確保されている。ここで、入力画像に対して拡大処理や縮小処理を行うために入力画像を格納する画像領域と出力画像を格納する画像領域の大きさが異なる構成としてもよい。
Figure 2 is a diagram showing an image area according to this embodiment. The size of the
図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
また、この閾値テーブル全体は、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
図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
S400にて、CPU100は、ディザ回路1000が有する記憶領域に格納する閾値テーブルのサイズS、つまり、ディザ回路1000の閾値テーブルブロック600の領域サイズSを取得する。ここで、ディザ回路1000の閾値テーブルブロック600の領域サイズは、RAM101に格納されている、これから利用しようとしている閾値テーブル300の領域サイズよりも小さいとする。
At S400, the
S401にて、CPU100は、ディザ回路部1000の記憶領域に格納する閾値テーブルの幅Wを取得する。この閾値テーブルの幅Wは画像領域200に対して、閾値テーブル601、602、603、604を主走査方向に繰り返し適用した場合、ブルーノイズ特性を保つこが可能な所定の長さである。ここで、この閾値テーブルの幅Wは、予めROM102に格納されている値としてもよいし、I/F部104を通して外部の装置から取得した値でもよい。
At S401, the
S402にて、CPU100は、S400にて取得した閾値テーブルブロック600の領域サイズSを、S401で取得した閾値テーブルの幅Wで除算することで、ディザ回路部1000の記憶領域に格納する閾値テーブルの高さThを求める。この計算式により、ブルーノイズ特性を保つことが可能な閾値テーブルの大きさを決定できる。
At S402, the
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
S404にて、CPU100は、S402で決定した閾値テーブルの高さThを持つ画像領域200を矩形領域に分割して並列処理するために、矩形領域の高さBhを求める。具体的には、CPU100は、S402で計算した閾値テーブルの高さThを、画像処理回路103が同時に処理可能な色数、つまり、S403で取得した入出力画像の最大色成分数Dmaxで除算し、矩形領域の高さBhを求める。
In S404, the
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
S406にて、CPU100は、入出力画像の最大色成分数Dmax(実施形態では“4”)を取得したことを受けて、並列処理数Vnを4とする。ここで入出力画像の最大色成分数Dmaxは必ずしも4色である必要はなく、2色以上の特定の値としてもよい。
In S406, the
S407にて、CPU100は、S405で分割した矩形領域を、S406で取得した並列処理数Vn(=4)に基づいて、入力の矩形領域を入力領域500、501、502に、出力の矩形領域を出力領域503、504、505にグループ化する。
At S407, the
S408にて、CPU100は、S405で分割した各矩形領域の先頭アドレスを、S407でグループ化した単位で上から順に並列画像処理するように、ディザ回路1000a乃至1000d内の制御レジスタに設定する。具体的には、入力領域500を入力して出力領域503を出力するように入力領域500と出力領域503それぞれに対して各矩形領域の先頭アドレスと矩形領域の領域サイズを、ディザ回路1000a乃至1000dそれぞれの制御レジスタに設定する。ここで、入力領域500内の各矩形領域の先頭アドレスを制御レジスタに設定し、入力領域501と入力領域502内の各矩形領域の先頭アドレス情報として、入力領域500の各矩形領域の先頭アドレスからのオフセット値を制御レジスタに設定してもよい。
In S408, the
S409にて、CPU100は、図6(a)に示す閾値テーブル300内の分割した閾値テーブルを、画像処理回路部103に転送するための制御レジスタを設定する。具体的には、CPU100は、転送元である閾値テーブル601、602、603、604のアドレスとサイズを制御レジスタに設定する。さらに、CPU100は、転送先であるディザ回路部1000の閾値テーブル分割ブロック613、614、615、616のアドレスを制御レジスタに設定する。
In S409, the
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
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
次に画像処理回路部103が図4のフローチャートに基づきCPU100により設定された図7に示す閾値テーブル設定値、動作レジスタ設定値、制御レジスタ設定値、画像処理実行コマンド、入力画像データを受信し、並列画像処理を行うフローについて図7乃至10を参照して説明する。
Next, the flow of the image
まず、画像処理回路部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
本実施形態では、画像処理回路(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
ここで、入出力制御回路部700と画像処理実行回路部701との間で送受信されるコマンドのフォーマットについて図8と図9を用いて説明する。
Here, the format of commands sent and received between the input/output
図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
図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
次に、画像処理回路部103が閾値テーブル設定値を読み込むフローについて説明する。
Next, we will explain the flow in which the image
入出力制御回路部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
ここで、ディザ回路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
次に、画像処理回路部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
ここで、ディザ回路部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
続いて、画像処理回路(1)709、画像処理回路(2)712に対する動作レジスタコマンド800についても同様のフローで各画像処理回路内のレジスタブロックに動作レジスタ設定値を設定する。
Next, the
次に、入出力制御回路部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
4 ; a control register indicating the start addresses of rectangular areas A0-0, A0-1, A0-2, and A0-3 in the
A control register indicating the start addresses of rectangular areas A0-0, A0-1, A0-2, and A0-3 in the
次に、画像処理実行回路部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
続いて、ディザ回路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
ここで、ディザ回路部1000である画像処理回路(P)715がモノクロ画像データコマンド901を受信した際の、ディザ回路1000a(4つのうちの1)のフローを、図10を用いて説明する。なお、他のディザ回路1000b乃至1000cも同様である。
Here, the flow of the
まず、ディザ回路部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
閾値データ取得部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
続いて、ディザ処理部1006では、閾値データ取得部1008から閾値データK1(q0)を取得する。ディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK1領域に格納されている画素データと閾値データK1(q0)を比較し、二値化する。具体的には、K1領域の画素データが閾値データK1(q0)以上のときドットを打つと判定し、K1領域の画素データが閾値データK1(q0)未満のときドットを打たないと判定して二値化し、出力画素データK1(r0)を生成する。なお、出力画素データは、2値であるので1ビットで十分である。
Next, the
次に、座標更新部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
Next, the
Next, a flow of dither processing performed by the
コマンド受信部1001はモノクロ画像データコマンド901を受信する。コマンド解析部1002は、モノクロ画像データコマンド901のヘッダ領域に格納されている識別子を解析し、受信したコマンドがモノクロ画像データコマンド901であると解釈する。その上で、モノクロ画像データコマンド901のK1領域の画素データを取得する。ディザ処理部1006は閾値データ取得部1008に対してコマンド解析部1002で取得した画素データに対応する閾値データの取得を要求する。モノクロ画像データコマンド901のK1領域に格納される矩形領域A0-0の画素データの画素位置は、座標値K1(x1,y1+1)である。
The
閾値データ取得部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
続いて、ディザ処理部1006は、閾値データ取得部1008から閾値データK1(q1)を取得する。ディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK1領域に格納されている画素データと閾値データK1(q1)を比較し、二値化する。具体的には、K1領域の画素データが閾値データK1(q1)以上のときドットを打つと判定し、K1領域の画素データが閾値データK1(q1)未満のときドットを打たないと判定して二値化し、出力画素データK1(r1)を生成する。
The
次に、座標更新部1007は閾値データ取得部1008で管理されている画素データの画素位置を示す座標値K1(x1,y1+1)を更新する。座標更新部1007は2個目のモノクロ画像データコマンドの画素データを指し示す座標値K1(x1,y1+1)においてy座標に対して画素位置を一つ下方向にシフトさせる。具体的には、y座標の値に1を加算し、次のモノクロ画像データコマンドに指定される画素データの画素位置をK1(x1,y1+2)に更新する。
Next, the coordinate
次にコマンド生成部1009は、モノクロ画像データコマンド901のK1領域にディザ処理部1006で出力した画素データK1(r1)を設定する。コマンド送信部1010は、コマンド生成部1009で生成したモノクロ画像データコマンド901を出力ポート714に出力する。
Next, the
以上のようなフローにもとづき、ディザ回路1000aは、3個目以降のモノクロ画像データコマンド901に対してディザ処理を行い、矩形領域の画素数分のディザ処理を繰り返す。
Based on the above flow, the
上記は、ディザ回路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
なお、座標更新部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
入出力制御回路部700は、矩形領域B0-0~B0-3の出力が完了すると、CPU100に対して、割込みを上げて入力領域500の並列画像処理が完了したことを通知する。CPU100で動作するソフトウェアは入出力制御回路部700から割込みを受信すると、入力領域501に対する並列画像処理の制御を行い、続いて、入力領域502に対する並列画像処理の制御を行う。
When the input/output
以上のようにディザマトリクス等に代表されるマトリクスデータを、処理回路(ディザ回路)が持つ記憶領域のサイズに応じた高さを持つ複数の部分マトリクスデータに分割し、分割した複数の部分マトリクスデータのうち、処理回路の数ぶんの部分マトリクスデータを処理回路に格納する。そして、画像データについても、部分マトリクスデータの高さの矩形領域に分割して、各処理回路で並列処理を実行させることができる。例えば、実施形態の場合には、ディザの閾値テーブルは図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
S1100にて、CPU100は、ディザ回路1000の記憶領域に格納する閾値テーブルのサイズS、つまり、ディザ回路部1000の閾値テーブルブロック1300の領域サイズSを取得する。ここで、ディザ回路1000の閾値テーブルブロック1300の領域サイズは、RAM101に格納されている閾値テーブル300の領域サイズよりも小さい。
At S1100, the
S1101にて、CPU100は、ディザ回路1000の記憶領域に格納する閾値テーブルの幅Wを取得する。この閾値テーブルの幅Wは画像領域200に対して、閾値テーブル1301、1302、1303を主走査方向に繰り返し適用した場合、ブルーノイズ特性を保つこが可能な所定の長さである。この閾値テーブルの幅Wは、予めROM102に格納されている値としてもよいし、I/F部104を通して外部の装置から取得した値でもよい。
At S1101, the
S1102にて、CPU100は、S1100で取得した閾値テーブルブロック1300の領域サイズSを、S1101で取得した閾値テーブルの幅Wで除算し、ディザ回路部1000の記憶領域に格納する閾値テーブルの高さThを求める。この計算式により、ブルーノイズ特性を保つことが可能な閾値テーブルの大きさを決定できる。
At S1102, the
S1103にて、CPU100は、画像領域200を副走査方向に沿って分割するための矩形領域の高さBhを、S1102で計算した閾値テーブルの高さThとする。
In S1103, the
S1104にて、CPU100は、画像領域200の画像領域の幅Plと画像領域の高さPhを取得する。
At S1104, the
S1105にて、CPU100は、入出力画像の最大色成分数Dmaxを取得し、並列処理数Vnを4とする。ここで、入出力画像の最大色成分数Dmaxは必ずしも4である必要はなく、2色以上の特定の値としてもよい。
In S1105, the
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
・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
S1107にて、CPU100は、矩形領域の幅を、S1101で取得した閾値テーブルの幅Wとし、矩形領域の高さをS1103で決定したBhとする。
At S1107, the
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
ここで、本第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
次に、図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
S1109にて、CPU100は、S1106で計算した画像処理機の右側に付加するダミー領域の長さDlを制御レジスタに設定する。
In S1109, the
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
S1111にて、CPU100は、S1101で取得した閾値テーブルの幅W、S1102で計算した閾値テーブルの高さThに基づいて、閾値テーブル300を画像処理回路部103に分割して転送するための制御レジスタを設定する。具体的には、図13(a)の閾値テーブル300内の閾値テーブル1301をディザ回路部1000の閾値テーブルブロック1300に転送するための各閾値テーブルのアドレスとサイズ、及び各閾値テーブル分割ブロックのアドレスを制御レジスタに設定する。
At S1111, the
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
画像処理回路部103が閾値テーブル設定値を読み込むフローについては第1の実施形態と同様である。
The flow in which the image
画像処理回路部103における、ディザ回路1000a乃至1000dを有する画像処理回路(P)715が動作レジスタ設定値を読み込むフローについても第1の実施形態と同様である。ここで、ディザ回路部1000a乃至1000dに対して、少なくとも図11のS1112で設定した閾値テーブルブロック1300に対する共通の閾値テーブルの参照開始位置を示す動作レジスタコマンド800を設定する。
The flow in which the image processing circuit (P) 715 having the
次に、入出力制御回路部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
次に、画像処理実行回路部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
画像処理回路(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
ここで、画像処理回路(P)715のディザ回路1000aが、モノクロ画像データコマンド901を受信した際のフローを、図10を参照して説明する。なお、ディザ回路100b乃至1000cは、領域K2乃至K4(分割領域C1乃至C3)に対する処理を行う点が、異なる。
Here, the flow when the
ディザ回路部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
閾値データ取得部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
続いて、ディザ処理部1006は、閾値データ取得部1008から閾値データK(q0)を取得する。ディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK1領域に格納されている画素データと閾値データK(q0)を比較し、二値化する。具体的には、K1領域の画素データが閾値データK(q0)以上のときドットを打つと判定し、K1領域の画素データが閾値データK(q0)未満のときドットを打たないと判定して二値化し、出力画素データK1(r0)を生成する。
The
なお、ディザ回路1000bのディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK2領域に格納されている画素データと閾値データK(q0)を比較し、二値化する。具体的には、K2領域の画素デーが閾値データK(q0)以上のときドットを打ち、K2領域の画素データが閾値データK(q0)未満のときドットを打たないと判定して二値化し、出力画素データK2(r0)を生成する。
The
ディザ回路1000cのディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK3領域に格納されている画素データと閾値データK(q0)を比較し、二値化する。具体的には、K3領域の画素デーが閾値データK(q0)以上のときドットを打ち、K3領域の画素データが閾値データK(q0)未満のときドットを打たないと判定して二値化し、出力画素データK3(r0)を生成する。
The
更にディザ回路1000dのディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK4領域に格納されている画素データと閾値データK(q0)を比較し、二値化する。具体的には、K4領域の画素デーが閾値データK(q0)以上のときドットを打ち、K4領域の画素データが閾値データK(q0)未満のときドットを打たないと判定して二値化し、出力画素データK4(r0)を出力する。
Furthermore, the
ディザ回路1000aの説明に戻る。次に、座標更新部1007は閾値データ取得部1008で管理されている画素データの画素位置を示す共通の座標値K(x,y)を更新する。ここで、本実施形態では、矩形領域C0-0の画素を副査方向に上から下に向かって順次画素データを処理する。ただし、画素の走査方向は主走査方向に左から右に向かって順次画像データを並列画像処理する構成としてもよい。
Returning to the explanation of the
座標更新部1007は、初期化した共通の座標K(x,y)においてy座標に対して画素位置を一つ下にシフトさせる。具体的には、y座標の値に1を加算し、次のモノクロ画像データコマンドに指定される画素データの画素位置をK1(x,y+1)に更新する。次にコマンド生成部1009は、モノクロ画像データコマンド901のK1領域にディザ処理部1006によるディザ処理結果の画素データK1(r0)を設定する。コマンド送信部1010は、コマンド生成部1009で生成したモノクロ画像データコマンド901を出力ポート714に出力する。
The coordinate
次に、ディザ回路部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
続いて、ディザ処理部1006では、閾値データ取得部1008から閾値データK(q1)を取得する。ディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK1領域に格納されている画素データと閾値データK(q1)を比較し、二値化する。具体的には、K1領域の画素デーが閾値データK(q1)以上のときドットを打つと判定し、K1領域の画素データが閾値データK(q1)未満のときドットを打たないと判定することで二値化し、出力画素データK1(r1)を生成する。
Next, the
なお、ディザ回路1000bのディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK2領域に格納されている画素データと閾値データK(q1)を比較し、二値化する。具体的には、K2領域の画素デーが閾値データK(q1)以上のときドットを打つと判定し、K2領域の画素データが閾値データK(q1)未満のときドットを打たないと判定して二値化し、出力画素データK2(r1)を生成する。
The
また、ディザ回路1000cのディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK3領域に格納されている画素データと閾値データK(q1)を比較し、二値化する。具体的には、K3領域の画素デーが閾値データK(q1)以上のときドットを打つと判定し、K3領域の画素データが閾値データK(q1)未満のときドットを打たないと判定して二値化し、出力画素データK3(r1)を生成する。
The
そして、ディザ回路1000dのディザ処理部1006は、コマンド解析部1002で取得したモノクロ画像データコマンド901のK4領域に格納されている画素データと閾値データK(q1)を比較し、二値化する。具体的には、K4領域の画素デーが閾値データK(q1)以上のときドットを打つと判定し、K4領域の画素データが閾値データK(q1)未満のときドットを打たないと判定して二値化し、出力画素データK4(r1)を出力する。
The
ディザ回路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
コマンド送信部1010は、コマンド生成部1009で生成したモノクロ画像データコマンド901を出力ポート714に出力する。
The
以上のようなフローにもとづき、ディザ回路部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
各ディザ回路の入出力制御回路部700は、矩形領域D0-0~D3-0の出力が完了すると、CPU100に対して割込みを上げて入力領域1201の並列画像処理が完了したことを通知する。CPU100で動作するソフトウェアは入出力制御回路部700から割込みを受信すると、入力領域1202に対する並列画像処理の制御を行い、続いて、入力領域1203に対する並列画像処理の制御を行う。
When the input/output
以上ように、画像領域をディザ回路部の閾値テーブルブロックが表現可能な最大の閾値テーブルの大きさに分割して並列画像処理することで、各矩形領域のディザ処理において、画像領域の副走査方向に対する画素位置に対応した閾値テーブルを参照することができる。それにより、画像領域と対応した閾値テーブルの持つブルーノイズ特性を低下させることなく、処理性能を向上できる。さらに、各矩形領域のディザ処理において参照する閾値テーブルを単一にすることができ、ディザ回路の閾値テーブルブロックへのアクセス回路を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.
利用するマトリクスデータのサイズと前記記憶領域のサイズに基づき、前記マトリクスデータを分割した場合の部分領域のサイズを決定する決定工程と、
該決定工程で決定した部分領域の設定値を、前記複数の処理回路に設定する設定工程と、
前記画像データを、前記部分領域のサイズに基づく複数の部分画像データに分割する分割工程と、
前記複数の処理回路を制御し、それぞれに前記分割工程で分割した部分画像データに対する処理を実行させる制御工程と、
を有することを特徴とする画像処理装置の制御方法。 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:
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)
| 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 |
-
2020
- 2020-12-28 JP JP2020218946A patent/JP7614840B2/en active Active
Patent Citations (4)
| 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 |