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
JP7604147B2 - DEVICE, DEVICE CONTROL METHOD, AND PROGRAM - Patent application - Google Patents
[go: Go Back, main page]

JP7604147B2 - DEVICE, DEVICE CONTROL METHOD, AND PROGRAM - Patent application - Google Patents

DEVICE, DEVICE CONTROL METHOD, AND PROGRAM - Patent application Download PDF

Info

Publication number
JP7604147B2
JP7604147B2 JP2020156377A JP2020156377A JP7604147B2 JP 7604147 B2 JP7604147 B2 JP 7604147B2 JP 2020156377 A JP2020156377 A JP 2020156377A JP 2020156377 A JP2020156377 A JP 2020156377A JP 7604147 B2 JP7604147 B2 JP 7604147B2
Authority
JP
Japan
Prior art keywords
image data
output
input
image
band
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
JP2020156377A
Other languages
Japanese (ja)
Other versions
JP2022050021A (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 JP2020156377A priority Critical patent/JP7604147B2/en
Publication of JP2022050021A publication Critical patent/JP2022050021A/en
Application granted granted Critical
Publication of JP7604147B2 publication Critical patent/JP7604147B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

本発明は、装置、装置の制御方法、およびプログラムに関する。 The present invention relates to a device, a method for controlling the device, and a program.

一般的に、スキャナ等の読取り機器、プリンタ等の印刷機器、ディスプレイ等の表示機器の多くは、カラー画像およびカラー原稿(例えばRGBカラー画像、CMYKカラー画像などの複数色を有する画像)に対応可能である。このため、このような機器の多くに搭載される画像処理装置は、基本的にカラー処理を行う装置として構成されることが多い。画像処理装置は、例えば、RGBカラー画像に対しては3色を、CMYKカラー画像に対しては4色を、処理する画像処理回路を有する。一般的な画像処理回路は、その回路を1つの処理のみでなく他の処理にも使用できるように、例えば、フィルタ処理で使用するフィルタ係数はレジスタ設定などで任意に設定変更できるように設計されることが多い。そのため、各色に対応するフィルタ回路は同一回路でありうる。画像処理装置は、例えば、RGBカラー画像に対しては3基、CMYKカラー画像に対しては4基のように、対応する色の数だけフィルタ回路を並列に備えることができる。また、機器が、複数の色のそれぞれに対応する複数の画像処理装置を有してよい。例えば、画像処理装置が1色分のフィルタ回路を備えるのみである場合であっても、対応する色の数だけ画像処理装置を有することにより、機器全体ではカラー処理に対応することができる。このようにカラー処理を基本とする処理装置において、色数に応じた並列化の処理単位(粒度)は、小さくは回路レベルから、大きくは処理装置等のシステムレベルに至るまで多岐に渡る。 Generally, many reading devices such as scanners, printing devices such as printers, and display devices such as displays are capable of handling color images and 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 often configured as devices that basically perform 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 filter coefficients used in the filter processing can be arbitrarily changed by register settings, so that the circuit can be used not only for one process but also for other processes. Therefore, the filter circuits corresponding to each color can be the same circuit. The image processing device can have filter circuits in parallel for the number of corresponding colors, such as three for RGB color images and four for CMYK color images. In addition, the device may have multiple image processing devices corresponding to each of the multiple colors. For example, even if an image processing device only has a filter circuit for one color, the device as a whole can handle color processing by having as many image processing devices as the number of corresponding colors. In this way, in processing devices based on color processing, the processing unit (granularity) of parallelization according to the number of colors varies widely, from as small as the circuit level to as large as the system level of the processing device, etc.

このようなカラー処理を基本とした処理装置に、モノクロ(単色)画像データが入力される場合、上述のように並列化された処理単位(粒度)を効率的に利用することが考えられる。処理単位を効率的に利用することにより、カラー画像の処理速度に比べて単色画像の処理速度を向上できる。 When monochrome (single-color) image data is input to such a processing device based on color processing, it is possible to efficiently use the parallelized processing units (granularity) as described above. By efficiently using the processing units, it is possible to improve the processing speed of single-color images compared to the processing speed of color images.

特許文献1には、入力画像データがモノクロ画像データの場合、矩形画像入力部がそのモノクロ画像データの領域を所定サイズの矩形領域に分割して、疑似的に複数の座標の異なる画素を矩形画像処理部に入力して同時に画像処理を行うことが記載されている。 Patent document 1 describes that when the input image data is monochrome image data, the rectangular image input unit divides the monochrome image data area into rectangular areas of a predetermined size, and inputs multiple pseudo pixels with different coordinates to the rectangular image processing unit to perform image processing simultaneously.

特許文献1の画像処理装置は、CPU経由で入出力画像データを読み書きするためのDMAコントローラ(DMAC)を有し、モノクロの入力画像を所定のブロックに分割しておき、複数の異なる入力ブロックをカラー画像と同様の制御方法により同時に入力する。その上で、これら複数の入力ブロックに対して画像処理を並列に行い、画素データを複数の異なる出力ブロックに出力することにより、性能の高速化を実現している。 The image processing device in Patent Document 1 has a DMA controller (DMAC) for reading and writing input and output image data via a CPU, divides a monochrome input image into predetermined blocks, and simultaneously inputs multiple different input blocks using a control method similar to that for color images. It then performs image processing on these multiple input blocks in parallel and outputs pixel data to multiple different output blocks, thereby achieving high-speed performance.

また、特許文献2には、画像処理装置が複数の画像処理回路を有し、複数の色成分を格納することができる複数のフィールドに単色画像の複数の部分画像を格納し、該複数の画像処理回路が複数の部分画像に対して同時に画像処理を行うことが記載されている。 Patent document 2 also describes an image processing device that has multiple image processing circuits, stores multiple partial images of a monochrome image in multiple fields that can store multiple color components, and has the multiple image processing circuits perform image processing on the multiple partial images simultaneously.

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

しかしながら、これらの特許文献には、DMACに対してCPU経由でモノクロ画像をカラー画像と同様の制御方法により並列処理するためのレジスタ設定値の算出手法については記載されていない。また、カラー画像を複数の処理単位で並列処理するためのレジスタ設定値の算出手法、カラー画像を1並列で処理するためのレジスタ設定値の算出手法、モノクロ画像を1並列で処理するためのレジスタ設定値の算出手法についても記載されていない。 However, these patent documents do not describe a method for calculating register setting values for processing monochrome images in parallel via the DMAC via the CPU using the same control method as for color images. Furthermore, they do not describe a method for calculating register setting values for processing color images in parallel in multiple processing units, a method for calculating register setting values for processing color images in one parallel process, or a method for calculating register setting values for processing monochrome images in one parallel process.

そこで本発明の一実施形態は、モノクロ画像またはカラー画像に対する画像処理を実行する際、単一画素を1並列で処理するためのレジスタ設定値と、複数画素を並列処理するためのレジスタ設定値とを、同一手法で算出できるようにすることを目的とする。 The objective of one embodiment of the present invention is to enable the register setting values for processing a single pixel in parallel and the register setting values for processing multiple pixels in parallel to be calculated using the same method when performing image processing on a monochrome or color image.

本発明の一実施形態は、画像データとして、モノクロ画像データまたはカラー画像データを格納する記憶領域が設けられる中間バッファ制御部と、前記記憶領域に関するレジスタ設定値を参照して、前記画像データのうち最大でN個(Nは整数)の画素データに対する画像処理を同時に実行することが可能な画像処理手段と、を有する装置であって、前記画像データがモノクロ画像データの場合、該画像データにおける画素データに対する並列処理を行う際の並列数として、仮想的な色数を決定する決定手段と、前記レジスタ設定値を、前記仮想的な色数に基づいて算出する算出手段と、前記画像データの領域を複数のバンド領域に分割する分割手段と、を更に有し、前記レジスタ設定値には、前記画像処理手段に入力される入力画像データを構成する複数の入力バンドのうち、所定の入力バンドの先頭アドレスと、前記画像処理手段から出力される出力画像データを構成する複数の出力バンドのうち、所定の出力バンドの先頭アドレスと、前記複数の入力バンドそれぞれに関する第1オフセット量と、が含まれ、前記算出手段は、次の式、すなわち第1オフセット量=入力バンドのバンドサイズ×仮想的な色数に従って、前記第1オフセット量を算出する、ことを特徴とする装置である。
One embodiment of the present invention is an apparatus having an intermediate buffer control unit provided with a memory area for storing monochrome image data or color image data as image data, and an image processing means capable of simultaneously performing image processing on up to N (N is an integer) pieces of pixel data of the image data by referring to a register setting value related to the memory area, and further comprising a determination means for determining a virtual number of colors as the number of parallel operations when performing parallel processing on pixel data in the image data when the image data is monochrome image data, a calculation means for calculating the register setting value based on the virtual number of colors, and a division means for dividing an area of the image data into a plurality of band areas, wherein the register setting value includes a starting address of a predetermined input band among a plurality of input bands constituting the input image data input to the image processing means, a starting address of a predetermined output band among a plurality of output bands constituting the output image data output from the image processing means, and a first offset amount related to each of the plurality of input bands, and the calculation means calculates the first offset amount according to the following formula, i.e., first offset amount = band size of input band × virtual number of colors .

本発明の一実施形態によれば、モノクロ画像またはカラー画像に対する画像処理を実行する際、単一画素を1並列で処理するためのレジスタ設定値と、複数画素を並列処理するためのレジスタ設定値とを、同一手法で算出できる。よって、ソフトウェアがレジスタ設定を効率的に行うことが可能になる。 According to one embodiment of the present invention, when performing image processing on a monochrome image or a color image, the register setting value for processing a single pixel in parallel and the register setting value for processing multiple pixels in parallel can be calculated using the same method. This allows the software to efficiently perform register settings.

画像処理装置の全体構成を示すブロック図A block diagram showing the overall configuration of an image processing device. 画像処理部103の構成を示すブロック図A block diagram showing the configuration of an image processing unit 103. 画像処理コマンドの構成を示す図A diagram showing the structure of an image processing command バンド処理を示す図Diagram showing banding カラー画像に対する画像処理を説明する図FIG. 1 is a diagram for explaining image processing for a color image. モノクロ画像を1並列で処理する場合の画像処理を説明する図A diagram for explaining image processing when processing a monochrome image in parallel. モノクロ画像を3並列で処理する場合の画像処理を説明する図A diagram explaining image processing when processing monochrome images in three parallel processes. モノクロ画像を3並列で処理して、サイズの異なる2つの画像を出力する場合の画像処理を説明する図A diagram explaining image processing in which three monochrome images are processed in parallel to output two images of different sizes. 仮想的色数を決定する処理のフローチャートFlowchart of a process for determining the virtual number of colors レジスタ設定値を計算する処理のフローチャートFlowchart of the process for calculating register setting values 画像処理コマンドの構成を示す図A diagram showing the structure of an image processing command 情報機器と、第1~第3記録装置とによる一連の処理のシーケンス図FIG. 1 is a sequence diagram of a series of processes performed by an information device and first to third recording devices.

以下、図面を参照して、本発明の実施形態を詳細に説明する。 The following describes an embodiment of the present invention in detail with reference to the drawings.

[第1の実施形態]
<画像処理装置の構成>
図1は、本実施形態における画像処理装置の全体構成を示すブロック図である。画像処理装置は、CPU100と、RAM101と、ROM102と、画像処理部103と、I/F部104とを有する。これらの各構成要素は、システムバス105を介して接続されている。
[First embodiment]
<Configuration of image processing device>
1 is a block diagram showing the overall configuration of an image processing apparatus according to this embodiment. The image processing apparatus includes a CPU 100, a RAM 101, a ROM 102, an image processing unit 103, and an I/F unit 104. These components are connected via a system bus 105.

CPU100は、画像処理装置全体を制御する中央演算ユニットであり、各種の制御プログラムを実行する。ROM102には、制御ブログラムや固定データが格納される。RAM101は、データの一時保存やプログラムのロードに利用される。CPU100は、RAM101にロードされた制御プログラムを実行することで、I/F部104を通して受信した入力画像データをRAM101に一時的に保存し、該入力画像データに対する画像処理部103による画像処理を実行する。 The CPU 100 is a central processing unit that controls the entire image processing device, and executes various control programs. The ROM 102 stores control programs and fixed data. The RAM 101 is used for temporarily storing data and loading programs. By executing the control programs loaded into the RAM 101, the CPU 100 temporarily stores input image data received through the I/F unit 104 in the RAM 101, and performs image processing on the input image data by the image processing unit 103.

画像処理部103は、RAM101に配置された入力画像データに対する画像処理を行い、出力画像データを得る。この出力画像データは、RAM101に一時保存され、I/F部104を通して外部の情報機器106に送信される。 The image processing unit 103 performs image processing on the input image data stored in the RAM 101 to obtain output image data. This output image data is temporarily stored in the RAM 101 and is transmitted to an external information device 106 via the I/F unit 104.

<画像処理部の構成>
図2は、画像処理部103の構成を示すブロック図である。画像処理部103は、入力画像データを入力し、出力画像データを出力する入出力制御部200と、入出力制御部200から入力された画像処理コマンド(入力)単位で画像処理を行う画像処理実行部201とを有する。
<Configuration of image processing unit>
2 is a block diagram showing the configuration of the image processing unit 103. The image processing unit 103 has an input/output control unit 200 that receives input image data and outputs output image data, and an image processing execution unit 201 that performs image processing in units of image processing commands (inputs) received from the input/output control unit 200.

まず、入出力制御部200の構成について説明する。入出力制御部200は、画像データ入力部202と、中間バッファ制御部203と、レジスタブロック219と、コマンド生成部204と、コマンド送信部205と、コマンド受信部216と、コマンド解析部217と、画像データ出力部218とを有する。 First, the configuration of the input/output control unit 200 will be described. The input/output control unit 200 has an image data input unit 202, an intermediate buffer control unit 203, a register block 219, a command generation unit 204, a command transmission unit 205, a command reception unit 216, a command analysis unit 217, and an image data output unit 218.

画像データ入力部202は、レジスタブロック219から複数のレジスタ設定値を読み込み、そのレジスタ設定値に基づいてRAM101から所定のブロック単位で入力画像データを読み出し、中間バッファ制御部203の記憶領域に格納する。続いて、画像データ入力部202は、中間バッファ制御部203の記憶領域に格納された入力画像データを1画素単位で読み出し、該読み出した入力画像データをコマンド生成部204に出力する。コマンド生成部204は、1画素単位の入力画像データを含む画像処理コマンド(入力)を生成し、該生成した画像処理コマンド(入力)をコマンド送信部205に出力する。コマンド送信部205は、画像処理コマンド(入力)を画像処理実行部201に出力する。 The image data input unit 202 reads multiple register setting values from the register block 219, reads input image data in units of a predetermined block from the RAM 101 based on the register setting values, and stores the input image data in a memory area of the intermediate buffer control unit 203. The image data input unit 202 then reads the input image data stored in the memory area of the intermediate buffer control unit 203 in units of one pixel, and outputs the read input image data to the command generation unit 204. The command generation unit 204 generates an image processing command (input) including the input image data in units of one pixel, and outputs the generated image processing command (input) to the command transmission unit 205. The command transmission unit 205 outputs the image processing command (input) to the image processing execution unit 201.

コマンド受信部216は、画像処理実行部201から画像処理コマンド(出力)を受信し、該受信した画像処理コマンド(出力)をコマンド解析部217に出力する。コマンド解析部217は、画像処理コマンド(出力)から1画素単位の出力画像データを取り出し、該取り出した出力画像データを画像データ出力部218に出力する。画像データ出力部218は、中間バッファ制御部203の記憶領域に1画素単位の出力画像データを格納する。そして、画像データ出力部218は、レジスタブロック219から複数のレジスタ設定値を読み込み、そのレジスタ設定値に基づいて中間バッファ制御部203の記憶領域に格納された出力画像データを所定のブロック単位で読み出す。そして、画像データ出力部218は、読み出した出力画像データをRAM101に出力する。 The command receiving unit 216 receives an image processing command (output) from the image processing execution unit 201, and outputs the received image processing command (output) to the command analysis unit 217. The command analysis unit 217 extracts output image data in units of one pixel from the image processing command (output), and outputs the extracted output image data to the image data output unit 218. The image data output unit 218 stores the output image data in units of one pixel in the memory area of the intermediate buffer control unit 203. The image data output unit 218 then reads multiple register setting values from the register block 219, and reads out the output image data stored in the memory area of the intermediate buffer control unit 203 based on the register setting values in units of a predetermined block. The image data output unit 218 then outputs the read output image data to the RAM 101.

次に、画像処理実行部201の構成について説明する。画像処理実行部201は、画像処理回路(1)209から画像処理回路(P)215のP個の画像処理回路と、インターコネクト206とを有する。P個の画像処理回路のそれぞれとインターコネクト206とは、入力ポート207、210、213、および、出力ポート208、211、214等のポートを介して互いに接続される。画像処理回路は、例えば、入力色補正処理、色空間変換、濃度補正処理、中間調処理、空間フィルタ処理、解像度変換、トリミング処理、端部拡張処理、IP変換、クロマ・アップサンプリングの1つ以上を含む処理を行う。これらの画像処理回路は、パイプライン回路等のハードウェアで実現されてもよいし、プロセッサとプログラム(ソフトウェア)等で実現されてもよい。画像処理回路は、例えば、入力ポート207、210、213等を介して画像処理コマンド(入力)を受け取り、画像処理を施した後に、出力ポート208、211、214を介して画像処理後の画像処理コマンド(出力)を出力する。 Next, the configuration of the image processing execution unit 201 will be described. The image processing execution unit 201 has P image processing circuits, from image processing circuit (1) 209 to image processing circuit (P) 215, and an interconnect 206. Each of the P image processing circuits and the interconnect 206 are connected to each other via ports such as input ports 207, 210, and 213, and output ports 208, 211, and 214. The image processing circuits perform processing including, for example, one or more of input color correction processing, color space conversion, density correction processing, halftone processing, spatial filter processing, resolution conversion, trimming processing, edge extension processing, IP conversion, and chroma upsampling. These 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. The image processing circuit receives image processing commands (input) via, for example, input ports 207, 210, 213, etc., performs image processing, and then outputs the processed image processing commands (output) via output ports 208, 211, 214.

インターコネクト206は、クロスバーやリングバス等の接続機能で実現されており、入力ポートと出力ポートの接続先を任意に切り替えることができる。従って、CPU100がこれらポートの接続先を設定することで、インターコネクト206は、例えばP個の画像処理回路の実行順序を変更し、または一部の処理をバイパスすることができる。このように、画像処理実行部201は、アプリケーションに応じて、各種の処理を取捨選択して組み合わせることにより、所望の画像処理を実現することができる。 The interconnect 206 is realized by a connection function such as a crossbar or ring bus, and can arbitrarily switch the connection destination of the input port and output port. Therefore, by the CPU 100 setting the connection destination of these ports, the interconnect 206 can change the execution order of, for example, P image processing circuits, or bypass some of the processing. In this way, the image processing execution unit 201 can realize the desired image processing by selecting and combining various types of processing depending on the application.

<画像処理コマンドの構成>
図3は、画像処理コマンドの構成を示す図である。図3(a)の符号300に示すように画像処理コマンドは、ヘッダとデータとを含んで構成され、データ領域には点順次形式の画素値が格納される。本実施形態における画像処理装置は、この画像処理コマンドを利用することで、点順次形式の画像データを1画素単位で同期しながら、画像処理実行部201の画像処理回路(1)209~画像処理回路(P)215をパイプライン的に動作させ、画像処理を行う。
<Image processing command structure>
Fig. 3 is a diagram showing the structure of an image processing command. As shown by reference numeral 300 in Fig. 3(a), the image processing command includes a header and data, and pixel values in a dot sequential format are stored in the data area. By using this image processing command, the image processing device in this embodiment operates the image processing circuit (1) 209 to the image processing circuit (P) 215 of the image processing execution unit 201 in a pipeline manner while synchronizing the dot sequential format image data on a pixel-by-pixel basis, thereby performing image processing.

また、図3(b)に示すように、画像処理コマンドは、カラーの点順次形式の1画素分の画素データを格納する形式に対応可能である。図3(b)の例では、ヘッダの内容を切り替えることで、符号301に示すR(Red)、G(Green)、B(Blue)形式や符号302に示すC(Cyan)、M(Magenta)、Y(Yellow)、K(Black)形式に対応できる。尚、カラーの点順次形式の画素データを格納する画像処理コマンドは、5個以上のデータ領域を含んでもよいし、複数の画像処理コマンドから構成されてもよい。 As shown in FIG. 3B, the image processing command can accommodate a format that stores one pixel's worth of pixel data in a color dot-sequential format. In the example of FIG. 3B, by switching the contents of the header, it is possible to accommodate the R (Red), G (Green), and B (Blue) format shown by reference numeral 301, or the C (Cyan), M (Magenta), Y (Yellow), and K (Black) format shown by reference numeral 302. Note that an image processing command that stores color dot-sequential pixel data may include five or more data areas, or may be composed of multiple image processing commands.

また、図3(c)に示すように、画像処理コマンドは、モノクロ(単色)の1画素分の画素データを格納する形式に対応可能である。図3(c)の例では、ヘッダの内容を切り替えることで、符号303に示すように、3個の画素データ領域のうち1個の画素データ領域にK(Black)の画素データを格納する形式に対応することができる。また、符号304に示すように、4個の画素データ領域のうち1個の画素データ領域にK(Black)の画素データを格納する形式に対応することもできる。尚、モノクロの1画素の画素データを格納する画像処理コマンドは、5個以上のデータ領域を含んでもよいし、複数の画像処理コマンドから構成されてもよい。 As shown in FIG. 3(c), the image processing command can accommodate a format for storing one monochrome (single color) pixel data. In the example of FIG. 3(c), by switching the contents of the header, it is possible to accommodate a format for storing K (Black) pixel data in one of three pixel data areas, as shown by reference numeral 303. It is also possible to accommodate a format for storing K (Black) pixel data in one of four pixel data areas, as shown by reference numeral 304. Note that an image processing command for storing monochrome pixel data for one pixel may include five or more data areas, and may be composed of multiple image processing commands.

また、図3(d)に示すように、画像処理コマンドは、モノクロの複数画素の画素データを格納する形式に対応可能である。図3(d)の例では、ヘッダの内容を切り替えることで、符号305に示すように、3個の画素データ領域のそれぞれにK(Black)の画素データを格納する形式に対応することができる。また、符号306に示すように、4個の画素データ領域のそれぞれにK(Black)の画素データを格納する形式に対応することもできる。尚、モノクロの複数画素の画素データを格納する画像処理コマンドは、5個以上のデータ領域を含んでもよいし、複数の画像処理コマンドから構成されてもよい。 As shown in FIG. 3(d), the image processing command can accommodate a format for storing pixel data for multiple monochrome pixels. In the example of FIG. 3(d), by switching the contents of the header, it is possible to accommodate a format for storing K (Black) pixel data in each of three pixel data areas, as shown by reference numeral 305. It is also possible to accommodate a format for storing K (Black) pixel data in each of four pixel data areas, as shown by reference numeral 306. Note that an image processing command for storing pixel data for multiple monochrome pixels may include five or more data areas, and may be composed of multiple image processing commands.

<画像データの領域分割>
次に、以下で説明する各実施形態において用いられる、画像データの領域分割について説明する。本実施形態では、領域分割手法の1つであるバンド処理を用いるものとする。以下、バンド処理について図4を用いて説明する。
<Image data segmentation>
Next, the region division of image data used in each embodiment described below will be described. In this embodiment, band processing, which is one of the region division methods, will be used. Hereinafter, band processing will be described with reference to FIG.

バンド処理では、例えば、図4(a)~(g)に示すように、1枚の画像データ400を、高さBdh、長さBdlの領域401~406に分割する。領域401~406それぞれの副走査方向における位置は、異なる。画像処理実行部201にて、この分割された領域毎に各種の画像処理を逐次的に実行する。 In band processing, for example, as shown in Figures 4(a) to (g), a single image data 400 is divided into regions 401 to 406, each with a height Bdh and a length Bdl. The positions of the regions 401 to 406 in the sub-scanning direction are different. The image processing execution unit 201 sequentially executes various types of image processing for each of these divided regions.

以下では、この分割された部分画像の領域401~406を「バンド領域」と呼び、バンド領域に含まれるデータが展開される記憶領域を「バンドメモリ」と呼び、画像データを分割する処理を「バンド分割」と呼ぶ。バンドメモリはRAM101に確保されてもよいし、システム上の適当な記憶装置内の領域として確保されてもよい。尚、ここでは、説明を簡潔にするために、バンドメモリがRAM101に確保されるものとして説明する。また、図4(g)に示すように、画像データの座標系(主走査方向-副走査方向)を長さ方向、高さ方向という新たな座標系(バンド領域座標系)によって定義し、バンド領域を長さ×高さで表現する。バンド領域の長さBdlは、画像データの主走査方向の長さとし、バンド領域の高さBdhは、画像データの副走査方向の長さとする。 In the following, the divided partial image areas 401-406 are referred to as "band areas", the storage area in which the data contained in the band areas is expanded is referred to as "band memory", and the process of dividing the image data is referred to as "band division". The band memory may be allocated in RAM 101, or may be allocated as an area in an appropriate storage device on the system. Note that, for simplicity's sake, the explanation will be given assuming that the band memory is allocated in RAM 101. Also, as shown in FIG. 4(g), the coordinate system of the image data (main scanning direction - sub-scanning direction) is defined by a new coordinate system (band area coordinate system) with a length direction and a height direction, and the band area is expressed as length x height. The length Bdl of the band area is the length of the image data in the main scanning direction, and the height Bdh of the band area is the length of the image data in the sub-scanning direction.

バンド処理では、図4におけるバンド領域401~406がRAM101上のバンドメモリに展開され、画像処理実行部201にてバンド領域401の画像処理が行われる。バンド領域401の画像処理が完了すると、次にバンド領域402の画像処理が行われ、バンド領域406まで画像処理が行われる。 In band processing, band areas 401 to 406 in FIG. 4 are expanded in band memory on the RAM 101, and image processing of band area 401 is performed by the image processing execution unit 201. When image processing of band area 401 is completed, image processing of band area 402 is then performed, and image processing is performed up to band area 406.

尚、バンド処理では、各バンド領域間で隙間なく空間フィルタ処理などの局所(近傍)画像処理を行なうため、図4(h)~(n)に示すように、各バンド領域が、それぞれ隣接する領域との境界で一部分が互いに重なり合うように構成されてもよい。この場合、例えば、各領域の高さの方向に1画素ずつ画素を走査することとして、局所(近傍)画像処理に必要な処理画素を保持する遅延メモリの容量が、各領域の高さで規定される。これにより、局所(近傍)画像処理で必要となる遅延メモリの省メモリ化を実現できる。 In band processing, in order to perform local (nearby) image processing such as spatial filtering without gaps between each band region, each band region may be configured to overlap with a portion of the boundary with each adjacent region, as shown in Figures 4(h) to (n). In this case, for example, pixels are scanned one pixel at a time in the height direction of each region, and the capacity of the delay memory that holds the processing pixels required for local (nearby) image processing is determined by the height of each region. This makes it possible to reduce the amount of delay memory required for local (nearby) image processing.

<カラー画像に対する画像処理>
以下、RGB3チャンネルの入力画像データに対する画像処理の例について、図5を用いて説明する。
<Image processing for color images>
An example of image processing for input image data of three RGB channels will be described below with reference to FIG.

画像処理部103に入力する画像は、RGB点順次のカラー画像である。入力画像501は、符号500に示す入力バンド領域の長さBdl_in、高さBdh_inの大きさの3つの連続した入力バンド領域A1、A2、A3から構成される。入力バンド領域のそれぞれが格納されるバンドメモリの先頭アドレスは、C1、C2、C3である。入力画像のオフセット量502は、アドレスC1からアドレスC2、アドレスC2からアドレスC3までの同一のオフセット量(バイト数)である。画像処理部103から出力する画像は、RGB点順次のカラー画像である。出力画像504は、符号503に示す出力バンド領域の長さBdl_out1、高さBdh_out1の大きさの3つの連続した出力バンド領域B1、B2、B3から構成される。出力バンド領域のそれぞれが格納されるバンドメモリの先頭アドレスは、D1、D2、D3である。出力画像504におけるオフセット量505は、アドレスD1からアドレスD2、アドレスD2からアドレスD3までの同一のオフセット量(バイト数)である。 The image input to the image processing unit 103 is an RGB dot sequential color image. The input image 501 is composed of three consecutive input band areas A1, A2, and A3, each having a length Bdl_in and a height Bdh_in of the input band area shown by the reference symbol 500. The head addresses of the band memory in which each of the input band areas is stored are C1, C2, and C3. The offset amount 502 of the input image is the same offset amount (number of bytes) from address C1 to address C2 and from address C2 to address C3. The image output from the image processing unit 103 is an RGB dot sequential color image. The output image 504 is composed of three consecutive output band areas B1, B2, and B3, each having a length Bdl_out1 and a height Bdh_out1 of the output band area shown by the reference symbol 503. The head addresses of the band memory in which each of the output band areas is stored are D1, D2, and D3. The offset amount 505 in the output image 504 is the same offset amount (number of bytes) from address D1 to address D2 and from address D2 to address D3.

ここで、入出力制御部200は、レジスタブロック219に以下の4個のレジスタを備える。
・入力アドレスレジスタ:入力画像501の先頭アドレスC1
・入力オフセットレジスタ:入力画像501の入力バンド領域間のオフセット量502
・出力アドレスレジスタ:出力画像504の先頭アドレスD1
・出力オフセットレジスタ:出力画像504の出力バンド領域間のオフセット量505
Here, the input/output control unit 200 includes the following four registers in the register block 219.
Input address register: the start address C1 of the input image 501
Input offset register: offset amount 502 between input band regions of the input image 501
Output address register: start address D1 of the output image 504
Output offset register: offset amount 505 between output band regions of the output image 504

これら4個のレジスタは、CPU100によって実現されるソフトウェアモジュールがレジスタブロック219にレジスタ設定値を設定する構成となっている。入出力制御部200内の画像処理コマンドのフォーマットは、ヘッダと、3個のデータ領域P0、P1、P2とから構成され、画像処理コマンドのフォーマット301(図3(b)参照)に該当する。コマンド生成部204で生成する画像処理コマンド(入力)と、コマンド解析部217で解析する画像処理コマンド(出力)とは、画像処理コマンド301のフォーマットに基づいて処理する。 These four registers are configured so that a software module implemented by the CPU 100 sets register setting values in the register block 219. The format of the image processing command in the input/output control unit 200 is composed of a header and three data areas P0, P1, and P2, and corresponds to the image processing command format 301 (see FIG. 3(b)). The image processing command (input) generated by the command generation unit 204 and the image processing command (output) analyzed by the command analysis unit 217 are processed based on the format of the image processing command 301.

次に、画像処理部103における処理について説明する。画像データ入力部202は、入力バンド領域A1から入力画像データを32バイト単位で入力バンド領域のオフセット量502(バイト数)読み込み、中間バッファ制御部203の記憶領域に書き込む。さらに、画像データ入力部202は、中間バッファ制御部203の記憶領域からR、G、Bそれぞれ1画素分のデータ16bitを読み込み、該読みこんだ1画素分のデータをコマンド生成部204に出力する。その後、コマンド生成部204は、1画素分のデータを画像処理コマンド301(入力)のデータ領域P0、P1、P2に格納することで、画像処理コマンド301(入力)を生成し、該生成した画像処理コマンド301(入力)をコマンド送信部205に出力する。コマンド送信部205は、画像処理コマンド301(入力)を画像処理実行部201に出力する。画像処理実行部201が画像処理コマンド301(入力)に格納された画素データに基づく画像処理を完了すると、コマンド受信部216は、画像処理コマンド301(出力)を受信する。コマンド受信部216は、受信した画像処理コマンド301(出力)をコマンド解析部217に出力する。コマンド解析部217は、画像処理コマンド301(出力)のデータ領域P0、P1、P2に格納されたR、G、Bの画素データを取り出し、該取り出した画素データを画像データ出力部218に出力する。画像データ出力部218は、そのR、G、Bの画素データを中間バッファ制御部203の記憶領域に書き込む。さらに、画像データ出力部218は、中間バッファ制御部203の記憶領域からRGB点順次の出力画像データを32バイト単位で読み込み、出力画像504のうち1番目の出力バンド領域B1を構成する出力画像データとして、出力バンドメモリに書き込む。 Next, the processing in the image processing unit 103 will be described. The image data input unit 202 reads the input image data from the input band area A1 in units of 32 bytes by the offset amount 502 (number of bytes) of the input band area, and writes it to the storage area of the intermediate buffer control unit 203. Furthermore, the image data input unit 202 reads 16 bits of data for one pixel each of R, G, and B from the storage area of the intermediate buffer control unit 203, and outputs the read data for one pixel to the command generation unit 204. After that, the command generation unit 204 generates the image processing command 301 (input) by storing the data for one pixel in the data areas P0, P1, and P2 of the image processing command 301 (input), and outputs the generated image processing command 301 (input) to the command transmission unit 205. The command transmission unit 205 outputs the image processing command 301 (input) to the image processing execution unit 201. When the image processing execution unit 201 completes image processing based on the pixel data stored in the image processing command 301 (input), the command receiving unit 216 receives the image processing command 301 (output). The command receiving unit 216 outputs the received image processing command 301 (output) to the command analyzing unit 217. The command analyzing unit 217 extracts the R, G, and B pixel data stored in the data areas P0, P1, and P2 of the image processing command 301 (output) and outputs the extracted pixel data to the image data output unit 218. The image data output unit 218 writes the R, G, and B pixel data to the storage area of the intermediate buffer control unit 203. Furthermore, the image data output unit 218 reads the RGB dot-sequential output image data from the storage area of the intermediate buffer control unit 203 in 32-byte units and writes it to the output band memory as output image data that constitutes the first output band area B1 of the output image 504.

以上の処理フローに基づき、入出力制御部200は、入力画像データのうちオフセット量502(バイト数)の入力バンド領域A1を読み込む。続いて、画像処理実行部201は、画像処理を行い、画像データ出力部218は、出力バンドメモリ(先頭アドレスD1)にオフセット量505(バイト数)の出力画像データを書き込む。 Based on the above processing flow, the input/output control unit 200 reads the input band area A1 of the input image data with an offset amount of 502 (number of bytes). Next, the image processing execution unit 201 performs image processing, and the image data output unit 218 writes the output image data with an offset amount of 505 (number of bytes) to the output band memory (starting address D1).

その次に、入力画像501の2番目の入力バンド領域A2の画像処理を行う。具体的には、画像データ入力部202は、レジスタブロック219から入力アドレスレジスタの値(入力画像501の先頭アドレスC1)と、入力オフセットレジスタの値(入力画像501におけるオフセット量502(バイト数))とを取得する。その上で、画像データ入力部202は、入力アドレスレジスタの値に入力オフセットレジスタの値を加算することで、2番目の入力バンドメモリの先頭アドレスC2を算出し、内部カウンタに保持する。同じく、画像データ出力部218は、レジスタブロック219から出力アドレスレジスタの値(出力画像504の先頭アドレスD1)と、出力オフセットレジスタの値(出力画像504におけるオフセット量505(バイト数))とを取得する。その上で、画像データ出力部218は、出力アドレスレジスタの値に出力オフセットレジスタの値を加算することで、2番目の出力バンドメモリの先頭アドレスD2を算出し、内部カウンタに保持する。画像データ入力部202は、入力画像データのうちオフセット量502(バイト数)の入力バンド領域A2を読み込み、画像処理実行部201が画像処理を行う。その後、画像データ出力部218は、オフセット量505(バイト数)の出力バンド領域B2を出力バンドメモリに書き込む。 Next, image processing is performed on the second input band area A2 of the input image 501. Specifically, the image data input unit 202 acquires the value of the input address register (start address C1 of the input image 501) and the value of the input offset register (offset amount 502 (number of bytes) in the input image 501) from the register block 219. The image data input unit 202 then calculates the start address C2 of the second input band memory by adding the value of the input offset register to the value of the input address register, and stores it in the internal counter. Similarly, the image data output unit 218 acquires the value of the output address register (start address D1 of the output image 504) and the value of the output offset register (offset amount 505 (number of bytes) in the output image 504) from the register block 219. The image data output unit 218 then calculates the start address D2 of the second output band memory by adding the value of the output offset register to the value of the output address register, and stores it in the internal counter. The image data input unit 202 reads the input band area A2 of the input image data with an offset amount 502 (number of bytes), and the image processing execution unit 201 performs image processing. After that, the image data output unit 218 writes the output band area B2 with an offset amount 505 (number of bytes) to the output band memory.

その次に、入力画像501の3番目の入力バンド領域A3の画像処理を行う。具体的には、画像データ入力部202は、内部カウンタに保持された2番目の入力バンドメモリの先頭アドレスC2にオフセット量502(バイト数)を加算することで、3番目の入力バンドメモリの先頭アドレスC3を算出し、内部カウンタを更新する。同じく、画像データ出力部218は、内部カウンタに保持された2番目の出力バンド領域の先頭アドレスD2にオフセット量505(バイト数)を加算することで、3番目の出力バンドメモリの先頭アドレスD3を算出し、内部カウンタを更新する。画像データ入力部202は、入力画像データのうちオフセット量502(バイト数)の入力バンド領域A3を読み込み、画像処理実行部201が画像処理を行う。その後、画像データ出力部218は、オフセット量505(バイト数)の出力バンド領域B3を出力バンドメモリに書き込む。 Next, image processing is performed on the third input band area A3 of the input image 501. Specifically, the image data input unit 202 calculates the head address C3 of the third input band memory by adding the offset amount 502 (number of bytes) to the head address C2 of the second input band memory held in the internal counter, and updates the internal counter. Similarly, the image data output unit 218 calculates the head address D3 of the third output band memory by adding the offset amount 505 (number of bytes) to the head address D2 of the second output band area held in the internal counter, and updates the internal counter. The image data input unit 202 reads the input band area A3 of the offset amount 502 (number of bytes) of the input image data, and the image processing execution unit 201 performs image processing. After that, the image data output unit 218 writes the output band area B3 of the offset amount 505 (number of bytes) to the output band memory.

次に、図5のRGB点順次の入力画像に対する画像処理において、CPU100によって実現されるソフトウェアモジュールが、画像処理部103を駆動させるために必要なレジスタ設定値を算出する処理について、図9および図10を用いて説明する。 Next, the process of calculating the register setting values required for driving the image processing unit 103 by the software module realized by the CPU 100 in the image processing of the RGB point-sequential input image of FIG. 5 will be described with reference to FIG. 9 and FIG. 10.

まず、仮想的色数を決定するフローについて、図9を用いて説明する。ここで、「仮想的色数」とは、画像処理部103でモノクロ画像データを処理する際に画像処理コマンド301(出力)のデータ領域を複数利用して内部的に並列処理する色数(並列数)のことである。尚、カラー画像データを処理する際には、画像処理コマンド301(出力)のデータ領域に並列処理するための十分な空き領域がないため、仮想的色数は1に固定される。尚、以降では、一連の処理のける各ステップを「S~」と表記する。 First, the flow for determining the virtual number of colors will be explained using Figure 9. Here, "virtual number of colors" refers to the number of colors (parallel number) that are internally processed in parallel using multiple data areas of image processing command 301 (output) when processing monochrome image data in image processing unit 103. Note that when processing color image data, the virtual number of colors is fixed to 1 because there is not enough free space for parallel processing in the data area of image processing command 301 (output). Note that hereafter, each step in a series of processes will be represented as "S~".

S900では、CPU100は、入力画像がモノクロ画像か判定する。本ステップの判定結果が真の場合、S901に進む一方、該判定結果が偽の場合(つまり、入力画像がカラー画像の場合)、S904に進む。図5のケースでは、入力画像501がカラー画像のため、S900の判定結果が偽となり、S904に処理を進める。S904では、CPU100は、仮想的色数Vnを1に設定する。 In S900, the CPU 100 determines whether the input image is a monochrome image. If the determination result in this step is true, the process proceeds to S901. If the determination result is false (i.e., the input image is a color image), the process proceeds to S904. In the case of FIG. 5, since the input image 501 is a color image, the determination result in S900 is false, and the process proceeds to S904. In S904, the CPU 100 sets the virtual color number Vn to 1.

次に、図9で求めた仮想的色数Vnに基づいて図5における以下のレジスタ設定値を算出する方法について、図10を用いて説明する。
・入力アドレスレジスタ:入力画像501のうち1番目の入力バンド領域に対応する先頭アドレスC1
・入力オフセットレジスタ:入力画像501におけるオフセット量502
・出力アドレスレジスタ:出力画像504のうち1番目の出力バンド領域に対応する先頭アドレスD1
・出力オフセットレジスタ:出力画像504におけるオフセット量505
Next, a method for calculating the following register setting values in FIG. 5 based on the virtual color number Vn calculated in FIG. 9 will be described with reference to FIG.
Input address register: the start address C1 corresponding to the first input band area of the input image 501
Input offset register: offset amount 502 in the input image 501
Output address register: the start address D1 corresponding to the first output band area of the output image 504
Output offset register: offset amount 505 in the output image 504

S1000では、CPU100は、入力画像501の色数Cn_in(ここでは3)を取得する。 In S1000, the CPU 100 obtains the number of colors Cn_in (here, 3) of the input image 501.

S1001では、CPU100は、入力画像501の1色あたりのビット数Bps_inを取得する。 In S1001, the CPU 100 obtains the number of bits per color, Bps_in, of the input image 501.

S1002では、CPU100は、入力バンド領域500の長さBdl_inと高さBdh_inを取得する。 In S1002, the CPU 100 obtains the length Bdl_in and height Bdh_in of the input band area 500.

S1003では、CPU100は、入力画像501の先頭アドレスAdr_in_topとして、図5のアドレスC1を取得する。 In S1003, the CPU 100 obtains address C1 in FIG. 5 as the top address Adr_in_top of the input image 501.

S1004では、CPU100は、S1000~S1002で取得したCn_in、Bps_in、Bdl_in、およびBdh_inを用いて、式(1)に従って、入力バンドのサイズBds_inを算出する。 In S1004, the CPU 100 uses Cn_in, Bps_in, Bdl_in, and Bdh_in obtained in S1000 to S1002 to calculate the size of the input band Bds_in according to formula (1).

Figure 0007604147000001
Figure 0007604147000001

S1005では、CPU100は、S1004で取得した入力バンドのサイズBds_inと、図9のフローで取得した仮想的色数Vn(ここでは1)とを用いて、式(2)に従って、入力バンド領域のオフセット量Bdo_inを算出する。 In S1005, the CPU 100 calculates the offset amount Bdo_in of the input band area according to formula (2) using the size Bds_in of the input band obtained in S1004 and the virtual number of colors Vn (here, 1) obtained in the flow of FIG. 9.

Figure 0007604147000002
Figure 0007604147000002

S1006では、CPU100は、第1出力画像(ここでは出力画像504)の色数Cn_out1(ここでは3)を取得する。 In S1006, the CPU 100 obtains the number of colors Cn_out1 (here, 3) of the first output image (here, output image 504).

S1007では、CPU100は、第1出力画像(ここでは出力画像504)の1色あたりのビット数Bps_out1を取得する。 In S1007, the CPU 100 obtains the number of bits per color Bps_out1 of the first output image (here, output image 504).

S1008では、CPU100は、第1出力バンド領域503の長さBdl_out1と高さBdh_out1を取得する。 In S1008, the CPU 100 obtains the length Bdl_out1 and height Bdh_out1 of the first output band area 503.

S1009では、CPU100は、第1出力画像(ここでは出力画像504)の先頭アドレスAdr_out1_topとして、図5のアドレスD1を取得する。 In S1009, the CPU 100 obtains address D1 in FIG. 5 as the top address Adr_out1_top of the first output image (here, output image 504).

S1010では、CPU100は、S1006~S1008で取得したCn_out1、Bps_out1、Bdl_out1、およびBdh_out1を用いて、式(3)に従って、第1出力バンドのサイズBds_out1を算出する。 In S1010, the CPU 100 calculates the size Bds_out1 of the first output band according to equation (3) using Cn_out1, Bps_out1, Bdl_out1, and Bdh_out1 obtained in S1006 to S1008.

Figure 0007604147000003
Figure 0007604147000003

S1011では、CPU100は、S1010で取得した第1出力バンドのサイズBds_out1と、図9のフローで取得した仮想的色数Vn(ここでは1)とを用いて、式(4)に従って、第1出力バンド領域のオフセット量Bdo_out1を算出する。 In S1011, the CPU 100 calculates the offset amount Bdo_out1 of the first output band area according to formula (4) using the size Bds_out1 of the first output band obtained in S1010 and the virtual number of colors Vn (here, 1) obtained in the flow of FIG. 9.

Figure 0007604147000004
Figure 0007604147000004

S1012では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。本ステップの判定結果が真の場合、S1013に進む一方、該判定結果が偽の場合、S1019に進む。尚、図5のケースでは、出力画像が1つのため、S1019に処理を進める。 In S1012, the CPU 100 determines whether the image data output unit 218 outputs two different images. If the result of the determination in this step is true, the process proceeds to S1013, whereas if the result of the determination is false, the process proceeds to S1019. Note that in the case of FIG. 5, since there is only one output image, the process proceeds to S1019.

S1019では、CPU100は、ソフトウェアの内部カウンタである仮想的インデックスViを初期化して0に設定する。 In S1019, the CPU 100 initializes the virtual index Vi, which is an internal counter of the software, and sets it to 0.

S1020では、CPU100は、S1001で取得したBps_in、S1003で取得したAdr_in_top、およびS1019で取得したVi(ここでは0)を用いて、式(5)に従って、入力バンドの先頭アドレスAdr_in[Vi]を算出する。 In S1020, the CPU 100 calculates the top address Adr_in[Vi] of the input band according to equation (5) using Bps_in obtained in S1001, Adr_in_top obtained in S1003, and Vi (here, 0) obtained in S1019.

Figure 0007604147000005
Figure 0007604147000005

尚、以降では、Vi=nの場合のAdr_in[Vi]を、Adr_in[n]と記載する。例えば、本例(Vi=0の場合)のAdr_in[Vi]を、Adr_in[0]と記載する。 Note that hereafter, Adr_in[Vi] when Vi = n will be written as Adr_in[n]. For example, Adr_in[Vi] in this example (when Vi = 0) will be written as Adr_in[0].

S1021では、CPU100は、S1007、S1009、S1019で取得したBps_out1、Adr_out1_top、Vi(ここでは0)を用いて式(6)に従い、第1出力バンドの先頭アドレスAdr_out1[Vi]を求める。 In S1021, the CPU 100 uses Bps_out1, Adr_out1_top, and Vi (here, 0) obtained in S1007, S1009, and S1019 to calculate the top address Adr_out1[Vi] of the first output band according to equation (6).

Figure 0007604147000006
Figure 0007604147000006

尚、以降では、Vi=nの場合のAdr_out1[Vi]を、Adr_out1[n]と記載する。 Note that hereafter, Adr_out1[Vi] when Vi = n will be written as Adr_out1[n].

S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。本ステップの判定結果が真の場合、S1023に進む一方、該判定結果が偽の場合、S1024に進む。尚、図5のケースでは、出力画像が1つのため、S1024に処理を進める。 In S1022, the CPU 100 determines whether the image data output unit 218 outputs two different images. If the result of the determination in this step is true, the process proceeds to S1023, whereas if the result of the determination is false, the process proceeds to S1024. Note that in the case of FIG. 5, since there is only one output image, the process proceeds to S1024.

S1024では、CPU100は、S1019で0に初期化した仮想的インデックスViに1を加算する。 In S1024, the CPU 100 adds 1 to the virtual index Vi that was initialized to 0 in S1019.

S1025では、CPU100は、図9で取得した仮想的色数VnとS1024で取得した仮想的インデックスViとを比較し、式(7)を満たすか判定する。図5のケースでは、Vi=1、Vn=1であり、式(7)を満たさないため、S1026に処理を進める。 In S1025, the CPU 100 compares the virtual color count Vn obtained in FIG. 9 with the virtual index Vi obtained in S1024 to determine whether formula (7) is satisfied. In the case of FIG. 5, Vi = 1 and Vn = 1, which does not satisfy formula (7), so the process proceeds to S1026.

Figure 0007604147000007
Figure 0007604147000007

S1026では、CPU100は、以下の4つの値をレジスタに設定する。
・S1005で算出した入力バンド領域のオフセット量Bdo_in
・S1011で算出した第1出力バンド領域のオフセット量Bdo_out1
・S1020で算出した入力バンドの先頭アドレスAdr_in[0]
・S1021で算出した第1出力バンドの先頭アドレスAdr_out1[0]
In S1026, the CPU 100 sets the following four values in the registers.
The offset amount Bdo_in of the input band area calculated in S1005
The offset amount Bdo_out1 of the first output band area calculated in S1011
The start address Adr_in[0] of the input band calculated in S1020
The start address Adr_out1[0] of the first output band calculated in S1021

S1027では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。本ステップの判定結果が真の場合、S1028に進む一方、該判定結果が偽の場合、一連の処理を終了する。尚、図5のケースでは、出力画像が1つのため、一連の処理を終了する。 In S1027, the CPU 100 determines whether the image data output unit 218 outputs two different images. If the result of the determination in this step is true, the process proceeds to S1028, whereas if the result of the determination is false, the series of processes ends. Note that in the case of FIG. 5, since there is only one output image, the series of processes ends.

<モノクロ画像に対する1並列での画像処理>
以下、モノクロ(単色)の入力画像に対する1並列での画像処理の例について、図6を用いて説明する。
<One-way parallel image processing for monochrome images>
An example of one-parallel image processing for a monochrome (single-color) input image will be described below with reference to FIG.

画像処理部103に入力する画像は、モノクロ画像である。入力画像601は、符号600に示す入力バンド領域の長さBdl_in、高さBdh_inの大きさの3つの連続した入力バンド領域A1、A2、A3から構成される。入力バンド領域のそれぞれが格納されるバンドメモリの先頭アドレスは、C1、C2、C3である。入力画像のオフセット量602は、アドレスC1からアドレスC2、アドレスC2からアドレスC3までの同一のオフセット量(バイト数)である。画像処理部103から出力する画像は、モノクロ画像である。出力画像604は、符号603に示す出力バンド領域の長さBdl_out1、高さBdh_out1の大きさの3つの連続した出力バンド領域B1、B2、B3から構成される。出力バンド領域のそれぞれが格納されるバンドメモリの先頭アドレスは、D1、D2、D3である。出力画像604におけるオフセット量605は、アドレスD1からアドレスD2、アドレスD2からアドレスD3までの同一のオフセット量(バイト数)である。 The image input to the image processing unit 103 is a monochrome image. The input image 601 is composed of three consecutive input band areas A1, A2, and A3, each having a length Bdl_in and a height Bdh_in of the input band area shown by the reference symbol 600. The head addresses of the band memory in which each of the input band areas is stored are C1, C2, and C3. The offset amount 602 of the input image is the same offset amount (number of bytes) from address C1 to address C2 and from address C2 to address C3. The image output from the image processing unit 103 is a monochrome image. The output image 604 is composed of three consecutive output band areas B1, B2, and B3, each having a length Bdl_out1 and a height Bdh_out1 of the output band area shown by the reference symbol 603. The head addresses of the band memory in which each of the output band areas is stored are D1, D2, and D3. The offset amount 605 in the output image 604 is the same offset amount (number of bytes) from address D1 to address D2 and from address D2 to address D3.

ここで、入出力制御部200は、レジスタブロック219に以下の4つのレジスタを備える。
・入力アドレスレジスタ:入力画像601の先頭アドレスC1
・入力オフセットレジスタ:入力画像601の入力バンド領域間のオフセット量602
・出力アドレスレジスタ:出力画像604の先頭アドレスD1
・出力オフセットレジスタ:出力画像604の出力バンド領域間のオフセット量605
Here, the input/output control unit 200 includes the following four registers in the register block 219:
Input address register: the start address C1 of the input image 601
Input offset register: offset amount 602 between input band regions of the input image 601
Output address register: start address D1 of the output image 604
Output offset register: offset amount 605 between output band regions of the output image 604

これら4つのレジスタは、CPU100によって実現されるソフトウェアモジュールがレジスタブロック219にレジスタ設定値を設定する構成となっている。また、これら4つのレジスタについては、図5のRGB点順次の入力画像に対する画像処理の例におけるレジスタ構成と同等である。 These four registers are configured so that a software module implemented by the CPU 100 sets register setting values in the register block 219. Furthermore, these four registers are equivalent to the register configuration in the example of image processing for the RGB point-sequential input image in FIG. 5.

入出力制御部200内の画像処理コマンドのフォーマットは、ヘッダと、3つのデータ領域とから構成され、1つのデータ領域P0のみを使用する画像処理コマンド303(図3(c)参照)のフォーマットに該当する。コマンド生成部204で生成する画像処理コマンド(入力)と、コマンド解析部217で解析する画像処理コマンド(出力)とは、画像処理コマンド303のフォーマットに基づいて処理する。 The format of the image processing command in the input/output control unit 200 is composed of a header and three data areas, and corresponds to the format of the image processing command 303 (see FIG. 3(c)), which uses only one data area P0. The image processing command (input) generated by the command generation unit 204 and the image processing command (output) analyzed by the command analysis unit 217 are processed based on the format of the image processing command 303.

次に、画像処理部103における処理について説明する。画像データ入力部202は、入力画像601の1番目の入力バンド領域A1をバンドメモリから読み込む。具体的には、画像データ入力部202は、入力バンド領域A1について先頭アドレスC1から32バイト単位でオフセット量602(バイト数)読み込み、中間バッファ制御部203の記憶領域に書き込む。さらに、画像データ入力部202は、中間バッファ制御部203の記憶領域からモノクロの1画素分のデータ16bitを読み込み、該読みこんだ1画素分のデータをコマンド生成部204に出力する。その後、コマンド生成部204は、1画素分のデータを画像処理コマンド303(入力)のデータ領域P0に格納することで、画像処理コマンド303(入力)を生成し、該生成した画像処理コマンド303(入力)をコマンド送信部205に出力する。コマンド送信部205は、画像処理コマンド303(入力)を画像処理実行部201に出力する。画像処理実行部201が画像処理コマンド303(入力)に格納された画素データに基づく画像処理を完了すると、コマンド受信部216は、画像処理コマンド303(出力)を受信する。コマンド受信部216は、受信した画像処理コマンド303(出力)をコマンド解析部217に出力する。コマンド解析部217は、画像処理コマンド303(出力)のデータ領域P0に格納されたモノクロの画素データを取り出し、該取り出した画素データを画像データ出力部218に出力する。画像データ出力部218は、そのモノクロの画素データを中間バッファ制御部203の記憶領域に書き込む。さらに、画像データ出力部218は、中間バッファ制御部203の記憶領域からモノクロの出力画像データを32バイト単位で読み込み、出力画像604のうち1番目の出力バンド領域B1を構成する出力画像データとして出力バンドメモリに書き込む。 Next, the processing in the image processing unit 103 will be described. The image data input unit 202 reads the first input band area A1 of the input image 601 from the band memory. Specifically, the image data input unit 202 reads the offset amount 602 (number of bytes) in units of 32 bytes from the starting address C1 for the input band area A1, and writes it to the storage area of the intermediate buffer control unit 203. Furthermore, the image data input unit 202 reads 16 bits of monochrome data for one pixel from the storage area of the intermediate buffer control unit 203, and outputs the read data for one pixel to the command generation unit 204. After that, the command generation unit 204 generates the image processing command 303 (input) by storing the data for one pixel in the data area P0 of the image processing command 303 (input), and outputs the generated image processing command 303 (input) to the command transmission unit 205. The command transmission unit 205 outputs the image processing command 303 (input) to the image processing execution unit 201. When the image processing execution unit 201 completes image processing based on the pixel data stored in the image processing command 303 (input), the command receiving unit 216 receives the image processing command 303 (output). The command receiving unit 216 outputs the received image processing command 303 (output) to the command analyzing unit 217. The command analyzing unit 217 extracts the monochrome pixel data stored in the data area P0 of the image processing command 303 (output) and outputs the extracted pixel data to the image data output unit 218. The image data output unit 218 writes the monochrome pixel data to the storage area of the intermediate buffer control unit 203. Furthermore, the image data output unit 218 reads the monochrome output image data in 32-byte units from the storage area of the intermediate buffer control unit 203 and writes it to the output band memory as output image data that constitutes the first output band area B1 of the output image 604.

以上の処理フローに基づき、入出力制御部200は、入力画像データとしてオフセット量602(バイト数)の入力バンド領域A1を読み込む。続いて、画像処理実行部201は、画像処理を行い、画像データ出力部218は、出力バンドメモリ(先頭アドレスD1)にオフセット量605(バイト数)の出力画像データを書き込む。 Based on the above processing flow, the input/output control unit 200 reads the input band area A1 with an offset amount of 602 (number of bytes) as input image data. Next, the image processing execution unit 201 performs image processing, and the image data output unit 218 writes output image data with an offset amount of 605 (number of bytes) to the output band memory (starting address D1).

その次に、入力画像601の2番目の入力バンド領域A2の画像処理を行う。具体的には、画像データ入力部202は、レジスタブロック219から入力アドレスレジスタの値(入力画像601の先頭アドレスC1)と、入力オフセットレジスタの値(入力画像601におけるオフセット量602(バイト数))とを取得する。その上で、画像データ入力部202は、入力アドレスレジスタの値に入力オフセットレジスタの値を加算することで、2番目の入力バンドメモリの先頭アドレスC2を算出し、内部カウンタに保持する。同じく、画像データ出力部218は、レジスタブロック219から出力アドレスレジスタの値(出力画像604の先頭アドレスD1)と、出力オフセットレジスタの値(出力画像604におけるオフセット量605(バイト数))とを取得する。その上で、画像データ出力部218は、出力アドレスレジスタの値に出力オフセットレジスタの値を加算することで、2番目の出力バンドメモリの先頭アドレスD2を算出し、内部カウンタに保持する。画像データ入力部202は、入力画像データのうちオフセット量602(バイト数)の入力バンド領域A2を読み込み、画像処理実行部201が画像処理を行う。その後、画像データ出力部218は、オフセット量605(バイト数)の出力バンド領域B2を出力バンドメモリに書き込む。 Next, image processing is performed on the second input band area A2 of the input image 601. Specifically, the image data input unit 202 acquires the value of the input address register (start address C1 of the input image 601) and the value of the input offset register (offset amount 602 (number of bytes) in the input image 601) from the register block 219. The image data input unit 202 then calculates the start address C2 of the second input band memory by adding the value of the input offset register to the value of the input address register, and stores it in the internal counter. Similarly, the image data output unit 218 acquires the value of the output address register (start address D1 of the output image 604) and the value of the output offset register (offset amount 605 (number of bytes) in the output image 604) from the register block 219. The image data output unit 218 then calculates the start address D2 of the second output band memory by adding the value of the output offset register to the value of the output address register, and stores it in the internal counter. The image data input unit 202 reads the input band area A2 of the input image data with an offset amount 602 (number of bytes), and the image processing execution unit 201 performs image processing. After that, the image data output unit 218 writes the output band area B2 with an offset amount 605 (number of bytes) to the output band memory.

その次に、入力画像601の3番目の入力バンド領域A3の画像処理を行う。具体的には、画像データ入力部202は、内部カウンタに保持された2番目の入力バンドメモリの先頭アドレスC2にオフセット量602(バイト数)を加算することで、3番目の入力バンドメモリの先頭アドレスC3を算出し、内部カウンタを更新する。同じく、画像データ出力部218は、内部カウンタに保持された2番目の出力バンド領域の先頭アドレスD2にオフセット量605(バイト数)を加算することで、3番目の出力バンドメモリの先頭アドレスD3を算出し、内部カウンタを更新する。画像データ入力部202は、入力画像データのうちオフセット量602(バイト数)の入力バンド領域A3を読み込み、画像処理実行部201が画像処理を行う。その後、画像データ出力部218は、オフセット量605(バイト数)出力バンド領域B3を出力バンドメモリに書き込む。 Next, image processing is performed on the third input band area A3 of the input image 601. Specifically, the image data input unit 202 calculates the head address C3 of the third input band memory by adding the offset amount 602 (number of bytes) to the head address C2 of the second input band memory held in the internal counter, and updates the internal counter. Similarly, the image data output unit 218 calculates the head address D3 of the third output band memory by adding the offset amount 605 (number of bytes) to the head address D2 of the second output band area held in the internal counter, and updates the internal counter. The image data input unit 202 reads the input band area A3 of the offset amount 602 (number of bytes) of the input image data, and the image processing execution unit 201 performs image processing. After that, the image data output unit 218 writes the output band area B3 of the offset amount 605 (number of bytes) to the output band memory.

次に、図6のモノクロ(単色)データの入力画像に対する画像処理において、CPU100によって実現されるソフトウェアモジュールが、画像処理部103を駆動させるために必要なレジスタ設定値を算出する処理について、図9および図10を用いて説明する。 Next, in the image processing of the monochrome (single-color) data input image of FIG. 6, the process in which the software module realized by the CPU 100 calculates the register setting values required to drive the image processing unit 103 will be described with reference to FIG. 9 and FIG. 10.

まず、仮想的色数を決定するフローについて、図9を用いて説明する。S900では、CPU100は、入力画像がモノクロ画像か判定する。図6のケースでは、入力画像601がモノクロ画像のため、S900の判定結果が真となり、S901に処理を進める。 First, the flow for determining the virtual number of colors will be described with reference to FIG. 9. In S900, the CPU 100 determines whether the input image is a monochrome image. In the case of FIG. 6, the input image 601 is a monochrome image, so the determination result in S900 is true and the process proceeds to S901.

S901では、CPU100は、モノクロ画像に対する画像処理を高速化するか、つまりN並列(Nは2以上の整数)で画像処理するか判定する。本ステップの判定結果が真の場合、S902に進む一方、該判定結果が偽の場合(つまり、1並列で画像処理を行う場合)、S903に進む。図6のケースでは、1並列で画像処理を行うため、S903に処理を進める。S903では、CPU100は、仮想的色数Vnを1に設定する。 In S901, the CPU 100 determines whether to speed up image processing of a monochrome image, that is, whether to perform image processing in N parallelism (N is an integer equal to or greater than 2). If the result of the determination in this step is true, the process proceeds to S902, whereas if the result of the determination is false (that is, image processing is to be performed in 1 parallelism), the process proceeds to S903. In the case of FIG. 6, image processing is to be performed in 1 parallelism, so the process proceeds to S903. In S903, the CPU 100 sets the virtual number of colors Vn to 1.

次に、図9のフローで求めた仮想的色数Vnに基づいて図6における以下のレジスタ設定値を算出する方法について、図10を用いて説明する。
・入力アドレスレジスタ:1番目の入力バンドメモリの先頭アドレスC1
・入力オフセットレジスタ:入力画像601におけるオフセット量602
・出力アドレスレジスタ:1番目の出力バンドメモリの先頭アドレスD1
・出力オフセットレジスタ:出力画像604におけるオフセット量605
Next, a method for calculating the following register setting values in FIG. 6 based on the virtual color number Vn calculated in the flow of FIG. 9 will be described with reference to FIG.
Input address register: First address C1 of the first input band memory
Input offset register: offset amount 602 in the input image 601
Output address register: First address D1 of the first output band memory
Output offset register: offset amount 605 in the output image 604

S1000では、CPU100は、入力画像601の色数Cn_in(ここでは1)を取得する。 In S1000, the CPU 100 obtains the number of colors Cn_in (here, 1) of the input image 601.

S1001では、CPU100は、入力画像601の1色あたりのビット数Bps_inを取得する。 In S1001, the CPU 100 obtains the number of bits per color, Bps_in, of the input image 601.

S1002では、CPU100は、入力バンド領域600の長さBdl_inと高さBdh_inを取得する。 In S1002, the CPU 100 obtains the length Bdl_in and height Bdh_in of the input band area 600.

S1003では、CPU100は、入力画像601の先頭アドレスAdr_in_topとして、図6のアドレスC1を取得する。 In S1003, the CPU 100 obtains address C1 in FIG. 6 as the top address Adr_in_top of the input image 601.

ステップS1004では、CPU100は、S1000~S1002で取得したCn_in、Bps_in、Bdl_in、およびBdh_inを用いて、式(1)に従って、入力バンドのサイズBds_inを算出する。 In step S1004, the CPU 100 uses Cn_in, Bps_in, Bdl_in, and Bdh_in obtained in steps S1000 to S1002 to calculate the size of the input band Bds_in according to formula (1).

S1005では、CPU100は、S1004で取得した入力バンドのサイズBds_inと、図9のフローで取得した仮想的色数Vn(ここでは1)とを用いて、式(2)に従って、入力バンド領域のオフセット量Bdo_inを算出する。 In S1005, the CPU 100 calculates the offset amount Bdo_in of the input band area according to formula (2) using the size Bds_in of the input band obtained in S1004 and the virtual number of colors Vn (here, 1) obtained in the flow of FIG. 9.

S1006では、CPU100は、第1出力画像(ここでは出力画像604)の色数Cn_out1(ここでは1)を取得する。 In S1006, the CPU 100 obtains the number of colors Cn_out1 (here, 1) of the first output image (here, output image 604).

S1007では、CPU100は、第1出力画像(ここでは出力画像604)の1色あたりのビット数Bps_out1を取得する。 In S1007, the CPU 100 obtains the number of bits per color Bps_out1 of the first output image (here, output image 604).

S1008では、CPU100は、第1出力バンド領域603の長さBdl_out1と高さBdh_out1を取得する。 In S1008, the CPU 100 obtains the length Bdl_out1 and height Bdh_out1 of the first output band area 603.

S1009では、CPU100は、第1出力画像(ここでは出力画像604)の先頭アドレスAdr_out1_topとして、図6のアドレスD1を取得する。 In S1009, the CPU 100 obtains address D1 in FIG. 6 as the top address Adr_out1_top of the first output image (here, output image 604).

S1010では、CPU100は、S1006~S1008で取得したCn_out1、Bps_out1、Bdl_out1、およびBdh_out1を用いて、式(3)に従って、第1出力バンドのサイズBds_out1を算出する。 In S1010, the CPU 100 calculates the size Bds_out1 of the first output band according to equation (3) using Cn_out1, Bps_out1, Bdl_out1, and Bdh_out1 obtained in S1006 to S1008.

S1011では、CPU100は、S1010で取得した出力バンドのサイズBds_out1と、図9のフローで取得した仮想的色数Vn(ここでは1)とを用いて、式(4)に従って、第1出力バンド領域のオフセット量Bdo_out1を算出する。 In S1011, the CPU 100 calculates the offset amount Bdo_out1 of the first output band area according to formula (4) using the output band size Bds_out1 obtained in S1010 and the virtual color number Vn (here, 1) obtained in the flow of Figure 9.

S1012では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。図6のケースでは、出力画像が1つのため、S1019に処理を進める。 In S1012, the CPU 100 determines whether the image data output unit 218 outputs two different images. In the case of FIG. 6, there is one output image, so the process proceeds to S1019.

S1019では、CPU100は、ソフトウェアの内部カウンタである仮想的インデックスViを初期化して0に設定する。 In S1019, the CPU 100 initializes the virtual index Vi, which is an internal counter of the software, and sets it to 0.

S1020では、CPU100は、S1001で取得したBps_in、S1003で取得したAdr_in_top、およびS1019で取得したVi(ここでは0)を用いて、式(5)に従って、入力バンドの先頭アドレスAdr_in[0]を算出する。 In S1020, the CPU 100 calculates the top address Adr_in[0] of the input band according to equation (5) using Bps_in obtained in S1001, Adr_in_top obtained in S1003, and Vi (here, 0) obtained in S1019.

S1021では、CPU100は、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1019で取得したVi(ここでは0)を用いて式(6)に従い第1出力バンドの先頭アドレスAdr_out1[0]を求める。 In S1021, the CPU 100 uses Bps_out1 obtained in S1007, Adr_out1_top obtained in S1009, and Vi (here, 0) obtained in S1019 to determine the top address Adr_out1[0] of the first output band according to equation (6).

S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図6のケースでは、出力画像が1つのため、S1024に処理を進める。 In S1022, the CPU 100 determines whether the image data output unit 218 outputs two different images. In the case of FIG. 6, since there is only one output image, the process proceeds to S1024.

S1024では、CPU100は、S1019で0に初期化した仮想的インデックスViに1を加算する。 In S1024, the CPU 100 adds 1 to the virtual index Vi that was initialized to 0 in S1019.

S1025では、CPU100は、図9で取得した仮想的色数VnとS1024で取得した仮想的インデックスViとを比較し、式(7)を満たすか判定する。図6のケースでは、Vi=1、Vn=1であり、式(7)を満たさないため、S1026に処理を進める。 In S1025, the CPU 100 compares the virtual color count Vn obtained in FIG. 9 with the virtual index Vi obtained in S1024 to determine whether formula (7) is satisfied. In the case of FIG. 6, Vi = 1 and Vn = 1, which does not satisfy formula (7), so the process proceeds to S1026.

ステップS1026では、CPU100は、以下の4つの値をレジスタに設定する。
・S1005で算出した入力バンド領域のオフセット量Bdo_in
・S1011で算出した出力バンド領域のオフセット量Bdo_out1
・S1020で算出した入力バンドの先頭アドレスAdr_in[0)]
・S1021で算出した出力バンドの先頭アドレスAdr_out1[0]
In step S1026, the CPU 100 sets the following four values in the registers.
The offset amount Bdo_in of the input band area calculated in S1005
The offset amount Bdo_out1 of the output band area calculated in S1011
The start address Adr_in[0)] of the input band calculated in S1020
The start address Adr_out1[0] of the output band calculated in S1021

