JP2016165076A - Data processing device, control method of the same, and program - Google Patents

Data processing device, control method of the same, and program Download PDF

Info

Publication number
JP2016165076A
JP2016165076A JP2015045084A JP2015045084A JP2016165076A JP 2016165076 A JP2016165076 A JP 2016165076A JP 2015045084 A JP2015045084 A JP 2015045084A JP 2015045084 A JP2015045084 A JP 2015045084A JP 2016165076 A JP2016165076 A JP 2016165076A
Authority
JP
Japan
Prior art keywords
data
grid point
point data
memory
register
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.)
Granted
Application number
JP2015045084A
Other languages
Japanese (ja)
Other versions
JP6501561B2 (en
JP2016165076A5 (en
Inventor
健太 寳▲崎▼
Kenta Takarazaki
健太 寳▲崎▼
克行 萩原
Katsuyuki Hagiwara
克行 萩原
石川 尚
Takashi Ishikawa
尚 石川
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)

Abstract

PROBLEM TO BE SOLVED: To efficiently load lattice point data constituting a lookup table to a plurality of bank memories.SOLUTION: The data processing device for performing data processing by loading lattice point data constituting one lookup table to a plurality of bank memories receives the lattice point data, which is a load target, and a register address, and transforms the received register address to bank designation and a memory address on the basis of the number of pieces of the lattice point data stored in each bank memory. According to the bank designation and the memory address obtained by the transformation, the data processing device stores load target lattice point data to the plurality of bank memories.SELECTED DRAWING: Figure 1

Description

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

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

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

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

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

特許文献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 cube interpolation at high speed, 32 grid conversion color data is stored in eight memories and read out in parallel to increase the speed. Japanese Patent Application Laid-Open No. H10-228561 discloses a method of storing LUT conversion color data that cannot be represented by a power of 2 in terms of the number of grid points per axis, divided into memories. As an example, a method is described in which converted color data of 33 grids is divided into 8 memories and the addresses are generated with 13 bits. Both Patent Documents 1 and 2 are common in that even and odd coordinates 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 colors to be converted are three colors of RGB, eight (even, even, even), (even, even, odd), ..., (odd, odd, odd) High-speed processing is possible by dividing and storing in this memory.

米国特許第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 a total of 32768 (= 32 * 32 * 32) representative point conversion color data (hereinafter referred to as grid point data) is required to perform processing on 32 grids. In Patent Document 2, a memory capable of storing 35937 (= 33 * 33 * 33) pieces of grid point data is required in order to perform processing with 33 grids. Since the required memory capacity is different between the case of 32 grids and the case of 33 grids, it is necessary to divide the memory according to the largest capacity in order to cope with the number of types of grids. Further, when the number of grids is an odd number, if the memory is divided into eight (or four), the capacity of the grid point data stored in each memory varies depending on the even / odd combination of each axis. Therefore, when grid point data is stored in a memory in order to set an LUT, it is necessary to store the data in consideration of the number of grid point data for each memory. Alternatively, in order to eliminate such control, it is necessary to add and store unnecessary data in accordance with the memory having the largest capacity.

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

上記の目的を達成するために本発明の一態様による画像処理装置は以下の構成を備える。すなわち、
一つのルックアップテーブルを構成する格子点データを複数のバンクのメモリにロードしてデータ処理を実行するデータ処理装置であって、
ロード対象の格子点データとレジスタアドレスを受信する受信手段と、
前記受信手段により受信されたレジスタアドレスを、各バンクのメモリに格納される格子点データの個数に基づいてバンク指定とメモリアドレスに変換する変換手段と、
前記変換手段により得られたバンク指定とメモリアドレスにしたがって、前記ロード対象の格子点データを前記複数のバンクのメモリに記憶する記憶手段と、を備える。
In order to achieve the above object, an image processing apparatus according to an aspect of the present invention comprises the following arrangement. That is,
A data processing apparatus that loads grid point data constituting one lookup table into a plurality of banks of memory and executes data processing,
Receiving means for receiving the grid point data to be loaded and the register address;
Conversion means for converting the register address received by the receiving means into bank designation and memory address based on the number of grid 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 according to the bank designation and memory address obtained by the conversion means.

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

第1実施形態における画像処理部の構成例を示すブロック図。The block diagram which shows the structural example of the image process part in 1st Embodiment. コマンドのフォーマットを示す図。The figure which shows the format of a command. グリッド別のバンク分割とデータの個数を示す図。The figure which shows the bank division | segmentation according to a grid, and the number of data. グリッドモード別のメモリマップを示す図。The figure which shows the memory map according to grid mode. 第1実施形態で用いるアドレスデコーダの動作を表すフローチャート。5 is a flowchart showing the operation of an address decoder used in the first embodiment. 第2実施形態における画像処理部の構成例を示すブロック図。The block diagram which shows the structural example of the image process part in 2nd Embodiment. LUT設定後の各バンクのデータ格納数を示す図。The figure which shows the data storage number of each bank after LUT setting. 第2実施形態で用いるアドレスデコーダの動作を表すフローチャート。9 is a flowchart showing the operation of an address decoder used in the second embodiment. 第3実施形態における画像処理部の構成を示すブロック図。The block diagram which shows the structure of the image process part in 3rd Embodiment. 第3実施形態で用いるアドレスデコーダの動作を表すフローチャート。10 is a flowchart showing the operation of an address decoder used in the third embodiment. 実施形態によるデータ処理装置の構成例を示すブロック図。The block diagram which shows the structural example of the data processor by embodiment.

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

<第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 illustrating an example of a control configuration of the data processing apparatus 10 (for example, a printing apparatus) according to the first embodiment. CPU11 controls the operation | movement of each part of a data processor by executing the program stored in ROM12 or RAM112. 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 image data for printing, for example, 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 some of the functions of the components such as the transfer unit 111, the input unit 113, and the data processing unit 100 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 illustrating 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: a difference in height indicates a difference in capacity). The control unit 101 receives from the transfer unit 111 a register command for register setting and LUT setting, and a data command storing data to be processed. 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 the 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 memory (not shown) according to the address stored in the command. For example, when 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 stores a lookup table (LUT) in the memory of the storage unit 103. ) Is stored. As described above, the data processing unit 100 according to the present embodiment executes data processing by loading lattice point data constituting one look-up table into a plurality of banks of memory.

