JP6501561B2 - DATA PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM - Google Patents

DATA PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM Download PDF

Info

Publication number
JP6501561B2
JP6501561B2 JP2015045084A JP2015045084A JP6501561B2 JP 6501561 B2 JP6501561 B2 JP 6501561B2 JP 2015045084 A JP2015045084 A JP 2015045084A JP 2015045084 A JP2015045084 A JP 2015045084A JP 6501561 B2 JP6501561 B2 JP 6501561B2
Authority
JP
Japan
Prior art keywords
data
register
memory
point data
bank
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
JP2015045084A
Other languages
Japanese (ja)
Other versions
JP2016165076A (en
JP2016165076A5 (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 JP2015045084A priority Critical patent/JP6501561B2/en
Publication of JP2016165076A publication Critical patent/JP2016165076A/en
Publication of JP2016165076A5 publication Critical patent/JP2016165076A5/ja
Application granted granted Critical
Publication of JP6501561B2 publication Critical patent/JP6501561B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Color Image Communication Systems (AREA)
  • Color, Gradation (AREA)

Description

本発明は、ルックアップテーブルを有するデータ処理装置およびその制御方法に関する。   The present invention relates to a data processing apparatus having a look-up table and a control method thereof.

近年、カラー画像の入力機器としてスキャナやデジタルカメラ、デジタルビデオカメラなどが普及している。一方、カラー画像の出力機器としてはインクジェットや電子写真などの方式を用いた各種カラープリンタが普及している。これらの入出力機器はそれぞれ固有の色空間を有している。例えばスキャナで得たカラー画像をそのまま別のカラープリンタに転送して印刷した場合、印刷されたカラー画像の色がスキャナによって読みとられたオリジナルのカラー画像の色と一致することはほとんどない。このようなカラー画像等に対するデバイス間での色再現性の問題を解決するためには、入力機器の色空間を出力機器の色空間に変換する処理(色空間変換と呼ぶ)が必要となる。したがって、入出力機器の色再現性を高めるために、色空間変換機能が入出力機器に搭載されている。   In recent years, scanners, digital cameras, digital video cameras, etc. have become widespread as input devices for color images. On the other hand, as a color image output device, various color printers using an inkjet or electrophotographic system have become widespread. Each of these input / output devices has its own color space. For example, when a color image obtained by a scanner is transferred as it is to another color printer for printing, the color of the printed color image hardly matches the color of the original color image read by the scanner. In order to solve the problem of color reproducibility between devices for such a color image or the like, processing for converting the color space of the input device to the color space of the output device (referred to as color space conversion) is required. Therefore, in order to improve the color reproducibility of the input / output device, the color space conversion function is incorporated in the input / output device.

この色空間変換とは、具体的には入力ガンマ補正、輝度濃度変換、マスキング、黒生成、出力ガンマ補正等の一連の画像処理全体、もしくはその中の一部の処理を指す。例えば、色空間変換では、入力機器の3色(例えばレッド、グリーン、ブルー(RGB))のデジタル画像信号を同時に参照して、出力機器の3色(例えば、シアン、マゼンタ、イエロー(CMY))のデジタル画像信号に変換する。あるいは、RGBの3色のデジタル画像信号を、4色(例えばシアン、マゼンタ、イエロー、ブラック(CMYK))のデジタル画像信号に変換する。   Specifically, this color space conversion refers to the entire or a part of a series of image processing such as input gamma correction, luminance density conversion, masking, black generation, output gamma correction and the like. For example, in color space conversion, the three-color (for example, cyan, magenta, yellow (CMY)) of the output device are simultaneously referred to simultaneously referring to the digital image signals of the three-color (for example, red, green, blue (RGB)) of the input device. Convert to a digital image signal of Alternatively, digital image signals of three colors of RGB are converted into digital image signals of four colors (for example, cyan, magenta, yellow, black (CMYK)).

色空間変換の実現方法として、予め変換結果をルックアップテーブル(以下、LUTと呼ぶ)としてメモリに記憶しておき、入力された画像信号に対してそのLUTを参照して変換結果を出力する方法がある。このLUTを用いた色空間変換方法では、LUTのメモリを削減するため補間演算を併用するのが一般的である。即ち、被変換色(RGB)の代表点に対応する変換色(YMCまたはYMCK)のデータをメモリに記憶させ、メモリ内に記憶された数点の変換色データを元に補間演算を行い、新たな変換色データを算出することが行われている。RGBなどの軸上の代表点の取り方は細かいほど変換精度は高くなるが、必要なメモリの容量が増える。逆に代表点の取り方が粗いと変換精度は低くなるが、必要なメモリの容量は減る。以下、軸上の代表点を格子点(グリッド)、軸上の代表点の数を軸当たりの格子点数と呼ぶ。軸当たりの格子点数としては、8個から33個までの個数が一般に使用されている。なお、軸当たりの格子点数がx個であることを、以下、xグリッドのように記載する場合もある(例えば、軸当たりの格子点数が33個の場合を33グリッドのように記載する)。   As a method of realizing color space conversion, a method of storing conversion results in advance as a look-up table (hereinafter referred to as LUT) in memory and referring to the LUT for an input image signal and outputting the conversion results There is. In the color space conversion method using this LUT, it is common to use interpolation together in order to reduce the LUT memory. That is, the data of the conversion color (YMC or YMCK) corresponding to the representative point of the conversion color (RGB) is stored in the memory, and the interpolation operation is performed based on the conversion color data of several points stored in the memory. It is performed to calculate various conversion color data. The finer the method of setting the representative points on the axis such as RGB, the higher the conversion accuracy, but the required memory capacity increases. Conversely, if the representative points are rough, the conversion accuracy will be low, but the memory capacity required will be reduced. Hereinafter, the representative points on the axis will be referred to as grid points (grids), and the number of representative points on the axis will be referred to as the number of grid points per axis. As the number of lattice points per axis, a number from 8 to 33 is generally used. Hereinafter, it may be described as x grid that the number of lattice points per axis is x (for example, the case where the number of lattice points per axis is 33 is described as 33 grid).

あるRGBの値に対応するYMC(YMCK)の値を得るために参照される格子点の個数は補間方法によって異なる。例えば、立方体補間の場合は8個、四面体補間の場合は4個の格子点を参照して補間演算を行う。格子点の変換色データはメモリに格納されているので、複数の格子点の変換色データを参照するためにはメモリへの複数回のアクセスが発生するため、逐次的なアクセスを行っていては処理性能を上げることが出来ない。そこで、メモリを複数に分割し、複数個の格子点のデータを読み出すための複数回のメモリアクセスを同時に行うことで、処理性能を向上させる方法が提案されている。   The number of grid points referred to in order to obtain YMC (YMCK) values corresponding to certain RGB values differs depending on the interpolation method. For example, interpolation calculations are performed with reference to eight lattice points in the case of cubic interpolation and to four lattice points in the case of tetrahedral interpolation. Since the conversion color data of the grid point is stored in the memory, multiple accesses to the memory occur in order to refer to the conversion color data of a plurality of grid points. Processing performance can not be improved. Therefore, a method has been proposed in which processing performance is improved by dividing a memory into a plurality of memory accesses and simultaneously performing a plurality of memory accesses for reading data of a plurality of lattice points.

特許文献1では三次元立方体補間を高速に実行するため、32グリッドの変換色データを8個のメモリに分けて記憶し、並列に読み出すことで高速化を行っている。また、特許文献2には、軸当たりの格子点数が2のべき乗では表せられないLUTの変換色データをメモリに分割して記憶する方法が示されている。一例として、33グリッドの変換色データを8個のメモリに分割し、そのアドレスを13ビットで生成する方法について記載している。特許文献1,2のいずれも、各軸の座標の偶奇が同一の代表点を同一のメモリに格納するという点で共通している。すなわち、被変換色をRGBの3色とした3次元のLUTの場合、(偶数、偶数、偶数)、(偶数、偶数、奇数)、・・・、(奇数、奇数、奇数)の、8個のメモリに分割して格納することで高速処理を可能にしている。   In Patent Document 1, in order to execute three-dimensional cubic interpolation at high speed, converted color data of 32 grids is divided into eight memories, stored, and read in parallel to achieve high speed. Further, Patent Document 2 shows a method of dividing and storing converted color data of a LUT which can not be represented by a power of 2 in the number of lattice points per axis in a memory. As an example, a method of dividing 33 grid conversion color data into eight memories and generating its address by 13 bits is described. Both patent documents 1 and 2 are common in the point that the even and odd coordinates of the coordinate of each axis store the same representative point in the same memory. That is, in the case of a three-dimensional LUT in which the conversion colors are three RGB colors, eight of (even, even, even), (even, even, odd),..., (Odd, odd, odd) The high-speed processing is enabled by dividing and storing in the memory of.

米国特許第4837722号明細書U.S. Pat. No. 4,837,722 特開2001−36755号公報JP 2001-36755 A

特許文献1では、32グリッドでの処理を行うために合計32768(=32*32*32)個の代表点の変換色データ(以下、格子点データと記す)を格納できるメモリが必要である。また、特許文献2では33グリッドでの処理を行うために35937(=33*33*33)個の格子点データを格納できるメモリが必要である。32グリッドの場合と33グリッドの場合とで互いに必要なメモリ容量は異なるため、複数種類のグリッド数に対応するためには、最も大きい容量に合わせてメモリ分割を行う必要がある。また、グリッド数が奇数の場合に、メモリを8分割(または4分割)すると、各メモリに格納される格子点データの容量は各軸の偶奇の組合せで異なってくる。従って、LUTを設定するために格子点データをメモリに格納する際、メモリ毎に格子点データ数を意識して格納する必要があった。あるいは、このような制御をなくすために、最も容量の大きなメモリにあわせて不要なデータを追加して格納する必要があった。   In Patent Document 1, a memory capable of storing converted color data (hereinafter referred to as grid point data) of a total of 32768 (= 32 * 32 * 32) representative points is required to perform processing with 32 grids. Moreover, in patent document 2, in order to process with 33 grids, the memory which can store 35937 (= 33 * 33 * 33) lattice point data is required. Since the required memory capacity differs between the 32 grid case and the 33 grid case, it is necessary to perform memory division in accordance with the largest capacity in order to correspond to the number of grids of a plurality of types. When the number of grids is an odd number, when the memory is divided into eight (or four), the capacity of grid point data stored in each memory differs depending on the combination of even and odd of each axis. Therefore, when lattice point data is stored in the memory in order to set the LUT, it has been necessary to be aware of the number of lattice point data for each memory. Alternatively, in order to eliminate such control, it was necessary to additionally store unnecessary data in accordance with the largest capacity memory.

本発明は上記課題に鑑みてなされたものであり、ルックアップテーブルを構成する格子点データを複数のバンクのメモリに効率よく格納することを目的とする。   The present invention has been made in view of the above problems, and has as its object to efficiently store lattice point data forming a look-up table in memories of a plurality of banks.

上記の目的を達成するために本発明の一態様による画像処理装置は以下の構成を備える。すなわち、
一つのルックアップテーブルを構成する格子点データを、格子点座標を構成する軸の数をMとし、2個で表される複数バンクのメモリにロードしてデータ処理を実行するデータ処理装置であって、
ロード対象の格子点データとレジスタアドレスを受信する受信手段と、
前記受信手段により受信されたレジスタアドレスを、各バンクのメモリに格納される格子点データの個数に基づいてバンク指定とメモリアドレスに変換する変換手段と、
前記変換手段により得られたバンク指定とメモリアドレスにしたがって、前記ロード対象の格子点データを前記複数バンクのメモリに記憶する記憶手段と、を備え
前記変換手段は、前記レジスタアドレスを、前記複数バンクの各々に属する格子点データの個数に応じた閾値と比較することにより、前記バンク指定と前記メモリアドレスを決定する。
In order to achieve the above object, an image processing apparatus according to an aspect of the present invention has the following configuration. That is,
A data processing apparatus which loads data of lattice point data constituting one look-up table into a plurality of banks of memory represented by 2 M , where M is the number of axes constituting lattice point coordinates, and executes data processing There,
Receiving means for receiving grid point data to be loaded and a register address;
Conversion means for converting the register address received by the reception means into a bank specification and a memory address based on the number of lattice point data stored in the memory of each bank;
Storage means for storing the grid point data to be loaded in the memories of the plurality of banks in accordance with the bank designation and the memory address obtained by the conversion means ;
And the converting means, said register address, by comparing the threshold value according to the number of grid points data belonging to each of said plurality of banks, that determine the bank specified with the memory address.

本発明によれば、ルックアップテーブルを構成する格子点データを複数のバンクのメモリに効率よく格納することができる。   According to the present invention, lattice point data forming the look-up table can be efficiently stored in the memories of a plurality of banks.

第1実施形態における画像処理部の構成例を示すブロック図。FIG. 2 is a block diagram showing an example of the arrangement of an image processing unit according to the first embodiment; コマンドのフォーマットを示す図。Diagram showing the format of the command. グリッド別のバンク分割とデータの個数を示す図。The figure which shows the number of banks division and data according to grid. グリッドモード別のメモリマップを示す図。The figure which shows the memory map according to grid mode. 第1実施形態で用いるアドレスデコーダの動作を表すフローチャート。6 is a flowchart showing the operation of the address decoder used in the first embodiment. 第2実施形態における画像処理部の構成例を示すブロック図。FIG. 8 is a block diagram showing an example of the arrangement of an image processing unit according to the second embodiment; LUT設定後の各バンクのデータ格納数を示す図。The figure which shows the data storage number of each bank after LUT setting. 第2実施形態で用いるアドレスデコーダの動作を表すフローチャート。12 is a flowchart showing the operation of the address decoder used in the second embodiment. 第3実施形態における画像処理部の構成を示すブロック図。FIG. 11 is a block diagram showing the configuration of an image processing unit in the third embodiment. 第3実施形態で用いるアドレスデコーダの動作を表すフローチャート。16 is a flowchart showing the operation of the address decoder used in the third embodiment. 実施形態によるデータ処理装置の構成例を示すブロック図。FIG. 1 is a block diagram showing a configuration example of a data processing device according to an embodiment.

以下、添付の図面を参照して、本発明を好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。   Hereinafter, the present invention will be described in detail based on preferred embodiments with reference to the attached drawings. In addition, the structure shown in the following embodiment is only an example, and this invention is not limited to the illustrated structure.

<第1実施形態>
図11は、第1実施形態によるデータ処理装置10(たとえば印刷装置)の制御構成の一例を示すブロック図である。CPU11は、ROM12またはRAM112に格納されたプログラムを実行することにより、データ処理装置の各部の動作を制御する。転送部111は、CPU11の制御下で、各種コマンドや、入力部113により入力された入力データ114をデータ処理部100へ提供する。入力データ114はたとえば印刷のための画像データであり、外部装置との通信や外部記憶装置14からの読み出しにより得られる。データ処理部100では、入力データ(画像データ)を処理し、処理されたデータは出力部13により出力(たとえば印刷)される。なお、転送部111、入力部113、データ処理部100等の各構成の機能の少なくとも一部が、CPU11が所定のプログラムを実行することにより実現されてもよい。
First Embodiment
FIG. 11 is a block diagram showing an example of a control configuration of the data processing apparatus 10 (for example, a printing apparatus) according to the first embodiment. The CPU 11 controls the operation of each part of the data processing apparatus by executing a program stored in the ROM 12 or the RAM 112. The transfer unit 111 provides various commands and input data 114 input by the input unit 113 to the data processing unit 100 under the control of the CPU 11. The input data 114 is, for example, image data for printing, and is obtained by communication with an external device or reading from the external storage device 14. The data processing unit 100 processes input data (image data), and the processed data is output (for example, printed) by the output unit 13. Note that at least a part of the functions of the transfer unit 111, the input unit 113, the data processing unit 100, and the like may be realized by the CPU 11 executing a predetermined program.

図1は、第1実施形態によるデータ処理部100の構成例を示すブロック図である。データ処理部100は制御部101と処理部102と、複数のメモリ(バンク0〜バンク7:高さの違いは容量の違いを示す)を有する記憶部103を備える。制御部101へは転送部111からレジスタ設定やLUTの設定を行うレジスタコマンドや、処理対象となるデータが格納されたデータコマンドが入力される。なお、本実施形態では、画像データ(RGBデータ)がデータ処理部100によって処理される、画像処理装置が例示されるが、処理対象のデータはこれに限られるものではない。   FIG. 1 is a block diagram showing a configuration example of the data processing unit 100 according to the first embodiment. The data processing unit 100 includes a control unit 101, a processing unit 102, and a storage unit 103 having a plurality of memories (bank 0 to bank 7: difference in height indicates difference in capacity). The control unit 101 receives, from the transfer unit 111, a register command for setting a register and a LUT, and a data command in which data to be processed is stored. Note that, in the present embodiment, an image processing apparatus in which image data (RGB data) is processed by the data processing unit 100 is exemplified, but data to be processed is not limited to this.

制御部101は、受け取ったコマンドを解析し、そのコマンドがレジスタコマンドかデータコマンドかを判断する。制御部101は、受け取ったコマンドがレジスタコマンドである場合、コマンドに格納されているアドレスに応じて不図示のレジスタあるいはメモリへ値を設定する。たとえば、受け取ったコマンドがレジスタコマンドであり、コマンドに格納されているアドレスが図4(a)に示されるようなレジスタアドレスの場合、制御部101は、記憶部103のメモリにルックアップテーブル(LUT)の格子点データを格納する。このように、本実施形態のデータ処理部100は、一つのルックアップテーブルを構成する格子点データを複数バンクのメモリにロードしてデータ処理を実行する。   The control unit 101 analyzes the received command and determines whether the command is a register command or a data command. When the received command is a register command, the control unit 101 sets a value in a register or a memory (not shown) according to the address stored in the command. For example, if the received command is a register command and the address stored in the command is a register address as shown in FIG. 4A, the control unit 101 searches the memory of the storage unit 103 for a lookup table (LUT). Store the grid point data of As described above, the data processing unit 100 according to the present embodiment loads data of lattice points constituting one look-up table into memories of a plurality of banks to execute data processing.

また、受け取ったコマンドがデータコマンドの場合、コマンドのデータ領域からデータ(たとえば、画像データ)を取り出し、処理部102へ入力する。たとえば、データコマンドにRGBデータが格納されている場合、制御部101はそのデータコマンドからRGBデータを取り出して処理部102に入力する。処理部102は、たとえば、入力されたRGBデータを、記憶部103のLUTを参照して変換処理(例えば、RGBデータをCMYKデータに変換する処理)を含む予め定められた処理を行う。処理部102での処理後のデータは再び制御部101へ入力される。制御部101は処理部102から処理後のデータを受け取ると、再びデータコマンド形式にして外部へ出力する。なお、処理部102では、設定されたレジスタ値の参照により、たとえば、LUTの格子点数や、LUTを参照したデータ変換処理に用いられる補間処理の種類(たとえば四面体補間処理など)を決定するようにしてもよい。この場合のレジスタ値は上述したレジスタコマンドにより設定される。以上が本発明の示す画像処理の大まかな流れである。次に、それぞれの構成要素の動作について詳細に説明する。   If the received command is a data command, data (for example, image data) is extracted from the data area of the command and input to the processing unit 102. For example, when RGB data is stored in the data command, the control unit 101 extracts RGB data from the data command and inputs it to the processing unit 102. The processing unit 102 performs, for example, predetermined processing including conversion processing (for example, processing of converting RGB data into CMYK data) with reference to the LUT of the storage unit 103. The data processed by the processing unit 102 is input to the control unit 101 again. When the control unit 101 receives the processed data from the processing unit 102, the control unit 101 again outputs the data command format to the outside. Note that the processing unit 102 determines, for example, the number of grid points of the LUT or the type of interpolation processing (for example, tetrahedron interpolation processing etc.) used for data conversion processing with reference to the LUT by referring to the set register value. You may The register value in this case is set by the aforementioned register command. The above is the rough flow of the image processing shown by the present invention. Next, the operation of each component will be described in detail.

制御部101は、上述したように、転送部111から入力されたコマンドにしたがって、処理部102が参照するレジスタの設定や記憶部103の設定、処理部102とのデータの受け渡しなどを行う。まず、制御部101は入力されたコマンドを解析し、そのコマンドがレジスタコマンドであるかデータコマンドであるかを判定する。図2にコマンドのフォーマットを示す。図2(a)はレジスタコマンドを表し、図2(b)はデータコマンドを表す。コマンドの最上位ビットに位置するレジスタ/データ判別フラグ201を参照することで、コマンドがレジスタコマンドかデータコマンドかを判断できる。例えば、レジスタ/データ判別フラグ201が1であればレジスタコマンド、0であればデータコマンドである。制御部101は、受け取ったコマンドがレジスタコマンドであると判定した場合、そのコマンド内に格納されているアドレス203に応じて記憶部103へアクセスするか、制御部101あるいは処理部102内のレジスタ(不図示)へアクセスするかを決定する。また、レジスタコマンドには、アクセスがリード動作であるかライト動作であるかを示すRWフラグ202が存在し、その値に応じてライトアクセスとリードアクセスを切り替える。さらに、レジスタコマンド内には設定データ204が存在し、ライト動作の場合は、ここに格納されている値が制御部101あるいは処理部102内のレジスタあるいは記憶部103に設定される。一方、制御部101は受け取ったコマンドがデータコマンドであると判断した場合、データコマンド内に格納されているデータ(本実施形態では画像データ205)を処理部102へ送る。   As described above, the control unit 101 performs setting of a register to be referred to by the processing unit 102, setting of the storage unit 103, data exchange with the processing unit 102, and the like in accordance with the command input from the transfer unit 111. First, the control unit 101 analyzes the input command and determines whether the command is a register command or a data command. The format of the command is shown in FIG. FIG. 2 (a) shows a register command, and FIG. 2 (b) shows a data command. Whether the command is a register command or a data command can be determined by referring to the register / data determination flag 201 located in the most significant bit of the command. For example, if the register / data discrimination flag 201 is 1, it is a register command, and if it is 0, it is a data command. When the control unit 101 determines that the received command is a register command, the control unit 101 accesses the storage unit 103 according to the address 203 stored in the command, or the register in the control unit 101 or the processing unit 102 Determine whether to access (not shown). Further, an RW flag 202 indicating whether the access is a read operation or a write operation exists in the register command, and the write access and the read access are switched according to the value. Further, setting data 204 exists in the register command, and in the case of a write operation, the value stored therein is set in the register in the control unit 101 or the processing unit 102 or the storage unit 103. On the other hand, when the control unit 101 determines that the received command is a data command, the control unit 101 sends the data (image data 205 in this embodiment) stored in the data command to the processing unit 102.

次に、処理部102で行う画像処理について説明する。処理部102における処理の一例として、17グリッドである3次元のLUTを参照し、四面体補間処理を用いてデータを変換する例(たとえば、RGBデータをYMCKデータに変換する処理)を説明する。17グリッドのLUTとは、1軸当たりの格子点の数が17点のLUTである。17グリッドのLUTの場合、1軸当たりの格子点は0から16までの17個なので、3次元での格子点の数は合計17*17*17=4913個あり、それら4913個の格子点データが記憶部103にロードされ、格納される。処理部102は、入力データ(RGBデータ)にしたがって記憶部103にアクセスして複数の格子点データ(YMCKデータ)を読み出し、それらを用いて補間処理を行って変換データ(YMCKデータ)を得る。   Next, image processing performed by the processing unit 102 will be described. As an example of processing in the processing unit 102, an example of converting data using tetrahedron interpolation processing (for example, processing for converting RGB data into YMCK data) will be described with reference to a three-dimensional LUT that is 17 grids. The 17 grid LUT is a LUT having 17 grid points per axis. In the case of a 17 grid LUT, there are 17 grid points from 0 to 16 per axis, so the total number of grid points in three dimensions is 17 * 17 * 17 = 4913, and the 4913 grid point data Are loaded into the storage unit 103 and stored. The processing unit 102 accesses the storage unit 103 according to input data (RGB data) to read out a plurality of lattice point data (YMCK data), performs interpolation processing using them, and obtains conversion data (YMCK data).

四面体補間の場合、隣接する4点の格子点データを記憶部103から読み出す必要がある。そこで、処理部102では、記憶部103内のメモリを複数バンクに分割して並列アクセスを可能にして、処理に用いられる複数の格子点データを同時に読み出すことにより、データ処理を高速化している。本実施形態では、格子点座標の各軸の座標値の偶数、奇数の並びで格納先のメモリ(バンク)を分けることで、補間処理に必要な4つの格子点データを同時に読み出すことを可能にしている。即ち、
・座標が(偶数、偶数、偶数)の格子点に対応する9*9*9=729個のデータは記憶部103にあるメモリのバンク0に、
・座標が(偶数、偶数、奇数)の格子点に対応する9*9*8=648個のデータはバンク1に、
・座標が(偶数、奇数、偶数)の格子点に対応する9*8*9=648個のデータはバンク2に、
・・・、
・座標が(奇数、奇数、奇数)の格子点に対応する8*8*8=512個のデータはバンク7へ格納される、
というように8個のバンクに分割されたメモリへ格納されている。
In the case of tetrahedral interpolation, it is necessary to read out adjacent four grid point data from the storage unit 103. Therefore, the processing unit 102 divides the memory in the storage unit 103 into a plurality of banks to enable parallel access, and simultaneously reads out a plurality of lattice point data used for processing, thereby speeding up data processing. In the present embodiment, it is possible to simultaneously read out four grid point data required for interpolation processing by dividing the memory (bank) of the storage destination in an even or odd sequence of coordinate values of each axis of the grid point coordinates. ing. That is,
9 * 9 * 9 = 729 pieces of data corresponding to lattice points of (even, even, even) coordinates are stored in bank 0 of the memory in the storage unit 103,
9 * 9 * 8 = 648 pieces of data corresponding to grid points of (even, even, odd) coordinates are placed in bank 1,
9 * 8 * 9 = 648 pieces of data corresponding to (even, odd, even) grid points in the coordinates are in bank 2,
...,
8 * 8 * 8 = 512 pieces of data corresponding to (odd, odd, odd) grid points are stored in the bank 7
It is stored in the memory divided into eight banks and so on.

図3(a)に、17グリッドのLUTが参照される場合の、各バンクのメモリに格納される格子点データの個数を示す。図1に示すバンク0〜7の各メモリは、図3(a)に示される個数の格子点データを格納するためのサイズを有する。バンク毎に格納される格子点データの個数が異なるため、制御部101は記憶部103へ格子点データを格納するときに、格納先のバンクを適切に選択して格納する必要がある。このように異なる個数の格子点データへ分類して複数バンクのメモリへ格納するために制御部101が行う動作について詳細に説明する。   FIG. 3A shows the number of lattice point data stored in the memory of each bank when the 17 grid LUT is referred to. Each memory of banks 0 to 7 shown in FIG. 1 has a size for storing the number of lattice point data shown in FIG. 3 (a). Since the number of lattice point data stored in each bank is different, when storing lattice point data in the storage unit 103, the control unit 101 needs to appropriately select and store the storage destination bank. The operation performed by the control unit 101 in order to classify data into different numbers of lattice point data and store the data in a plurality of banks will be described in detail.

制御部101は、処理部102へレジスタ設定を行うためのレジスタコマンドを受け取ると、制御部101または処理部102のレジスタ(不図示)へ値を設定する。また、制御部101は格子点データ設定用のレジスタコマンドを受け取ると、設定データ204を記憶部103のメモリに格納する。レジスタコマンドが、レジスタ設定であるか格子点データ設定であるかは、コマンド内のアドレス203により判定される。たとえば、コマンドが、レジスタコマンドであって、RWフラグ202がライト動作を示し、アドレス203に図4(a)のレジスタアドレスのいずれかが格納されている場合、格子点データ設定と判定される。格子点データ設定のレジスタコマンドの場合、設定データ204として、1つの格子点座標における格子点データ(たとえばCMYKデータ)が格納されている。制御部101は、このような、ロード対象の格子点データとレジスタアドレスを含むレジスタコマンドにしたがって記憶部103へのメモリの格納を行う。なお、本実施形態においては、一つの格子点データは4バイト単位で扱われるデータとして4つのレジスタアドレスを消費し、レジスタコマンドのアドレス203にはそれら4つのレジスタアドレスのうちの先頭のアドレスが格納される。   When the control unit 101 receives a register command for setting the register in the processing unit 102, the control unit 101 sets a value in a register (not shown) of the control unit 101 or the processing unit 102. Further, when the control unit 101 receives a register command for setting lattice point data, the control unit 101 stores the setting data 204 in the memory of the storage unit 103. Whether the register command is register setting or lattice point data setting is determined by the address 203 in the command. For example, when the command is a register command, the RW flag 202 indicates a write operation, and one of the register addresses in FIG. 4A is stored in the address 203, it is determined that the lattice point data is set. In the case of a register command for setting lattice point data, lattice point data (for example, CMYK data) at one lattice point coordinate is stored as setting data 204. The control unit 101 stores the memory in the storage unit 103 according to the register command including the grid point data to be loaded and the register address. In the present embodiment, one lattice point data consumes four register addresses as data handled in units of four bytes, and the first address of the four register addresses is stored in the address 203 of the register command. Be done.

なお、LUTの格子点データをロードするためのレジスタコマンドは、たとえばCPU11により生成され、転送部111を介してロードされるようにしてもよい。この場合、CPU11は、たとえば外部記憶装置14に記憶されている格子点データを格子点座標の偶数、奇数の並びにしたがって順に読み出して、0x0000から0x4CC0までの連続するレジスタアドレスを割り当てて、レジスタコマンドを生成する。或いは、CPU11が、マトリクス係数から格子点データを格子点座標の偶数、奇数の並びにしたがって順次生成し、0x0000から0x4CC0までの連続するレジスタアドレスを割り当てて、レジスタコマンドを生成するようにしてもよい。或いは、転送部111がRAM112に格納された格子点データを、転送先のアドレスとして0x0000から0x4CC0までの連続するレジスタアドレスを割り当てて制御部101に転送するようにしてもよい。この場合、CPU11は、RAM112上に格子点データを格子点座標の偶数、奇数の並びにしたがった順で格納する。そして、転送部111はRAM112上の格子点データを順次読み出して、0x0000から0x4CC0までの連続するレジスタアドレスを割り当ててレジスタコマンドを生成する。以上のようにして、一つのルックアップテーブルを構成する格子点データにレジスタアドレスが割り当てられ、レジスタコマンドが生成される。なお、ルックアップテーブルをロードするためのレジスタコマンドの設定データ204には、1つの格子点座標に対応する格子点データ(たとえば、CMYKデータ)が格納される。   A register command for loading lattice point data of the LUT may be generated by, for example, the CPU 11 and loaded via the transfer unit 111. In this case, for example, CPU 11 reads grid point data stored in external storage device 14 in order of even and odd grid point coordinates and accordingly assigns consecutive register addresses from 0x0000 to 0x4CC0 to register command Generate Alternatively, the CPU 11 may generate lattice point data of even number and odd number of lattice point coordinates sequentially from the matrix coefficients, and thus sequentially assign register addresses from 0x0000 to 0x4CC0 to generate a register command. Alternatively, the transfer unit 111 may transfer lattice point data stored in the RAM 112 to the control unit 101 by assigning consecutive register addresses from 0x0000 to 0x4CC0 as the transfer destination address. In this case, the CPU 11 stores the grid point data on the RAM 112 in the order of even and odd grid point coordinates. Then, the transfer unit 111 sequentially reads lattice point data on the RAM 112, assigns a continuous register address from 0x0000 to 0x4CC0, and generates a register command. As described above, register addresses are assigned to lattice point data constituting one look-up table, and a register command is generated. Note that grid point data (for example, CMYK data) corresponding to one grid point coordinate is stored in setting data 204 of the register command for loading the look-up table.

制御部101は、アドレスデコーダ104により、予め定められたメモリマップに従って、レジスタコマンド内のレジスタアドレス(アドレス203)を記憶部103におけるメモリのバンクの指定とアドレスへ変換する。そして、制御部101は、レジスタコマンドに格納されている格子点データ(設定データ204)を、指定されたバンクのメモリに書き込んでいく。アドレスデコーダ104は、受信したレジスタコマンドに格納されているレジスタアドレスを、各バンクのメモリに格納される格子点データの個数に基づいてバンク指定とメモリアドレスに変換していく。制御部101は、アドレスデコーダ104により得られたバンク指定とメモリアドレスにしたがって、レジスタコマンドに格納されているロード対象の格子点データを複数バンクのメモリに記憶する。以下、この処理について詳細に説明する。   The control unit 101 causes the address decoder 104 to convert the register address (address 203) in the register command into the designation and address of the memory bank in the storage unit 103 according to a predetermined memory map. Then, the control unit 101 writes the lattice point data (setting data 204) stored in the register command into the memory of the designated bank. The address decoder 104 converts the register address stored in the received register command into a bank specification and a memory address based on the number of lattice point data stored in the memory of each bank. The control unit 101 stores lattice point data to be loaded, which is stored in the register command, in memories of a plurality of banks in accordance with the bank specification and the memory address obtained by the address decoder 104. Hereinafter, this process will be described in detail.

図4(a)には、17グリッドでの処理時に用いるメモリマップが示されている。格子点座標が(偶数、偶数、偶数)である(0、0、0)から(16、16、16)までの729個の格子点データに続いて、格子点座標が(偶数、偶数、奇数)の(0、0、1)から(16、16、15)までの648個の格子点データが格納される。これら729個の格子点データと648個の格子点データは連続して格納され、648個の格子点データの前後や途中に、最大格子点データ数である729個に合わせるための不要なデータの領域は存在しない。すなわち、レジスタアドレスは、一つのルックアップテーブルを構成する全ての格子点データが連続し、且つ、複数のバンクの各々に分類された格子点データ群が連続するように割り当てられている。また、最初の729個の格子点データはバンク0のメモリに格納され、続く648個の格子点データはバンク1のメモリに格納される。そして、そのままレジスタアドレスは連続し、格子点座標が(奇数、奇数、奇数)である(1、1、1)から(15、15、15)までの512個の格子点データまでが、適切なバンクのメモリにマッピングされる。このようにレジスタコマンドに格納されているレジスタアドレスは、図4(a)に示されるように、バンクとメモリ物理アドレスへ変換され、記憶部103の各メモリに格納される。なお、図4(a)においてレジスタアドレスは0x0000から開始しているが、これに限られるものではない。17グリッドのLUTにおける全ての格子点データが連続するアドレス空間に割り当てられればよい。   FIG. 4A shows a memory map used when processing with 17 grids. Following 729 grid point data from (0, 0, 0) to (16, 16, 16) having grid point coordinates (even, even, even), grid point coordinates (even, even, odd) 648 grid point data from (0, 0, 1) to (16, 16, 15) are stored. These 729 grid point data and 648 grid point data are continuously stored, and unnecessary data for adjusting to 729, which is the maximum grid point data number, is stored before and after or in the middle of the 648 grid point data. There is no area. That is, the register addresses are assigned such that all lattice point data constituting one look-up table are continuous, and lattice point data groups classified into each of a plurality of banks are continuous. Also, the first 729 grid data are stored in the memory of bank 0, and the subsequent 648 grid data are stored in the memory of bank 1. Then, the register address continues as it is, and 512 grid point data from (1, 1, 1) to (15, 15, 15) whose grid point coordinates are (odd, odd, odd) are appropriate. It is mapped to the memory of the bank. The register address stored in the register command in this manner is converted into a bank and a memory physical address as shown in FIG. 4A, and is stored in each memory of the storage unit 103. Although the register address starts from 0x0000 in FIG. 4A, the present invention is not limited to this. All grid point data in the 17 grid LUT may be allocated to the continuous address space.

図5にアドレスデコーダ104の動作を表すフローチャートを示す。以下、アドレスデコーダ104の動作を図5のフローチャートに従って説明する。上述したように、1つの格子点データが4バイト単位で扱われるものとし4つのレジスタアドレスを消費するので、まず、ステップS601では、レジスタコマンドに格納されているレジスタアドレスが4の倍数かを調べる。4の倍数でない(下位2ビットが0でない)場合は、記憶部103内のメモリへのアクセスは行わず処理を終了する。ステップS602ではレジスタアドレスを4で除算して値A(つまりアドレスを2ビット右シフトした値A)を得る。そして、値Aを所定の閾値と比較する(ステップS603、S605、S607、S609、S611、S613、S615、S617)ことで、下記に示すようにバンクとメモリアドレスが決定される(ステップS604、S606、S608、S610、S612、S614、S616、S618)。   FIG. 5 shows a flowchart showing the operation of the address decoder 104. The operation of the address decoder 104 will be described below with reference to the flowchart of FIG. As described above, one lattice point data is handled in 4-byte units, and four register addresses are consumed. First, in step S601, it is checked whether the register address stored in the register command is a multiple of four. . If it is not a multiple of 4 (the lower 2 bits are not 0), the memory in the storage unit 103 is not accessed, and the processing is ended. In step S602, the register address is divided by 4 to obtain a value A (that is, a value A obtained by shifting the address to the right by 2 bits). Then, by comparing the value A with a predetermined threshold (steps S603, S605, S607, S609, S611, S613, S615, S617), the bank and the memory address are determined as described below (steps S604, S606) , S608, S610, S612, S614, S616, S618).

(1)0≦A<729の時、バンクは0、メモリアドレスはAを出力する(S603,S604)
(2)729≦A<1377の時、バンクは1、メモリアドレスはA−729を出力する(S605,S606)
(3)1377≦A<2025の時、バンクは2、メモリアドレスはA−1377を出力する(S607,S608)
(4)2025≦A<2601の時、バンクは3、メモリアドレスはA−2025を出力する(S609,S610)
(5)2601≦A<3249の時、バンクは4、メモリアドレスはA−2601を出力する(S611,S612)
(6)3249≦A<3825の時、バンクは5、メモリアドレスはA−3249を出力する(S613,S614)
(7)3825≦A<4401の時、バンクは6、メモリアドレスはA−3825を出力する(S615,S616)
(8)4401≦A<4913の時、バンクは7、メモリアドレスはA−4401を出力する(S617,S618)
(9)4913≦Aの時、メモリへのアクセスは行わない。
(1) When 0 ≦ A <729, the bank is 0, and the memory address is A (S603, S604)
(2) When 729 ≦ A <1377, the bank is 1 and the memory address is A-729 (S605, S606)
(3) When 1377 ≦ A <2025, the bank is 2 and the memory address is A-1377 (S607, S608)
(4) When 2025 ≦ A <2601, the bank is 3 and the memory address is A-2025 (S609, S610)
(5) When 2601 ≦ A <3249, the bank is 4 and the memory address is A-2601 (S611, S612)
(6) When 3249 ≦ A <3825, the bank outputs 5 and the memory address A-3249 (S613, S614)
(7) When 3825 ≦ A <4401, the bank is 6 and the memory address is A-3825 (S615, S616)
(8) When 4401 ≦ A <4913, the bank is 7 and the memory address is A-4401 (S617, S618)
(9) When 4913 ≦ A, the memory is not accessed.

なお、バンク選択で用いられる閾値は、それぞれ、
729=9*9*9
1377=729+9*9*8
2025=1377+9*8*9
2601=2025+9*8*8
3249=2601+8*9*9
3825=3249+8*9*8
4401=3825+8*8*9
4913=4401+8*8*8
より求められる。上記閾値は、各バンクのメモリに格納される格子点データ数により決定される。各バンクのメモリに格納される格子点データ数は、LUTの軸当たりの格子点数(グリッド)が2+1個、次元数がm、各軸の座標値のうちの奇数の座標の個数をp個とすると、(2n−1+1)×(2n−1m−pとなる。
The threshold values used for bank selection are
729 = 9 * 9 * 9
1377 = 729 + 9 * 9 * 8
2025 = 1377 + 9 * 8 * 9
2601 = 2025 + 9 * 8 * 8
3249 = 2601 + 8 * 9 * 9
3825 = 3249 + 8 * 9 * 8
4401 = 3825 + 8 * 8 * 9
4913 = 4401 + 8 * 8 * 8
It is determined by The threshold is determined by the number of lattice point data stored in the memory of each bank. The number of grid point data stored in the memory of each bank is 2 n +1, the number of dimensions is m, and the number of odd coordinates among the coordinate values of each axis is p In this case, (2 n -1 +1) p × (2 n -1 ) m-p .

以上のようにアドレスデコーダを動作させることで、レジスタアドレスを格子点データの格納先の、記憶部103におけるバンクとメモリアドレスへ変換することが出来る。なお、アドレスデコーダの実現方法はこの方法に限定されるわけではなく、計算式で算出するなどの別の方法を用いても良い。このように、必要な格子点データを過不足なく連続してメモリにマッピングすることで、必要なメモリの容量や格子点データ設定のためのコマンド数、ファームウェアを格納するROMの容量を減らすことが可能となる。   As described above, by operating the address decoder, it is possible to convert the register address into the bank and memory address in the storage unit 103, which is the storage destination of the lattice point data. Note that the method of realizing the address decoder is not limited to this method, and another method such as calculation using a calculation formula may be used. In this manner, the necessary memory capacity, the number of commands for setting the lattice data, and the capacity of the ROM storing the firmware can be reduced by continuously mapping the necessary lattice data to the memory without excess or deficiency. It becomes possible.

なお、バンク0〜バンク7の複数バンクのメモリに格納された格子点データの読み出しは、たとえば、以下のように行うことができる。たとえば、3次元ルックアップテーブルの各軸の格子点数が17グリッドの場合、LUTの格子点座標は、各軸5ビットの座標値(r,g,b)で構成される。入力されたRGBデータに基づいて格子点座標(r、g、b)が得られたとする。バンクが各軸の座標値の奇数、偶数の並びにより決定されるので、バンクを指定する情報はr、g、bのそれぞれのLSB(r[0]、g[0]、b[0])を連結すること、すなわち、4×r[0]+2×g[0]+b[0]により得られる。また、記憶部103のメモリアドレスは、r、g、bの5ビットからLSBを除いた4ビットのデータ値、r[4…1]、g[4…1]、b[4…1]から得られる。すなわち、r[4…1]×(9−g[0])×(9−b[0])+g[4…1]×(9−b[0])+b[4…1]により、格子点のメモリアドレスが得られる。処理部102は、上記処理により、入力データであるRGBデータに対応した複数の格子点データを取得し、それらを用いて補間処理を行うことにより、入力データ(たとえばRGBデータ)に対応した出力データ(たとえばCMYKデータ)を得る。処理部102は、こうして読み出した格子点データとRGBデータに基づいて補間処理を行い、RGBデータを対応するYMCKデータに変換する。   The lattice point data stored in the memories of banks 0 to 7 can be read, for example, as follows. For example, when the number of grid points on each axis of the three-dimensional lookup table is 17 grids, the grid point coordinates of the LUT are configured by coordinate values (r, g, b) of 5 bits on each axis. It is assumed that grid point coordinates (r, g, b) are obtained based on the input RGB data. Since the bank is determined by an odd or even sequence of coordinate values of each axis, the information specifying the bank is the LSB of r, g, b (r [0], g [0], b [0]) Are obtained by linking 4 × r [0] + 2 × g [0] + b [0]. In addition, the memory address of the storage unit 103 is a 4-bit data value obtained by removing the LSB from the 5 bits of r, g, b, r [4 ... 1], g [4 ... 1], b [4 ... 1] can get. That is, r [4... 1] x (9-g [0]) x (9-b [0]) + g [4 ... 1] x (9-b [0]) + b [4 ... 1] The memory address of the point is obtained. The processing unit 102 acquires a plurality of lattice point data corresponding to RGB data, which is input data, by the above processing, and performs interpolation processing using them to output data corresponding to input data (for example, RGB data). Get (eg CMYK data). The processing unit 102 performs interpolation processing based on the grid point data read out in this way and the RGB data, and converts the RGB data into corresponding YMCK data.

以上、説明したように、本実施形態では、17グリッドの処理に必要な格子点データが過不足なく並べられたメモリマップに従って制御部101により格子点データの設定動作が行われる。そのため、記憶部103のメモリ容量や格子点データを設定するためのコマンドやファームウェアは必要なデータのみを用意すれば良く、回路の削減が可能となる。なお、上記実施形態では17グリッドの3次元LUTを例示したが本発明はこれに限られるものではない。たとえば、LUTの次元数は2以上であればよい。また、グリッド数(軸あたりの格子点数)も17に限られるものではない。グリッド数が偶数のLUTの場合は各バンクのメモリに格納される格子点データの個数は等しくなる。グリッド数が奇数のLUTの場合は、上記実施形態のように各バンクに割り当てられる格子点データの個数が異なるが、各バンクが割り当てられた個数の格子点データを連続したアドレスで保持するため、そのメモリ容量を低減することができる。   As described above, in the present embodiment, the control unit 101 performs an operation of setting lattice point data in accordance with a memory map in which lattice point data necessary for processing of 17 grids are arranged without excess or deficiency. Therefore, it is only necessary to prepare necessary data for commands and firmware for setting the memory capacity and lattice point data of the storage unit 103, and the circuit can be reduced. Although the 17 grid three-dimensional LUT is illustrated in the above embodiment, the present invention is not limited to this. For example, the number of dimensions of the LUT may be two or more. Also, the number of grids (the number of grid points per axis) is not limited to 17. When the number of grids is an even LUT, the number of grid point data stored in the memory of each bank is equal. In the case of the LUT having an odd number of grids, although the number of lattice point data allocated to each bank is different as in the above embodiment, the number of lattice point data allocated to each bank is held by continuous addresses. The memory capacity can be reduced.

なお、バンク7の格子点数は512なので、ステップS618で、バンク7のメモリアドレスの9ビット目より上位のビットのいずれかが‘1’となっている場合にメモリへの書き込みを禁止すれば、閾値4913との比較(ステップS617)は不要になる。この場合、ステップS615でNOと判定された場合にステップS618が実行されることになる。   Since the number of lattice points in bank 7 is 512, writing to the memory is inhibited if any of the bits higher than the 9th bit of the memory address of bank 7 is “1” in step S618. The comparison with the threshold 4913 (step S617) is not necessary. In this case, step S618 is executed when it is determined NO in step S615.

<第2実施形態>
第1実施形態では制御部101に格子点データの格納先を適切に振り分ける機能を持たせることで、記憶部103のメモリ容量やファームウェアを格納するROMの容量を小さくすることが出来ることを示した。第2実施形態では1つの処理部102に複数種類の処理機能を持たせてレジスタ設定により使い分ける例を示す。
Second Embodiment
In the first embodiment, it is shown that the memory capacity of the storage unit 103 and the capacity of the ROM for storing the firmware can be reduced by providing the control unit 101 with a function to appropriately allocate the storage destination of the lattice point data. . In the second embodiment, an example in which one processing unit 102 is provided with a plurality of processing functions and used properly according to the register setting is shown.

図6に第2実施形態にかかる画像処理装置のブロック図を示す。第1実施形態と同様の構成には図1と同じ符号を付した。以下、第1実施形態と異なる動作をする制御部701と処理部702について説明する。第2実施形態では、1軸当たりのグリッド数が異なる複数種類のルックアップテーブルのうちの1つを指示する指示情報にしたがって、レジスタアドレスがバンク指定とメモリアドレスへ変換され、指示情報にしたがって、処理部702が動作する。   FIG. 6 shows a block diagram of an image processing apparatus according to the second embodiment. The same reference numerals as in FIG. 1 denote the same parts as in the first embodiment. The control unit 701 and the processing unit 702 that operate differently from the first embodiment will be described below. In the second embodiment, the register address is converted into a bank specification and a memory address according to instruction information for instructing one of a plurality of types of look-up tables having different numbers of grids per axis, and according to the instruction information, The processing unit 702 operates.

処理部702は第1実施形態で説明した17グリッドでの処理に加え、16グリッドでの処理も行う。いずれのグリッド数で処理を行うかはレジスタ703のレジスタ値で設定される。以降では、17グリッドで処理するモードを17グリッドモードと呼び、16グリッドで処理するモードを16グリッドモードと呼ぶ。制御部701は、 “17GridMode”を格納するレジスタ703を有し、処理部702はレジスタ703を参照することによって16グリッドモードと17グリッドモードを切り替える。レジスタ703の“17GridMode”が‘0’に設定されると処理部702は16グリッドモードで動作し、‘1’に設定されると17グリッドモードで動作する。このように、処理に用いられるLUTを指示するための指示情報として“17GridMode”が用いられる。なお、レジスタ703への17GridModeの設定は転送部111から入力されるレジスタコマンドにより実現される。   The processing unit 702 performs 16 grid processing in addition to the 17 grid processing described in the first embodiment. The number of grids to be processed is set by the register value of the register 703. Hereinafter, the mode of processing with 17 grids is called 17 grid mode, and the mode of processing with 16 grids is called 16 grid mode. The control unit 701 has a register 703 storing “17 Grid Mode”, and the processing unit 702 switches between the 16 grid mode and the 17 grid mode by referring to the register 703. When “17 Grid Mode” of the register 703 is set to “0”, the processing unit 702 operates in the 16 grid mode, and when set to “1”, the processing unit 702 operates in the 17 grid mode. Thus, “17 Grid Mode” is used as instruction information for instructing the LUT used for processing. The setting of 17GridMode in the register 703 is realized by the register command input from the transfer unit 111.

16グリッドモードは、1軸当たりの格子点の数が16点のLUTを用いた処理モードである。16グリッドモードで動作させる場合、1軸当たりの格子点は0から15までの16個なので、RGBなど3次元のLUTの格子点の数は合計16*16*16=4096個となる。それらの格子点に対応するデータを格子点座標の偶奇の組合せに応じて分割されたメモリから読み出す。即ち、
・座標が(偶数、偶数、偶数)の格子点に対応する8*8*8=512個の格子点データを記憶部103にあるメモリのバンク0から読み出し、
・座標が(偶数、偶数、奇数)の格子点に対応する512個の格子点データをバンク1から読み出し、
・・・
・座標が(奇数、奇数、奇数)の格子点に対応する512個のデータをバンク7から読み出す、という具合に8個に分割されたメモリから読み出す。図3(b)に、16グリッドで処理する時のバンク毎に格納される格子点データの個数を示す。
The 16 grid mode is a processing mode using a LUT with 16 grid points per axis. When operating in the 16 grid mode, the number of grid points in a three-dimensional LUT such as RGB is 16 * 16 * 16 = 4096 in total since the number of grid points per axis is 16 from 0 to 15. Data corresponding to those grid points are read out from the memory divided according to even and odd combinations of grid point coordinates. That is,
Reading 8 * 8 * 8 = 512 grid point data corresponding to grid points whose coordinates are (even, even, even) from the memory bank 0 of the storage unit 103,
Reading 512 grid point data corresponding to (even, even, odd) grid points from the bank 1,
...
Reading out 512 pieces of data corresponding to (odd, odd, odd) grid points whose coordinates are read out from the bank 7 from the memory divided into eight pieces. FIG. 3B shows the number of grid point data stored for each bank when processing is performed with 16 grids.

16グリッドモードと17グリッドモードでは、記憶部103への格子点データの格納量が異なる。本実施形態では、同一の画像処理モジュールで2つのモードの演算処理を行うために、記憶部103は容量の大きい17グリッドの容量に合わせたメモリを備えている。即ち、メモリ構成は第1実施形態と同様となる。   The amount of storage of grid point data in the storage unit 103 differs between the 16 grid mode and the 17 grid mode. In the present embodiment, in order to perform arithmetic processing in two modes by the same image processing module, the storage unit 103 is provided with a memory adapted to the capacity of 17 grids having a large capacity. That is, the memory configuration is the same as that of the first embodiment.

次に、制御部701の処理を説明する。制御部701は、処理モード(17GridMode)を設定するためのレジスタ703を有している。まず、制御部701はレジスタ703を設定するためのレジスタコマンドを受け取る。制御部701は、処理モード(17GridMode)を設定するレジスタコマンドを受け取ると、レジスタ703を設定し、処理部702に対して設定値を入力する。17GridMode以外の処理部702への必要な設定も、この時にコマンドとして入力する。なお、レジスタの設定順に規定はなく、設定する順番は前後しても良い。   Next, processing of the control unit 701 will be described. The control unit 701 has a register 703 for setting the processing mode (17 Grid Mode). First, the control unit 701 receives a register command for setting the register 703. When the control unit 701 receives a register command for setting the processing mode (17 Grid Mode), the control unit 701 sets the register 703 and inputs a setting value to the processing unit 702. Necessary settings for the processing unit 702 other than 17 Grid Mode are also input as commands at this time. The setting order of the registers is not specified, and the setting order may be reversed.

次に、格子点データを設定するためのレジスタコマンドが制御部701に入力される。制御部701は画像処理に必要な格子点データを記憶部103に設定するためのレジスタコマンドを受け取る。16グリッドモードで処理するか17グリッドモードで処理するかによってLUTの格子点データの数が異なるため、制御部701が受け取る格子点データ設定のためのレジスタコマンドの個数も異なる。すなわち、16グリッドモードで処理する場合は、4096個の格子点データ設定のレジスタコマンドを受け取り、一方、17グリッドモードで処理する場合は、4913個の格子点データ設定のレジスタコマンドを受け取る。   Next, a register command for setting lattice point data is input to the control unit 701. The control unit 701 receives a register command for setting, in the storage unit 103, grid point data necessary for image processing. Since the number of grid point data in the LUT differs depending on whether processing is performed in the 16 grid mode or 17 grid mode, the number of register commands for setting grid point data received by the control unit 701 also differs. That is, in the case of processing in the 16 grid mode, register commands of 4096 grid point data settings are received, while in the case of processing in the 17 grid mode, register commands of 4913 grid point data settings are received.

制御部701は格子点データを設定するレジスタコマンドを受け取ると、コマンドに格納されているアドレスを参照して格子点データを適切な記憶部103のメモリへ格納していく。前述したように16グリッドモードと17グリッドモードで記憶部103へ格納する格子点データ数が異なるため、制御部701はグリッドモードの設定に応じて適切なバンクのメモリへ格子点データを分配する必要がある。図4(b)に16グリッドモード時のメモリマップを示す。制御部701は既に設定されているレジスタ703の17GridModeを参照して、図4(a)と図4(b)のいずれのメモリマップに従うかを決める。   When the control unit 701 receives a register command for setting lattice point data, the control unit 701 refers to the address stored in the command and stores the lattice point data in the memory of the appropriate storage unit 103. As described above, since the number of grid point data stored in the storage unit 103 differs between the 16 grid mode and the 17 grid mode, the control unit 701 needs to distribute grid point data to the appropriate bank memory according to the setting of the grid mode. There is. FIG. 4B shows a memory map in the 16 grid mode. The control unit 701 refers to the already set 17GridMode of the register 703, and determines which of the memory maps of FIG. 4A and FIG. 4B is to be followed.

図6で示すように、制御部701は制御部101と同様に内部にアドレスデコーダ704を有しており、レジスタ703における17GridModeの設定はアドレスデコーダ704から参照可能な構成となっている。そして、レジスタ703における17GridModeが‘0’、つまり16グリッドモードが示される場合は、図4(b)のメモリマップに従って、レジスタアドレスをバンクとメモリアドレスへ変換し、格子点データをメモリに書き込んでいく。   As shown in FIG. 6, the control unit 701 includes an address decoder 704 in the same manner as the control unit 101, and the setting of 17GridMode in the register 703 can be referred to from the address decoder 704. Then, when the 17GridMode in the register 703 is '0', that is, 16 grid mode is indicated, the register address is converted to the bank and the memory address according to the memory map of FIG. Go.

16グリッドのLUTの格子点データには、図4(b)に示されるように連続したレジスタアドレスが割り当てられる。すなわち、格子点座標が(偶数、偶数、偶数)である(0、0、0)から(14、14、14)までの512個の格子点データに続いて、(偶数、偶数、奇数)の(0、0、1)から(14、14、15)までの512個の格子点データに連続したレジスタアドレスが割り当てられる。このように格子点データには連続したレジスタアドレスが割り当てられ、512個の格子点データの前後や途中に、最大メモリ容量(729個の格子点データの容量)に合わせるための不要なデータの領域は存在しない。こうして、格子点座標が(奇数、奇数、奇数)である(1、1、1)から(15、15、15)までの512個の格子点データまで、連続するレジスタアドレスが割当られる。   Consecutive register addresses are assigned to the grid point data of the 16 grid LUT as shown in FIG. 4 (b). That is, (even, even, odd) following the 512 grid point data from (0, 0, 0) to (14, 14, 14) whose grid point coordinates are (even, even, even) Consecutive register addresses are assigned to 512 grid point data from (0, 0, 1) to (14, 14, 15). As described above, continuous register addresses are assigned to lattice point data, and an unnecessary data area for adjusting to the maximum memory capacity (the capacity of 729 lattice point data) before, after, or along the 512 lattice point data. Does not exist. Thus, successive register addresses are assigned up to 512 grid point data from (1, 1, 1) to (15, 15, 15) whose grid point coordinates are (odd, odd, odd).

そして、図4(b)に示されるように、アドレスデコーダ704は、格子点座標が(偶数、偶数、偶数)である(0、0、0)から(14、14、14)までの512個の格子点データをバンク0のメモリ(メモリ0)のアドレス0から順番にマッピングする。それに続けて、アドレスデコーダ704は、格子点座標が(偶数、偶数、奇数)である(0、0、1)から(14、14、15)までの512個の格子点データをバンク1のメモリ(メモリ1)へマッピングする。こうして、連続するレジスタアドレスが複数バンクのメモリへマッピングされ、バンク7のメモリ(メモリ7)には格子点座標(1、1、1)から(15、15、15)の512個のデータがマッピングされる。   Then, as shown in FIG. 4B, the address decoder 704 has 512 pieces of (0, 0, 0) to (14, 14, 14) whose lattice point coordinates are (even, even, even). Grid point data are mapped in order from address 0 of the memory (memory 0) of bank 0. Subsequently, the address decoder 704 stores 512 grid point data from (0, 0, 1) to (14, 14, 15) whose grid point coordinates are (even, even, odd) in the memory of bank 1 Map to (Memory 1). In this way, successive register addresses are mapped to a plurality of banks of memories, and 512 data of grid point coordinates (1, 1, 1) to (15, 15, 15) are mapped in the memory (memory 7) of bank 7. Be done.

一方、レジスタ703の17GridModeが‘1’、つまり17グリッドモードの場合の動作は第1実施形態と同じであり、図4(a)のメモリマップに従って格子点データが記憶部103の各メモリへマッピングされる。   On the other hand, the operation when the 17GridMode of the register 703 is '1', that is, the 17 grid mode is the same as that of the first embodiment, and the grid point data is mapped to each memory of the storage unit 103 according to the memory map of FIG. Be done.

以上のように、制御部701は、第1実施形態と同様に内部にレジスタアドレスからデータ格納先のバンクとメモリアドレスへ変換するアドレスデコーダ704を有し、上述のような格子点データのマッピングを実現する。図8に第2実施形態のアドレスデコーダ704の動作を表すフローチャートである。図5のフローチャートと同じ動作をするステップには同じ符号を与えた。以降で、アドレスデコーダ704の動作を図8のフローチャートに従って説明する。   As described above, the control unit 701 internally includes the address decoder 704 that converts a register address into a bank for storing data and a memory address, as in the first embodiment, and performs mapping of lattice point data as described above. To realize. FIG. 8 is a flow chart showing the operation of the address decoder 704 of the second embodiment. Steps that perform the same operations as the flowchart of FIG. 5 are given the same reference numerals. Hereinafter, the operation of the address decoder 704 will be described according to the flowchart of FIG.

まず、ステップS601において、アドレスデコーダ704は、レジスタアドレスが4の倍数かどうかを調べる。4の倍数でない場合、メモリへのアクセスは行わず処理を終了する。4の倍数であった場合、処理はステップS602へ進み、アドレスデコーダ704は、レジスタアドレスを4で除算し、値Aを得る。次に、ステップS901でレジスタ703の17GridModeが‘1’に設定されているか否かを判定し、1に設定されていれば処理はステップS918に進む。ステップS918は、17グリッドのLUTの格子点データを記憶部103にロードする処理であり、その具体的な処理内容は第1実施形態(図5のステップS603からステップS618)と同様である。   First, in step S601, the address decoder 704 checks whether the register address is a multiple of four. If it is not a multiple of 4, the process is ended without accessing the memory. If it is a multiple of four, the process proceeds to step S 602, where the address decoder 704 divides the register address by four to obtain the value A. Next, in step S901, it is determined whether 17GridMode of the register 703 is set to '1'. If it is set to 1, the process proceeds to step S918. Step S918 is processing to load grid point data of a 17-grid LUT into the storage unit 103, and the specific processing content is the same as that of the first embodiment (step S603 to step S618 in FIG. 5).

一方、レジスタ703の17GridModeが‘0’に設定されていた場合、処理はステップS902に進み、16グリッドのLUTに対応したメモリマッピングを実行する。すなわち、値Aを所定の閾値と比較する(ステップS902、S904、S906、S908、S910、S912、S914、S916)ことで、下記に示すように選択されるバンクとメモリアドレスが決定され(ステップS903、S905、S907、S909、S911、S913、S915、S917)、格子点データがマッピングされる。
(1)0≦A<512の時、バンクは0、メモリアドレスはAを出力する(S902、S903)
(2)512≦A<1024の時、バンクは1、メモリアドレスはA−512を出力する(S904、S905)
(3)1024≦A<1536の時、バンクは2、メモリアドレスはA−1024を出力する(S906、S907)
(4)1536≦A<2048の時、バンクは3、メモリアドレスはA−1536を出力する(S908、S909)
(5)2048≦A<2560の時、バンクは4、メモリアドレスはA−2048を出力する(S910、S911)
(6)2560≦A<3072の時、バンクは5、メモリアドレスはA−2560を出力する(S912、S913)
(7)3072≦A<3584の時、バンクは6、メモリアドレスはA−3072を出力する(S914、S915)
(8)3584≦A<4096の時、バンクは7、メモリアドレスはA−3584を出力する(S916、S917)
(9)4096≦Aの時、メモリへのアクセスは行わない。
On the other hand, if 17 Grid Mode of the register 703 is set to “0”, the process proceeds to step S 902, and executes memory mapping corresponding to the LUT of 16 grids. That is, by comparing the value A with a predetermined threshold (steps S902, S904, S906, S908, S910, S912, S914, S916), the bank and memory address to be selected are determined as shown below (step S903). , S905, S907, S909, S911, S913, S915, S917), and grid point data are mapped.
(1) When 0 ≦ A <512, the bank is 0 and the memory address is A (S902, S903)
(2) When 512 ≦ A <1024, the bank is 1 and the memory address is A-512 (S904, S905)
(3) When 1024 ≦ A <1536, the bank is 2 and the memory address is A-1024 (S906, S907)
(4) When 1536 ≦ A <2048, the bank is 3 and the memory address is A-1536 (S908, S909)
(5) When 2048 ≦ A <2560, the bank is 4 and the memory address is A-2048 (S910, S911)
(6) When 2560 ≦ A <3072, the bank outputs 5 and the memory address A-2560 (S912, S913)
(7) When 3072 ≦ A <3584, the bank is 6 and the memory address is A-3072 (S914, S915)
(8) When 3584 ≦ A <4096, the bank is 7 and the memory address is A-3584 (S916, S917)
(9) When 4096 ≦ A, the memory is not accessed.

以上のようにして格子点データを記憶部103に格納した結果、記憶部103の8個のメモリには図7のように設定値が格納される。図7(a)は17グリッドモード時の格子点データの格納の結果を、図7(b)は16グリッドモード時の格子点データの格納の結果を示した。図中の各バンクに記載した分数は、分母が各メモリの容量(格納可能な格子点データの最大個数)を表し、分子がそのうちの格子点データの格納された個数を表している。17グリッドモード時は記憶部103の全てのメモリ(メモリ0〜メモリ7)において全領域が使用されているが、16グリッドモード時は、16グリッドの補間処理に必要な分だけの格子点データが各メモリに格納されている。   As a result of storing the lattice point data in the storage unit 103 as described above, the set values are stored in the eight memories of the storage unit 103 as shown in FIG. FIG. 7A shows the result of storage of lattice point data in the 17 grid mode, and FIG. 7B shows the result of storage of lattice point data in the 16 grid mode. The fraction described in each bank in the figure indicates that the denominator represents the capacity of each memory (maximum number of storable lattice point data), and the numerator represents the number of the lattice point data stored therein. In the 17 grid mode, the entire area is used in all memories (memory 0 to memory 7) of the storage unit 103. However, in the 16 grid mode, grid point data necessary for 16 grid interpolation processing is used. It is stored in each memory.

次に、制御部701はデータコマンドを受け取る。制御部701へ入力されたデータコマンドの中から画像処理の対象となる画像データを取り出して、処理部702へ入力する。処理部702は受け取った画像データを設定されたレジスタ値(17GridModeの値)に従って既定の画像処理を行う。即ち、17GridModeが1に設定されていれば、処理部702は17グリッドモードで処理し、0に設定されていれば、処理部702は16グリッドモードで処理する。処理部702は処理後のデータを再び制御部701へ入力する。制御部701は受け取った処理後のデータからデータコマンドを生成して、出力する。   Next, the control unit 701 receives a data command. Image data to be subjected to image processing is extracted from the data commands input to the control unit 701, and input to the processing unit 702. The processing unit 702 performs predetermined image processing according to the set register value (the value of 17 Grid Mode) of the received image data. That is, if 17 Grid Mode is set to 1, the processing unit 702 performs processing in the 17 grid mode, and if it is set to 0, the processing unit 702 performs processing in the 16 grid mode. The processing unit 702 inputs the processed data to the control unit 701 again. The control unit 701 generates a data command from the received data after processing and outputs the data command.

以上が第2実施形態の画像形成システムにおける画像処理の流れである。上記のように最初に処理モード(17GridMode)をレジスタに設定し、その後、格子点データの設定時には設定された処理モードでの画像処理に適した格子点データの記憶部103への格納を行ってから画像処理を行う。このような手順でレジスタの設定と格子点データの設定を行うことで、8つのメモリからなる単一の記憶部103を有する画像処理モジュールであっても、複数種類の画像処理を行うことが可能となる。   The above is the flow of the image processing in the image forming system of the second embodiment. As described above, the processing mode (17 Grid Mode) is first set in the register, and then grid point data suitable for image processing in the set processing mode is stored in the storage unit 103 when setting grid point data. Perform image processing from By performing register setting and lattice point data setting in such a procedure, even with an image processing module having a single storage unit 103 consisting of eight memories, multiple types of image processing can be performed. It becomes.

なお、16グリッドモード時のバンク毎の格子点データの格納個数は512であるので、アドレスデコーダ704はバンク、メモリアドレスをレジスタアドレスから所定のビットを抽出することにより生成しても良い。たとえば、バンクとしてレジスタアドレス(MSB:13、LSB:0とする)のビット13〜11を抽出し、メモリアドレスとしてレジスタアドレスのビット10〜2を抽出するようにしてもよい。   Since the number of lattice point data stored in each bank in the 16 grid mode is 512, the address decoder 704 may generate the bank and memory address by extracting predetermined bits from the register address. For example, bits 13 to 11 of the register address (MSB: 13, LSB: 0) may be extracted as a bank, and bits 10 to 2 of the register address may be extracted as a memory address.

<第3実施形態>
第2実施形態では、レジスタ設定の際に処理モード(17GridMode)をレジスタ703に設定することで、設定した処理モードでの画像処理に応じたメモリへのデータ格納を行うことが出来ることを示した。ここで、制御部701はレジスタ703における17GridModeの設定値に応じて予め所持していた閾値を選択して、その閾値に応じて格納するバンクとアドレスを出力する構成となっている。すなわち、予め用意された複数のモード(第2実施形態では17グリッドと16グリッド)から選択する構成であるため、選択可能なモードが制限される。第3実施形態では、レジスタに閾値のセットを設定すること、すなわち、使用されるルックアップテーブルに応じて閾値のセットを変更することを可能とし、より広範な処理モードに適応できるデータ処理部100を提供する。
Third Embodiment
In the second embodiment, setting the processing mode (17 Grid Mode) in the register 703 at the time of setting the register shows that data can be stored in the memory according to the image processing in the set processing mode. . Here, the control unit 701 is configured to select a threshold held in advance according to the setting value of 17 GridMode in the register 703, and output a bank and an address to be stored according to the threshold. That is, since the configuration is to select from a plurality of modes (17 grids and 16 grids in the second embodiment) prepared in advance, selectable modes are limited. In the third embodiment, it is possible to set a set of thresholds in a register, that is, to change the set of thresholds in accordance with a lookup table used, and to adapt to a wider range of processing modes. I will provide a.

図9に第3実施形態にかかる画像処理装置のブロック図を示す。制御部1001の動作が第2実施形態とは異なっており、以降では制御部1001の動作について説明する。制御部1001は、閾値Th0からTh7を格納するためのレジスタ1003を有する。制御部1001は、閾値設定のためのレジスタ設定コマンドを受け取ると、レジスタ1003に、格子点データ設定時の格納先のバンクを切り替えるための閾値Th0〜Th7を設定する。また、レジスタ1005には、処理モードが設定される。たとえば、制御部1001、処理部702を17グリッドモードで動作させる場合は、制御部1001は、図5に示した処理で用いた閾値をレジスタ1003に設定する。すなわち、制御部1001は、閾値Th0〜Th7として、それぞれ729、1377、2025、2601、3249、3825、4401、4913を設定する。そして、レジスタ1005には17グリッドモードが設定される。処理部702はレジスタ1005を参照することで、処理モードを認識することができる。   FIG. 9 shows a block diagram of an image processing apparatus according to the third embodiment. The operation of the control unit 1001 is different from that of the second embodiment, and the operation of the control unit 1001 will be described below. The control unit 1001 has a register 1003 for storing threshold values Th0 to Th7. When receiving the register setting command for setting the threshold value, the control unit 1001 sets, in the register 1003, the threshold values Th0 to Th7 for switching the storage destination bank at the grid point data setting. Further, the processing mode is set in the register 1005. For example, when operating the control unit 1001 and the processing unit 702 in the 17 grid mode, the control unit 1001 sets the threshold used in the process shown in FIG. 5 in the register 1003. That is, the control unit 1001 sets 729, 1377, 2025, 2601, 3249, 3825, 4401, 4913 as the thresholds Th0 to Th7. The 17 grid mode is set in the register 1005. The processing unit 702 can recognize the processing mode by referring to the register 1005.

制御部1001はレジスタ1003に閾値を設定した後、記憶部103へ格子点データを格納する際には、閾値Th0〜Th7を参照してバンクとメモリアドレスを得て、記憶部103へ格子点データを格納する。レジスタアドレスからバンクとメモリアドレスへ変換するために、制御部1001は、アドレスデコーダ1004を有する。第3実施形態のアドレスデコーダ1004は図10のフローチャートに示される様に動作する。図10のステップS601とS602は図5と同様の動作である。アドレスデコーダ1004は、レジスタアドレスを4で除算して得た値Aを、レジスタ1003に設定された閾値と比較する(S1103、S1105、S1107、S1109、S1111、S1113、S1115、S1117)。そして、その比較の結果に応じて、選択されるバンクとメモリアドレスが決定される(S1104、S1106、S1108、S1110、S1112、S1114、S1116、S1118)。より具体的には、下記の様に、バンクとメモリアドレスが決定される。
(1)0≦A<Th0の時、バンクは0、メモリアドレスはAを出力する(S1103、S1104)
(2)Th0≦A<Th1の時、バンクは1、メモリアドレスはA−Th0を出力する(S1105、S1106)
(3)Th1≦A<Th2の時、バンクは2、メモリアドレスはA−Th1を出力する(S1107、S1108)
(4)Th2≦A<Th3の時、バンクは3、メモリアドレスはA−Th2を出力する(S1109、S1110)
(5)Th3≦A<Th4の時、バンクは4、メモリアドレスはA−Th3を出力する(S1111、S1112)
(6)Th4≦A<Th5の時、バンクは5、メモリアドレスはA−Th4を出力する(S1113、S1114)
(7)Th5≦A<Th6の時、バンクは6、メモリアドレスはA−Th5を出力する(S1115、S1116)
(8)Th6≦A<Th7の時、バンクは7、メモリアドレスはA−Th6を出力する(S1117、S1118)
(9)Th7≦Aの時、メモリへのアクセスは行わない。
After storing the lattice point data in the storage unit 103 after setting the threshold in the register 1003, the control unit 1001 refers to the threshold values Th0 to Th7 to obtain a bank and a memory address, and transmits the lattice point data to the storage unit 103. Store The control unit 1001 includes an address decoder 1004 to convert a register address into a bank and a memory address. The address decoder 1004 of the third embodiment operates as shown in the flowchart of FIG. Steps S601 and S602 in FIG. 10 are the same as those in FIG. The address decoder 1004 compares the value A obtained by dividing the register address by 4 with the threshold value set in the register 1003 (S1103, S1105, S1107, S1109, S1111, S1113, S1115, S1117). Then, according to the result of the comparison, the selected bank and memory address are determined (S1104, S1106, S1108, S1110, S1112, S1114, S1116, S1118). More specifically, banks and memory addresses are determined as follows.
(1) When 0 ≦ A <Th0, the bank is 0, and the memory address is A (S1103, S1104)
(2) When Th0 ≦ A <Th1, the bank is 1 and the memory address is A-Th0 (S1105, S1106)
(3) When Th1 ≦ A <Th2, the bank outputs 2 and the memory address A-Th1 (S1107, S1108)
(4) When Th2 ≦ A <Th3, the bank outputs 3 and the memory address A-Th2 (S1109, S1110)
(5) When Th3 ≦ A <Th4, the bank outputs 4 and the memory address A-Th3 (S1111, S1112)
(6) When Th4 ≦ A <Th5, the bank outputs 5 and the memory address A-Th4 (S1113, S1114)
(7) When Th5 ≦ A <Th6, the bank is 6 and the memory address is A-Th5 (S1115, S1116)
(8) When Th6 ≦ A <Th7, the bank is 7 and the memory address is A-Th6 (S1117, S1118)
(9) When Th7 ≦ A, the memory is not accessed.

なお、上記の例ではバンクの個数を8個として説明したが、これに限られるものではない。たとえば、処理部702がバンクを4個だけ使用する処理の場合は、使用しないレジスタ“Th4”から“Th7”を‘0’に設定しておく。これにより、ステップS1111、S1113、S1115、S1117で処理は必ずNOに分岐し、そのバンクには格子点データが格納されないようにすることができる。また、処理部702がより多くのバンクを使用する処理が行われる場合は、記憶部103が8個以上のバンクのメモリを有する構成とし、レジスタ1003に閾値Th8以上を記憶することで対応することができ、より制御部としての汎用性を高めることが出来る。   In the above example, the number of banks is eight, but the present invention is not limited to this. For example, when the processing unit 702 uses only four banks, registers “Th4” to “Th7”, which are not used, are set to “0”. As a result, the process always branches NO in steps S1111, S1113, S1115, and S1117 so that lattice point data is not stored in that bank. When the processing unit 702 uses a larger number of banks, the storage unit 103 has a memory of eight or more banks, and the register 1003 stores the threshold Th8 or more. And the versatility of the control unit can be further enhanced.

また、処理部702へ入力すべき処理モードを表す信号(たとえばグリッド数を表す信号)をレジスタ1003に格納された閾値から自動的に生成するようにしてもよい。すなわち、閾値Th0が729であれば、制御部1001は処理部702へ17グリッドモードで処理することを示す信号として「17GridMode=1」を出力する。一方、閾値Th0が512であれば、制御部1001は16グリッドモードで処理することを示す信号として「17GridMode=0」を処理部702へ出力する。こうすることで、第2実施形態で説明したレジスタ703への17GridModeの設定と同等の動作が可能となり、レジスタ1005への17GridModeの設定を省略することができる。なお、設定可能なモードが2つしかない場合は、いずれか一方を検出すればよい。本実施形態では、閾値Th0が512のときMSB以外のビットは0となることを利用し、閾値Th0の所定のビットを17グリッドモードで処理する信号として出力すればよい。ここで、所定のビットとしては、たとえば、値729で1になるビット(MSBを除く)、すなわち、ビット0、3、4,6,7のいずれかを用いることができる。   Alternatively, a signal (for example, a signal representing the number of grids) representing a processing mode to be input to the processing unit 702 may be automatically generated from the threshold stored in the register 1003. That is, when the threshold Th0 is 729, the control unit 1001 outputs “17 Grid Mode = 1” as a signal indicating processing in the 17 grid mode to the processing unit 702. On the other hand, if the threshold Th 0 is 512, the control unit 1001 outputs “17 Grid Mode = 0” to the processing unit 702 as a signal indicating processing in the 16 grid mode. By doing this, the operation equivalent to the setting of 17GridMode to the register 703 described in the second embodiment can be performed, and the setting of 17GridMode to the register 1005 can be omitted. If there are only two modes that can be set, either one may be detected. In the present embodiment, the fact that bits other than the MSB are 0 when the threshold Th0 is 512 may be used to output a predetermined bit of the threshold Th0 as a signal to be processed in the 17 grid mode. Here, as the predetermined bit, for example, a bit (except for the MSB) which becomes 1 at the value 729 can be used, that is, any one of bits 0, 3, 4, 6, and 7.

なお、処理部702が第1実施形態のように17グリッドモードのみという1つの処理モードだけをサポートする場合においても、第3実施形態で提案したような制御部1001は有効に機能する。当然、その場合には処理部702に対して処理モードを示す信号を出力する必要はない。   Even when the processing unit 702 supports only one processing mode of 17 grid mode only as in the first embodiment, the control unit 1001 as proposed in the third embodiment functions effectively. Of course, in that case, it is not necessary to output a signal indicating the processing mode to the processing unit 702.

以上で説明したように、制御部にメモリマップの設定用のレジスタを加え、そのレジスタを設定することで、制御部は設計時にメモリマップを記憶しておく必要がなくなり、要素部品としての汎用性を向上させることが可能となる。また、ルックアップテーブルデータの設定に関して、2のべき乗ではないデータ数であっても不要なデータを追加することなくルックアップテーブルデータを設定することが出来る。   As described above, by adding a register for setting the memory map to the control unit and setting the register, the control unit does not need to store the memory map at the time of design, and versatility as an element part It is possible to improve the Further, regarding the setting of the lookup table data, the lookup table data can be set without adding unnecessary data even if the number of data is not a power of two.

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

101:制御部、102:処理部、103:記憶部、104、704、1004:アドレスデコーダ、111:転送部、112:DRAM、113:入力データ、703、1003,1005:レジスタ 101: control unit, 102: processing unit, 103: storage unit, 104, 704, 1004: address decoder, 111: transfer unit, 112: DRAM, 113: input data, 703, 1003, 1005: register

Claims (12)

一つのルックアップテーブルを構成する格子点データを、格子点座標を構成する軸の数をMとし、2個で表される複数バンクのメモリにロードしてデータ処理を実行するデータ処理装置であって、
ロード対象の格子点データとレジスタアドレスを受信する受信手段と、
前記受信手段により受信されたレジスタアドレスを、各バンクのメモリに格納される格子点データの個数に基づいてバンク指定とメモリアドレスに変換する変換手段と、
前記変換手段により得られたバンク指定とメモリアドレスにしたがって、前記ロード対象の格子点データを前記複数バンクのメモリに記憶する記憶手段と、を備え
前記変換手段は、前記レジスタアドレスを、前記複数バンクの各々に属する格子点データの個数に応じた閾値と比較することにより、前記バンク指定と前記メモリアドレスを決定することを特徴とするデータ処理装置。
A data processing apparatus which loads data of lattice point data constituting one look-up table into a plurality of banks of memory represented by 2 M , where M is the number of axes constituting lattice point coordinates, and executes data processing There,
Receiving means for receiving grid point data to be loaded and a register address;
Conversion means for converting the register address received by the reception means into a bank specification and a memory address based on the number of lattice point data stored in the memory of each bank;
Storage means for storing the grid point data to be loaded in the memories of the plurality of banks in accordance with the bank designation and the memory address obtained by the conversion means ;
And the converting means, said register address, by comparing a threshold value with which according to the number of grid points data belonging to each of said plurality of banks, data processing, characterized that you determine the memory address and the bank designation apparatus.
前記レジスタアドレスは、前記一つのルックアップテーブルを構成する全ての格子点データに連続したレジスタアドレスが割り当てられ、且つ、前記複数バンクの各々に分類された格子点データ群に連続したレジスタアドレスが割り当てられるように、格子点座標に対応して割り当てられることを特徴とする請求項1に記載のデータ処理装置。   In the register addresses, successive register addresses are assigned to all lattice point data constituting the one look-up table, and successive register addresses are allocated to lattice point data groups classified into each of the plurality of banks. The data processing apparatus according to claim 1, wherein the data processing apparatus is assigned corresponding to grid point coordinates. 前記一つのルックアップテーブルを構成する格子点データにレジスタアドレスを割り当てる割当手段をさらに備えることを特徴とする請求項2に記載のデータ処理装置。   3. The data processing apparatus according to claim 2, further comprising an assignment unit that assigns a register address to lattice point data forming the one look-up table. 前記変換手段は、前記レジスタアドレスを、1つの格子点データに割り当てられているレジスタアドレスの個数で割った値を前記閾値と比較することにより前記バンク指定と前記メモリアドレスを決定することを特徴とする請求項1乃至3のいずれか1項に記載のデータ処理装置。 The conversion means determines the bank specification and the memory address by comparing a value obtained by dividing the register address by the number of register addresses allocated to one lattice point data with the threshold value. The data processor according to any one of claims 1 to 3 . 前記複数バンクの各々のメモリは、前記複数バンクの各々に属する格子点データの個数にしたがった、異なる容量を有することを特徴とする請求項1乃至のいずれか1項に記載のデータ処理装置。 The data processing apparatus according to any one of claims 1 to 4 , wherein the memories of each of the plurality of banks have different capacities according to the number of lattice point data belonging to each of the plurality of banks. . 前記一つのルックアップテーブルを構成する格子点データの前記複数バンクへの分類は、格子点座標を構成する各軸の座標値の奇数と偶数の組み合わせに基づいており、軸の数は3軸でありバンクの個数は8バンクであることを特徴とする請求項1乃至のいずれか1項に記載のデータ処理装置。 Classification of grid point data constituting one look-up table into the plurality of banks is based on a combination of odd and even coordinate values of each axis constituting grid point coordinates, and the number of axes is three. The data processing apparatus according to any one of claims 1 to 5 , wherein the number of dovetail banks is eight. 前記変換手段は、1軸当たりのグリッド数が異なる複数種類のルックアップテーブルのうちの1つを指示する指示情報にしたがって、前記レジスタアドレスをバンク指定とメモリアドレスへ変換するための方法を切り替えることを特徴とする請求項1乃至のいずれか1項に記載のデータ処理装置。 The conversion means switches a method for converting the register address into a bank specification and a memory address in accordance with instruction information indicating one of a plurality of types of look-up tables having different numbers of grids per axis. The data processing apparatus according to any one of claims 1 to 6 , wherein 前記変換手段は、前記レジスタアドレスを、前記複数バンクの各々に属する格子点データの個数に基づいて設定された閾値のセットと比較することにより、前記バンク指定と前記メモリアドレスを決定し、
前記指示情報にしたがって、前記閾値のセットを切り替えることを特徴とする請求項に記載のデータ処理装置。
The conversion means determines the bank specification and the memory address by comparing the register address with a set of threshold values set based on the number of lattice point data belonging to each of the plurality of banks.
The data processing apparatus according to claim 7 , wherein the set of the threshold is switched according to the instruction information.
前記変換手段は、前記レジスタアドレスを、前記複数バンクの各々に属する格子点データの個数に基づいて設定された閾値のセットと比較することにより、前記バンク指定と前記メモリアドレスを決定し、
前記閾値のセットを保持する保持手段と、
前記保持手段に保持される閾値のセットを、前記複数バンクのメモリにロードするルックアップテーブルに応じて変更する変更手段と、をさらに備えることを特徴とする請求項1乃至のいずれか1項に記載のデータ処理装置。
The conversion means determines the bank specification and the memory address by comparing the register address with a set of threshold values set based on the number of lattice point data belonging to each of the plurality of banks.
Holding means for holding the set of thresholds;
7. The apparatus according to any one of claims 1 to 6 , further comprising: changing means for changing the set of threshold values held in the holding means according to a look-up table loaded to the plurality of banks of memories. The data processing apparatus according to claim 1.
入力データに基づいて得られる格子点座標に基づいて、前記複数バンクのメモリから複数の格子点データを同時に読み出す読出手段と、
前記読出手段により読み出された複数の格子点データを用いて補間処理を行い前記入力データに対する変換データを得る補間手段と、をさらに備えることを特徴とする請求項1乃至のいずれか1項に記載のデータ処理装置。
Reading means for simultaneously reading a plurality of lattice point data from the plurality of banks of memories based on lattice point coordinates obtained based on input data;
Any one of claims 1 to 9, further comprising a, interpolation means for obtaining the converted data for the input data performs an interpolation process using a plurality of grid point data read by the reading means The data processing apparatus according to claim 1.
一つのルックアップテーブルを構成する格子点データを、格子点座標を構成する軸の数をMとし、2個で表される複数バンクのメモリにロードしてデータ処理を実行するデータ処理装置の制御方法であって、
ロード対象の格子点データとレジスタアドレスを受信する受信工程と、
前記受信工程で受信されたレジスタアドレスを、各バンクのメモリで格納される格子点データの個数に基づいてバンク指定とメモリアドレスに変換する変換工程と、
前記変換工程で得られたバンク指定とメモリアドレスにしたがって、前記ロード対象の格子点データを前記複数バンクのメモリに記憶する記憶工程と、を有し、
前記変換工程では、前記レジスタアドレスを、前記複数バンクの各々に属する格子点データの個数に応じた閾値と比較することにより、前記バンク指定と前記メモリアドレスを決定することを特徴とするデータ処理装置の制御方法。
A data processing apparatus that loads grid point data constituting one look-up table into a plurality of banks of memory represented by 2 M , where M is the number of axes constituting grid point coordinates, and executes data processing Control method, and
A receiving step of receiving grid point data to be loaded and a register address;
A conversion step of converting the register address received in the reception step into a bank specification and a memory address based on the number of lattice point data stored in the memory of each bank;
Accordance bank designation and a memory address obtained by the conversion process, have a, a storage step of storing grid point data of the load subject to memory of the plurality of banks,
In the conversion step, the bank specification and the memory address are determined by comparing the register address with a threshold value corresponding to the number of lattice point data belonging to each of the plurality of banks. Control method.
コンピュータに、請求項11に記載された制御方法の各工程を実行させるためのプログラム。 The program for making a computer perform each process of the control method described in Claim 11 .
JP2015045084A 2015-03-06 2015-03-06 DATA PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM Active JP6501561B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015045084A JP6501561B2 (en) 2015-03-06 2015-03-06 DATA PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015045084A JP6501561B2 (en) 2015-03-06 2015-03-06 DATA PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM

Publications (3)

Publication Number Publication Date
JP2016165076A JP2016165076A (en) 2016-09-08
JP2016165076A5 JP2016165076A5 (en) 2018-04-12
JP6501561B2 true JP6501561B2 (en) 2019-04-17

Family

ID=56876262

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015045084A Active JP6501561B2 (en) 2015-03-06 2015-03-06 DATA PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM

Country Status (1)

Country Link
JP (1) JP6501561B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112699102A (en) * 2021-03-23 2021-04-23 北京简巨科技有限公司 Processing method of lattice point data and related equipment thereof

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0563967A (en) * 1991-08-30 1993-03-12 Konica Corp Three-dimensional data transforming device
JP3439585B2 (en) * 1995-11-28 2003-08-25 富士写真フイルム株式会社 Image display method and apparatus
JP2003101806A (en) * 2001-09-25 2003-04-04 Canon Inc Image processor
JP4724413B2 (en) * 2004-11-26 2011-07-13 キヤノン株式会社 Data classification method
JP2008271079A (en) * 2007-04-19 2008-11-06 Seiko Epson Corp Image processor and processing method, printer, printing method, and generation method of color conversion table
JP2010103912A (en) * 2008-10-27 2010-05-06 Canon Inc Multi-dimensional data converter
JP5460292B2 (en) * 2009-12-17 2014-04-02 キヤノン株式会社 Image processing apparatus, control method thereof, and program
JP4810615B2 (en) * 2010-03-18 2011-11-09 キヤノン株式会社 Multidimensional interpolation apparatus, multidimensional interpolation method, and computer program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112699102A (en) * 2021-03-23 2021-04-23 北京简巨科技有限公司 Processing method of lattice point data and related equipment thereof

Also Published As

Publication number Publication date
JP2016165076A (en) 2016-09-08

Similar Documents

Publication Publication Date Title
JPH08116456A (en) Image processing unit
KR102015923B1 (en) Image processing apparatus, image processing method, and storage medium
JP3976849B2 (en) Device for generating interpolator input data
EP2109304A1 (en) Color management method, module, and program product, and printer ussing said method
JP2000165691A (en) Method and device for color conversion
JP5267255B2 (en) Image processing apparatus, image processing method, and program
JP2008193529A (en) Scanning converter, and scanning conversion method
WO2001027780A1 (en) System and method for digital color image processing
US9786250B2 (en) Control apparatus, image processing apparatus, control method, and non-transitory computer-readable storage medium
JP4724413B2 (en) Data classification method
JP2903808B2 (en) Color signal conversion method and apparatus
JP6501561B2 (en) DATA PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM
US5557715A (en) Image processing device which designates memory locations by using X/Y coordinates of an image
JP6463437B2 (en) Image processing apparatus, control method therefor, and program
JP4810615B2 (en) Multidimensional interpolation apparatus, multidimensional interpolation method, and computer program
JP5567790B2 (en) Image processing apparatus, control method therefor, and program
JP6448410B2 (en) Data conversion apparatus, control method therefor, and program
JP4431953B2 (en) Data conversion apparatus, data conversion method, and data conversion program
JP6808712B2 (en) Image processing device, its control method, and program
US8175381B2 (en) Image processing method and apparatus
JP6225202B2 (en) Image processing apparatus, control method therefor, and program
JPH11168610A (en) Image processor
KR20070036258A (en) Image forming apparatus
JP5885780B2 (en) Image processing apparatus, control method therefor, and program
JP2003101806A (en) Image processor

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180301

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180831

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181023

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190319

R151 Written notification of patent or utility model registration

Ref document number: 6501561

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151