S1027では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図6のケースでは、出力画像が1つのため、一連の処理を終了する。 In S1027, the CPU 100 determines whether the image data output unit 218 outputs two different images. In the case of FIG. 6, since there is only one output image, the process ends.

<モノクロ画像に対する3並列での画像処理>
以下、モノクロ(単色)の入力画像に対して3並列で画像処理を行う例について、図7を用いて説明する。
<Three-parallel image processing for monochrome images>
An example of performing three parallel image processes on a monochrome (single-color) input image will be described below with reference to FIG.

画像処理部103に入力する画像はモノクロ画像である。入力画像701は、符号700に示す入力バンド領域の長さBdl_in、高さBdh_inの大きさの9つの連続した入力バンド領域A1-0、A1-1、A1-2、A2-0、A2-1、A2-2、A3-0、A3-1、A3-2から構成される。入力バンド領域のそれぞれが格納されるバンドメモリの先頭アドレスは、B1-0、B1-1、B1-2、B2-0、B2-1、B2-2、B3-0、B3-1、B3-2である。入力画像におけるオフセット量702は、入力バンド領域700のバイト数を3倍したものである。具体的には、アドレスB1-0からB2-0、B1-1からB2-1、B1-2からB2-2、B2-0からB3-0、B2-1からB3-1、B2-2からB3-2までの同一のオフセット量(バイト数)である。画像処理部103から出力される画像は、モノクロ画像である。出力画像704は、符号703に示す出力バンド領域の長さBdl_out1、高さBdh_out1の大きさの9つの連続した出力バンド領域C1-0、C1-1、C1-2,C2-0、C2-1、C2-2、C3-0、C3-1、C3-2から構成される。出力バンド領域のそれぞれが格納されるバンドメモリの先頭アドレスは、D1-0、D1-1、D1-2、D2-0、D2-1、D2-2、D3-0、D3-1、D3-2である。出力画像704におけるオフセット量705は、出力バンド領域703のバイト数を3倍したものである。具体的には、アドレスD1-0からD2-0、D1-1からD2-1、D1-2からD2-2、D2-0からD3-0、D2-1からD3-1、D2-2からD3-2までの同一のオフセット量(バイト数)である。 The image input to the image processing unit 103 is a monochrome image. The input image 701 is composed of nine consecutive input band areas A1-0, A1-1, A1-2, A2-0, A2-1, A2-2, A3-0, A3-1, and A3-2, each of which has a length Bdl_in and a height Bdh_in of the input band area shown by the reference symbol 700. The top addresses of the band memories in which the input band areas are stored are B1-0, B1-1, B1-2, B2-0, B2-1, B2-2, B3-0, B3-1, and B3-2. The offset amount 702 in the input image is three times the number of bytes of the input band area 700. Specifically, the offset amounts (number of bytes) are the same from address B1-0 to B2-0, B1-1 to B2-1, B1-2 to B2-2, B2-0 to B3-0, B2-1 to B3-1, and B2-2 to B3-2. The image output from the image processing unit 103 is a monochrome image. The output image 704 is composed of nine continuous output band areas C1-0, C1-1, C1-2, C2-0, C2-1, C2-2, C3-0, C3-1, and C3-2, each having a length Bdl_out1 and a height Bdh_out1 of the output band area shown by reference numeral 703. The top addresses of the band memories in which the output band areas are stored are D1-0, D1-1, D1-2, D2-0, D2-1, D2-2, D3-0, D3-1, and D3-2. The offset amount 705 in the output image 704 is three times the number of bytes in the output band area 703. Specifically, the offset amount (number of bytes) is the same from addresses D1-0 to D2-0, D1-1 to D2-1, D1-2 to D2-2, D2-0 to D3-0, D2-1 to D3-1, and D2-2 to D3-2.