また、受け取ったコマンドがデータコマンドの場合、コマンドのデータ領域からデータ(たとえば、画像データ)を取り出し、処理部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 (eg, 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 the RGB data from the data command and inputs it to the processing unit 102. For example, the processing unit 102 performs predetermined processing including conversion processing (for example, processing for converting RGB data into CMYK data) with reference to the LUT in the storage unit 103 for the input RGB data. Data processed by the processing unit 102 is input to the control unit 101 again. When receiving the processed data from the processing unit 102, the control unit 101 outputs the data command format again to the outside. Note that the processing unit 102 determines, for example, the number of LUT lattice points and the type of interpolation processing (for example, tetrahedral interpolation processing) used for data conversion processing with reference to the LUT by referring to the set register value. It may be. The register value in this case is set by the register command described above. The above is a general flow of image processing according to 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 according to a command input from the transfer unit 111. First, the control unit 101 analyzes an input command and determines whether the command is a register command or a data command. FIG. 2 shows a command format. FIG. 2A shows a register command, and FIG. 2B shows a data command. By referring to the register / data determination flag 201 located at the most significant bit of the command, it can be determined whether the command is a register command or a data 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 in accordance with the address 203 stored in the command, or registers in the control unit 101 or the processing unit 102 ( Determine whether to access (not shown). The register command has an RW flag 202 indicating whether the access is a read operation or a write operation, 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, a 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 stored in the data command (image data 205 in this embodiment) 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 tetrahedral interpolation processing with reference to a three-dimensional LUT having 17 grids (for example, processing for converting RGB data into YMCK data) will be described. The 17-grid LUT is an LUT having 17 grid points per axis. In the case of a 17-grid LUT, there are 17 grid points from 0 to 16, so the total number of grid points in three dimensions is 17 * 17 * 17 = 4913. Is loaded into the storage unit 103 and stored. The processing unit 102 accesses the storage unit 103 according to the input data (RGB data), reads a plurality of grid 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 the grid point data of four adjacent points from the storage unit 103. Therefore, the processing unit 102 speeds up data processing by dividing the memory in the storage unit 103 into a plurality of banks to enable parallel access and simultaneously reading out a plurality of lattice point data used for processing. In this embodiment, it is possible to simultaneously read out the four grid point data necessary for the interpolation processing by dividing the storage destination memory (bank) by the even number and odd number 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 with coordinates (even, even, even) are stored in bank 0 of the memory in the storage unit 103.
・ 9 * 9 * 8 = 648 pieces of data corresponding to grid points with coordinates (even, even, odd) are stored in bank 1,
・ 9 * 8 * 9 = 648 pieces of data corresponding to grid points with coordinates (even, odd, even) are stored in bank 2,
...
8 * 8 * 8 = 512 pieces of data corresponding to lattice points with coordinates (odd, odd, odd) are stored in the bank 7;
Thus, it is stored in a memory divided into eight banks.

図3(a)に、17グリッドのLUTが参照される場合の、各バンクのメモリに格納される格子点データの個数を示す。図1に示すバンク0〜7の各メモリは、図3(a)に示される個数の格子点データを格納するためのサイズを有する。バンク毎に格納される格子点データの個数が異なるため、制御部101は記憶部103へ格子点データを格納するときに、格納先のバンクを適切に選択して格納する必要がある。このように異なる個数の格子点データへ分類して複数バンクのメモリへ格納するために制御部101が行う動作について詳細に説明する。   FIG. 3A shows the number of grid point data stored in the memory of each bank when a 17-grid LUT is referenced. Each of the memories in the banks 0 to 7 shown in FIG. 1 has a size for storing the number of grid point data shown in FIG. Since the number of grid point data stored for each bank differs, the control unit 101 needs to appropriately select and store the storage destination bank when storing the grid point data in the storage unit 103. The operation performed by the control unit 101 to classify data into different numbers of grid point data and store them in a plurality of banks of memory 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 performing register setting to the processing unit 102, the control unit 101 sets a value in the control unit 101 or a register (not shown) of the processing unit 102. When the control unit 101 receives a register command for setting grid 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 grid point data setting is determined by the address 203 in the command. For example, if the command is a register command, the RW flag 202 indicates a write operation, and one of the register addresses shown in FIG. In the case of a register command for setting grid point data, grid point data (for example, CMYK data) at one grid point coordinate is stored as the setting data 204. The control unit 101 stores the memory in the storage unit 103 in accordance with the register command including the grid point data to be loaded and the register address. In this embodiment, one grid point data consumes four register addresses as data handled in units of 4 bytes, and the register command address 203 stores the head address of the four register addresses. Is 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データ)が格納される。   Note that a register command for loading LUT lattice point data may be generated by the CPU 11 and loaded via the transfer unit 111, for example. In this case, for example, the CPU 11 reads out the grid point data stored in the external storage device 14 in order of even and odd grid point coordinates, assigns consecutive register addresses from 0x0000 to 0x4CC0, and sends a register command. Generate. Alternatively, the CPU 11 may sequentially generate the grid point data from the matrix coefficients in the order of even and odd grid point coordinates, and assign consecutive register addresses from 0x0000 to 0x4CC0 to generate a register command. Alternatively, the transfer unit 111 may transfer the lattice point data stored in the RAM 112 to the control unit 101 by assigning consecutive register addresses from 0x0000 to 0x4CC0 as transfer destination addresses. In this case, the CPU 11 stores the grid point data on the RAM 112 in the order of the even and odd grid point coordinates. Then, the transfer unit 111 sequentially reads the grid point data on the RAM 112, assigns consecutive register addresses from 0x0000 to 0x4CC0, and generates a register command. As described above, a register address is assigned to the grid point data constituting one lookup table, and a register command is generated. The register command setting data 204 for loading the lookup table stores grid point data (for example, CMYK data) corresponding to one grid point coordinate.

制御部101は、アドレスデコーダ104により、予め定められたメモリマップに従って、レジスタコマンド内のレジスタアドレス(アドレス203)を記憶部103におけるメモリのバンクの指定とアドレスへ変換する。そして、制御部101は、レジスタコマンドに格納されている格子点データ(設定データ204)を、指定されたバンクのメモリに書き込んでいく。アドレスデコーダ104は、受信したレジスタコマンドに格納されているレジスタアドレスを、各バンクのメモリに格納される格子点データの個数に基づいてバンク指定とメモリアドレスに変換していく。制御部101は、アドレスデコーダ104により得られたバンク指定とメモリアドレスにしたがって、レジスタコマンドに格納されているロード対象の格子点データを複数バンクのメモリに記憶する。以下、この処理について詳細に説明する。   The control unit 101 uses the address decoder 104 to convert a register address (address 203) in the register command into a memory bank designation and address in the storage unit 103 according to a predetermined memory map. Then, the control unit 101 writes the grid point data (setting data 204) stored in the register command to the memory of the designated bank. The address decoder 104 converts the register address stored in the received register command into a bank designation and a memory address based on the number of grid point data stored in the memory of each bank. The control unit 101 stores the grid point data to be loaded stored in the register command in a plurality of banks of memory according to the bank designation and 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 for processing in the 17 grid. Following 729 grid point data from (0, 0, 0) to (16, 16, 16) with grid point coordinates (even, even, even), the grid point coordinates are (even, even, odd) ) 648 lattice point data from (0, 0, 1) to (16, 16, 15). These 729 lattice point data and 648 lattice point data are continuously stored, and unnecessary data for adjusting to the maximum number of lattice point data 729 before, during and after 648 lattice point data. There is no area. That is, the register addresses are assigned so that all the grid point data constituting one look-up table are continuous, and the grid point data group classified into each of the plurality of banks is continuous. The first 729 lattice point data are stored in the bank 0 memory, and the subsequent 648 lattice point data are stored in the bank 1 memory. The register addresses are continuous as they are, and the grid point data from (1, 1, 1) to (15, 15, 15) whose grid point coordinates are (odd, odd, odd) are appropriate. Mapped to bank memory. Thus, the register address stored in the register command is converted into a bank and memory physical address and stored in each memory of the storage unit 103 as shown in FIG. In FIG. 4A, the register address starts from 0x0000, but is not limited to this. All grid point data in a 17-grid LUT may be allocated to a 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 is a flowchart showing the operation of the address decoder 104. Hereinafter, the operation of the address decoder 104 will be described with reference to the flowchart of FIG. As described above, since one grid point data is handled in units of 4 bytes and consumes four register addresses, 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 process is terminated without accessing the memory in the storage unit 103. 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 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 outputs 0 and the memory address outputs A (S603, S604).
(2) When 729 ≦ A <1377, the bank outputs 1 and the memory address outputs A-729 (S605, S606).
(3) When 1377 ≦ A <2025, the bank outputs 2 and the memory address A-1377 (S607, S608)
(4) When 2025 ≦ A <2601, the bank outputs 3 and the memory address A-2025 (S609, S610)
(5) When 2601 ≦ A <3249, the bank outputs 4 and the memory address A-2601 (S611, S612).
(6) When 3249 ≦ A <3825, the bank outputs 5 and the memory address outputs A-3249 (S613, S614).
(7) When 3825 ≦ A <4401, the bank outputs 6 and the memory address A-3825 (S615, S616)
(8) When 4401 ≦ A <4913, the bank outputs 7 and the memory address outputs 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となる。
Note that the thresholds used for bank selection are
729 = 9 * 9 * 9
1377 = 729 + 9 * 9 * 8
2025 = 1377 + 9 * 8 * 9
2601 = 2020 + 9 * 8 * 8
3249 = 2601 + 8 * 9 * 9
3825 = 3249 + 8 * 9 * 8
4401 = 3825 + 8 * 8 * 9
4913 = 4401 + 8 * 8 * 8
More demanded. The threshold is determined by the number of grid 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 grid points per grid of the LUT (grid), 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の容量を減らすことが可能となる。   By operating the address decoder as described above, the register address can be converted into the bank and the memory address in the storage unit 103 where the lattice point data is stored. Note that the address decoder implementation method is not limited to this method, and another method such as calculation using a calculation formula may be used. In this way, the necessary grid point data is continuously mapped to the memory without excess or deficiency, thereby reducing the required memory capacity, the number of commands for setting the grid point data, and the ROM capacity for storing the firmware. 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データに変換する。   Note that the reading of the lattice point data stored in the memories of the plurality of banks 0 to 7 can be performed, 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 5-bit coordinate values (r, g, b) for each axis. Assume that grid point coordinates (r, g, b) are obtained based on the input RGB data. Since the bank is determined by an odd number or even number of coordinate values of each axis, the information specifying the bank is the LSB of each of r, g, and b (r [0], g [0], b [0]). Are obtained by concatenating, that is, 4 × r [0] + 2 × g [0] + b [0]. The memory address of the storage unit 103 is derived from the 4-bit data values r [4... 1], g [4 ... 1], b [4 ... 1] obtained by removing the LSB from the 5 bits r, g, and b. can get. That is, r [4 ... 1] × (9−g [0]) × (9−b [0]) + g [4 ... 1] × (9−b [0]) + b [4 ... 1] The memory address of the point is obtained. The processing unit 102 acquires a plurality of grid point data corresponding to RGB data as input data by the above processing, and performs interpolation processing using them to output data corresponding to input data (for example, RGB data). (For example, CMYK data) is obtained. The processing unit 102 performs interpolation processing based on the grid point data and the RGB data read in this way, 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 setting operation of the grid point data is performed by the control unit 101 according to the memory map in which the grid point data necessary for the 17 grid processing is arranged without excess or deficiency. Therefore, only necessary data and commands for setting the memory capacity and grid point data of the storage unit 103 need be prepared, and the number of circuits can be reduced. In the above embodiment, a 17-grid three-dimensional LUT is illustrated, but the present invention is not limited to this. For example, the number of dimensions of the LUT may be two or more. Further, the number of grids (number of grid points per axis) is not limited to 17. When the number of grids is an even number, the number of grid point data stored in the memory of each bank is equal. In the case of an LUT having an odd number of grids, the number of grid point data assigned to each bank is different as in the above embodiment, but the number of grid point data assigned to each bank is held at successive addresses. The memory capacity can be reduced.

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

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

