JP7604147B2 - DEVICE, DEVICE CONTROL METHOD, AND PROGRAM - Patent application - Google Patents
DEVICE, DEVICE CONTROL METHOD, AND PROGRAM - Patent application Download PDFInfo
- 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
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には、入力画像データがモノクロ画像データの場合、矩形画像入力部がそのモノクロ画像データの領域を所定サイズの矩形領域に分割して、疑似的に複数の座標の異なる画素を矩形画像処理部に入力して同時に画像処理を行うことが記載されている。
特許文献1の画像処理装置は、CPU経由で入出力画像データを読み書きするためのDMAコントローラ(DMAC)を有し、モノクロの入力画像を所定のブロックに分割しておき、複数の異なる入力ブロックをカラー画像と同様の制御方法により同時に入力する。その上で、これら複数の入力ブロックに対して画像処理を並列に行い、画素データを複数の異なる出力ブロックに出力することにより、性能の高速化を実現している。
The image processing device in
また、特許文献2には、画像処理装置が複数の画像処理回路を有し、複数の色成分を格納することができる複数のフィールドに単色画像の複数の部分画像を格納し、該複数の画像処理回路が複数の部分画像に対して同時に画像処理を行うことが記載されている。
しかしながら、これらの特許文献には、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.
以下、図面を参照して、本発明の実施形態を詳細に説明する。 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
CPU100は、画像処理装置全体を制御する中央演算ユニットであり、各種の制御プログラムを実行する。ROM102には、制御ブログラムや固定データが格納される。RAM101は、データの一時保存やプログラムのロードに利用される。CPU100は、RAM101にロードされた制御プログラムを実行することで、I/F部104を通して受信した入力画像データをRAM101に一時的に保存し、該入力画像データに対する画像処理部103による画像処理を実行する。
The
画像処理部103は、RAM101に配置された入力画像データに対する画像処理を行い、出力画像データを得る。この出力画像データは、RAM101に一時保存され、I/F部104を通して外部の情報機器106に送信される。
The
<画像処理部の構成>
図2は、画像処理部103の構成を示すブロック図である。画像処理部103は、入力画像データを入力し、出力画像データを出力する入出力制御部200と、入出力制御部200から入力された画像処理コマンド(入力)単位で画像処理を行う画像処理実行部201とを有する。
<Configuration of image processing unit>
2 is a block diagram showing the configuration of the
まず、入出力制御部200の構成について説明する。入出力制御部200は、画像データ入力部202と、中間バッファ制御部203と、レジスタブロック219と、コマンド生成部204と、コマンド送信部205と、コマンド受信部216と、コマンド解析部217と、画像データ出力部218とを有する。
First, the configuration of the input/
画像データ入力部202は、レジスタブロック219から複数のレジスタ設定値を読み込み、そのレジスタ設定値に基づいてRAM101から所定のブロック単位で入力画像データを読み出し、中間バッファ制御部203の記憶領域に格納する。続いて、画像データ入力部202は、中間バッファ制御部203の記憶領域に格納された入力画像データを1画素単位で読み出し、該読み出した入力画像データをコマンド生成部204に出力する。コマンド生成部204は、1画素単位の入力画像データを含む画像処理コマンド(入力)を生成し、該生成した画像処理コマンド(入力)をコマンド送信部205に出力する。コマンド送信部205は、画像処理コマンド(入力)を画像処理実行部201に出力する。
The image
コマンド受信部216は、画像処理実行部201から画像処理コマンド(出力)を受信し、該受信した画像処理コマンド(出力)をコマンド解析部217に出力する。コマンド解析部217は、画像処理コマンド(出力)から1画素単位の出力画像データを取り出し、該取り出した出力画像データを画像データ出力部218に出力する。画像データ出力部218は、中間バッファ制御部203の記憶領域に1画素単位の出力画像データを格納する。そして、画像データ出力部218は、レジスタブロック219から複数のレジスタ設定値を読み込み、そのレジスタ設定値に基づいて中間バッファ制御部203の記憶領域に格納された出力画像データを所定のブロック単位で読み出す。そして、画像データ出力部218は、読み出した出力画像データをRAM101に出力する。
The
次に、画像処理実行部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
インターコネクト206は、クロスバーやリングバス等の接続機能で実現されており、入力ポートと出力ポートの接続先を任意に切り替えることができる。従って、CPU100がこれらポートの接続先を設定することで、インターコネクト206は、例えばP個の画像処理回路の実行順序を変更し、または一部の処理をバイパスすることができる。このように、画像処理実行部201は、アプリケーションに応じて、各種の処理を取捨選択して組み合わせることにより、所望の画像処理を実現することができる。
The
<画像処理コマンドの構成>
図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
また、図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
また、図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
また、図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
<画像データの領域分割>
次に、以下で説明する各実施形態において用いられる、画像データの領域分割について説明する。本実施形態では、領域分割手法の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
以下では、この分割された部分画像の領域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
バンド処理では、図4におけるバンド領域401~406がRAM101上のバンドメモリに展開され、画像処理実行部201にてバンド領域401の画像処理が行われる。バンド領域401の画像処理が完了すると、次にバンド領域402の画像処理が行われ、バンド領域406まで画像処理が行われる。
In band processing,
尚、バンド処理では、各バンド領域間で隙間なく空間フィルタ処理などの局所(近傍)画像処理を行なうため、図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
ここで、入出力制御部200は、レジスタブロック219に以下の4個のレジスタを備える。
・入力アドレスレジスタ:入力画像501の先頭アドレスC1
・入力オフセットレジスタ:入力画像501の入力バンド領域間のオフセット量502
・出力アドレスレジスタ:出力画像504の先頭アドレスD1
・出力オフセットレジスタ:出力画像504の出力バンド領域間のオフセット量505
Here, the input/
Input address register: the start address C1 of the
Input offset register: offset
Output address register: start address D1 of the
Output offset register: offset
これら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
次に、画像処理部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
以上の処理フローに基づき、入出力制御部200は、入力画像データのうちオフセット量502(バイト数)の入力バンド領域A1を読み込む。続いて、画像処理実行部201は、画像処理を行い、画像データ出力部218は、出力バンドメモリ(先頭アドレスD1)にオフセット量505(バイト数)の出力画像データを書き込む。
Based on the above processing flow, the input/
その次に、入力画像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
その次に、入力画像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
次に、図5のRGB点順次の入力画像に対する画像処理において、CPU100によって実現されるソフトウェアモジュールが、画像処理部103を駆動させるために必要なレジスタ設定値を算出する処理について、図9および図10を用いて説明する。
Next, the process of calculating the register setting values required for driving the
まず、仮想的色数を決定するフローについて、図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
S900では、CPU100は、入力画像がモノクロ画像か判定する。本ステップの判定結果が真の場合、S901に進む一方、該判定結果が偽の場合(つまり、入力画像がカラー画像の場合)、S904に進む。図5のケースでは、入力画像501がカラー画像のため、S900の判定結果が偽となり、S904に処理を進める。S904では、CPU100は、仮想的色数Vnを1に設定する。
In S900, the
次に、図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 offset register: offset
Output address register: the start address D1 corresponding to the first output band area of the
Output offset register: offset
S1000では、CPU100は、入力画像501の色数Cn_in(ここでは3)を取得する。
In S1000, the
S1001では、CPU100は、入力画像501の1色あたりのビット数Bps_inを取得する。
In S1001, the
S1002では、CPU100は、入力バンド領域500の長さBdl_inと高さBdh_inを取得する。
In S1002, the
S1003では、CPU100は、入力画像501の先頭アドレスAdr_in_topとして、図5のアドレスC1を取得する。
In S1003, the
S1004では、CPU100は、S1000~S1002で取得したCn_in、Bps_in、Bdl_in、およびBdh_inを用いて、式(1)に従って、入力バンドのサイズBds_inを算出する。
In S1004, the
S1005では、CPU100は、S1004で取得した入力バンドのサイズBds_inと、図9のフローで取得した仮想的色数Vn(ここでは1)とを用いて、式(2)に従って、入力バンド領域のオフセット量Bdo_inを算出する。
In S1005, the
S1006では、CPU100は、第1出力画像(ここでは出力画像504)の色数Cn_out1(ここでは3)を取得する。
In S1006, the
S1007では、CPU100は、第1出力画像(ここでは出力画像504)の1色あたりのビット数Bps_out1を取得する。
In S1007, the
S1008では、CPU100は、第1出力バンド領域503の長さBdl_out1と高さBdh_out1を取得する。
In S1008, the
S1009では、CPU100は、第1出力画像(ここでは出力画像504)の先頭アドレスAdr_out1_topとして、図5のアドレスD1を取得する。
In S1009, the
S1010では、CPU100は、S1006~S1008で取得したCn_out1、Bps_out1、Bdl_out1、およびBdh_out1を用いて、式(3)に従って、第1出力バンドのサイズBds_out1を算出する。
In S1010, the
S1011では、CPU100は、S1010で取得した第1出力バンドのサイズBds_out1と、図9のフローで取得した仮想的色数Vn(ここでは1)とを用いて、式(4)に従って、第1出力バンド領域のオフセット量Bdo_out1を算出する。
In S1011, the
S1012では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。本ステップの判定結果が真の場合、S1013に進む一方、該判定結果が偽の場合、S1019に進む。尚、図5のケースでは、出力画像が1つのため、S1019に処理を進める。
In S1012, the
S1019では、CPU100は、ソフトウェアの内部カウンタである仮想的インデックスViを初期化して0に設定する。
In S1019, the
S1020では、CPU100は、S1001で取得したBps_in、S1003で取得したAdr_in_top、およびS1019で取得したVi(ここでは0)を用いて、式(5)に従って、入力バンドの先頭アドレスAdr_in[Vi]を算出する。
In S1020, the
尚、以降では、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
尚、以降では、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
S1024では、CPU100は、S1019で0に初期化した仮想的インデックスViに1を加算する。
In S1024, the
S1025では、CPU100は、図9で取得した仮想的色数VnとS1024で取得した仮想的インデックスViとを比較し、式(7)を満たすか判定する。図5のケースでは、Vi=1、Vn=1であり、式(7)を満たさないため、S1026に処理を進める。
In S1025, the
S1026では、CPU100は、以下の4つの値をレジスタに設定する。
・S1005で算出した入力バンド領域のオフセット量Bdo_in
・S1011で算出した第1出力バンド領域のオフセット量Bdo_out1
・S1020で算出した入力バンドの先頭アドレスAdr_in[0]
・S1021で算出した第1出力バンドの先頭アドレスAdr_out1[0]
In S1026, the
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
<モノクロ画像に対する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
ここで、入出力制御部200は、レジスタブロック219に以下の4つのレジスタを備える。
・入力アドレスレジスタ:入力画像601の先頭アドレスC1
・入力オフセットレジスタ:入力画像601の入力バンド領域間のオフセット量602
・出力アドレスレジスタ:出力画像604の先頭アドレスD1
・出力オフセットレジスタ:出力画像604の出力バンド領域間のオフセット量605
Here, the input/
Input address register: the start address C1 of the
Input offset register: offset
Output address register: start address D1 of the
Output offset register: offset
これら4つのレジスタは、CPU100によって実現されるソフトウェアモジュールがレジスタブロック219にレジスタ設定値を設定する構成となっている。また、これら4つのレジスタについては、図5のRGB点順次の入力画像に対する画像処理の例におけるレジスタ構成と同等である。
These four registers are configured so that a software module implemented by the
入出力制御部200内の画像処理コマンドのフォーマットは、ヘッダと、3つのデータ領域とから構成され、1つのデータ領域P0のみを使用する画像処理コマンド303(図3(c)参照)のフォーマットに該当する。コマンド生成部204で生成する画像処理コマンド(入力)と、コマンド解析部217で解析する画像処理コマンド(出力)とは、画像処理コマンド303のフォーマットに基づいて処理する。
The format of the image processing command in the input/
次に、画像処理部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
以上の処理フローに基づき、入出力制御部200は、入力画像データとしてオフセット量602(バイト数)の入力バンド領域A1を読み込む。続いて、画像処理実行部201は、画像処理を行い、画像データ出力部218は、出力バンドメモリ(先頭アドレスD1)にオフセット量605(バイト数)の出力画像データを書き込む。
Based on the above processing flow, the input/
その次に、入力画像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
その次に、入力画像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
次に、図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
まず、仮想的色数を決定するフローについて、図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
S901では、CPU100は、モノクロ画像に対する画像処理を高速化するか、つまりN並列(Nは2以上の整数)で画像処理するか判定する。本ステップの判定結果が真の場合、S902に進む一方、該判定結果が偽の場合(つまり、1並列で画像処理を行う場合)、S903に進む。図6のケースでは、1並列で画像処理を行うため、S903に処理を進める。S903では、CPU100は、仮想的色数Vnを1に設定する。
In S901, the
次に、図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
Output address register: First address D1 of the first output band memory
Output offset register: offset
S1000では、CPU100は、入力画像601の色数Cn_in(ここでは1)を取得する。
In S1000, the
S1001では、CPU100は、入力画像601の1色あたりのビット数Bps_inを取得する。
In S1001, the
S1002では、CPU100は、入力バンド領域600の長さBdl_inと高さBdh_inを取得する。
In S1002, the
S1003では、CPU100は、入力画像601の先頭アドレスAdr_in_topとして、図6のアドレスC1を取得する。
In S1003, the
ステップS1004では、CPU100は、S1000~S1002で取得したCn_in、Bps_in、Bdl_in、およびBdh_inを用いて、式(1)に従って、入力バンドのサイズBds_inを算出する。
In step S1004, the
S1005では、CPU100は、S1004で取得した入力バンドのサイズBds_inと、図9のフローで取得した仮想的色数Vn(ここでは1)とを用いて、式(2)に従って、入力バンド領域のオフセット量Bdo_inを算出する。
In S1005, the
S1006では、CPU100は、第1出力画像(ここでは出力画像604)の色数Cn_out1(ここでは1)を取得する。
In S1006, the
S1007では、CPU100は、第1出力画像(ここでは出力画像604)の1色あたりのビット数Bps_out1を取得する。
In S1007, the
S1008では、CPU100は、第1出力バンド領域603の長さBdl_out1と高さBdh_out1を取得する。
In S1008, the
S1009では、CPU100は、第1出力画像(ここでは出力画像604)の先頭アドレスAdr_out1_topとして、図6のアドレスD1を取得する。
In S1009, the
S1010では、CPU100は、S1006~S1008で取得したCn_out1、Bps_out1、Bdl_out1、およびBdh_out1を用いて、式(3)に従って、第1出力バンドのサイズBds_out1を算出する。
In S1010, the
S1011では、CPU100は、S1010で取得した出力バンドのサイズBds_out1と、図9のフローで取得した仮想的色数Vn(ここでは1)とを用いて、式(4)に従って、第1出力バンド領域のオフセット量Bdo_out1を算出する。
In S1011, the
S1012では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。図6のケースでは、出力画像が1つのため、S1019に処理を進める。
In S1012, the
S1019では、CPU100は、ソフトウェアの内部カウンタである仮想的インデックスViを初期化して0に設定する。
In S1019, the
S1020では、CPU100は、S1001で取得したBps_in、S1003で取得したAdr_in_top、およびS1019で取得したVi(ここでは0)を用いて、式(5)に従って、入力バンドの先頭アドレスAdr_in[0]を算出する。
In S1020, the
S1021では、CPU100は、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1019で取得したVi(ここでは0)を用いて式(6)に従い第1出力バンドの先頭アドレスAdr_out1[0]を求める。
In S1021, the
S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図6のケースでは、出力画像が1つのため、S1024に処理を進める。
In S1022, the
S1024では、CPU100は、S1019で0に初期化した仮想的インデックスViに1を加算する。
In S1024, the
S1025では、CPU100は、図9で取得した仮想的色数VnとS1024で取得した仮想的インデックスViとを比較し、式(7)を満たすか判定する。図6のケースでは、Vi=1、Vn=1であり、式(7)を満たさないため、S1026に処理を進める。
In S1025, the
ステップS1026では、CPU100は、以下の4つの値をレジスタに設定する。
・S1005で算出した入力バンド領域のオフセット量Bdo_in
・S1011で算出した出力バンド領域のオフセット量Bdo_out1
・S1020で算出した入力バンドの先頭アドレスAdr_in[0)]
・S1021で算出した出力バンドの先頭アドレスAdr_out1[0]
In step S1026, the
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
<モノクロ画像に対する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
ここで、入出力制御部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/
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
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
これら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
入出力制御部200内の画像処理コマンドのフォーマットは、ヘッダと、3つのデータ領域P0、P1、P2とから構成され、画像処理コマンド305(図3(d)参照)のフォーマットに該当する。コマンド生成部204で生成する画像処理コマンド(入力)と、コマンド解析部217で解析する画像処理コマンド(出力)とは、画像処理コマンド305のフォーマットに基づいて処理する。
The format of the image processing command in the input/
次に、画像処理部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
以上の処理フローに基づき、入出力制御部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/
入力バンド領域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
入出力制御部200は、入力バンド領域A2-0、A2-1、A2-2のそれぞれについて、入力バンド領域700のバイト数の入力画像データを読み込む。続いて、画像処理実行部201は、画像処理を行い、入出力制御部200は、出力バンドメモリ(先頭アドレスD2-0、D2-1、D2-2)にそれぞれ出力バンド領域703のバイト数の出力画像データを書き込む。
The I/
入力バンド領域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
入出力制御部200は、入力バンド領域A3-0、A3-1、A3-2のそれぞれについて、入力バンド領域700のバイト数の入力画像データを読み込む。続いて、画像処理実行部201は、画像処理を行い、入出力制御部200は、出力バンドメモリ(先頭アドレスD3-0、D3-1、D3-2)に出力バンド領域703のバイト数の出力画像データを書き込む。
The I/
次に、図7のモノクロ(単色)の入力画像に対する3並列での画像処理において、CPU100によって実現されるソフトウェアモジュールが、画像処理部103を駆動させるために必要なレジスタ設定値を算出する処理について、図9及び図10を用いて説明する。
Next, the process of calculating the register setting values required for driving the
まず、仮想的色数を決定するフローについて、図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
S901では、CPU100は、モノクロ画像に対する画像処理を高速化するか、つまりN並列(Nは2以上の整数)で画像処理するか判定する。図7のケースでは、N並列で画像処理を行うため、S902に処理を進める。S902では、CPU100は、図7の画像処理コマンド305(入力)のデータ領域が3つであることから、仮想的色数Vnを3に設定する。
In S901, the
次に、図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 offset register: Virtual offset
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
Output offset register: Virtual offset
S1000では、CPU100は、入力画像701の色数Cn_in(ここでは1)を取得する。
In S1000, the
S1001では、CPU100は、入力画像701の1色あたりのビット数Bps_inを取得する。
In S1001, the
S1002では、CPU100は、入力バンド領域700の長さBdl_inと高さBdh_inを取得する。
In S1002, the
S1003では、CPU100は、入力画像701の先頭アドレスAdr_in_topとして、図7のアドレスB1-0を取得する。
In S1003, the
S1004では、CPU100は、S1000~S1002で取得したCn_in、Bps_in、Bdl_in、およびBdh_inを用いて、式(1)に従って、入力バンドのサイズBds_inを算出する。
In S1004, the
S1005では、CPU100は、S1004で取得した入力バンドのサイズBds_inと、図9のフローで取得した仮想的色数Vn(ここでは3)とを用いて、式(2)に従って、入力バンド領域のオフセット量Bdo_inを算出する。
In S1005, the
S1006では、CPU100は、第1出力画像(ここでは出力画像704)の色数Cn_out1(ここでは1)を取得する。
In S1006, the
S1007では、CPU100は、第1出力画像(ここでは出力画像704)の1色あたりのビット数Bps_out1を取得する。
In S1007, the
S1008では、CPU100は、第1出力バンド領域703の長さBdl_out1と高さBdh_out1を取得する。
In S1008, the
S1009では、CPU100は、第1出力画像(ここでは出力画像704)の先頭アドレスAdr_out1_topとして、図7のアドレスD1-0を取得する。
In S1009, the
S1010では、CPU100は、S1006~S1008で取得したCn_out1、Bps_out1、Bdl_out1、およびBdh_out1を用いて、式(3)に従って、第1出力バンドのサイズBds_out1を算出する。
In S1010, the
S1011では、CPU100は、S1010で取得した出力バンドのサイズBds_out1と、図9のフローで取得した仮想的色数Vn(ここでは3)とを用いて、式(4)に従って、第1出力バンド領域のオフセット量Bdo_out1を算出する。
In S1011, the
S1012では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。図7のケースでは、出力画像が1つのため、S1019に処理を進める。
In S1012, the
S1019では、CPU100は、ソフトウェアの内部カウンタである仮想的インデックスViを初期化して0に設定する。尚、本例のVnは3のため、Viは0、1、2とインクリメントされ、これらの値それぞれは、仮想的な色RGBに関するレジスタ設定値を求めることを意味する。
In S1019, the
まず、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
S1021では、CPU100は、式(6)に従い、仮想的な色Rの先頭出力バンド領域のアドレスAdr_out1[0]を算出する。本ステップの算出では、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1019で取得したVi(ここでは0)を用いる。
In S1021, the
S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図7のケースでは、出力画像が1つのため、S1024に処理を進める。
In S1022, the
S1024では、CPU100は、S1019で0に初期化した仮想的インデックスViに1を加算する。
In S1024, the
S1025では、CPU100は、図9のフローで取得した仮想的色数VnとS1024で取得した仮想的インデックスViとを比較し、式(7)を満たすか判定する。ここでは、Vi=1、Vn=3であり、式(7)を満たすため、S1020に処理を進める。
In S1025, the
次に、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
S1021では、CPU100は、式(6)に従い、仮想的な色Gの先頭出力バンド領域のアドレスAdr_out1[1]を算出する。本ステップの算出では、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1024で更新されたVi(ここでは1)を用いる。
In S1021, the
S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図7のケースでは、出力画像が1つのため、S1024に処理を進める。
In S1022, the
S1024では、CPU100は、現在の仮想的インデックスVi(つまり1)に1を加算してVi=2に設定する。
In S1024, the
S1025では、CPU100は、図9のフローで取得した仮想的色数Vnと現在の仮想的インデックスViとを比較し、式(7)を満たすか判定する。ここでは、Vi=2、Vn=3であり、式(7)を満たすため、S1020に処理を進める。
In S1025, the
最後に、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
S1021では、CPU100は、式(6)に従い、仮想的な色Bの先頭出力バンド領域のアドレスAdr_out1[2]を算出する。本ステップの算出では、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1024で更新されたVi(ここでは2)を用いる。
In S1021, the
S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図7のケースでは、出力画像が1つのため、S1024に処理を進める。
In S1022, the
S1024では、CPU100は、現在の仮想的インデックスVi(つまり2)に1を加算してVi=3に設定する。
In S1024, the
S1025では、CPU100は、図9のフローで取得した仮想的色数Vnと現在の仮想的インデックスViとを比較し、式(7)を満たすか判定する。ここでは、Vi=3、Vn=3であり、式(7)を満たさないため、S1026に処理を進める。
In S1025, the
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
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
<本実施形態の効果>
以上説明したように本実施形態によれば、ソフトウェアは入力画像であるモノクロ画像を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,
画像処理部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
画像処理部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
ここで、入出力制御部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/
Input address register: top addresses B1-0, B1-1, B1-2 corresponding to the virtual RGB input band areas
Input offset register: offset
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
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
これら12個のレジスタは、CPU100によって実現されるソフトウェアモジュールがレジスタブロック219にレジスタ設定値を設定する構成となっている。また、これら12個のレジスタについては、図7のモノクロ(単色)の入力画像に対して3並列で画像処理を行う例におけるレジスタ構成と同等である。つまり、図7を用いて前述した第1の実施形態では、第2出力画像用のアドレスレジスタ3個とオフセットレジスタ1個とを使用しない例を示したが、本実施形態では、これらのレジスタを追加で使用する制御方法を示す。
These 12 registers are configured such that a software module implemented by the
入出力制御部200内の画像処理コマンドのフォーマットは、ヘッダと、3つのデータ領域P0、P1、P2とから構成され、画像処理コマンド305(図3(d)参照)のフォーマットに該当する。コマンド生成部204で生成する画像処理コマンド(入力)と、コマンド解析部217で解析する画像処理コマンド(出力)とは、画像処理コマンド305のフォーマットに基づいて処理する。
The format of the image processing command in the input/
次に、画像処理部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
具体的には、画像データ入力部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
以上の処理フローに基づき、入出力制御部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/
入力バンド領域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
入出力制御部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/
入力バンド領域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
入出力制御部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/
次に、図8の画像処理において、CPU100によって実現されるソフトウェアモジュールが、画像処理部103を駆動させるために必要なレジスタ設定値を算出する処理について、図9および図10を用いて説明する。
Next, the process of calculating the register setting values required for driving the
まず、仮想的色数を決定するフローについて、図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
S901では、CPU100は、モノクロ画像に対する画像処理を高速化するか、つまりN並列(Nは2以上の整数)で画像処理するか判定する。図8のケースでは、3並列で画像処理を行うため、S902に処理を進める。S902では、CPU100は、図8の画像処理コマンド305(入力)のデータ領域が3つであることから、仮想的色数Vnを3に設定する。
In S901, the
次に、図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 offset register: Virtual offset
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 offset register: Virtual offset
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 offset register: Virtual offset
S1000では、CPU100は、入力画像801の色数Cn_in(ここでは1)を取得する。
In S1000, the
S1001では、CPU100は、入力画像801の1色あたりのビット数Bps_inを取得する。
In S1001, the
S1002では、CPU100は、入力バンド領域800の長さBdl_inと高さBdh_inを取得する。
In S1002, the
S1003では、CPU100は、入力画像801の先頭アドレスAdr_in_topとして、図8のアドレスB1-0を取得する。
In S1003, the
S1004では、CPU100は、S1000~S1002で取得したCn_in、Bps_in、Bdl_in、およびBdh_inを用いて、式(1)に従って、入力バンドのサイズBds_inを算出する。
In S1004, the
S1005では、CPU100は、S1004で取得した入力バンドのサイズBds_inと、図9のフローで取得した仮想的色数Vn(ここでは3)とを用いて、式(2)に従って、入力バンド領域のオフセット量Bdo_inを算出する。
In S1005, the
S1006では、CPU100は、第1出力画像(ここでは出力画像804)の色数Cn_out1(ここでは1)を取得する。
In S1006, the
S1007では、CPU100は、第1出力画像(ここでは出力画像804)の1色あたりのビット数Bps_out1を取得する。
In S1007, the
S1008では、CPU100は、第1出力バンド領域803の長さBdl_out1と高さBdh_out1を取得する。
In S1008, the
S1009では、CPU100は、第1出力画像(ここでは出力画像804)の先頭アドレスAdr_out1_topとして、図8のアドレスD1-0を取得する。
In S1009, the
S1010では、CPU100は、S1006~S1008で取得したCn_out1、Bps_out1、Bdl_out1、およびBdh_out1を用いて、式(3)に従って、第1出力バンドのサイズBds_out1を算出する。
In S1010, the
S1011では、CPU100は、S1010で取得した第1出力バンドのサイズBds_out1と、図9のフローで取得した仮想的色数Vn(ここでは3)とを用いて、式(4)に従って、第1出力バンド領域のオフセット量Bdo_out1を算出する。
In S1011, the
S1012では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。図8のケースでは、出力画像が2つのため、S1013に処理を進める。
In S1012, the
S1013では、CPU100は、第2出力画像(ここでは出力画像807)の色数Cn_out2(ここでは1)を取得する。
In S1013, the
S1014では、CPU100は、第2出力画像(ここでは出力画像807)の1色あたりのビット数Bps_out2を取得する。
In S1014, the
S1015では、CPU100は、第2出力バンド領域806の長さBdl_out2と高さBdh_out2を取得する。
In S1015, the
S1016では、CPU100は、第2出力画像(ここでは出力画像807)の先頭アドレスAdr_out2_topとして、図8のアドレスF1-0を取得する。
In S1016, the
S1017では、CPU100は、S1013~S1015で取得したCn_out2、Bps_out2、Bdl_out2、およびBdh_out2を用いて、式(8)に従って、第2出力バンドのサイズBds_out2を算出する。
In S1017, the
S1018では、CPU100は、S1017で取得した第2出力バンドのサイズBds_out2と、図9のフローで取得した仮想的色数Vn(ここでは3)とを用いて、式(9)に従って、第2出力バンド領域のオフセット量Bdo_out2を算出する。
In S1018, the
S1019では、CPU100は、ソフトウェアの内部カウンタである仮想的インデックスViを初期化して0に設定する。本例のVnは3のため、Viは0、1、2とインクリメントされ、これらの値それぞれは、仮想的な色RGBに関するレジスタ設定値を求めることを意味する。
In S1019, the
まず、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
S1021では、CPU100は、式(6)に従い、仮想的な色Rの先頭出力バンド領域のアドレスAdr_out1[0]を算出する。本ステップの算出では、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1019で取得したVi(ここでは0)を用いる。
In S1021, the
S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。図8のケースでは、出力画像が2つのため、S1023に処理を進める。
In S1022, the
S1023では、CPU100は、S1014で取得したBps_out2、S1016で取得したAdr_out2_top、及びS1019で取得したVi(ここでは0)を用いて式(10)に従い、Adr_out2[0]を求める。
In S1023, the
尚、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
S1025では、CPU100は、図9のフローで取得した仮想的色数VnとS1024で取得した仮想的インデックスViとを比較し、式(7)を満たすか判定する。ここでは、Vi=1、Vn=3であり、式(7)を満たすため、S1020に処理を進める。
In S1025, the
次に、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
S1021では、CPU100は、式(6)に従い、仮想的な色Gの先頭出力バンド領域のアドレスAdr_out1[1]を算出する。本ステップの算出では、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1024で取得したVi(ここでは1)を用いる。
In S1021, the
S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図8のケースでは、出力画像が2つのため、S1023に処理を進める。
In S1022, the
S1023では、CPU100は、S1014で取得したBps_out2、S1016で取得したAdr_out2_top、及びS1024で取得したVi(ここでは1)を用いて式(10)に従い、Adr_out2[1]を求める。尚、Adr_out2[1]は、仮想的な色Gの出力バンド領域に対応する先頭アドレスである。
In S1023, the
S1024では、CPU100は、現在の仮想的インデックスViの値(つまり1)に1を加算する。
In S1024, the
S1025では、CPU100は、図9のフローで取得した仮想的色数Vnと現在の仮想的インデックスViとを比較し、式(7)を満たすか判定する。ここでは、Vi=2、Vn=3であり、式(7)を満たすため、S1020に処理を進める。
In S1025, the
最後に、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
S1021では、CPU100は、式(6)に従い、仮想的な色Bの先頭出力バンド領域のアドレスAdr_out1[2]を算出する。本ステップの算出では、S1007で取得したBps_out1、S1009で取得したAdr_out1_top、及びS1024で取得したVi(ここでは2)を用いる。
In S1021, the
S1022では、CPU100は、画像データ出力部218が2つの異なる画像を出力するか判定する。尚、図8のケースでは、出力画像が2つのため、S1023に処理を進める。
In S1022, the
S1023では、CPU100は、S1014で取得したBps_out2、S1016で取得したAdr_out2_top、及びS1024で取得したVi(ここでは2)を用いて式(10)に従い、Adr_out2[2]を求める。尚、Adr_out2[2]は、仮想的な色Bの出力バンド領域に対応する先頭アドレスである。
In S1023, the
S1024では、CPU100は、現在の仮想的インデックスViの値(つまり2)に1を加算する。
In S1024, the
S1025では、CPU100は、図9のフローで取得した仮想的色数Vnと現在の仮想的インデックスViとを比較し、式(7)を満たすか判定する。ここでは、Vi=3、Vn=3であり、式(7)を満たさないため、S1026に処理を進める。
In S1025, the
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
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
S1028では、CPU100は、以下の4つの値をレジスタに設定する。
・第2出力バンド領域のオフセット量Bdo_out2
・仮想的な色Rの第2出力バンドの先頭アドレスAdr_out2[0]
・仮想的な色Gの第2出力バンドの先頭アドレスAdr_out2[1]
・仮想的な色Bの第2出力バンドの先頭アドレスAdr_out2[2]
In S1028, the
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
<画像処理コマンドの構成>
図11は、本実施形態における画像処理部103で用いられる画像処理コマンドの構成を示す図である。
<Image processing command structure>
FIG. 11 is a diagram showing the structure of an image processing command used by the
画像処理コマンド1101は、3つのデータ領域を持ち、カラー画像を処理する場合は、最大3色のカラー画像の画像処理を行うことができる。また、この画像処理コマンド1101を用いてモノクロ画像を処理する場合は、図9のフローにより、仮想的色数として3を導出し、3並列で画像処理を行うことができる。
画像処理コマンド1102は、4つのデータ領域を持ち、カラー画像を処理する場合は、最大4色のカラー画像の画像処理を行うことができる。また、この画像処理コマンド1102を用いてモノクロ画像を処理する場合は、図9のフローにより、仮想的色数として4を導出し、4並列で画像処理を行うことができる。
The
画像処理コマンド1103は、4つのデータ領域を持つ画像処理コマンド2つから成り、カラー画像を処理する場合は、最大8色のカラー画像の画像処理を行うことができる。
<情報機器と、記録装置とによる一連の処理>
図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
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
S1201では、情報機器121は、第1記録装置123に対して、使用可能な画像処理コマンド1101におけるデータ領域数の取得要求を送信する。
In S1201, the
S1202では、第1記録装置123は、S1201で送信されたデータ領域数の取得要求に対する応答としてデータ領域数3を、情報機器121に通知する。
In S1202, the
S1203では、情報機器121は、第2記録装置124に対して、使用可能な画像処理コマンド1102におけるデータ領域数の取得要求を送信する。
In S1203, the
S1204では、第2記録装置124は、S1203で送信されたデータ領域数の取得要求に対する応答としてデータ領域数4を、情報機器121に通知する。
In S1204, the
S1205では、情報機器121は、第3記録装置125に対して、使用可能な画像処理コマンド1103におけるデータ領域数の取得要求を送信する。
In S1205, the
S1206では、第3記録装置125は、S1205で送信されたデータ領域数の取得要求に対する応答としてデータ領域数4を、情報機器121に通知する。
In S1206, the
S1207では、情報機器121のCPUは、図9のフローを用いて、S1202、S1204、S1206で取得したデータ領域数に基づく仮想的色数を導出する。ここで、情報機器121のCPUが、第1記録装置123~第3記録装置125のそれぞれに対する仮想的色数を導出する処理について、図9を用いて説明する。
In S1207, the CPU of the
まず、第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
次に、第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
最後に、第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
S1208では、情報機器121のCPUは、プリンタドライバ122のGUIを介して、S1207で導出した仮想的色数(つまり3,4,8)を並列処理可能な数として、対応する記録装置名とともに表示する表示処理を行う。
In S1208, the CPU of the
S1209では、ユーザ120は、プリンタドライバ122のGUIを介して、モノクロ画像の印刷性能が最も高い記録装置として、第3記録装置125を選択し、該選択した第3記録装置125に印刷実行を指示する。
In S1209, the user 120 selects the
S1210では、情報機器121は、第3記録装置125に対して印刷データを送信する。
In S1210, the
<本実施形態の効果>
以上説明したように本実施形態では、情報機器にインストールされているプリンタドライバが該情報機器に接続されている複数の画像処理装置から取得したデータ領域の数に基づいて仮想的色数を算出し、それを印刷性能として表示する。これにより、ユーザは、最も印刷性能が高い画像処理装置を選択して印刷することができる。
<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/
また、前述の実施形態では、バンド領域のそれぞれが隣接する領域との境界で互いに重ならない場合について説明した。しかしながら、画像処理実行部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
また、前述の実施形態では、画像データ出力部218が複数の出力画像を出力する一例として、等倍画像と、1/2倍に縮小された縮小画像とを出力する形態を説明した(図8参照)。但し、2つの出力画像を出力する場合、各出力画像は、等倍画像、拡大画像、縮小画像の何れでもよい。さらに、画像データ出力部218が出力する出力画像の数は3つ以上であってもよい。
In the above embodiment, as an example in which the image
また、前述の実施形態では、図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オフセット量を算出する、
ことを特徴とする装置。
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:
ことを特徴とする請求項1に記載の装置。
2. The apparatus of claim 1 .
ことを特徴とする請求項1または2に記載の装置。
3. Apparatus according to claim 1 or 2.
ことを特徴とする請求項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乃至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番目の出力バンドである一方、前記画像データがモノクロ画像データの場合、先頭から前記仮想的な色数に等しい数の出力バンドである、
ことを特徴とする請求項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 .
前記算出手段は、以下の式(4)に従って、前記第2オフセット量を算出する、
ことを特徴とする請求項6に記載の装置。
The calculation means calculates the second offset amount according to the following equation (4):
7. The apparatus according to claim 6 .
前記算出手段は、前記出力する複数の画像データのそれぞれに対して、前記レジスタ設定値を算出する、
ことを特徴とする請求項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乃至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 .
ことを特徴とする請求項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 .
前記記憶領域に関するレジスタ設定値を参照して、前記画像データのうち最大で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:
前記記憶領域に関するレジスタ設定値を参照して、前記画像データのうち最大で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:
前記記憶領域に関するレジスタ設定値を参照して、前記画像データのうち最大で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:
前記記憶領域に関するレジスタ設定値を参照して、前記画像データのうち最大で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オフセット量が算出されることを特徴とする方法。
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) :
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)
| 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 |
-
2020
- 2020-09-17 JP JP2020156377A patent/JP7604147B2/en active Active
Patent Citations (4)
| 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 |