ここで、入出力制御部200は、モノクロの入力画像701を仮想的にRの入力バンド領域、Gの入力バンド領域、Bの入力バンド領域にバンド分割して、仮想的なRGBの3つの入力バンド領域の並列処理を行う。そのため、入出力制御部200は、レジスタブロック219に以下の8つのレジスタを備える。
・入力アドレスレジスタ:仮想的な色RGB各色の入力バンドメモリの先頭アドレスB1-0、B1-1、B1-2
・入力オフセットレジスタ:仮想的な色RGB各色における入力バンド領域間のオフセット量702
・出力アドレスレジスタ:仮想的な色RGB各色の出力バンドメモリの先頭アドレスD1-0、D1-1、D1-2
・出力オフセットレジスタ:仮想的な色RGB各色における出力バンド領域間のオフセット量705
Here, the input/output control unit 200 virtually divides the monochrome input image 701 into an R input band area, a G input band area, and a B input band area, and performs parallel processing of the three virtual RGB input band areas. For this reason, the input/output control unit 200 has the following eight registers in the register block 219:
Input address register: The top addresses B1-0, B1-1, and B1-2 of the input band memory for each virtual color RGB
Input offset register: offset amount 702 between input band areas for each virtual color RGB
Output address register: The top addresses D1-0, D1-1, and D1-2 of the output band memory for each virtual color RGB
Output offset register: offset amount between output band areas for each virtual color RGB 705