図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 components as those in the first embodiment are denoted by the same reference numerals as those in FIG. Hereinafter, the control unit 701 and the processing unit 702 that operate differently from the first embodiment will be described. In the second embodiment, a register address is converted into a bank designation and a memory address in accordance with instruction information indicating one of a plurality of types of lookup tables having different numbers of grids per axis, and in accordance with 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. Which grid number is used for processing is set by the register value of the register 703. Hereinafter, a mode for processing with 17 grids is referred to as a 17 grid mode, and a mode for processing with 16 grids is referred to as a 16 grid mode. The control unit 701 includes a register 703 that stores “17 GridMode”, and the processing unit 702 refers to the register 703 to switch between the 16 grid mode and the 17 grid mode. When “17 GridMode” 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. As described above, “17GridMode” is used as instruction information for instructing the LUT used for processing. Note that the setting of 17GridMode in the register 703 is realized by a 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 that uses an LUT having 16 grid points per axis. When operating in the 16 grid mode, there are 16 grid points from 0 to 15, so the total number of grid points of a three-dimensional LUT such as RGB is 16 * 16 * 16 = 4096. Data corresponding to the lattice points is read from the memory divided according to the even and odd combinations of the lattice point coordinates. That is,
Read out 8 * 8 * 8 = 512 grid point data corresponding to grid points with coordinates (even, even, even) from bank 0 of the memory in the storage unit 103;
Read 512 grid point data corresponding to grid points with coordinates (even, even, odd) from bank 1,
...
Read 512 pieces of data corresponding to lattice points with coordinates (odd, odd, odd) from the bank 7 and so on, and so on. FIG. 3B shows the number of grid point data stored for each bank when processing with 16 grids.