これら8つのレジスタは、CPU100によって実現されるソフトウェアモジュールがレジスタブロック219にレジスタ設定値を設定する構成となっている。また、これら8つのレジスタについては、図5のRGB点順次の入力画像に対する画像処理の例、および、図6のモノクロ(単色)の入力画像に対する1並列での画像処理の例におけるレジスタ構成と同等である。但し、図5や図6のケースでは、入力アドレスレジスタと出力アドレスレジスタとをそれぞれ1つのみ使用する形態を示したが、ここでは、入力アドレスレジスタ3個と出力アドレスレジスタ3個とを使用する形態を示す。 These eight registers are configured so that a software module implemented by the CPU 100 sets register setting values in the register block 219. These eight registers are also equivalent to the register configuration in the example of image processing for an RGB dot-sequential input image in FIG. 5 and the example of image processing in one parallel process for a monochrome (single color) input image in FIG. 6. However, while the cases in FIG. 5 and FIG. 6 show configurations in which only one input address register and one output address register are used, here we show a configuration in which three input address registers and three output address registers are used.

入出力制御部200内の画像処理コマンドのフォーマットは、ヘッダと、3つのデータ領域P0、P1、P2とから構成され、画像処理コマンド305(図3(d)参照)のフォーマットに該当する。コマンド生成部204で生成する画像処理コマンド(入力)と、コマンド解析部217で解析する画像処理コマンド(出力)とは、画像処理コマンド305のフォーマットに基づいて処理する。 The format of the image processing command in the input/output control unit 200 is composed of a header and three data areas P0, P1, and P2, and corresponds to the format of the image processing command 305 (see FIG. 3(d)). The image processing command (input) generated by the command generation unit 204 and the image processing command (output) analyzed by the command analysis unit 217 are processed based on the format of the image processing command 305.

次に、画像処理部103における処理について説明する。画像データ入力部202は、入力画像701のうち1番~3番目の入力バンド領域A1-0、A1-1、A1-2について、それぞれ32バイト単位で読み込み、中間バッファ制御部203の記憶領域にRGBの面順次のデータとして書き込む。このとき、画像データ入力部202が読み込む各入力バンド領域の画像サイズは、入力バンド領域700のバイト数である。さらに、画像データ入力部202は、中間バッファ制御部203の記憶領域から仮想的なRGB各色の1画素分のデータ16bitを読み込み、該読みこんだ1画素分のデータをコマンド生成部204に出力する。その後、コマンド生成部204は、1画素分のデータを画像処理コマンド305(入力)のデータ領域P0、P1、P2に格納することで、画像処理コマンド305(入力)を生成し、該生成した画像処理コマンド305(入力)をコマンド送信部205に出力する。コマンド送信部205は、画像処理コマンド305(入力)を画像処理実行部201に出力する。画像処理実行部201が画像処理コマンド305(入力)に格納された画素データに基づく画像処理を完了すると、コマンド受信部216は、画像処理コマンド305(出力)を受信する。コマンド受信部216は、受信した画像処理コマンド305(出力)をコマンド解析部217に出力する。コマンド解析部217は、画像処理コマンド305(出力)のデータ領域P0、P1、P2に格納された仮想的なRGB各色の画素データを取り出し、該取り出した画素データを画像データ出力部218に出力する。画像データ出力部218は、その仮想的なRGB各色の画素データを中間バッファ制御部203の記憶領域に書き込む。さらに、画像データ出力部218は、中間バッファ制御部203の記憶領域から仮想的なRGB各色の出力画像データを32バイト単位で読み込み、出力バンド領域C1-0、C1-1、C1-2として出力バンドメモリに書き込む。 Next, the processing in the image processing unit 103 will be described. The image data input unit 202 reads the first to third input band areas A1-0, A1-1, and A1-2 of the input image 701 in 32-byte units, respectively, and writes them as RGB surface sequential data in the storage area of the intermediate buffer control unit 203. At this time, the image size of each input band area read by the image data input unit 202 is the number of bytes of the input band area 700. Furthermore, the image data input unit 202 reads 16-bit data for one pixel of virtual RGB colors from the storage area of the intermediate buffer control unit 203, and outputs the read data for one pixel to the command generation unit 204. After that, the command generation unit 204 generates the image processing command 305 (input) by storing the data for one pixel in the data areas P0, P1, and P2 of the image processing command 305 (input), and outputs the generated image processing command 305 (input) to the command transmission unit 205. The command transmission unit 205 outputs the image processing command 305 (input) to the image processing execution unit 201. When the image processing execution unit 201 completes image processing based on the pixel data stored in the image processing command 305 (input), the command reception unit 216 receives the image processing command 305 (output). The command reception unit 216 outputs the received image processing command 305 (output) to the command analysis unit 217. The command analysis unit 217 extracts the virtual pixel data of each color of RGB stored in the data areas P0, P1, and P2 of the image processing command 305 (output), and outputs the extracted pixel data to the image data output unit 218. The image data output unit 218 writes the virtual pixel data of each color of RGB to a storage area of the intermediate buffer control unit 203. Furthermore, the image data output unit 218 reads the virtual output image data for each color of RGB in 32-byte units from the memory area of the intermediate buffer control unit 203, and writes it to the output band memory as output band areas C1-0, C1-1, and C1-2.

以上の処理フローに基づき、入出力制御部200は、入力バンド領域A1-0、A1-1、A1-2のそれぞれについて、入力バンド領域700のバイト数の入力画像データを読み込む。続いて、画像処理実行部201は、画像処理を行い、画像データ出力部218は、出力バンドメモリ(先頭アドレスD1-0、D1-1、D1-2)それぞれに出力バンド領域703のバイト数の出力画像データを書き込む。 Based on the above processing flow, the input/output control unit 200 reads the input image data of the number of bytes in the input band area 700 for each of the input band areas A1-0, A1-1, and A1-2. Next, the image processing execution unit 201 performs image processing, and the image data output unit 218 writes the output image data of the number of bytes in the output band area 703 to each of the output band memories (starting addresses D1-0, D1-1, and D1-2).

入力バンド領域A1-0、A1-1、A1-2に対する画像処理が完了したら、入力画像701の4番目の入力バンド領域A2-0、5番目の入力バンド領域A2-1、6番目の入力バンド領域A2-2に対する画像処理を行う。具体的には、画像データ入力部202は、レジスタブロック219から入力アドレスレジスタの値(入力画像701に対する1~3番目のアドレスB1-0、B1-1、B1-2)と、入力オフセットレジスタの値(オフセット量702(バイト数))とを取得する。その上で、それぞれの入力アドレスレジスタの値に入力オフセットレジスタの値を加算することで、4~6番目のアドレスB2-0、B2-1、B2-2を算出し、該算出したアドレスを内部カウンタに保持する。同じく、画像データ出力部218は、レジスタブロック219から出力アドレスレジスタの値(出力画像704に対する1~3番目のアドレスD1-0、D1-1、D1-2)と、出力オフセットレジスタの値(オフセット量705(バイト数))とを取得する。その上で、それぞれの出力アドレスレジスタの値に出力オフセットレジスタの値を加算することで、4~6番目のアドレスD2-0、D2-1、D2-2を算出し、該算出したアドレスを内部カウンタに保持する。 When image processing for input band areas A1-0, A1-1, and A1-2 is complete, image processing is performed for the fourth input band area A2-0, the fifth input band area A2-1, and the sixth input band area A2-2 of the input image 701. Specifically, the image data input unit 202 obtains the input address register value (the first to third addresses B1-0, B1-1, and B1-2 for the input image 701) and the input offset register value (offset amount 702 (number of bytes)) from the register block 219. Then, the input offset register value is added to each input address register value to calculate the fourth to sixth addresses B2-0, B2-1, and B2-2, and the calculated addresses are stored in an internal counter. Similarly, the image data output unit 218 obtains the output address register value (the first to third addresses D1-0, D1-1, D1-2 for the output image 704) and the output offset register value (offset amount 705 (number of bytes)) from the register block 219. It then adds the output offset register value to each output address register value to calculate the fourth to sixth addresses D2-0, D2-1, D2-2, and stores the calculated addresses in an internal counter.

入出力制御部200は、入力バンド領域A2-0、A2-1、A2-2のそれぞれについて、入力バンド領域700のバイト数の入力画像データを読み込む。続いて、画像処理実行部201は、画像処理を行い、入出力制御部200は、出力バンドメモリ(先頭アドレスD2-0、D2-1、D2-2)にそれぞれ出力バンド領域703のバイト数の出力画像データを書き込む。 The I/O control unit 200 reads the input image data of the number of bytes in the input band area 700 for each of the input band areas A2-0, A2-1, and A2-2. Next, the image processing execution unit 201 performs image processing, and the I/O control unit 200 writes the output image data of the number of bytes in the output band area 703 to the output band memory (starting addresses D2-0, D2-1, and D2-2).

入力バンド領域A2-0、A2-1、A2-2に対する画像処理が完了したら、入力画像701の7番目の入力バンド領域A3-0、8番目の入力バンド領域A3-1、9番目の入力バンド領域A3-2に対する画像処理を行う。具体的には、画像データ入力部202は、内部カウンタに保持された入力画像701に対するアドレスB2-0、B2-1、B2-2にオフセット量702(バイト数)を加算する。これにより、7~9番目のアドレスB3-0、B3-1、B3-2を算出し、該算出したアドレスで内部カウンタを更新する。同じく、画像データ出力部218は、内部カウンタに保持された出力画像704のアドレスD2-1、D2-2、D2-2にオフセット量705(バイト数)を加算する。これにより、7~9番目のアドレスD3-0、D3-1、D3-2を算出し、該算出したアドレスで内部カウンタを更新する。 When image processing for the input band areas A2-0, A2-1, and A2-2 is completed, image processing is performed for the seventh input band area A3-0, the eighth input band area A3-1, and the ninth input band area A3-2 of the input image 701. Specifically, the image data input unit 202 adds an offset amount 702 (number of bytes) to the addresses B2-0, B2-1, and B2-2 for the input image 701 stored in the internal counter. This calculates the seventh to ninth addresses B3-0, B3-1, and B3-2, and updates the internal counter with the calculated addresses. Similarly, the image data output unit 218 adds an offset amount 705 (number of bytes) to the addresses D2-1, D2-2, and D2-2 of the output image 704 stored in the internal counter. This calculates the seventh to ninth addresses D3-0, D3-1, and D3-2, and updates the internal counter with the calculated addresses.

入出力制御部200は、入力バンド領域A3-0、A3-1、A3-2のそれぞれについて、入力バンド領域700のバイト数の入力画像データを読み込む。続いて、画像処理実行部201は、画像処理を行い、入出力制御部200は、出力バンドメモリ(先頭アドレスD3-0、D3-1、D3-2)に出力バンド領域703のバイト数の出力画像データを書き込む。 The I/O control unit 200 reads the input image data of the number of bytes in the input band area 700 for each of the input band areas A3-0, A3-1, and A3-2. Next, the image processing execution unit 201 performs image processing, and the I/O control unit 200 writes the output image data of the number of bytes in the output band area 703 to the output band memory (starting addresses D3-0, D3-1, and D3-2).

次に、図7のモノクロ(単色)の入力画像に対する3並列での画像処理において、CPU100によって実現されるソフトウェアモジュールが、画像処理部103を駆動させるために必要なレジスタ設定値を算出する処理について、図9及び図10を用いて説明する。 Next, the process of calculating the register setting values required for driving the image processing unit 103 by the software module realized by the CPU 100 in the triple parallel image processing of the monochrome (single color) input image in FIG. 7 will be described with reference to FIG. 9 and FIG. 10.

まず、仮想的色数を決定するフローについて、図9を用いて説明する。S900では、CPU100は、入力画像がモノクロ画像か判定する。図7のケースでは、入力画像701がモノクロ画像のため、S900の判定結果が真となり、S901に処理を進める。 First, the flow for determining the virtual number of colors will be described with reference to FIG. 9. In S900, the CPU 100 determines whether the input image is a monochrome image. In the case of FIG. 7, the input image 701 is a monochrome image, so the determination result in S900 is true and the process proceeds to S901.

S901では、CPU100は、モノクロ画像に対する画像処理を高速化するか、つまりN並列(Nは2以上の整数)で画像処理するか判定する。図7のケースでは、N並列で画像処理を行うため、S902に処理を進める。S902では、CPU100は、図7の画像処理コマンド305(入力)のデータ領域が3つであることから、仮想的色数Vnを3に設定する。 In S901, the CPU 100 determines whether to speed up image processing of a monochrome image, that is, whether to perform image processing in N parallelism (N is an integer equal to or greater than 2). In the case of FIG. 7, image processing is to be performed in N parallelism, so the process proceeds to S902. In S902, the CPU 100 sets the virtual number of colors Vn to 3 because the data area of the image processing command 305 (input) in FIG. 7 is three.

次に、図9で求めた仮想的色数Vnに基づいて図7における以下のレジスタ設定値を算出する方法について、図10を用いて説明する。
・入力アドレスレジスタ:入力画像701の仮想的なRGB各色の1番目の入力バンドメモリの先頭アドレスB1-0、B1-1、B1-2
・入力オフセットレジスタ:入力画像701における仮想的なRGB各色のオフセット量702
・出力アドレスレジスタ:第1出力画像704の仮想的なRGB各色の1番目の出力バンドメモリの先頭アドレスD1-0、D1-1、D1-2
・出力オフセットレジスタ:第1出力画像704における仮想的なRGB各色のオフセット量705
Next, a method for calculating the following register setting values in FIG. 7 based on the virtual color number Vn calculated in FIG. 9 will be described with reference to FIG.
Input address register: the top addresses B1-0, B1-1, and B1-2 of the first input band memory for each virtual RGB color of the input image 701
Input offset register: Virtual offset amount 702 for each RGB color in the input image 701
Output address register: the top addresses D1-0, D1-1, and D1-2 of the first output band memory for each virtual RGB color of the first output image 704
Output offset register: Virtual offset amount 705 for each color of RGB in the first output image 704

S1000では、CPU100は、入力画像701の色数Cn_in(ここでは1)を取得する。 In S1000, the CPU 100 obtains the number of colors Cn_in (here, 1) of the input image 701.

S1001では、CPU100は、入力画像701の1色あたりのビット数Bps_inを取得する。 In S1001, the CPU 100 obtains the number of bits per color, Bps_in, of the input image 701.

S1002では、CPU100は、入力バンド領域700の長さBdl_inと高さBdh_inを取得する。 In S1002, the CPU 100 obtains the length Bdl_in and height Bdh_in of the input band area 700.

S1003では、CPU100は、入力画像701の先頭アドレスAdr_in_topとして、図7のアドレスB1-0を取得する。 In S1003, the CPU 100 obtains address B1-0 in FIG. 7 as the top address Adr_in_top of the input image 701.

S1004では、CPU100は、S1000~S1002で取得したCn_in、Bps_in、Bdl_in、およびBdh_inを用いて、式(1)に従って、入力バンドのサイズBds_inを算出する。 In S1004, the CPU 100 uses Cn_in, Bps_in, Bdl_in, and Bdh_in obtained in S1000 to S1002 to calculate the size of the input band Bds_in according to formula (1).

S1005では、CPU100は、S1004で取得した入力バンドのサイズBds_inと、図9のフローで取得した仮想的色数Vn(ここでは3)とを用いて、式(2)に従って、入力バンド領域のオフセット量Bdo_inを算出する。 In S1005, the CPU 100 calculates the offset amount Bdo_in of the input band area according to formula (2) using the size Bds_in of the input band obtained in S1004 and the virtual number of colors Vn (3 in this case) obtained in the flow of FIG. 9.

S1006では、CPU100は、第1出力画像(ここでは出力画像704)の色数Cn_out1(ここでは1)を取得する。 In S1006, the CPU 100 obtains the number of colors Cn_out1 (here, 1) of the first output image (here, output image 704).

S1007では、CPU100は、第1出力画像(ここでは出力画像704)の1色あたりのビット数Bps_out1を取得する。 In S1007, the CPU 100 obtains the number of bits per color, Bps_out1, of the first output image (here, output image 704).

S1008では、CPU100は、第1出力バンド領域703の長さBdl_out1と高さBdh_out1を取得する。 In S1008, the CPU 100 obtains the length Bdl_out1 and height Bdh_out1 of the first output band area 703.

S1009では、CPU100は、第1出力画像(ここでは出力画像704)の先頭アドレスAdr_out1_topとして、図7のアドレスD1-0を取得する。 In S1009, the CPU 100 obtains address D1-0 in FIG. 7 as the top address Adr_out1_top of the first output image (here, output image 704).

S1010では、CPU100は、S1006~S1008で取得したCn_out1、Bps_out1、Bdl_out1、およびBdh_out1を用いて、式(3)に従って、第1出力バンドのサイズBds_out1を算出する。 In S1010, the CPU 100 calculates the size Bds_out1 of the first output band according to equation (3) using Cn_out1, Bps_out1, Bdl_out1, and Bdh_out1 obtained in S1006 to S1008.

S1011では、CPU100は、S1010で取得した出力バンドのサイズBds_out1と、図9のフローで取得した仮想的色数Vn(ここでは3)とを用いて、式(4)に従って、第1出力バンド領域のオフセット量Bdo_out1を算出する。 In S1011, the CPU 100 calculates the offset amount Bdo_out1 of the first output band area according to formula (4) using the output band size Bds_out1 obtained in S1010 and the virtual number of colors Vn (3 in this case) obtained in the flow of FIG. 9.

S1012では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。図7のケースでは、出力画像が1つのため、S1019に処理を進める。 In S1012, the CPU 100 determines whether the image data output unit 218 outputs two different images. In the case of FIG. 7, there is one output image, so the process proceeds to S1019.

S1019では、CPU100は、ソフトウェアの内部カウンタである仮想的インデックスViを初期化して0に設定する。尚、本例のVnは3のため、Viは0、1、2とインクリメントされ、これらの値それぞれは、仮想的な色RGBに関するレジスタ設定値を求めることを意味する。 In S1019, the CPU 100 initializes the virtual index Vi, which is an internal counter of the software, and sets it to 0. In this example, Vn is 3, so Vi is incremented to 0, 1, and 2, and each of these values represents a register setting value for the virtual colors RGB.

まず、Viが0、つまり仮想的な色Rに関するレジスタ設定値を求める計算フローについて説明する。 First, we will explain the calculation flow for finding the register setting value for the virtual color R, i.e. Vi is 0.

S1020では、CPU100は、式(5)に従って、仮想的な色Rの先頭入力バンド領域のアドレスAdr_in[0]を算出する。本ステップの算出では、S1001で取得したBps_in、S1003で取得したAdr_in_top、及びS1019で取得されたVi(ここでは0)を用いる。 In S1020, the CPU 100 calculates the address Adr_in[0] of the virtual top input band area of color R according to equation (5). The calculation in this step uses Bps_in obtained in S1001, Adr_in_top obtained in S1003, and Vi (here, 0) obtained in S1019.

S1021では、CPU100は、式(6)に従い、仮想的な色Rの先頭出力バンド領域のアドレスAdr_out1[0]を算出する。本ステップの算出では、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1019で取得したVi(ここでは0)を用いる。 In S1021, the CPU 100 calculates the address Adr_out1[0] of the virtual top output band area of color R according to equation (6). The calculation in this step uses Bps_out1 obtained in S1007, Adr_out1_top obtained in S1009, and Vi (here, 0) obtained in S1019.

S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図7のケースでは、出力画像が1つのため、S1024に処理を進める。 In S1022, the CPU 100 determines whether the image data output unit 218 outputs two different images. In the case of FIG. 7, since there is only one output image, the process proceeds to S1024.

S1024では、CPU100は、S1019で0に初期化した仮想的インデックスViに1を加算する。 In S1024, the CPU 100 adds 1 to the virtual index Vi that was initialized to 0 in S1019.

S1025では、CPU100は、図9のフローで取得した仮想的色数VnとS1024で取得した仮想的インデックスViとを比較し、式(7)を満たすか判定する。ここでは、Vi=1、Vn=3であり、式(7)を満たすため、S1020に処理を進める。 In S1025, the CPU 100 compares the virtual color count Vn obtained in the flow of FIG. 9 with the virtual index Vi obtained in S1024 to determine whether formula (7) is satisfied. In this case, Vi = 1 and Vn = 3, which satisfies formula (7), so the process proceeds to S1020.

次に、Viが1、つまり仮想的な色Gに関するレジスタ設定値を求める計算フローについて説明する。 Next, we will explain the calculation flow for finding the register setting value for the virtual color G, i.e. Vi is 1.

S1020では、CPU100は、式(5)に従って、仮想的な色Gの先頭入力バンド領域のアドレスAdr_in[1]を算出する。本ステップの算出では、S1001で取得したBps_in、S1003で取得したAdr_in_top、及びS1024で更新されたVi(ここでは1)を用いる。 In S1020, the CPU 100 calculates the address Adr_in[1] of the virtual top input band area of color G according to equation (5). The calculation in this step uses Bps_in obtained in S1001, Adr_in_top obtained in S1003, and Vi (here, 1) updated in S1024.

S1021では、CPU100は、式(6)に従い、仮想的な色Gの先頭出力バンド領域のアドレスAdr_out1[1]を算出する。本ステップの算出では、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1024で更新されたVi(ここでは1)を用いる。 In S1021, the CPU 100 calculates the address Adr_out1[1] of the virtual top output band area of color G according to equation (6). The calculation in this step uses Bps_out1 obtained in S1007, Adr_out1_top obtained in S1009, and Vi (here, 1) updated in S1024.

S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図7のケースでは、出力画像が1つのため、S1024に処理を進める。 In S1022, the CPU 100 determines whether the image data output unit 218 outputs two different images. In the case of FIG. 7, since there is only one output image, the process proceeds to S1024.

S1024では、CPU100は、現在の仮想的インデックスVi(つまり1)に1を加算してVi=2に設定する。 In S1024, the CPU 100 adds 1 to the current virtual index Vi (i.e., 1) and sets Vi = 2.

S1025では、CPU100は、図9のフローで取得した仮想的色数Vnと現在の仮想的インデックスViとを比較し、式(7)を満たすか判定する。ここでは、Vi=2、Vn=3であり、式(7)を満たすため、S1020に処理を進める。 In S1025, the CPU 100 compares the virtual number of colors Vn obtained in the flow of FIG. 9 with the current virtual index Vi to determine whether formula (7) is satisfied. In this case, Vi = 2 and Vn = 3, and formula (7) is satisfied, so the process proceeds to S1020.

最後に、Viが2、つまり仮想的な色Bに関するレジスタ設定値を求める計算フローについて説明する。 Finally, we will explain the calculation flow for finding the register setting value for the virtual color B, i.e. Vi is 2.

S1020では、CPU100は、式(5)に従って、仮想的な色Bの先頭入力バンド領域のアドレスAdr_in[2]を算出する。本ステップの算出では、S1001で取得したBps_in、S1003で取得したAdr_in_top、及びS1024で更新されたVi(ここでは2)を用いる。 In S1020, the CPU 100 calculates the address Adr_in[2] of the virtual top input band area of color B according to equation (5). The calculation in this step uses Bps_in obtained in S1001, Adr_in_top obtained in S1003, and Vi (here, 2) updated in S1024.

S1021では、CPU100は、式(6)に従い、仮想的な色Bの先頭出力バンド領域のアドレスAdr_out1[2]を算出する。本ステップの算出では、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1024で更新されたVi(ここでは2)を用いる。 In S1021, the CPU 100 calculates the address Adr_out1[2] of the virtual top output band area of color B according to equation (6). The calculation in this step uses Bps_out1 obtained in S1007, Adr_out1_top obtained in S1009, and Vi (here, 2) updated in S1024.

S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図7のケースでは、出力画像が1つのため、S1024に処理を進める。 In S1022, the CPU 100 determines whether the image data output unit 218 outputs two different images. In the case of FIG. 7, since there is only one output image, the process proceeds to S1024.

S1024では、CPU100は、現在の仮想的インデックスVi(つまり2)に1を加算してVi=3に設定する。 In S1024, the CPU 100 adds 1 to the current virtual index Vi (i.e., 2) and sets Vi = 3.

S1025では、CPU100は、図9のフローで取得した仮想的色数Vnと現在の仮想的インデックスViとを比較し、式(7)を満たすか判定する。ここでは、Vi=3、Vn=3であり、式(7)を満たさないため、S1026に処理を進める。 In S1025, the CPU 100 compares the virtual number of colors Vn obtained in the flow of FIG. 9 with the current virtual index Vi to determine whether formula (7) is satisfied. In this case, Vi = 3 and Vn = 3, which does not satisfy formula (7), so the process proceeds to S1026.

S1026では、CPU100は、以下の8つの値をレジスタに設定する。
・S1005で算出した入力バンド領域のオフセット量Bdo_in
・S1011で算出した出力バンド領域のオフセット量Bdo_out1
・仮想的な色Rの入力バンドの先頭アドレスAdr_in[0]
・仮想的な色Gの入力バンドの先頭アドレスAdr_in[1]
・仮想的な色Bの入力バンドの先頭アドレスAdr_in[2]
・仮想的な色Rの出力バンドの先頭アドレスAdr_out1[0]
・仮想的な色Gの出力バンドの先頭アドレスAdr_out1[1]
・仮想的な色Bの出力バンドの先頭アドレスAdr_out1[2]
In S1026, the CPU 100 sets the following eight values in the registers.
The offset amount Bdo_in of the input band area calculated in S1005
The offset amount Bdo_out1 of the output band area calculated in S1011
The head address Adr_in[0] of the input band of virtual color R
The head address Adr_in[1] of the input band of virtual color G
The start address Adr_in[2] of the input band of virtual color B
First address Adr_out1[0] of the virtual color R output band
First address Adr_out1[1] of the output band of virtual color G
Start address Adr_out1[2] of the output band of virtual color B

S1027では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図7のケースでは、出力画像が1つのため、一連の処理を終了する。 In S1027, the CPU 100 determines whether the image data output unit 218 outputs two different images. In the case of FIG. 7, since there is only one output image, the process ends.

<本実施形態の効果>
以上説明したように本実施形態によれば、ソフトウェアは入力画像であるモノクロ画像を3並列で画像処理する際にソフトウェアが並列処理する数として仮想的色数を決定する。その上で、その仮想的色数に基づいて、ハードウェアがモノクロ画像の複数画素を並列処理するためのレジスタ設定値を計算することができる。このレジスタ設定値の計算手法は、モノクロ画像を1並列で画像処理する場合、カラー画像を画像処理する場合にも適用できる。
<Effects of this embodiment>
As described above, according to this embodiment, the software determines the virtual number of colors as the number of colors to be processed in parallel when processing a monochrome image, which is an input image, in three-parallel. Then, based on the virtual number of colors, the hardware can calculate register setting values for processing multiple pixels of the monochrome image in parallel. This method of calculating register setting values can be applied to both image processing of a monochrome image in one-parallel and image processing of a color image.

[第2の実施形態]
以下、モノクロ(単色)の入力画像に対して2つの異なる画像処理を3並列で行い、サイズの異なる2つのモノクロ画像を出力する例について、図8を用いて説明する。尚、以降の説明では、前述の実施形態と同様の内容については適宜省略する。具体的には、本実施形態で採用する、画像処理装置、画像処理部103、画像処理コマンド、バンド処理等は第1の実施形態と同様である(図1~図4参照)。
Second Embodiment
An example of performing two different image processing operations in parallel on a monochrome (single-color) input image and outputting two monochrome images of different sizes will be described below with reference to Fig. 8. In the following description, the same contents as those in the previous embodiment will be omitted as appropriate. Specifically, the image processing device, image processing unit 103, image processing command, band processing, etc. employed in this embodiment are the same as those in the first embodiment (see Figs. 1 to 4).

画像処理部103に入力する画像は、モノクロ画像である。入力画像801は、符号800に示す入力バンド領域の長さBdl_in、高さBdh_inの大きさの9つの連続した入力バンド領域A1-0、A1-1、A1-2、A2-0、A2-1、A2-2、A3-0、A3-1、A3-2から構成される。入力バンド領域のそれぞれが格納されるバンドメモリの先頭アドレスは、B1-0、B1-1、B1-2、B2-0、B2-1、B2-2、B3-0、B3-1、B3-2である。入力画像のオフセット量802は、入力バンド領域800のバイト数を3倍したものである。具体的には、アドレスB1-0からB2-0、B1-1からB2-1、B1-2からB2-2、B2-0からB3-0、B2-1からB3-1、B2-2からB3-2までの同一のオフセット量(バイト数)である。 The image input to the image processing unit 103 is a monochrome image. The input image 801 is composed of nine consecutive input band areas A1-0, A1-1, A1-2, A2-0, A2-1, A2-2, A3-0, A3-1, and A3-2, each of which has a length Bdl_in and a height Bdh_in of the input band area shown by the reference symbol 800. The top addresses of the band memories in which the input band areas are stored are B1-0, B1-1, B1-2, B2-0, B2-1, B2-2, B3-0, B3-1, and B3-2. The offset amount 802 of the input image is three times the number of bytes of the input band area 800. Specifically, the offset amount (number of bytes) is the same from addresses B1-0 to B2-0, B1-1 to B2-1, B1-2 to B2-2, B2-0 to B3-0, B2-1 to B3-1, and B2-2 to B3-2.

画像処理部103から出力する画像は、モノクロ等倍画像の出力画像804と、出力画像804を主走査方向・副走査方向ともに1/2に縮小した出力画像807(縮小画像)との2つである。出力画像804は、符号803に示す第1出力バンド領域の長さBdl_out1、高さBdh_out1の大きさの9つの連続した出力バンド領域C1-0、C1-1、C1-2,C2-0、C2-1、C2-2、C3-0、C3-1、C3-2から構成される。これらの出力バンド領域が格納されるバンドメモリの先頭アドレスは、D1-0、D1-1、D1-2、D2-0、D2-1、D2-2、D3-0、D3-1、D3-2である。出力画像804のオフセット量805は、第1出力バンド領域803のバイト数を3倍したものである。具体的には、アドレスD1-0からD2-0、D1-1からD2-1、D1-2からD2-2、D2-0からD3-0、D2-1からD3-1、D2-2からD3-2までの同一のオフセット量(バイト数)である。出力画像807は、符号806に示す第2出力バンド領域の長さBdl_out2(Bdl_out1の1/2の長さ)、高さBdh_out2(Bdh_out1の1/2の高さ)の大きさの9つの連続した出力バンド領域から構成される。具体的には、出力バンド領域は、E1-0、E1-1、E1-2,E2-0、E2-1、E2-2、E3-0、E3-1、E3-2である。これらの出力バンド領域が格納される出力バンドメモリの先頭アドレスは、F1-0、F1-1、F1-2、F2-0、F2-1、F2-2、F3-0、F3-1、F3-2である。オフセット量808は、第2出力バンド領域806のバイト数を3倍したものである。具体的には、アドレスF1-0からF2-0、F1-1からF2-1、F1-2からF2-2、F2-0からF3-0、F2-1からF3-1、F2-2からF3-2までの同一のオフセット量(バイト数)である。 The image processing unit 103 outputs two images: an output image 804, which is a monochrome image at full size, and an output image 807 (reduced image) which is the output image 804 reduced to half in both the main scanning direction and the sub-scanning direction. The output image 804 is composed of nine consecutive output band areas C1-0, C1-1, C1-2, C2-0, C2-1, C2-2, C3-0, C3-1, and C3-2, each having a length Bdl_out1 and a height Bdh_out1 of the first output band area shown by the reference numeral 803. The top addresses of the band memory in which these output band areas are stored are D1-0, D1-1, D1-2, D2-0, D2-1, D2-2, D3-0, D3-1, and D3-2. The offset amount 805 of the output image 804 is three times the number of bytes of the first output band area 803. Specifically, the offset amounts (number of bytes) are the same from address D1-0 to D2-0, D1-1 to D2-1, D1-2 to D2-2, D2-0 to D3-0, D2-1 to D3-1, and D2-2 to D3-2. The output image 807 is composed of nine continuous output band areas, each having a length Bdl_out2 (half the length of Bdl_out1) and a height Bdh_out2 (half the height of Bdh_out1) of the second output band area indicated by reference numeral 806. Specifically, the output band areas are E1-0, E1-1, E1-2, E2-0, E2-1, E2-2, E3-0, E3-1, and E3-2. The top addresses of the output band memory where these output band areas are stored are F1-0, F1-1, F1-2, F2-0, F2-1, F2-2, F3-0, F3-1, and F3-2. The offset amount 808 is three times the number of bytes of the second output band area 806. Specifically, the offset amount (number of bytes) is the same from addresses F1-0 to F2-0, F1-1 to F2-1, F1-2 to F2-2, F2-0 to F3-0, F2-1 to F3-1, and F2-2 to F3-2.

ここで、入出力制御部200は、モノクロの入力画像801を仮想的にRの入力バンド領域、Gの入力バンド領域、Bの入力バンド領域にバンド分割して、仮想的なRGBの3つの入力バンド領域に対して並列処理を行う。そのため、入出力制御部200は、レジスタブロック219に以下の12個のレジスタを備える。
・入力アドレスレジスタ:仮想的なRGB各色の入力バンド領域に対応する先頭アドレスB1-0、B1-1、B1-2
・入力オフセットレジスタ:仮想的なRGB各色における入力バンド領域間のオフセット量802
・第1出力アドレスレジスタ:仮想的なRGB各色の出力バンド領域に対応する先頭アドレスD1-0、D1-1、D1-2
・第1出力オフセットレジスタ:仮想的なRGB各色における出力バンド領域間のオフセット量805
・第2出力アドレスレジスタ:仮想的なRGB各色の出力バンド領域に対応する先頭アドレスF1-0、F1-1、F1-2
・第2出力オフセットレジスタ:仮想的なRGB各色における出力バンド領域間のオフセット量808
Here, the input/output control unit 200 virtually divides the monochrome input image 801 into an R input band area, a G input band area, and a B input band area, and performs parallel processing on the three virtual RGB input band areas. For this reason, the input/output control unit 200 has the following 12 registers in the register block 219.
Input address register: top addresses B1-0, B1-1, B1-2 corresponding to the virtual RGB input band areas
Input offset register: offset amount 802 between input band areas for each virtual RGB color
First output address register: top addresses D1-0, D1-1, D1-2 corresponding to the virtual RGB output band areas
First output offset register: offset amount between output band areas for each virtual RGB color 805
Second output address register: top addresses F1-0, F1-1, F1-2 corresponding to the virtual RGB output band areas
Second output offset register: offset amount between output band areas for each virtual RGB color 808

これら12個のレジスタは、CPU100によって実現されるソフトウェアモジュールがレジスタブロック219にレジスタ設定値を設定する構成となっている。また、これら12個のレジスタについては、図7のモノクロ(単色)の入力画像に対して3並列で画像処理を行う例におけるレジスタ構成と同等である。つまり、図7を用いて前述した第1の実施形態では、第2出力画像用のアドレスレジスタ3個とオフセットレジスタ1個とを使用しない例を示したが、本実施形態では、これらのレジスタを追加で使用する制御方法を示す。 These 12 registers are configured such that a software module implemented by the CPU 100 sets register setting values in the register block 219. These 12 registers are also equivalent to the register configuration in the example of performing three parallel image processing operations on a monochrome (single-color) input image in FIG. 7. In other words, while the first embodiment described above with reference to FIG. 7 shows an example in which three address registers and one offset register for the second output image are not used, this embodiment shows a control method in which these registers are additionally used.

入出力制御部200内の画像処理コマンドのフォーマットは、ヘッダと、3つのデータ領域P0、P1、P2とから構成され、画像処理コマンド305(図3(d)参照)のフォーマットに該当する。コマンド生成部204で生成する画像処理コマンド(入力)と、コマンド解析部217で解析する画像処理コマンド(出力)とは、画像処理コマンド305のフォーマットに基づいて処理する。 The format of the image processing command in the input/output control unit 200 is composed of a header and three data areas P0, P1, and P2, and corresponds to the format of the image processing command 305 (see FIG. 3(d)). The image processing command (input) generated by the command generation unit 204 and the image processing command (output) analyzed by the command analysis unit 217 are processed based on the format of the image processing command 305.

次に、画像処理部103における処理について説明する。入出力制御部200は入力バンド領域A1-0、A1-1、A1-2それぞれに対して、入力バンド領域800のバイト数の入力画像データを読み込み、画像処理実行部201で画像処理を行う。入出力制御部200は、出力バンドメモリの先頭アドレスD1-0、D1-1、D1-2から32バイト単位で書き込むことで、第1出力バンド領域803のバイト数の出力バンド領域C1-0、C1-1、C1-2を出力する。さらに、入出力制御部200は、出力バンドメモリの先頭アドレスF1-0、F1-1、F1-2から32バイト単位で書き込むことで、第2出力バンド領域806のバイト数の出力バンド領域E1-0、E1-1、E1-2を出力する。 Next, the processing in the image processing unit 103 will be described. The input/output control unit 200 reads the input image data of the number of bytes of the input band area 800 for each of the input band areas A1-0, A1-1, and A1-2, and performs image processing in the image processing execution unit 201. The input/output control unit 200 outputs the output band areas C1-0, C1-1, and C1-2 of the number of bytes of the first output band area 803 by writing in 32-byte units from the top addresses D1-0, D1-1, and D1-2 of the output band memory. Furthermore, the input/output control unit 200 outputs the output band areas E1-0, E1-1, and E1-2 of the number of bytes of the second output band area 806 by writing in 32-byte units from the top addresses F1-0, F1-1, and F1-2 of the output band memory.

具体的には、画像データ入力部202は、入力画像801の1~3番目の入力バンド領域A1-0、A1-1、A1-2からそれぞれ32バイト単位で入力画像データを読み込み、中間バッファ制御部203の記憶領域にRGBの面順次のデータとして書き込む。このとき、画像データ入力部202が各入力バンド領域から読み込む画像サイズは、入力バンド領域800のバイト数である。さらに、画像データ入力部202は、中間バッファ制御部203の記憶領域から仮想的なRGB各色の1画素分のデータ16bitを読み込み、該読み込んだ1画素分のデータをコマンド生成部204に出力する。その後、コマンド生成部204は、1画素分のデータを画像処理コマンド305(入力)のデータ領域P0、P1、P2に格納することで、画像処理コマンド305(入力)を生成し、該生成した画像処理コマンド305(入力)をコマンド送信部205に出力する。コマンド送信部205は、画像処理コマンド305(入力)を画像処理実行部201に出力する。ここで、CPU100によって実現されるソフトウェアモジュールは、画像処理の実行前に、インターコネクト206を用いることで、P個の画像処理回路における、等倍画像の出力回路の為の組み合わせと、縮小画像の出力回路の為の組み合わせをと構成しておく。これらの2つの組み合わせ回路による1画素単位の画像処理が完了した場合、画像処理実行部201は、それぞれの組み合わせ回路に対応した画像処理コマンド305(出力)をコマンド受信部216に出力する。コマンド受信部216は、画像処理コマンド305(出力)を受信した場合、該受信した画像処理コマンド305(出力)をコマンド解析部217に出力する。コマンド解析部217は、画像処理コマンド305(出力)のヘッダを解析し、データ領域に格納されている画素データが等倍画像である出力画像804の画素データか、それとも縮小画像である出力画像807の画素データかを判別する。その上で、コマンド解析部217は、画像処理コマンド305(出力)のデータ領域P0、P1、P2に格納された仮想的なRGB各色の画素データを取り出し、該取り出した画素データを画像データ出力部218に出力する。画像データ出力部218は、その仮想的なRGB各色の画素データを中間バッファ制御部203の記憶領域に書き込む。この時、中間バッファ制御部203の記憶領域は、出力画像804の画素データをバッファリングするための領域と、出力画像807の画素データをバッファリングするための領域とに分かれており、ヘッダの内容に応じて何れかの領域に書き込む。さらに、画像データ出力部218は、出力画像804または出力画像807の何れか一方に対応する仮想的なRGB各色に関して、中間バッファ制御部203の記憶領域から32バイト単位で出力画像データを読み込む。つまり、出力画像804のデータを読み込んだ場合は、出力バンドメモリの先頭アドレスD1-0、D1-1、D1-2からそれぞれ32バイト単位で出力画像データを書き込む。または、出力画像807のデータを読み込んだ場合は、出力バンドメモリの先頭アドレスF1-0、F1-1、F1-2からそれぞれ32バイト単位で出力画像データを書き込む。 Specifically, the image data input unit 202 reads the input image data in 32-byte units from each of the first to third input band areas A1-0, A1-1, and A1-2 of the input image 801, and writes it as RGB surface sequential data in the storage area of the intermediate buffer control unit 203. At this time, the image size read by the image data input unit 202 from each input band area is the number of bytes of the input band area 800. Furthermore, the image data input unit 202 reads 16-bit data for one pixel of virtual RGB colors from the storage area of the intermediate buffer control unit 203, and outputs the read data for one pixel to the command generation unit 204. After that, the command generation unit 204 generates the image processing command 305 (input) by storing the data for one pixel in the data areas P0, P1, and P2 of the image processing command 305 (input), and outputs the generated image processing command 305 (input) to the command transmission unit 205. The command transmission unit 205 outputs the image processing command 305 (input) to the image processing execution unit 201. Here, the software module realized by the CPU 100 configures, before image processing, a combination for an output circuit of a normal-sized image and a combination for an output circuit of a reduced image in the P image processing circuits by using the interconnect 206. When image processing in units of one pixel by these two combinational circuits is completed, the image processing execution unit 201 outputs the image processing command 305 (output) corresponding to each combinational circuit to the command receiving unit 216. When the command receiving unit 216 receives the image processing command 305 (output), it outputs the received image processing command 305 (output) to the command analyzing unit 217. The command analyzing unit 217 analyzes the header of the image processing command 305 (output) and determines whether the pixel data stored in the data area is pixel data of the output image 804, which is a normal-sized image, or pixel data of the output image 807, which is a reduced image. Then, the command analysis unit 217 extracts the pixel data of each virtual RGB color stored in the data areas P0, P1, and P2 of the image processing command 305 (output), and outputs the extracted pixel data to the image data output unit 218. The image data output unit 218 writes the pixel data of each virtual RGB color into the storage area of the intermediate buffer control unit 203. At this time, the storage area of the intermediate buffer control unit 203 is divided into an area for buffering the pixel data of the output image 804 and an area for buffering the pixel data of the output image 807, and writes the data into either area according to the contents of the header. Furthermore, the image data output unit 218 reads the output image data in units of 32 bytes from the storage area of the intermediate buffer control unit 203 for each virtual RGB color corresponding to either the output image 804 or the output image 807. In other words, when the data of the output image 804 is read, the output image data is written in units of 32 bytes from the head addresses D1-0, D1-1, and D1-2 of the output band memory, respectively. Or, when data for the output image 807 is read, the output image data is written in 32-byte units from the top addresses F1-0, F1-1, and F1-2 of the output band memory.