16グリッドモードと17グリッドモードでは、記憶部103への格子点データの格納量が異なる。本実施形態では、同一の画像処理モジュールで2つのモードの演算処理を行うために、記憶部103は容量の大きい17グリッドの容量に合わせたメモリを備えている。即ち、メモリ構成は第1実施形態と同様となる。   The 16 grid mode and the 17 grid mode differ in the amount of grid point data stored in the storage unit 103. In the present embodiment, in order to perform arithmetic processing in two modes with the same image processing module, the storage unit 103 includes a memory that matches the capacity of 17 grids with a large capacity. That is, the memory configuration is the same as in 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 includes a register 703 for setting a processing mode (17 GridMode). First, the control unit 701 receives a register command for setting the register 703. Upon receiving a register command for setting the processing mode (17GridMode), 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 17GridMode are also input as commands at this time. There is no regulation in the register setting order, and the setting order may be changed.

次に、格子点データを設定するためのレジスタコマンドが制御部701に入力される。制御部701は画像処理に必要な格子点データを記憶部103に設定するためのレジスタコマンドを受け取る。16グリッドモードで処理するか17グリッドモードで処理するかによってLUTの格子点データの数が異なるため、制御部701が受け取る格子点データ設定のためのレジスタコマンドの個数も異なる。すなわち、16グリッドモードで処理する場合は、4096個の格子点データ設定のレジスタコマンドを受け取り、一方、17グリッドモードで処理する場合は、4913個の格子点データ設定のレジスタコマンドを受け取る。   Next, a register command for setting grid point data is input to the control unit 701. The control unit 701 receives a register command for setting lattice point data necessary for image processing in the storage unit 103. Since the number of grid point data in the LUT differs depending on whether the processing is performed in the 16 grid mode or the 17 grid mode, the number of register commands for setting the grid point data received by the control unit 701 is also different. That is, when processing in the 16 grid mode, 4096 grid point data setting register commands are received, while when processing in the 17 grid mode, 4913 grid point data setting register commands 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 grid point data, the control unit 701 refers to an address stored in the command and stores the grid point data in an appropriate memory of the storage unit 103. As described above, since the number of grid point data stored in the storage unit 103 is different between the 16 grid mode and the 17 grid mode, the control unit 701 needs to distribute the grid point data to the appropriate bank memory according to the grid mode setting. There is. FIG. 4B shows a memory map in the 16 grid mode. The control unit 701 refers to the 17 GridMode of the register 703 that has already been set, and determines which of the memory maps in FIGS. 4A and 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 17GridMode setting in the register 703 can be referred to from the address decoder 704. When 17GridMode in the register 703 is “0”, that is, 16 grid mode is indicated, the register address is converted into the bank and the memory address according to the memory map of FIG. 4B, and the lattice point data is written into the memory. 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個の格子点データまで、連続するレジスタアドレスが割当られる。   As shown in FIG. 4B, consecutive register addresses are assigned to the grid point data of the 16-grid LUT. That is, following the 512 grid point data from (0, 0, 0) to (14, 14, 14) whose grid point coordinates are (even, even, even), (even, even, odd) A continuous register address is assigned to 512 grid point data from (0, 0, 1) to (14, 14, 15). Thus, consecutive register addresses are assigned to grid point data, and unnecessary data areas for adjusting to the maximum memory capacity (capacity of 729 grid point data) before, after and in the middle of 512 grid point data. Does not exist. In this way, consecutive register addresses are assigned up to 512 lattice point data from (1, 1, 1) to (15, 15, 15) whose lattice 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 points from (0, 0, 0) to (14, 14, 14) whose lattice point coordinates are (even, even, even). Are sequentially mapped from the address 0 of the memory (memory 0) of the bank 0. Subsequently, the address decoder 704 stores 512 lattice point data from (0, 0, 1) to (14, 14, 15) having lattice point coordinates (even, even, odd) in the memory of the bank 1. Mapping to (memory 1). In this way, consecutive register addresses are mapped to a plurality of banks of memory, and 512 data from grid point coordinates (1, 1, 1) to (15, 15, 15) are mapped to the memory of the bank 7 (memory 7). Is 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. Is done.

以上のように、制御部701は、第1実施形態と同様に内部にレジスタアドレスからデータ格納先のバンクとメモリアドレスへ変換するアドレスデコーダ704を有し、上述のような格子点データのマッピングを実現する。図8に第2実施形態のアドレスデコーダ704の動作を表すフローチャートである。図5のフローチャートと同じ動作をするステップには同じ符号を与えた。以降で、アドレスデコーダ704の動作を図8のフローチャートに従って説明する。   As described above, the control unit 701 includes the address decoder 704 for converting the register address into the data storage destination bank and the memory address in the same manner as in the first embodiment, and performs the mapping of the grid point data as described above. Realize. FIG. 8 is a flowchart showing the operation of the address decoder 704 of the second embodiment. Steps having the same operations as those in the flowchart of FIG. Hereinafter, the operation of the address decoder 704 will be described with reference 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 terminated without accessing the memory. If it is a multiple of 4, the process proceeds to step S602, and the address decoder 704 divides the register address by 4 to obtain a 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 the grid point data of the 17-grid LUT into the storage unit 103, and the specific processing content is the same as that of the first embodiment (steps S603 to 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 17GridMode of the register 703 is set to “0”, the process advances to step S902 to execute memory mapping corresponding to the 16 grid LUT. That is, by comparing the value A with a predetermined threshold (steps S902, S904, S906, S908, S910, S912, S914, S916), the bank and the memory address to be selected are determined as described below (step S903). , S905, S907, S909, S911, S913, S915, S917), and the lattice point data are mapped.
(1) When 0 ≦ A <512, the bank outputs 0 and the memory address outputs A (S902, S903).
(2) When 512 ≦ A <1024, the bank outputs 1 and the memory address outputs A-512 (S904, S905).
(3) When 1024 ≦ A <1536, the bank outputs 2 and the memory address A-1024 (S906, S907)
(4) When 1536 ≦ A <2048, the bank outputs 3 and the memory address A-1536 (S908, S909)
(5) When 2048 ≦ A <2560, the bank outputs 4 and the memory address 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 outputs 6 and the memory address A-3072 (S914, S915)
(8) When 3584 ≦ A <4096, the bank outputs 7 and the memory address outputs 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 grid point data in the storage unit 103 as described above, set values are stored in the eight memories of the storage unit 103 as shown in FIG. FIG. 7A shows the result of storing the grid point data in the 17 grid mode, and FIG. 7B shows the result of storing the grid point data in the 16 grid mode. In the fractions described in each bank in the figure, the denominator represents the capacity of each memory (the maximum number of grid point data that can be stored), and the numerator represents the number of stored grid point data. In the 17 grid mode, all the areas are used in all the memories (memory 0 to memory 7) of the storage unit 103. However, in the 16 grid mode, only the grid point data necessary for the 16 grid interpolation process is obtained. 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 on the received image data in accordance with a set register value (value of 17GridMode). That is, if 17GridMode 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 processed data and outputs it.

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