以上の処理フローに基づき、入出力制御部200は、入力バンド領域A1-0、A1-1、A1-2のそれぞれについて、入力バンド領域800のバイト数の入力画像データを読み込む。続いて、画像処理実行部201は、画像処理を行い、画像データ出力部218は、出力バンドメモリ(先頭アドレスD1-0、D1-1、D1-2)それぞれに第1出力バンド領域803のバイト数の出力画像データを出力する。同時に、画像データ出力部218は、出力バンドメモリ(先頭アドレスF1-0、F1-1、F1-2)それぞれに第2出力バンド領域806のバイト数の出力画像データを出力する。 Based on the above processing flow, the input/output control unit 200 reads the input image data of the number of bytes of the input band area 800 for each of the input band areas A1-0, A1-1, and A1-2. Next, the image processing execution unit 201 performs image processing, and the image data output unit 218 outputs the output image data of the number of bytes of the first output band area 803 to each of the output band memories (starting addresses D1-0, D1-1, and D1-2). At the same time, the image data output unit 218 outputs the output image data of the number of bytes of the second output band area 806 to each of the output band memories (starting addresses F1-0, F1-1, and F1-2).

入力バンド領域A1-0、A1-1、A1-2に対する画像処理が完了したら、入力画像801の4番目の入力バンド領域A2-0、5番目の入力バンド領域A2-1、6番目の入力バンド領域A2-2に対する画像処理を行う。具体的には、画像データ入力部202は、レジスタブロック219から入力アドレスレジスタの値(入力画像801に対する1~3番目のアドレスB1-0、B1-1、B1-2)と、入力オフセットレジスタの値(オフセット量802(バイト数))とを取得する。その上で、それぞれの入力アドレスレジスタの値に入力オフセットレジスタの値を加算することで、4~6番目のアドレスB2-0、B2-1、B2-2を算出し、該算出したアドレスを内部カウンタに保持する。同じく、画像データ出力部218は、レジスタブロック219から第1出力アドレスレジスタの値(第1出力画像804に対する1~3番目のアドレスD1-0、D1-1、D1-2)と、第1出力オフセットレジスタの値(オフセット量805)とを取得する。その上で、それぞれの第1出力アドレスレジスタの値に第1出力オフセットレジスタの値を加算することで、4~6番目のアドレスD2-0、D2-1、D2-2を算出し、該算出したアドレスを内部カウンタに保持する。また、画像データ出力部218は、レジスタブロック219から第2出力アドレスレジスタの値(第2出力画像807に対する1~3番目のアドレスF1-0、F1-1、F1-2)と、第2出力オフセットレジスタの値(オフセット量808)とを取得する。その上で、それぞれの第2出力アドレスレジスタの値に第2出力オフセットレジスタの値を加算することで、4~6番目のアドレスF2-0、F2-1、F2-2を算出し、該算出したアドレスを内部カウンタに保持する。 When image processing for input band areas A1-0, A1-1, and A1-2 is complete, image processing is performed for the fourth input band area A2-0, the fifth input band area A2-1, and the sixth input band area A2-2 of the input image 801. Specifically, the image data input unit 202 obtains the input address register value (the first to third addresses B1-0, B1-1, and B1-2 for the input image 801) and the input offset register value (offset amount 802 (number of bytes)) from the register block 219. Then, the input offset register value is added to each input address register value to calculate the fourth to sixth addresses B2-0, B2-1, and B2-2, and the calculated addresses are stored in an internal counter. Similarly, the image data output unit 218 acquires the values of the first output address register (the first to third addresses D1-0, D1-1, and D1-2 for the first output image 804) and the value of the first output offset register (offset amount 805) from the register block 219. Then, the image data output unit 218 calculates the fourth to sixth addresses D2-0, D2-1, and D2-2 by adding the values of the first output offset register to the respective values of the first output address register, and stores the calculated addresses in an internal counter. In addition, the image data output unit 218 acquires the values of the second output address register (the first to third addresses F1-0, F1-1, and F1-2 for the second output image 807) and the value of the second output offset register (offset amount 808) from the register block 219. Then, the fourth to sixth addresses F2-0, F2-1, and F2-2 are calculated by adding the value of the second output offset register to the value of each second output address register, and the calculated addresses are stored in an internal counter.

入出力制御部200は、入力バンド領域A2-0、A2-1、A2-2のそれぞれについて、入力バンド領域800のバイト数の入力画像データを読み込む。続いて、画像処理実行部201は、画像処理を行い、入出力制御部200は、出力バンドメモリ(先頭アドレスD2-0、D2-1、D2-2)に第1出力バンド領域803のバイト数の出力画像データを出力する。同時に、入出力制御部200は、出力バンドメモリ(先頭アドレスF2-0、F2-1、F2-2)に第2出力バンド領域806のバイト数の出力画像データを出力する。 The I/O control unit 200 reads the number of bytes of input image data in the input band area 800 for each of the input band areas A2-0, A2-1, and A2-2. Next, the image processing execution unit 201 performs image processing, and the I/O control unit 200 outputs the number of bytes of output image data in the first output band area 803 to the output band memory (starting addresses D2-0, D2-1, and D2-2). At the same time, the I/O control unit 200 outputs the number of bytes of output image data in the second output band area 806 to the output band memory (starting addresses F2-0, F2-1, and F2-2).

入力バンド領域A2-0、A2-1、A2-2に対する画像処理が完了したら、入力画像801の7番目の入力バンド領域A3-0、8番目の入力バンド領域A3-1、9番目の入力バンド領域A3-2に対する画像処理を行う。具体的には、画像データ入力部202は、内部カウンタに保持された入力画像801に対するアドレスA2-0、A2-1、A2-2にオフセット量802(バイト数)を加算する。これにより、7~9番目のアドレスA3-0、A3-1、A3-2を算出し、該算出したアドレスで内部カウンタを更新する。同じく、画像データ出力部218は、内部カウンタに保持された出力画像804に対するアドレスD2-1、D2-2、D2-2にオフセット量805(バイト数)を加算する。これにより、7~9番目のアドレスD3-0、D3-1、D3-2を算出し、該算出したアドレスで内部カウンタを更新する。また、画像データ出力部218は、内部カウンタに保持された出力画像807に対するアドレスF2-1、F2-2、F2-2にオフセット量808(バイト数)を加算する。これにより、7~9番目のアドレスF3-0、F3-1、F3-2を算出し、該算出したアドレスで内部カウンタを更新する。 When image processing for the input band areas A2-0, A2-1, and A2-2 is completed, image processing is performed for the seventh input band area A3-0, the eighth input band area A3-1, and the ninth input band area A3-2 of the input image 801. Specifically, the image data input unit 202 adds an offset amount 802 (number of bytes) to the addresses A2-0, A2-1, and A2-2 for the input image 801 held in the internal counter. This calculates the seventh to ninth addresses A3-0, A3-1, and A3-2, and updates the internal counter with the calculated addresses. Similarly, the image data output unit 218 adds an offset amount 805 (number of bytes) to the addresses D2-1, D2-2, and D2-2 for the output image 804 held in the internal counter. This calculates the seventh to ninth addresses D3-0, D3-1, and D3-2, and updates the internal counter with the calculated addresses. In addition, the image data output unit 218 adds an offset amount 808 (number of bytes) to the addresses F2-1, F2-2, and F2-2 for the output image 807 stored in the internal counter. This calculates the seventh to ninth addresses F3-0, F3-1, and F3-2, and updates the internal counter with the calculated addresses.

入出力制御部200は、入力バンド領域A3-0、A3-1、A3-2のそれぞれについて、入力バンド領域800のバイト数の入力画像データを読み込む。続いて、画像処理実行部201は、画像処理を行い、入出力制御部200は、出力バンドメモリ(先頭アドレスD3-0、D3-1、D3-2)に第1出力バンド領域803のバイト数の出力画像データを出力する。同時に、入出力制御部200は、出力バンドメモリ(先頭アドレスF3-0、F3-1、F3-2)に第2出力バンド領域806のバイト数の出力画像データを出力する。 The I/O control unit 200 reads the input image data of the number of bytes in the input band area 800 for each of the input band areas A3-0, A3-1, and A3-2. Next, the image processing execution unit 201 performs image processing, and the I/O control unit 200 outputs the output image data of the number of bytes in the first output band area 803 to the output band memory (starting addresses D3-0, D3-1, and D3-2). At the same time, the I/O control unit 200 outputs the output image data of the number of bytes in the second output band area 806 to the output band memory (starting addresses F3-0, F3-1, and F3-2).

次に、図8の画像処理において、CPU100によって実現されるソフトウェアモジュールが、画像処理部103を駆動させるために必要なレジスタ設定値を算出する処理について、図9および図10を用いて説明する。 Next, the process of calculating the register setting values required for driving the image processing unit 103 by the software module realized by the CPU 100 in the image processing of FIG. 8 will be described with reference to FIG. 9 and FIG. 10.

まず、仮想的色数を決定するフローについて、図9を用いて説明する。S900では、CPU100は、入力画像がモノクロ画像か判定する。図8のケースでは、入力画像801がモノクロ画像のため、S900の判定結果が真となり、S901に処理を進める。 First, the flow for determining the virtual number of colors will be described with reference to FIG. 9. In S900, the CPU 100 determines whether the input image is a monochrome image. In the case of FIG. 8, the input image 801 is a monochrome image, so the determination result in S900 is true and the process proceeds to S901.

S901では、CPU100は、モノクロ画像に対する画像処理を高速化するか、つまりN並列(Nは2以上の整数)で画像処理するか判定する。図8のケースでは、3並列で画像処理を行うため、S902に処理を進める。S902では、CPU100は、図8の画像処理コマンド305(入力)のデータ領域が3つであることから、仮想的色数Vnを3に設定する。 In S901, the CPU 100 determines whether to speed up image processing of a monochrome image, that is, whether to perform image processing in N parallelism (N is an integer equal to or greater than 2). In the case of FIG. 8, image processing is performed in 3 parallelism, so the process proceeds to S902. In S902, the CPU 100 sets the virtual number of colors Vn to 3 because the data area of the image processing command 305 (input) in FIG. 8 is three.

次に、図9のフローで求めた仮想的色数Vnに基づいて図7における以下のレジスタ設定値を算出する方法について、図10を用いて説明する。
・入力アドレスレジスタ:入力画像801の仮想的なRGB各色に対応する1番目の入力バンドメモリの先頭アドレスB1-0、B1-1、B1-2
・入力オフセットレジスタ:入力画像801における仮想的なRGB各色のオフセット量802
・第1出力アドレスレジスタ:第1出力画像804の仮想的なRGB各色に対応する1番目の出力バンドメモリの先頭アドレスD1-0、D1-1、D1-2
・第1出力オフセットレジスタ:第1出力画像804における仮想的なRGB各色のオフセット量805
・第2出力アドレスレジスタ:第2出力画像807の仮想的なRGB各色に対応する1番目の出力バンドメモリの先頭アドレスF1-0、F1-1、F1-2
・第2出力オフセットレジスタ:第2出力画像807における仮想的なRGB各色のオフセット量808
Next, a method for calculating the following register setting values in FIG. 7 based on the virtual color number Vn calculated in the flow of FIG. 9 will be described with reference to FIG.
Input address register: the top addresses B1-0, B1-1, and B1-2 of the first input band memory corresponding to each virtual RGB color of the input image 801
Input offset register: Virtual offset amount 802 for each RGB color in the input image 801
First output address register: top addresses D1-0, D1-1, and D1-2 of the first output band memory corresponding to each virtual RGB color of the first output image 804
First output offset register: Virtual offset amount 805 for each of the RGB colors in the first output image 804
Second output address register: top addresses F1-0, F1-1, F1-2 of the first output band memory corresponding to each virtual RGB color of the second output image 807
Second output offset register: Virtual offset amount 808 for each of the RGB colors in the second output image 807

S1000では、CPU100は、入力画像801の色数Cn_in(ここでは1)を取得する。 In S1000, the CPU 100 obtains the number of colors Cn_in (here, 1) of the input image 801.

S1001では、CPU100は、入力画像801の1色あたりのビット数Bps_inを取得する。 In S1001, the CPU 100 obtains the number of bits per color, Bps_in, of the input image 801.

S1002では、CPU100は、入力バンド領域800の長さBdl_inと高さBdh_inを取得する。 In S1002, the CPU 100 obtains the length Bdl_in and height Bdh_in of the input band area 800.

S1003では、CPU100は、入力画像801の先頭アドレスAdr_in_topとして、図8のアドレスB1-0を取得する。 In S1003, the CPU 100 obtains address B1-0 in FIG. 8 as the top address Adr_in_top of the input image 801.

S1004では、CPU100は、S1000~S1002で取得したCn_in、Bps_in、Bdl_in、およびBdh_inを用いて、式(1)に従って、入力バンドのサイズBds_inを算出する。 In S1004, the CPU 100 uses Cn_in, Bps_in, Bdl_in, and Bdh_in obtained in S1000 to S1002 to calculate the size of the input band Bds_in according to formula (1).

S1005では、CPU100は、S1004で取得した入力バンドのサイズBds_inと、図9のフローで取得した仮想的色数Vn(ここでは3)とを用いて、式(2)に従って、入力バンド領域のオフセット量Bdo_inを算出する。 In S1005, the CPU 100 calculates the offset amount Bdo_in of the input band area according to formula (2) using the size Bds_in of the input band obtained in S1004 and the virtual number of colors Vn (3 in this case) obtained in the flow of FIG. 9.

S1006では、CPU100は、第1出力画像(ここでは出力画像804)の色数Cn_out1(ここでは1)を取得する。 In S1006, the CPU 100 obtains the number of colors Cn_out1 (here, 1) of the first output image (here, output image 804).

S1007では、CPU100は、第1出力画像(ここでは出力画像804)の1色あたりのビット数Bps_out1を取得する。 In S1007, the CPU 100 obtains the number of bits per color Bps_out1 of the first output image (here, output image 804).

S1008では、CPU100は、第1出力バンド領域803の長さBdl_out1と高さBdh_out1を取得する。 In S1008, the CPU 100 obtains the length Bdl_out1 and height Bdh_out1 of the first output band area 803.

S1009では、CPU100は、第1出力画像(ここでは出力画像804)の先頭アドレスAdr_out1_topとして、図8のアドレスD1-0を取得する。 In S1009, the CPU 100 obtains address D1-0 in FIG. 8 as the top address Adr_out1_top of the first output image (here, output image 804).

S1010では、CPU100は、S1006~S1008で取得したCn_out1、Bps_out1、Bdl_out1、およびBdh_out1を用いて、式(3)に従って、第1出力バンドのサイズBds_out1を算出する。 In S1010, the CPU 100 calculates the size Bds_out1 of the first output band according to equation (3) using Cn_out1, Bps_out1, Bdl_out1, and Bdh_out1 obtained in S1006 to S1008.

S1011では、CPU100は、S1010で取得した第1出力バンドのサイズBds_out1と、図9のフローで取得した仮想的色数Vn(ここでは3)とを用いて、式(4)に従って、第1出力バンド領域のオフセット量Bdo_out1を算出する。 In S1011, the CPU 100 calculates the offset amount Bdo_out1 of the first output band area according to formula (4) using the size Bds_out1 of the first output band obtained in S1010 and the virtual number of colors Vn (3 in this case) obtained in the flow of FIG. 9.

S1012では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。図8のケースでは、出力画像が2つのため、S1013に処理を進める。 In S1012, the CPU 100 determines whether the image data output unit 218 will output two different images. In the case of FIG. 8, there are two output images, so the process proceeds to S1013.

S1013では、CPU100は、第2出力画像(ここでは出力画像807)の色数Cn_out2(ここでは1)を取得する。 In S1013, the CPU 100 obtains the number of colors Cn_out2 (here, 1) of the second output image (here, output image 807).

S1014では、CPU100は、第2出力画像(ここでは出力画像807)の1色あたりのビット数Bps_out2を取得する。 In S1014, the CPU 100 obtains the number of bits per color Bps_out2 of the second output image (here, output image 807).

S1015では、CPU100は、第2出力バンド領域806の長さBdl_out2と高さBdh_out2を取得する。 In S1015, the CPU 100 obtains the length Bdl_out2 and height Bdh_out2 of the second output band area 806.

S1016では、CPU100は、第2出力画像(ここでは出力画像807)の先頭アドレスAdr_out2_topとして、図8のアドレスF1-0を取得する。 In S1016, the CPU 100 obtains address F1-0 in FIG. 8 as the top address Adr_out2_top of the second output image (output image 807 in this case).

S1017では、CPU100は、S1013~S1015で取得したCn_out2、Bps_out2、Bdl_out2、およびBdh_out2を用いて、式(8)に従って、第2出力バンドのサイズBds_out2を算出する。 In S1017, the CPU 100 calculates the size Bds_out2 of the second output band according to equation (8) using Cn_out2, Bps_out2, Bdl_out2, and Bdh_out2 obtained in S1013 to S1015.

Figure 0007604147000008
Figure 0007604147000008

S1018では、CPU100は、S1017で取得した第2出力バンドのサイズBds_out2と、図9のフローで取得した仮想的色数Vn(ここでは3)とを用いて、式(9)に従って、第2出力バンド領域のオフセット量Bdo_out2を算出する。 In S1018, the CPU 100 calculates the offset amount Bdo_out2 of the second output band area according to equation (9) using the size Bds_out2 of the second output band obtained in S1017 and the virtual number of colors Vn (3 in this case) obtained in the flow of FIG. 9.

Figure 0007604147000009
Figure 0007604147000009

S1019では、CPU100は、ソフトウェアの内部カウンタである仮想的インデックスViを初期化して0に設定する。本例のVnは3のため、Viは0、1、2とインクリメントされ、これらの値それぞれは、仮想的な色RGBに関するレジスタ設定値を求めることを意味する。 In S1019, the CPU 100 initializes the virtual index Vi, which is an internal counter of the software, and sets it to 0. In this example, Vn is 3, so Vi is incremented to 0, 1, and 2, and each of these values represents a register setting value for the virtual color RGB.

まず、Viが0、つまり仮想的な色Rに関するレジスタ設定値を求める計算フローについて説明する。 First, we will explain the calculation flow for finding the register setting value for the virtual color R, i.e. Vi is 0.

S1020では、CPU100は、式(5)に従って、仮想的な色Rの先頭入力バンド領域のアドレスAdr_in[0]を算出する。本ステップの算出では、S1001で取得したBps_in、S1003で取得したAdr_in_top、及びS1019で取得されたVi(ここでは0)を用いる。 In S1020, the CPU 100 calculates the address Adr_in[0] of the virtual top input band area of color R according to equation (5). The calculation in this step uses Bps_in obtained in S1001, Adr_in_top obtained in S1003, and Vi (here, 0) obtained in S1019.

S1021では、CPU100は、式(6)に従い、仮想的な色Rの先頭出力バンド領域のアドレスAdr_out1[0]を算出する。本ステップの算出では、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1019で取得したVi(ここでは0)を用いる。 In S1021, the CPU 100 calculates the address Adr_out1[0] of the virtual top output band area of color R according to equation (6). The calculation in this step uses Bps_out1 obtained in S1007, Adr_out1_top obtained in S1009, and Vi (here, 0) obtained in S1019.

S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。図8のケースでは、出力画像が2つのため、S1023に処理を進める。 In S1022, the CPU 100 determines whether the image data output unit 218 outputs two different images. In the case of FIG. 8, there are two output images, so the process proceeds to S1023.

S1023では、CPU100は、S1014で取得したBps_out2、S1016で取得したAdr_out2_top、及びS1019で取得したVi(ここでは0)を用いて式(10)に従い、Adr_out2[0]を求める。 In S1023, the CPU 100 calculates Adr_out2[0] according to formula (10) using Bps_out2 obtained in S1014, Adr_out2_top obtained in S1016, and Vi (here, 0) obtained in S1019.

Figure 0007604147000010
Figure 0007604147000010

尚、Adr_out2[0]は、仮想的な色Rの出力バンド領域に対応する先頭アドレスである。 Note that Adr_out2[0] is the starting address corresponding to the output band area of the virtual color R.

S1024では、CPU100は、S1019で0に初期化した仮想的インデックスViに1を加算する。 In S1024, the CPU 100 adds 1 to the virtual index Vi that was initialized to 0 in S1019.

S1025では、CPU100は、図9のフローで取得した仮想的色数VnとS1024で取得した仮想的インデックスViとを比較し、式(7)を満たすか判定する。ここでは、Vi=1、Vn=3であり、式(7)を満たすため、S1020に処理を進める。 In S1025, the CPU 100 compares the virtual color count Vn obtained in the flow of FIG. 9 with the virtual index Vi obtained in S1024 to determine whether formula (7) is satisfied. In this case, Vi = 1 and Vn = 3, which satisfies formula (7), so the process proceeds to S1020.

次に、Viが1、つまり仮想的な色Gに関するレジスタ設定値を求める計算フローについて説明する。 Next, we will explain the calculation flow for finding the register setting value for the virtual color G, i.e. Vi is 1.

S1020では、CPU100は、式(5)に従って、仮想的な色Gの先頭入力バンド領域のアドレスAdr_in[1]を算出する。本ステップの算出では、S1001で取得したBps_in、S1003で取得したAdr_in_top、及びS1024で取得されたVi(ここでは1)を用いる。 In S1020, the CPU 100 calculates the address Adr_in[1] of the virtual top input band area of color G according to equation (5). The calculation in this step uses Bps_in obtained in S1001, Adr_in_top obtained in S1003, and Vi (here, 1) obtained in S1024.

S1021では、CPU100は、式(6)に従い、仮想的な色Gの先頭出力バンド領域のアドレスAdr_out1[1]を算出する。本ステップの算出では、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1024で取得したVi(ここでは1)を用いる。 In S1021, the CPU 100 calculates the address Adr_out1[1] of the virtual top output band area of color G according to equation (6). The calculation in this step uses Bps_out1 obtained in S1007, Adr_out1_top obtained in S1009, and Vi (here, 1) obtained in S1024.

S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図8のケースでは、出力画像が2つのため、S1023に処理を進める。 In S1022, the CPU 100 determines whether the image data output unit 218 will output two different images. In the case of FIG. 8, since there are two output images, the process proceeds to S1023.

S1023では、CPU100は、S1014で取得したBps_out2、S1016で取得したAdr_out2_top、及びS1024で取得したVi(ここでは1)を用いて式(10)に従い、Adr_out2[1]を求める。尚、Adr_out2[1]は、仮想的な色Gの出力バンド領域に対応する先頭アドレスである。 In S1023, the CPU 100 uses Bps_out2 obtained in S1014, Adr_out2_top obtained in S1016, and Vi (here, 1) obtained in S1024 to obtain Adr_out2[1] according to formula (10). Note that Adr_out2[1] is the top address corresponding to the output band area of the virtual color G.

S1024では、CPU100は、現在の仮想的インデックスViの値(つまり1)に1を加算する。 In S1024, the CPU 100 adds 1 to the current value of the virtual index Vi (i.e., 1).

S1025では、CPU100は、図9のフローで取得した仮想的色数Vnと現在の仮想的インデックスViとを比較し、式(7)を満たすか判定する。ここでは、Vi=2、Vn=3であり、式(7)を満たすため、S1020に処理を進める。 In S1025, the CPU 100 compares the virtual number of colors Vn obtained in the flow of FIG. 9 with the current virtual index Vi to determine whether formula (7) is satisfied. In this case, Vi = 2 and Vn = 3, and formula (7) is satisfied, so the process proceeds to S1020.

最後に、Viが2、つまり仮想的な色Bに関するレジスタ設定値を求める計算フローについて説明する。 Finally, we will explain the calculation flow for finding the register setting value for the virtual color B, i.e. Vi is 2.

S1020では、CPU100は、式(5)に従って、仮想的な色Bの先頭入力バンド領域のアドレスAdr_in[2]を算出する。本ステップの算出では、S1001で取得したBps_in、S1003で取得したAdr_in_top、及びS1024で取得されたVi(ここでは2)を用いる。 In S1020, the CPU 100 calculates the address Adr_in[2] of the virtual top input band area of color B according to equation (5). The calculation in this step uses Bps_in obtained in S1001, Adr_in_top obtained in S1003, and Vi (here, 2) obtained in S1024.

S1021では、CPU100は、式(6)に従い、仮想的な色Bの先頭出力バンド領域のアドレスAdr_out1[2]を算出する。本ステップの算出では、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1024で取得したVi(ここでは2)を用いる。 In S1021, the CPU 100 calculates the address Adr_out1[2] of the virtual top output band area of color B according to equation (6). The calculation in this step uses Bps_out1 obtained in S1007, Adr_out1_top obtained in S1009, and Vi (here, 2) obtained in S1024.

S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図8のケースでは、出力画像が2つのため、S1023に処理を進める。 In S1022, the CPU 100 determines whether the image data output unit 218 will output two different images. In the case of FIG. 8, since there are two output images, the process proceeds to S1023.

S1023では、CPU100は、S1014で取得したBps_out2、S1016で取得したAdr_out2_top、及びS1024で取得したVi(ここでは2)を用いて式(10)に従い、Adr_out2[2]を求める。尚、Adr_out2[2]は、仮想的な色Bの出力バンド領域に対応する先頭アドレスである。 In S1023, the CPU 100 uses Bps_out2 obtained in S1014, Adr_out2_top obtained in S1016, and Vi (here, 2) obtained in S1024 to obtain Adr_out2[2] according to formula (10). Note that Adr_out2[2] is the top address corresponding to the output band area of the virtual color B.

S1024では、CPU100は、現在の仮想的インデックスViの値(つまり2)に1を加算する。 In S1024, the CPU 100 adds 1 to the current value of the virtual index Vi (i.e., 2).

S1025では、CPU100は、図9のフローで取得した仮想的色数Vnと現在の仮想的インデックスViとを比較し、式(7)を満たすか判定する。ここでは、Vi=3、Vn=3であり、式(7)を満たさないため、S1026に処理を進める。 In S1025, the CPU 100 compares the virtual number of colors Vn obtained in the flow of FIG. 9 with the current virtual index Vi to determine whether formula (7) is satisfied. In this case, Vi = 3 and Vn = 3, which does not satisfy formula (7), so the process proceeds to S1026.

S1026では、CPU100は、以下の8つの値をレジスタに設定する。
・S1005で算出した入力バンド領域のオフセット量Bdo_in
・S1011で算出した第1出力バンド領域のオフセット量Bdo_out1
・仮想的な色Rの入力バンドの先頭アドレスAdr_in[0]
・仮想的な色Gの入力バンドの先頭アドレスAdr_in[1]
・仮想的な色Bの入力バンドの先頭アドレスAdr_in[2]
・仮想的な色Rの第1出力バンドの先頭アドレスAdr_out1[0]
・仮想的な色Gの第1出力バンドの先頭アドレスAdr_out1[1]
・仮想的な色Bの第1出力バンドの先頭アドレスAdr_out1[2]
In S1026, the CPU 100 sets the following eight values in the registers.
The offset amount Bdo_in of the input band area calculated in S1005
The offset amount Bdo_out1 of the first output band area calculated in S1011
The head address Adr_in[0] of the input band of virtual color R
The head address Adr_in[1] of the input band of virtual color G
The start address Adr_in[2] of the input band of virtual color B
Start address Adr_out1[0] of the first output band of virtual color R
The start address Adr_out1[1] of the first output band of virtual color G
Start address Adr_out1[2] of the first output band of virtual color B

S1027では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図8のケースでは、出力画像が2つのため、S1028に処理を進める。 In S1027, the CPU 100 determines whether the image data output unit 218 will output two different images. In the case of FIG. 8, since there are two output images, the process proceeds to S1028.

S1028では、CPU100は、以下の4つの値をレジスタに設定する。
・第2出力バンド領域のオフセット量Bdo_out2
・仮想的な色Rの第2出力バンドの先頭アドレスAdr_out2[0]
・仮想的な色Gの第2出力バンドの先頭アドレスAdr_out2[1]
・仮想的な色Bの第2出力バンドの先頭アドレスAdr_out2[2]
In S1028, the CPU 100 sets the following four values in the registers.
Second output band area offset amount Bdo_out2
Start address Adr_out2[0] of the second output band of virtual color R
The start address Adr_out2[1] of the second output band of virtual color G
Start address Adr_out2[2] of the second output band of virtual color B

<本実施形態の効果>
以上説明したように本実施形態によれば、ソフトウェアは入力画像であるモノクロ画像を3並列で画像処理し、等倍の画像と1/2倍の縮小画像とを出力する際に、並列処理する数として仮想的色数をソフトウェアが決定する。その上で、その仮想的色数に基づいて、ハードウェアがモノクロ画像の複数画素を並列処理し、2つの画像を並行して出力するためのレジスタ設定値を計算することができる。このレジスタ設定値の計算手法は、モノクロ画像を1並列で画像処理する場合、モノクロ画像をM並列で画像処理する場合、カラー画像を1並列で画像処理する場合、カラー画像をM並列で画像処理する場合に適用できる。
<Effects of this embodiment>
As described above, according to this embodiment, the software processes a monochrome image, which is an input image, in 3-parallel and determines the virtual number of colors as the number of colors to be processed in parallel when outputting a normal image and a reduced image of 1/2. Then, based on the virtual number of colors, the hardware can calculate register setting values for processing multiple pixels of the monochrome image in parallel and outputting two images in parallel. This method of calculating register setting values can be applied to the cases of processing a monochrome image in 1-parallel, processing a monochrome image in M-parallel, processing a color image in 1-parallel, and processing a color image in M-parallel.

[第3の実施形態]
以下、モノクロ画像をN倍の速度で印刷するための印刷指示を情報機器106が画像処理装置(具体的には記録装置)に送る場合の形態を示す。情報機器106にインストールされているプリンタドライバのモジュールが情報機器106に接続されている画像処理装置に対して仮想的色数を問い合わる。そして、情報機器106は、その仮想的色数をモノクロ画像の印刷能力としてユーザに提示する。尚、本本実施形態で採用する、画像処理装置、画像処理部103、画像処理コマンド、バンド処理等は第1の実施形態と同様である(図1~図4参照)。
[Third embodiment]
The following describes a case where the information device 106 sends a print instruction to an image processing device (specifically, a recording device) to print a monochrome image at N times the normal speed. A printer driver module installed in the information device 106 inquires of the image processing device connected to the information device 106 about the virtual number of colors. The information device 106 then presents the virtual number of colors to the user as the printing capability of monochrome images. The image processing device, image processing unit 103, image processing commands, band processing, etc. employed in this embodiment are the same as those in the first embodiment (see FIGS. 1 to 4).

<画像処理コマンドの構成>
図11は、本実施形態における画像処理部103で用いられる画像処理コマンドの構成を示す図である。
<Image processing command structure>
FIG. 11 is a diagram showing the structure of an image processing command used by the image processing unit 103 in this embodiment.

画像処理コマンド1101は、3つのデータ領域を持ち、カラー画像を処理する場合は、最大3色のカラー画像の画像処理を行うことができる。また、この画像処理コマンド1101を用いてモノクロ画像を処理する場合は、図9のフローにより、仮想的色数として3を導出し、3並列で画像処理を行うことができる。 Image processing command 1101 has three data areas, and when processing a color image, it can process a color image of up to three colors. When processing a monochrome image using this image processing command 1101, the virtual number of colors can be derived as 3 according to the flow in Figure 9, and image processing can be performed in parallel in three steps.

画像処理コマンド1102は、4つのデータ領域を持ち、カラー画像を処理する場合は、最大4色のカラー画像の画像処理を行うことができる。また、この画像処理コマンド1102を用いてモノクロ画像を処理する場合は、図9のフローにより、仮想的色数として4を導出し、4並列で画像処理を行うことができる。 The image processing command 1102 has four data areas, and when processing a color image, it can process a color image of up to four colors. When processing a monochrome image using this image processing command 1102, the virtual number of colors can be derived as four according to the flow in FIG. 9, and image processing can be performed in parallel in four steps.

画像処理コマンド1103は、4つのデータ領域を持つ画像処理コマンド2つから成り、カラー画像を処理する場合は、最大8色のカラー画像の画像処理を行うことができる。 Image processing command 1103 consists of two image processing commands with four data areas, and when processing color images, it can process color images of up to eight colors.

<情報機器と、記録装置とによる一連の処理>
図12は、本実施形態における情報機器と、第1~第3記録装置とによる一連の処理を示すシーケンス図である。
<A series of processes by information device and recording device>
FIG. 12 is a sequence diagram showing a series of processes performed by the information device and the first to third recording devices in this embodiment.

プリンタドライバ122は、情報機器121にインストールされたアプリケーションプログラムである。図12の第1記録装置123は、図11の画像処理コマンド1101に対応している。また、第2記録装置124は、画像処理コマンド1102に対応し、第3記録装置125は、画像処理コマンド1103に対応している。 The printer driver 122 is an application program installed in the information device 121. The first recording device 123 in FIG. 12 corresponds to the image processing command 1101 in FIG. 11. The second recording device 124 corresponds to the image processing command 1102, and the third recording device 125 corresponds to the image processing command 1103.

S1200では、ユーザ120は、情報機器121にインストールされているプリンタドライバ122のグラフィカルユーザインターフェース(以降GUI)を介して、モノクロ画像の印刷を指示する。 In S1200, the user 120 instructs printing of a monochrome image via a graphical user interface (hereinafter GUI) of the printer driver 122 installed in the information device 121.

S1201では、情報機器121は、第1記録装置123に対して、使用可能な画像処理コマンド1101におけるデータ領域数の取得要求を送信する。 In S1201, the information device 121 sends a request to the first recording device 123 to obtain the number of data areas in the available image processing command 1101.

S1202では、第1記録装置123は、S1201で送信されたデータ領域数の取得要求に対する応答としてデータ領域数3を、情報機器121に通知する。 In S1202, the first recording device 123 notifies the information device 121 of the number of data areas, 3, in response to the request to obtain the number of data areas sent in S1201.

S1203では、情報機器121は、第2記録装置124に対して、使用可能な画像処理コマンド1102におけるデータ領域数の取得要求を送信する。 In S1203, the information device 121 sends a request to the second recording device 124 to obtain the number of data areas in the available image processing command 1102.

S1204では、第2記録装置124は、S1203で送信されたデータ領域数の取得要求に対する応答としてデータ領域数4を、情報機器121に通知する。 In S1204, the second recording device 124 notifies the information device 121 of the number of data areas, 4, in response to the request to obtain the number of data areas sent in S1203.

S1205では、情報機器121は、第3記録装置125に対して、使用可能な画像処理コマンド1103におけるデータ領域数の取得要求を送信する。 In S1205, the information device 121 sends a request to the third recording device 125 to obtain the number of data areas in the available image processing command 1103.

S1206では、第3記録装置125は、S1205で送信されたデータ領域数の取得要求に対する応答としてデータ領域数4を、情報機器121に通知する。 In S1206, the third recording device 125 notifies the information device 121 of the number of data areas, 4, in response to the request to obtain the number of data areas sent in S1205.

S1207では、情報機器121のCPUは、図9のフローを用いて、S1202、S1204、S1206で取得したデータ領域数に基づく仮想的色数を導出する。ここで、情報機器121のCPUが、第1記録装置123~第3記録装置125のそれぞれに対する仮想的色数を導出する処理について、図9を用いて説明する。 In S1207, the CPU of the information device 121 uses the flow in FIG. 9 to derive a virtual number of colors based on the number of data areas obtained in S1202, S1204, and S1206. Here, the process in which the CPU of the information device 121 derives a virtual number of colors for each of the first recording device 123 to the third recording device 125 will be described with reference to FIG. 9.

まず、第1記録装置123に対する仮想的色数を求めるために、S900では、入力画像がモノクロ画像か判定する。本例では、入力画像がモノクロ画像のため、S901に処理を進める。S901では、モノクロ画像に対する画像処理を高速化するか、つまりN並列(Nは2以上の整数)で画像処理するか判定する。本例では、N並列で画像処理を行うため、S902に処理を進める。S902では、仮想的色数Vnをステップ1202で取得されたデータ領域数(つまり3)に設定する。 First, in order to find the virtual number of colors for the first recording device 123, in S900 it is determined whether the input image is a monochrome image. In this example, since the input image is a monochrome image, processing proceeds to S901. In S901 it is determined whether to speed up image processing for monochrome images, that is, whether to process images in N parallelism (N is an integer equal to or greater than 2). In this example, since image processing is to be performed in N parallelism, processing proceeds to S902. In S902, the virtual number of colors Vn is set to the number of data areas obtained in step 1202 (i.e. 3).

次に、第2記録装置124に対する仮想的色数を求めるために、S900では、入力画像がモノクロ画像か判定する。本例では、入力画像がモノクロ画像のため、S901に処理を進める。S901では、モノクロ画像に対する画像処理を高速化するか、つまりN並列(Nは2以上の整数)で画像処理するか判定する。本例では、N並列で画像処理を行うため、S902に処理を進める。S902では、仮想的色数Vnをステップ1204で取得されたデータ領域数(つまり4)に設定する。 Next, in order to obtain the virtual number of colors for the second recording device 124, in S900 it is determined whether the input image is a monochrome image. In this example, since the input image is a monochrome image, processing proceeds to S901. In S901 it is determined whether to speed up image processing for monochrome images, that is, whether to perform image processing in N parallelism (N is an integer equal to or greater than 2). In this example, since image processing is performed in N parallelism, processing proceeds to S902. In S902, the virtual number of colors Vn is set to the number of data areas obtained in step 1204 (i.e. 4).

最後に、第3記録装置125に対する仮想的色数を求めるために、S900では、入力画像がモノクロ画像か判定する。本例では、入力画像がモノクロ画像のため、S901に処理を進める。S901では、モノクロ画像に対する画像処理を高速化するか、つまりN並列(Nは2以上の整数)で画像処理するか判定する。本例では、N並列で画像処理を行うため、S902に処理を進める。S902では、仮想的色数Vnをステップ1206で取得されたデータ領域数(つまり8)に設定する。 Finally, in order to obtain the virtual number of colors for the third recording device 125, in S900 it is determined whether the input image is a monochrome image. In this example, since the input image is a monochrome image, processing proceeds to S901. In S901 it is determined whether to speed up image processing for monochrome images, that is, whether to process images in N parallelism (N is an integer equal to or greater than 2). In this example, since image processing is to be performed in N parallelism, processing proceeds to S902. In S902, the virtual number of colors Vn is set to the number of data areas obtained in step 1206 (i.e. 8).

S1208では、情報機器121のCPUは、プリンタドライバ122のGUIを介して、S1207で導出した仮想的色数(つまり3,4,8)を並列処理可能な数として、対応する記録装置名とともに表示する表示処理を行う。 In S1208, the CPU of the information device 121 performs display processing via the GUI of the printer driver 122 to display the virtual number of colors derived in S1207 (i.e., 3, 4, or 8) as the number that can be processed in parallel, together with the name of the corresponding recording device.

S1209では、ユーザ120は、プリンタドライバ122のGUIを介して、モノクロ画像の印刷性能が最も高い記録装置として、第3記録装置125を選択し、該選択した第3記録装置125に印刷実行を指示する。 In S1209, the user 120 selects the third recording device 125 as the recording device with the highest monochrome image printing performance via the GUI of the printer driver 122, and instructs the selected third recording device 125 to perform printing.

S1210では、情報機器121は、第3記録装置125に対して印刷データを送信する。 In S1210, the information device 121 sends print data to the third recording device 125.

<本実施形態の効果>
以上説明したように本実施形態では、情報機器にインストールされているプリンタドライバが該情報機器に接続されている複数の画像処理装置から取得したデータ領域の数に基づいて仮想的色数を算出し、それを印刷性能として表示する。これにより、ユーザは、最も印刷性能が高い画像処理装置を選択して印刷することができる。
<Effects of this embodiment>
As described above, in this embodiment, the printer driver installed in the information device calculates the virtual number of colors based on the number of data areas acquired from multiple image processing devices connected to the information device, and displays this as the printing performance. This allows the user to select the image processing device with the highest printing performance for printing.

[その他の実施形態]
尚、前述の実施形態では、複数(最大でN個)の画素データに対する画像処理を同時に実行可能な画像処理実行部を挙げて、入力カラー画像がRGB3チャンネルの画像であり、画像処理コマンドにおけるデータ領域の数が3の場合について説明した。しかしながら、入力カラー画像がCMYK4チャンネルの画像の場合はデータ領域の数を4としてもよい。また、入力カラー画像の色数(チャンネル数)Mが4以上の場合は、そのM以上の数のデータ領域の数を定義してもよい。さらに、データ領域の数が4である画像処理コマンドをサポートする画像処理装置においてモノクロ画像を高速処理する場合は、仮想的色数を4色として4並列で画像処理を行う構成としてもよい。さらに、仮想的色数を同時処理可能なデータ領域の数の値とする必要はなく、この数未満となるように仮想的色数を決定してもよい。
[Other embodiments]
In the above embodiment, an image processing execution unit capable of simultaneously executing image processing on a plurality of (maximum N) pixel data was given, and a case was described in which the input color image is an RGB three-channel image, and the number of data areas in the image processing command is three. However, if the input color image is a CMYK four-channel image, the number of data areas may be four. If the number of colors (number of channels) M of the input color image is four or more, the number of data areas may be defined as a number equal to or greater than M. Furthermore, in the case of high-speed processing of monochrome images in an image processing device that supports an image processing command in which the number of data areas is four, the virtual number of colors may be set to four, and image processing may be performed in four parallel rows. Furthermore, the virtual number of colors does not need to be the number of data areas that can be simultaneously processed, and the virtual number of colors may be determined to be less than this number.

また、前述の実施形態では、画像処理コマンドが、1つのヘッダと3つのデータ領域とから構成される1つのコマンドの場合について説明した。しかしながら、4色以上の入力画像や出力画像を扱う場合は、データ領域の全体のビット数とデータ領域の数を増やしてもよいし、2個以上のコマンドで1画素のデータを表現してもよい。 In the above embodiment, the image processing command is a single command consisting of a header and three data areas. However, when handling input images or output images with four or more colors, the total number of bits in the data area and the number of data areas may be increased, or data for one pixel may be expressed by two or more commands.

また、前述の実施形態では、モノクロの入力画像に対して、バンド分割して並列処理するためのソフトウェアの制御方法について説明した。しかしながら、必ずしも入力画像がモノクロ画像である必要はなく、入力画像がカラー画像であってもよい。具体的には、RGBの3色の入力画像に対して、画像処理コマンドのデータ領域が10個存在する場合、入力画像の色数が3の整数倍である9つの画素データを並列処理するための制御方法としてもよい。ここで、仮想的色数(=9)を画像データの1画素あたりの色数M(=3)の整数倍としているのは、ソフトウェアの制御をし易くするためである。但し、仮想的色数を10として、例えば1つ目の画像処理コマンドに1~3画素目の画素データ9個と4画素目のRデータを設定する。その次に、2つ目の画像処理コマンドに5~7画素目の画素データ9個と4画素目のGデータを設定する、といったようにソフトウェアで制御してもよい。 In the above embodiment, a software control method for dividing a monochrome input image into bands and processing them in parallel was described. However, the input image does not necessarily have to be a monochrome image, and may be a color image. Specifically, when there are 10 data areas of the image processing command for an input image of three colors RGB, the control method may be used for parallel processing of nine pixel data, the number of colors of which is an integer multiple of three for the input image. Here, the reason why the virtual number of colors (=9) is an integer multiple of the number of colors per pixel M (=3) of the image data is to make it easier to control the software. However, if the virtual number of colors is set to 10, for example, nine pixel data for the first to third pixels and R data for the fourth pixel are set in the first image processing command. Next, the software may control in such a way that nine pixel data for the fifth to seventh pixels and G data for the fourth pixel are set in the second image processing command.

また、前述の実施形態では、入力画像の色数と出力画像の色数とが同じ場合について説明した。しかしながら、入力画像がRGBの3色に対して画像処理を行い、CMYKの4色の出力画像を出力する等、入力画像の色数と出力画像の色数とが異なってもよい。 In the above embodiment, the number of colors in the input image and the number of colors in the output image are the same. However, the number of colors in the input image and the number of colors in the output image may be different, for example, the input image is subjected to image processing for three colors, RGB, and an output image is output with four colors, CMYK.

また、前述の実施形態では、入出力制御部200による画像データの読み書きが32バイト単位で行われる形態を説明した。しかしながら、画像データの読み書きの単位は32バイトに限定されず、画像処理装置上でのRAM101の構成の仕方やRAM101を実現する記憶装置の種類、そして実行する画像処理の種類等に応じて、画像データの読み書きの単位を変更してよい。尚、読み書きの単位が変わった場合、画像データを記憶する203中間バッファ制御部の記憶領域の容量が変わるだけで、モノクロ画像を含む画像処理コマンドの生成手法は変化しない。 In the above embodiment, the input/output control unit 200 reads and writes image data in units of 32 bytes. However, the unit of reading and writing image data is not limited to 32 bytes, and the unit of reading and writing image data may be changed depending on the configuration of the RAM 101 on the image processing device, the type of storage device that realizes the RAM 101, and the type of image processing to be performed. Note that when the unit of reading and writing is changed, only the capacity of the storage area of the intermediate buffer control unit 203 that stores the image data changes, and the method of generating image processing commands including monochrome images does not change.