なお、16グリッドモード時のバンク毎の格子点データの格納個数は512であるので、アドレスデコーダ704はバンク、メモリアドレスをレジスタアドレスから所定のビットを抽出することにより生成しても良い。たとえば、バンクとしてレジスタアドレス(MSB:13、LSB:0とする)のビット13〜11を抽出し、メモリアドレスとしてレジスタアドレスのビット10〜2を抽出するようにしてもよい。   Since the number of stored grid point data for 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, the bits 13 to 11 of the register address (MSB: 13, LSB: 0) may be extracted as a bank, and the 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, it is shown that data can be stored in a memory according to image processing in the set processing mode by setting the processing mode (17 GridMode) in the register 703 when setting the register. . Here, the control unit 701 is configured to select a threshold value possessed in advance according to the set value of 17GridMode in the register 703 and output a bank and an address to be stored according to the threshold value. That is, since the configuration is selected from a plurality of modes prepared in advance (17 grid and 16 grid in the second embodiment), selectable modes are limited. In the third embodiment, a data processing unit 100 that can set a threshold set in a register, that is, can change the threshold set according to a lookup table to be used, and can be applied 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 is 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 the control unit 1001 receives a register setting command for setting a threshold value, the control unit 1001 sets a threshold value Th0 to Th7 for switching the storage destination bank at the time of setting the lattice point data in the register 1003. In the register 1005, a processing mode is set. For example, when the control unit 1001 and the processing unit 702 are operated in the 17 grid mode, the control unit 1001 sets the threshold used in the processing illustrated in FIG. That is, the control unit 1001 sets 729, 1377, 2025, 2601, 3249, 3825, 4401, and 4913 as the threshold values Th0 to Th7, respectively. Then, 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の時、メモリへのアクセスは行わない。
When storing the lattice point data in the storage unit 103 after setting the threshold value in the register 1003, the control unit 1001 obtains the bank and the memory address with reference to the threshold values Th <b> 0 to Th <b> 7, and stores the lattice point data in the storage unit 103. Is stored. The control unit 1001 has an address decoder 1004 for converting register addresses to bank and memory addresses. The address decoder 1004 of the third embodiment operates as shown in the flowchart of FIG. Steps S601 and S602 in FIG. 10 are similar to those in FIG. The address decoder 1004 compares the value A obtained by dividing the register address by 4 with the threshold set in the register 1003 (S1103, S1105, S1107, S1109, S1111, S1113, S1115, S1117). Then, the selected bank and the memory address are determined according to the comparison result (S1104, S1106, S1108, S1110, S1112, S1114, S1116, S1118). More specifically, the bank and memory address are determined as follows.
(1) When 0 ≦ A <Th0, the bank outputs 0 and the memory address outputs A (S1103, S1104).
(2) When Th0 ≦ A <Th1, the bank outputs 1, and the memory address outputs A-Th0 (S1105, S1106).
(3) When Th1 ≦ A <Th2, the bank outputs 2 and the memory address outputs 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 outputs A-Th3 (S1111 and S1112).
(6) When Th4 ≦ A <Th5, the bank outputs 5 and the memory address outputs A-Th4 (S1113, S1114).
(7) When Th5 ≦ A <Th6, the bank outputs 6 and the memory address outputs A-Th5 (S1115, S1116).
(8) When Th6 ≦ A <Th7, the bank outputs 7 and the memory address 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. However, the present invention is not limited to this. For example, when the processing unit 702 uses only four banks, the unused registers “Th4” to “Th7” are set to “0”. As a result, the processing always branches to NO in steps S1111, S1113, S1115, and S1117, and the lattice point data can be prevented from being stored in the bank. Further, when the processing unit 702 performs processing using a larger number of banks, the storage unit 103 is configured to have a memory of 8 or more banks, and the threshold value Th8 or more is stored in the register 1003. Therefore, the versatility of the control unit can be improved.

また、処理部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のいずれかを用いることができる。   Further, a signal indicating a processing mode to be input to the processing unit 702 (for example, a signal indicating the number of grids) may be automatically generated from a threshold value stored in the register 1003. That is, if the threshold Th0 is 729, the control unit 1001 outputs “17GridMode = 1” to the processing unit 702 as a signal indicating that processing is performed in the 17 grid mode. On the other hand, if the threshold Th0 is 512, the control unit 1001 outputs “17GridMode = 0” to the processing unit 702 as a signal indicating that processing is performed in the 16 grid mode. By doing so, an 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, one of them may be detected. In the present embodiment, it is only necessary to output a predetermined bit of the threshold Th0 as a signal to be processed in the 17 grid mode using the fact that bits other than the MSB become 0 when the threshold Th0 is 512. Here, as the predetermined bit, for example, a bit (excluding the MSB) that becomes 1 with a value 729, that is, any of bits 0, 3, 4, 6, and 7 can be used.

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

以上で説明したように、制御部にメモリマップの設定用のレジスタを加え、そのレジスタを設定することで、制御部は設計時にメモリマップを記憶しておく必要がなくなり、要素部品としての汎用性を向上させることが可能となる。また、ルックアップテーブルデータの設定に関して、2のべき乗ではないデータ数であっても不要なデータを追加することなくルックアップテーブルデータを設定することが出来る。   As described above, adding a register for setting the memory map to the control unit and setting the register eliminates the need for the control unit to store the memory map at the time of design. Can be improved. 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 realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program This process can be realized. It can also be realized by a circuit (for example, ASIC) that realizes 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 (13)

一つのルックアップテーブルを構成する格子点データを複数のバンクのメモリにロードしてデータ処理を実行するデータ処理装置であって、
ロード対象の格子点データとレジスタアドレスを受信する受信手段と、
前記受信手段により受信されたレジスタアドレスを、各バンクのメモリに格納される格子点データの個数に基づいてバンク指定とメモリアドレスに変換する変換手段と、
前記変換手段により得られたバンク指定とメモリアドレスにしたがって、前記ロード対象の格子点データを前記複数のバンクのメモリに記憶する記憶手段と、を備えることを特徴とするデータ処理装置。
A data processing apparatus that loads grid point data constituting one lookup table into a plurality of banks of memory and executes data processing,
Receiving means for receiving the grid point data to be loaded and the register address;
Conversion means for converting the register address received by the receiving means into bank designation and memory address based on the number of grid point data stored in the memory of each bank;
A data processing device comprising: 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 memory address obtained by the conversion means.
前記レジスタアドレスは、前記一つのルックアップテーブルを構成する全ての格子点データに連続したレジスタアドレスが割り当てられ、且つ、前記複数のバンクの各々に分類された格子点データ群に連続したレジスタアドレスが割り当てられるように、格子点座標に対応して割り当てられることを特徴とする請求項1に記載のデータ処理装置。   As the register address, a continuous register address is assigned to all grid point data constituting the one look-up table, and a continuous register address is assigned to a grid point data group classified into each of the plurality of banks. The data processing apparatus according to claim 1, wherein the data processing apparatus is assigned in correspondence with grid point coordinates so as to be assigned. 前記一つのルックアップテーブルを構成する格子点データにレジスタアドレスを割り当てる割当手段をさらに備えることを特徴とする請求項2に記載のデータ処理装置。   3. The data processing apparatus according to claim 2, further comprising assigning means for assigning a register address to lattice point data constituting the one look-up table. 前記変換手段は、前記レジスタアドレスを、前記複数のバンクの各々に属する格子点データの個数に応じた閾値と比較することにより、前記バンク指定と前記メモリアドレスを決定することを特徴とする請求項1乃至3のいずれか1項に記載のデータ処理装置。   The conversion means determines the bank designation and the memory address by comparing the register address with a threshold corresponding to the number of grid point data belonging to each of the plurality of banks. The data processing device according to any one of 1 to 3. 前記変換手段は、前記レジスタアドレスを、1つの格子点データに割り当てられているレジスタアドレスの個数で割った値を前記閾値と比較することにより前記バンク指定と前記メモリアドレスを決定することを特徴とする請求項4に記載のデータ処理装置。   The converting means determines the bank designation and the memory address by comparing a value obtained by dividing the register address by the number of register addresses assigned to one grid point data with the threshold value. The data processing apparatus according to claim 4. 前記複数のバンクの各々のメモリは、前記複数のバンクの各々に属する格子点データの個数にしたがった、異なる容量を有することを特徴とする請求項1乃至5のいずれか1項に記載のデータ処理装置。   6. The data according to claim 1, wherein the memories of the plurality of banks have different capacities according to the number of grid point data belonging to each of the plurality of banks. Processing equipment. 前記一つのルックアップテーブルを構成する格子点データの前記複数のバンクへの分類は、格子点座標を構成する各軸の座標値の奇数と偶数の組み合わせに基づいていることを特徴とする請求項1乃至6のいずれか1項に記載のデータ処理装置。   The classification of the grid point data constituting the one lookup table into the plurality of banks is based on a combination of odd and even coordinate values of each axis constituting the grid point coordinates. The data processing apparatus according to any one of 1 to 6. 前記変換手段は、1軸当たりのグリッド数が異なる複数種類のルックアップテーブルのうちの1つを指示する指示情報にしたがって、前記レジスタアドレスをバンク指定とメモリアドレスへ変換するための方法を切り替えることを特徴とする請求項1乃至7のいずれか1項に記載のデータ処理装置。   The converting means switches a method for converting the register address into a bank designation and a memory address according to instruction information indicating one of a plurality of types of lookup tables having different numbers of grids per axis. The data processing apparatus according to claim 1, wherein: 前記変換手段は、前記レジスタアドレスを、前記複数のバンクの各々に属する格子点データの個数に基づいて設定された閾値のセットと比較することにより、前記バンク指定と前記メモリアドレスを決定し、
前記指示情報にしたがって、前記閾値のセットを切り替えることを特徴とする請求項8に記載のデータ処理装置。
The converting means determines the bank designation and the memory address by comparing the register address with a set of threshold values set based on the number of grid point data belonging to each of the plurality of banks,
The data processing apparatus according to claim 8, wherein the set of threshold values is switched according to the instruction information.
前記変換手段は、前記レジスタアドレスを、前記複数のバンクの各々に属する格子点データの個数に基づいて設定された閾値のセットと比較することにより、前記バンク指定と前記メモリアドレスを決定し、
前記閾値のセットを保持する保持手段と、
前記保持手段に保持される閾値のセットを、前記複数のバンクのメモリにロードするルックアップテーブルに応じて変更する変更手段と、をさらに備えることを特徴とする請求項1乃至7のいずれか1項に記載のデータ処理装置。
The converting means determines the bank designation and the memory address by comparing the register address with a set of threshold values set based on the number of grid point data belonging to each of the plurality of banks,
Holding means for holding the set of thresholds;
8. The apparatus according to claim 1, further comprising: a changing unit that changes a set of threshold values held in the holding unit according to a lookup table loaded into the memories of the plurality of banks. The data processing device according to item.
入力データに基づいて得られる格子点座標に基づいて、前記複数のバンクのメモリから複数の格子点データを同時に読み出す読出手段と、
前記読出手段により読み出された複数の格子点データを用いて補間処理を行い前記入力データに対する変換データを得る補間手段と、をさらに備えることを特徴とする請求項1乃至10のいずれか1項に記載のデータ処理装置。
Read means for simultaneously reading a plurality of grid point data from the memory of the plurality of banks based on the grid point coordinates obtained based on the input data;
The interpolation means according to any one of claims 1 to 10, further comprising interpolation means for performing an interpolation process using a plurality of grid point data read by the reading means to obtain conversion data for the input data. The data processing apparatus described in 1.
一つのルックアップテーブルを構成する格子点データを複数のバンクのメモリにロードしてデータ処理を実行するデータ処理装置の制御方法であって、
ロード対象の格子点データとレジスタアドレスを受信する受信工程と、
前記受信工程で受信されたレジスタアドレスを、各バンクのメモリで格納される格子点データの個数に基づいてバンク指定とメモリアドレスに変換する変換工程と、
前記変換工程で得られたバンク指定とメモリアドレスにしたがって、前記ロード対象の格子点データを前記複数のバンクのメモリに記憶する記憶工程と、を有することを特徴とするデータ処理装置の制御方法。
A control method of a data processing apparatus for executing data processing by loading lattice point data constituting one lookup table into a plurality of banks of memory,
A receiving process for receiving grid point data and register addresses to be loaded;
A conversion step of converting the register address received in the reception step into a bank designation and a memory address based on the number of grid point data stored in the memory of each bank;
And a storage step of storing the grid point data to be loaded in the memories of the plurality of banks according to the bank designation and the memory address obtained in the conversion step.
コンピュータに、請求項12に記載された制御方法の各工程を実行させるためのプログラム。   A program for causing a computer to execute each step of the control method according to claim 12.
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 true JP2016165076A (en) 2016-09-08
JP2016165076A5 JP2016165076A5 (en) 2018-04-12
JP6501561B2 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)