また、前述の実施形態では、バンド領域のそれぞれが隣接する領域との境界で互いに重ならない場合について説明した。しかしながら、画像処理実行部201にて各バンド領域間で隙間なく空間フィルタ処理などの局所(近傍)画像処理を行なう場合は、図4(h)~(m)に示すように各バンド領域が互いに重なり合うように構成されてもよい。各バンド領域が重なり合う場合でも、図4(h)に示すように、Bdhは重なり合う領域を除く高さとして、図10に示すフローに従ってレジスタ設定値を計算すればよい。 In the above embodiment, the case where the band regions do not overlap with each other at the boundaries with adjacent regions has been described. However, when the image processing execution unit 201 performs local (neighborhood) image processing such as spatial filtering processing without gaps between each band region, the band regions may be configured to overlap with each other as shown in Figures 4(h) to (m). Even when the band regions overlap, as shown in Figure 4(h), Bdh is the height excluding the overlapping regions, and the register setting value can be calculated according to the flow shown in Figure 10.

また、前述の実施形態では、画像データ出力部218が複数の出力画像を出力する一例として、等倍画像と、1/2倍に縮小された縮小画像とを出力する形態を説明した(図8参照)。但し、2つの出力画像を出力する場合、各出力画像は、等倍画像、拡大画像、縮小画像の何れでもよい。さらに、画像データ出力部218が出力する出力画像の数は3つ以上であってもよい。 In the above embodiment, as an example in which the image data output unit 218 outputs multiple output images, a configuration in which a life-size image and a reduced image reduced to 1/2 size has been described (see FIG. 8). However, when outputting two output images, each output image may be a life-size image, an enlarged image, or a reduced image. Furthermore, the number of output images output by the image data output unit 218 may be three or more.

また、前述の実施形態では、図1に示すような画像処理装置の構成におけるソフトウェアの制御方法について説明した。しかしながら、ソフトウェアが分割領域の開始アドレスと、オフセット量とを指定して並列処理する構成であれば、ソフトウェアの制御対象は画像処理装置である必要はない。さらに、ソフトウェアが制御する対象が必ずしも入力の分割領域と出力の分割領域である必要はなく、どちらか一方でよい。例えば、映像データを分割し、分割領域ごとに別々のCPUに送信してそのCPU上で分割領域のデータに重畳表示するための加工処理を行う構成としてもよい。 In the above embodiment, a method for controlling software in an image processing device as shown in FIG. 1 was described. However, if the software is configured to specify the start address of a divided area and an offset amount and perform parallel processing, the object controlled by the software does not have to be an image processing device. Furthermore, the object controlled by the software does not necessarily have to be the input divided area and the output divided area; either one can be used. For example, the video data may be divided and sent to separate CPUs for each divided area, and processing may be performed on the CPU to superimpose the data on the divided area.

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

100 CPU
103 画像処理部
100 CPU
103 Image processing unit

Claims (18)

画像データとして、モノクロ画像データまたはカラー画像データを格納する記憶領域が設けられる中間バッファ制御部と、
前記記憶領域に関するレジスタ設定値を参照して、前記画像データのうち最大でN個(Nは整数)の画素データに対する画像処理を同時に実行することが可能な画像処理手段と、
を有する装置であって、
前記画像データがモノクロ画像データの場合、該画像データにおける画素データに対する並列処理を行う際の並列数として、仮想的な色数を決定する決定手段と、
前記レジスタ設定値を、前記仮想的な色数に基づいて算出する算出手段と、
前記画像データの領域を複数のバンド領域に分割する分割手段と、
を更に有し、
前記レジスタ設定値には、前記画像処理手段に入力される入力画像データを構成する複数の入力バンドのうち、所定の入力バンドの先頭アドレスと、前記画像処理手段から出力される出力画像データを構成する複数の出力バンドのうち、所定の出力バンドの先頭アドレスと、前記複数の入力バンドそれぞれに関する第1オフセット量と、が含まれ、
前記算出手段は、以下の式(1)に従って、前記第1オフセット量を算出する、
ことを特徴とする装置。
Figure 0007604147000011
an intermediate buffer control unit provided with a storage area for storing monochrome image data or color image data as image data ;
an image processing means capable of simultaneously executing image processing on a maximum of N pieces of pixel data (N is an integer) of the image data by referring to register settings related to the storage area ;
An apparatus having
a determination means for determining a virtual number of colors as a parallel number when performing parallel processing on pixel data in the image data when the image data is monochrome image data;
a calculation means for calculating the register setting value based on the virtual number of colors;
A dividing means for dividing an area of the image data into a plurality of band areas;
and
the register setting values include a leading address of a predetermined input band among a plurality of input bands constituting the input image data input to the image processing means, a leading address of a predetermined output band among a plurality of output bands constituting the output image data output from the image processing means, and a first offset amount for each of the plurality of input bands;
The calculation means calculates the first offset amount according to the following formula (1):
An apparatus comprising:
Figure 0007604147000011
前記画像データがモノクロ画像データの場合、前記決定手段は、前記仮想的な色数を、以下の式(2)を満たすように決定する、
ことを特徴とする請求項1に記載の装置。
Figure 0007604147000012
When the image data is monochrome image data, the determining means determines the virtual number of colors so as to satisfy the following formula (2) :
2. The apparatus of claim 1 .
Figure 0007604147000012
前記画像データがモノクロ画像データの場合、前記決定手段は、前記仮想的な色数を、以下の式(3)を満たすように決定する、
ことを特徴とする請求項1または2に記載の装置。
Figure 0007604147000013
尚、Mは、前記カラー画像データにおける1画素あたりの色数としてのチャンネル数を示す。
When the image data is monochrome image data, the determining means determines the virtual number of colors so as to satisfy the following formula (3) :
3. Apparatus according to claim 1 or 2.
Figure 0007604147000013
Here, M indicates the number of channels as the number of colors per pixel in the color image data .
前記画像データがモノクロ画像データの場合、前記決定手段は、前記仮想的な色数がMの整数倍となるように決定する、
ことを特徴とする請求項3に記載の装置。
When the image data is monochrome image data, the determining means determines the virtual number of colors to be an integer multiple of M.
4. The apparatus according to claim 3.
前記画像データがカラー画像データの場合、前記決定手段は、前記並列数として1を決定する、
ことを特徴とする請求項1乃至4の何れか1項に記載の装置。
When the image data is color image data, the determining means determines the parallel number to be 1.
5. Apparatus according to any one of claims 1 to 4.
前記所定の入力バンドは、前記画像データがカラー画像データの場合、先頭から1番目の入力バンドである一方、前記画像データがモノクロ画像データの場合、先頭から前記仮想的な色数に等しい数の入力バンドであり、
前記所定の出力バンドは、前記画像データがカラー画像データの場合、先頭から1番目の出力バンドである一方、前記画像データがモノクロ画像データの場合、先頭から前記仮想的な色数に等しい数の出力バンドである、
ことを特徴とする請求項5に記載の装置。
the predetermined input band is the first input band from the top when the image data is color image data, whereas when the image data is monochrome image data, the predetermined input band is the first input band from the top, the number of which is equal to the virtual number of colors;
The predetermined output band is the first output band from the top when the image data is color image data, while it is the first output band from the top when the image data is monochrome image data, and is the number of output bands equal to the virtual number of colors from the top.
6. The apparatus according to claim 5 .
前記レジスタ設定値には、前記出力バンドに関する第2オフセット量が含まれ、
前記算出手段は、以下の式(4)に従って、前記第2オフセット量を算出する、
ことを特徴とする請求項6に記載の装置。
Figure 0007604147000014
the register setting value includes a second offset amount for the output band;
The calculation means calculates the second offset amount according to the following equation (4):
7. The apparatus according to claim 6 .
Figure 0007604147000014
サイズが異なる複数の画像データを出力し、
前記算出手段は、前記出力する複数の画像データのそれぞれに対して、前記レジスタ設定値を算出する、
ことを特徴とする請求項1乃至7の何れか1項に記載の装置。
Output multiple image data of different sizes,
the calculation means calculates the register setting value for each of the plurality of image data to be output.
8. Apparatus according to any one of the preceding claims .
前記仮想的な色数を、外部の情報機器に通知する通知手段を更に有する、
ことを特徴とする請求項1乃至8の何れか1項に記載の装置。
a notification unit for notifying an external information device of the virtual number of colors;
9. Apparatus according to any one of the preceding claims .
モノクロ画像を1画素単位で処理するためのレジスタ設定値の算出方法と、モノクロ画像を複数の画素単位で並列処理するためのレジスタ設定値の算出方法と、カラー画像を並列処理するためのレジスタ設定値の算出方法とが同一である、
ことを特徴とする請求項1乃至9の何れか1項に記載の装置。
A calculation method of a register setting value for processing a monochrome image on a pixel-by-pixel basis, a calculation method of a register setting value for processing a monochrome image in parallel on a pixel-by-pixel basis, and a calculation method of a register setting value for processing a color image in parallel are the same.
10. Apparatus according to any one of the preceding claims .
前記算出手段により算出された前記レジスタ設定値をレジスタに設定する設定手段を更に有する、
ことを特徴とする請求項1乃至10の何れか1項に記載の装置。
a setting unit for setting the register setting value calculated by the calculation unit in a register,
11. Apparatus according to any one of the preceding claims .
前記画像処理手段は、それぞれが同じ動作をするN個の画像処理回路を有する、
ことを特徴とする請求項1乃至11の何れか1項に記載の装置。
The image processing means has N image processing circuits each performing the same operation.
12. Apparatus according to any one of the preceding claims .
画像データとして、モノクロ画像データまたはカラー画像データを格納する記憶領域が設けられる中間バッファ制御部と、an intermediate buffer control unit provided with a storage area for storing monochrome image data or color image data as image data;
前記記憶領域に関するレジスタ設定値を参照して、前記画像データのうち最大でN個(Nは整数)の画素データに対する画像処理を同時に実行することが可能な画像処理手段と、an image processing means capable of simultaneously executing image processing on a maximum of N pieces of pixel data (N is an integer) of the image data by referring to register settings related to the storage area;
を有する装置であって、An apparatus having
前記画像データがモノクロ画像データの場合、該画像データにおける画素データに対する並列処理を行う際の並列数として、仮想的な色数を決定する決定手段と、a determination means for determining a virtual number of colors as a parallel number when performing parallel processing on pixel data in the image data when the image data is monochrome image data;
前記レジスタ設定値を、前記仮想的な色数に基づいて算出する算出手段と、a calculation means for calculating the register setting value based on the virtual number of colors;
前記画像データの領域を複数のバンド領域に分割する分割手段と、A dividing means for dividing an area of the image data into a plurality of band areas;
を更に有し、and
前記レジスタ設定値には、前記画像処理手段に入力される入力画像データを構成する複数の入力バンドのうち、所定の入力バンドの先頭アドレスと、前記画像処理手段から出力される出力画像データを構成する複数の出力バンドのうち、所定の出力バンドの先頭アドレスと、前記複数の出力バンドそれぞれに関する第2オフセット量と、が含まれ、the register setting value includes a leading address of a predetermined input band among a plurality of input bands constituting the input image data input to the image processing means, a leading address of a predetermined output band among a plurality of output bands constituting the output image data output from the image processing means, and a second offset amount for each of the plurality of output bands;
前記算出手段は、以下の式(5)に従って、前記第2オフセット量を算出する、The calculation means calculates the second offset amount according to the following equation (5):
ことを特徴とする装置。An apparatus comprising:
Figure 0007604147000015
Figure 0007604147000015
画像データとして、モノクロ画像データまたはカラー画像データを格納する記憶領域が設けられる中間バッファ制御部と、an intermediate buffer control unit provided with a storage area for storing monochrome image data or color image data as image data;
前記記憶領域に関するレジスタ設定値を参照して、前記画像データのうち最大でN個(Nは整数)の画素データに対する画像処理を同時に実行することが可能な画像処理手段と、an image processing means capable of simultaneously executing image processing on a maximum of N pieces of pixel data (N is an integer) of the image data by referring to register settings related to the storage area;
を有する装置であって、An apparatus having
前記画像データがモノクロ画像データの場合、該画像データにおける画素データに対する並列処理を行う際の並列数として、仮想的な色数を決定する決定手段と、a determination means for determining a virtual number of colors as a parallel number when performing parallel processing on pixel data in the image data when the image data is monochrome image data;
前記レジスタ設定値を、前記仮想的な色数に基づいて算出する算出手段と、a calculation means for calculating the register setting value based on the virtual number of colors;
前記画像データの領域を複数のバンド領域に分割する分割手段と、A dividing means for dividing an area of the image data into a plurality of band areas;
を更に有し、Further comprising:
前記レジスタ設定値には、前記画像処理手段に入力される入力画像データを構成する複数の入力バンドのうち、所定の入力バンドの先頭アドレスと、前記画像処理手段から出力される出力画像データを構成する複数の出力バンドのうち、所定の出力バンドの先頭アドレスと、が含まれ、the register setting value includes a leading address of a predetermined input band among a plurality of input bands constituting the input image data input to the image processing means, and a leading address of a predetermined output band among a plurality of output bands constituting the output image data output from the image processing means,
サイズが異なる複数の画像データを出力し、Output multiple image data of different sizes,
前記算出手段は、前記出力する複数の画像データのそれぞれに対して、前記レジスタ設定値を算出する、the calculation means calculates the register setting value for each of the plurality of image data to be output.
ことを特徴とする装置。An apparatus comprising:
画像データとして、モノクロ画像データまたはカラー画像データを格納する記憶領域が設けられる中間バッファ制御部と、an intermediate buffer control unit provided with a storage area for storing monochrome image data or color image data as image data;
前記記憶領域に関するレジスタ設定値を参照して、前記画像データのうち最大でN個(Nは整数)の画素データに対する画像処理を同時に実行することが可能な画像処理手段と、an image processing means capable of simultaneously executing image processing on a maximum of N pieces of pixel data (N is an integer) of the image data by referring to register settings related to the storage area;
を有する装置であって、An apparatus having
前記画像データがモノクロ画像データの場合、該画像データにおける画素データに対する並列処理を行う際の並列数として、仮想的な色数を決定する決定手段と、a determination means for determining a virtual number of colors as a parallel number when performing parallel processing on pixel data in the image data when the image data is monochrome image data;
前記レジスタ設定値を、前記仮想的な色数に基づいて算出する算出手段と、a calculation means for calculating the register setting value based on the virtual number of colors;
前記画像データの領域を複数のバンド領域に分割する分割手段と、A dividing means for dividing an area of the image data into a plurality of band areas;
を更に有し、and
前記レジスタ設定値には、前記画像処理手段に入力される入力画像データを構成する複数の入力バンドのうち、所定の入力バンドの先頭アドレスと、前記画像処理手段から出力される出力画像データを構成する複数の出力バンドのうち、所定の出力バンドの先頭アドレスと、が含まれ、the register setting value includes a leading address of a predetermined input band among a plurality of input bands constituting the input image data input to the image processing means, and a leading address of a predetermined output band among a plurality of output bands constituting the output image data output from the image processing means,
前記仮想的な色数を、外部の情報機器に通知する通知手段を更に有する、a notification unit for notifying an external information device of the virtual number of colors;
ことを特徴とする装置。An apparatus comprising:
画像データとして、モノクロ画像データまたはカラー画像データを格納する記憶領域が設けられる中間バッファ制御部と、an intermediate buffer control unit provided with a storage area for storing monochrome image data or color image data as image data;
前記記憶領域に関するレジスタ設定値を参照して、前記画像データのうち最大でN個(Nは整数)の画素データに対する画像処理を同時に実行することが可能な画像処理手段と、an image processing means capable of simultaneously executing image processing on a maximum of N pieces of pixel data (N is an integer) of the image data by referring to register settings related to the storage area;
を有する装置であって、An apparatus having
前記画像データがモノクロ画像データの場合、該画像データにおける画素データに対する並列処理を行う際の並列数として、仮想的な色数を決定する決定手段と、a determination means for determining a virtual number of colors as a parallel number when performing parallel processing on pixel data in the image data when the image data is monochrome image data;
前記レジスタ設定値を、前記仮想的な色数に基づいて算出する算出手段と、a calculation means for calculating the register setting value based on the virtual number of colors;
前記画像データの領域を複数のバンド領域に分割する分割手段と、A dividing means for dividing an area of the image data into a plurality of band areas;
を更に有し、and
前記レジスタ設定値には、前記画像処理手段に入力される入力画像データを構成する複数の入力バンドのうち、所定の入力バンドの先頭アドレスと、前記画像処理手段から出力される出力画像データを構成する複数の出力バンドのうち、所定の出力バンドの先頭アドレスと、が含まれ、the register setting value includes a leading address of a predetermined input band among a plurality of input bands constituting the input image data input to the image processing means, and a leading address of a predetermined output band among a plurality of output bands constituting the output image data output from the image processing means,
モノクロ画像を1画素単位で処理するためのレジスタ設定値の算出方法と、モノクロ画像を複数の画素単位で並列処理するためのレジスタ設定値の算出方法と、カラー画像を並列処理するためのレジスタ設定値の算出方法とが同一である、A calculation method of a register setting value for processing a monochrome image on a pixel-by-pixel basis, a calculation method of a register setting value for processing a monochrome image in parallel on a pixel-by-pixel basis, and a calculation method of a register setting value for processing a color image in parallel are the same.
ことを特徴とする装置。An apparatus comprising:
画像データとして、モノクロ画像データまたはカラー画像データを格納する記憶領域が設けられる中間バッファ制御部と、
前記記憶領域に関するレジスタ設定値を参照して、前記画像データのうち最大でN個(Nは整数)の画素データに対する画像処理を同時に実行することが可能な画像処理手段と、
を有する装置の制御方法であって、
前記画像データがモノクロ画像データの場合、該画像データにおける画素データに対する並列処理を行う際の並列数として、仮想的な色数を決定するステップと、
前記レジスタ設定値を、前記仮想的な色数に基づいて算出するステップと、
前記画像データの領域を複数のバンド領域に分割する分割するステップと、
有し、
前記レジスタ設定値には、前記画像処理手段に入力される入力画像データを構成する複数の入力バンドのうち、所定の入力バンドの先頭アドレスと、前記画像処理手段から出力される出力画像データを構成する複数の出力バンドのうち、所定の出力バンドの先頭アドレスと、前記複数の入力バンドそれぞれに関する第1オフセット量と、が含まれ、
前記算出するステップにおいて、以下の式(6)に従って、前記第1オフセット量が算出されることを特徴とする方法。
Figure 0007604147000016
an intermediate buffer control unit provided with a storage area for storing monochrome image data or color image data as image data ;
an image processing means capable of simultaneously executing image processing on a maximum of N pieces of pixel data (N is an integer) of the image data by referring to register settings related to the storage area ;
A method for controlling an apparatus having
When the image data is monochrome image data, a virtual number of colors is determined as a parallel number when performing parallel processing on pixel data in the image data;
calculating the register setting value based on the virtual number of colors;
Dividing the image data region into a plurality of band regions;
having
the register setting values include a leading address of a predetermined input band among a plurality of input bands constituting the input image data input to the image processing means, a leading address of a predetermined output band among a plurality of output bands constituting the output image data output from the image processing means, and a first offset amount for each of the plurality of input bands;
The method, wherein in the calculating step, the first offset amount is calculated according to the following equation (6) :
Figure 0007604147000016
コンピュータに請求項17に記載の方法を実行させるためのプログラム。 A program for causing a computer to execute the method according to claim 17 .
JP2020156377A 2020-09-17 2020-09-17 DEVICE, DEVICE CONTROL METHOD, AND PROGRAM - Patent application Active JP7604147B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020156377A JP7604147B2 (en) 2020-09-17 2020-09-17 DEVICE, DEVICE CONTROL METHOD, AND PROGRAM - Patent application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020156377A JP7604147B2 (en) 2020-09-17 2020-09-17 DEVICE, DEVICE CONTROL METHOD, AND PROGRAM - Patent application

Publications (2)

Publication Number Publication Date
JP2022050021A JP2022050021A (en) 2022-03-30
JP7604147B2 true JP7604147B2 (en) 2024-12-23

Family

ID=80854244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020156377A Active JP7604147B2 (en) 2020-09-17 2020-09-17 DEVICE, DEVICE CONTROL METHOD, AND PROGRAM - Patent application

Country Status (1)

Country Link
JP (1) JP7604147B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004310746A (en) 2003-03-27 2004-11-04 Canon Inc Image forming system, control method of image forming system, control method, program, and storage medium
JP2015115837A (en) 2013-12-12 2015-06-22 キヤノン株式会社 Control device, image processing device, control method, and program
JP2016068460A (en) 2014-09-30 2016-05-09 セイコーエプソン株式会社 Image processing device
JP2018196156A (en) 2018-09-12 2018-12-06 キヤノン株式会社 Data processing device, method, and program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004310746A (en) 2003-03-27 2004-11-04 Canon Inc Image forming system, control method of image forming system, control method, program, and storage medium
JP2015115837A (en) 2013-12-12 2015-06-22 キヤノン株式会社 Control device, image processing device, control method, and program
JP2016068460A (en) 2014-09-30 2016-05-09 セイコーエプソン株式会社 Image processing device
JP2018196156A (en) 2018-09-12 2018-12-06 キヤノン株式会社 Data processing device, method, and program

Also Published As

Publication number Publication date
JP2022050021A (en) 2022-03-30

Similar Documents

Publication Publication Date Title
JP6029344B2 (en) Image processing apparatus, image processing method, and program
JP2009523293A (en) Method and apparatus for processing algorithmic steps of multimedia data in a parallel processing system
JPH11179984A (en) Constructible data processing pipeline
JP6251029B2 (en) Control device, image processing device, control method, and program
US9531911B2 (en) Data processing apparatus, data processing method and storage medium for storing image data
CN104049486B (en) For determining the method and system of object type from raster data
WO2001027780A1 (en) System and method for digital color image processing
JP6534492B2 (en) IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD, AND IMAGE PROCESSING PROGRAM
KR20060025582A (en) Variable Tap Filter Architecture for Image Processing
JP7604147B2 (en) DEVICE, DEVICE CONTROL METHOD, AND PROGRAM - Patent application
US8656140B2 (en) Data processing device
JP6779263B2 (en) Data processing equipment and methods and programs
JP2000255111A (en) Image processing apparatus and method
JP6501561B2 (en) DATA PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM
US20090185754A1 (en) Image processing circuit and image processing apparatus
JP7551405B2 (en) Apparatus, method, and program
JP7614840B2 (en) Image processing device, control method and program thereof
JP2012227598A (en) Image processor, image forming apparatus, image processing method, image processing program and recording medium
JP6808712B2 (en) Image processing device, its control method, and program
CN108632497B (en) Image processing apparatus, control method, and computer-readable recording medium
JP5929351B2 (en) Image processing apparatus and image processing method
JP5885780B2 (en) Image processing apparatus, control method therefor, and program
CN116939380A (en) Image format conversion circuits, methods, chips and electronic devices
JP2024087384A (en) Image Processing Module
JP5523226B2 (en) Image processing apparatus, image processing program, and image processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240826

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20241211

R150 Certificate of patent or registration of utility model

Ref document number: 7604147

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150