Families Citing this family (1)

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

Citations (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
JPH09146513A (en) * 1995-11-28 1997-06-06 Fuji Photo Film Co Ltd Picture display method and device
JP2003101806A (en) * 2001-09-25 2003-04-04 Canon Inc Image processor
JP2006157252A (en) * 2004-11-26 2006-06-15 Canon Inc Data classification method, multidimensional interpolation apparatus, multidimensional interpolation method, and computer program
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
JP2010193474A (en) * 2010-03-18 2010-09-02 Canon Inc Device and method for multi-dimensional interpolation, and computer program
JP2011130214A (en) * 2009-12-17 2011-06-30 Canon Inc Image processing apparatus, control method thereof, and program

Patent Citations (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
JPH09146513A (en) * 1995-11-28 1997-06-06 Fuji Photo Film Co Ltd Picture display method and device
JP2003101806A (en) * 2001-09-25 2003-04-04 Canon Inc Image processor
JP2006157252A (en) * 2004-11-26 2006-06-15 Canon Inc Data classification method, multidimensional interpolation apparatus, multidimensional interpolation method, and computer program
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
JP2011130214A (en) * 2009-12-17 2011-06-30 Canon Inc Image processing apparatus, control method thereof, and program
JP2010193474A (en) * 2010-03-18 2010-09-02 Canon Inc Device and method for multi-dimensional interpolation, and computer program

Also Published As

Publication number Publication date
JP6501561B2 (en) 2019-04-17

Similar Documents

Publication Publication Date Title
KR100816709B1 (en) Image processing apparatus, image processing method, image processing program and storage medium
JP2000165691A (en) Method and device for color conversion
EP2109304A1 (en) Color management method, module, and program product, and printer ussing said method
JP2008193529A (en) Scanning converter, and scanning conversion method
WO2001027780A1 (en) System and method for digital color image processing
JP3976849B2 (en) Device for generating interpolator input data
JP4724413B2 (en) Data classification method
US9786250B2 (en) Control apparatus, image processing apparatus, control method, and non-transitory computer-readable storage medium
JP2903808B2 (en) Color signal conversion method and apparatus
US6088124A (en) Color image processing apparatus and method
JP6501561B2 (en) DATA PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM
JP2007166562A (en) Color conversion apparatus and method, color conversion program, and storage medium
US5557715A (en) Image processing device which designates memory locations by using X/Y coordinates of an image
US10635955B1 (en) Image forming method, apparatus, and program separating addresses for storing color tone data by shifting the relative address using an offset address
JP4810615B2 (en) Multidimensional interpolation apparatus, multidimensional interpolation method, and computer program
JP5567790B2 (en) Image processing apparatus, control method therefor, and program
JP5267147B2 (en) Image processing apparatus, image processing method, and computer program
JP2017228324A (en) Image processing apparatus, control method thereof, and program
JP4726228B2 (en) Color data conversion apparatus and method
JP6808712B2 (en) Image processing device, its control method, and program
EP0801362A2 (en) Method and apparatus for converting image representation format
JP6225202B2 (en) Image processing apparatus, control method therefor, and program
JPH11168610A (en) Image processor
US8175381B2 (en) Image processing method and apparatus
JP5885780B2 (en) Image processing apparatus, control method therefor, and program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

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 Request for written amendment filed

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