JP2016165076A - Data processing device, control method of the same, and program - Google Patents
Data processing device, control method of the same, and program Download PDFInfo
- 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
Links
Images
Landscapes
- Facsimile Image Signal Circuits (AREA)
- Color Image Communication Systems (AREA)
- Color, Gradation (AREA)
- Image Processing (AREA)
Abstract
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
特許文献1では、32グリッドでの処理を行うために合計32768(=32*32*32)個の代表点の変換色データ(以下、格子点データと記す)を格納できるメモリが必要である。また、特許文献2では33グリッドでの処理を行うために35937(=33*33*33)個の格子点データを格納できるメモリが必要である。32グリッドの場合と33グリッドの場合とで互いに必要なメモリ容量は異なるため、複数種類のグリッド数に対応するためには、最も大きい容量に合わせてメモリ分割を行う必要がある。また、グリッド数が奇数の場合に、メモリを8分割(または4分割)すると、各メモリに格納される格子点データの容量は各軸の偶奇の組合せで異なってくる。従って、LUTを設定するために格子点データをメモリに格納する際、メモリ毎に格子点データ数を意識して格納する必要があった。あるいは、このような制御をなくすために、最も容量の大きなメモリにあわせて不要なデータを追加して格納する必要があった。
In
本発明は上記課題に鑑みてなされたものであり、ルックアップテーブルを構成する格子点データを複数のバンクのメモリに効率よく格納することを目的とする。 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.
以下、添付の図面を参照して、本発明を好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。 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
図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
制御部101は、受け取ったコマンドを解析し、そのコマンドがレジスタコマンドかデータコマンドかを判断する。制御部101は、受け取ったコマンドがレジスタコマンドである場合、コマンドに格納されているアドレスに応じて不図示のレジスタあるいはメモリへ値を設定する。たとえば、受け取ったコマンドがレジスタコマンドであり、コマンドに格納されているアドレスが図4(a)に示されるようなレジスタアドレスの場合、制御部101は、記憶部103のメモリにルックアップテーブル(LUT)の格子点データを格納する。このように、本実施形態のデータ処理部100は、一つのルックアップテーブルを構成する格子点データを複数バンクのメモリにロードしてデータ処理を実行する。
The
また、受け取ったコマンドがデータコマンドの場合、コマンドのデータ領域からデータ(たとえば、画像データ)を取り出し、処理部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
制御部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
次に、処理部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
四面体補間の場合、隣接する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
9 * 9 * 9 = 729 pieces of data corresponding to lattice points with coordinates (even, even, even) are stored in
・ 9 * 9 * 8 = 648 pieces of data corresponding to grid points with coordinates (even, even, odd) are stored in
・ 9 * 8 * 9 = 648 pieces of data corresponding to grid points with coordinates (even, odd, even) are stored in
...
8 * 8 * 8 = 512 pieces of data corresponding to lattice points with coordinates (odd, odd, odd) are stored in the
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
制御部101は、処理部102へレジスタ設定を行うためのレジスタコマンドを受け取ると、制御部101または処理部102のレジスタ(不図示)へ値を設定する。また、制御部101は格子点データ設定用のレジスタコマンドを受け取ると、設定データ204を記憶部103のメモリに格納する。レジスタコマンドが、レジスタ設定であるか格子点データ設定であるかは、コマンド内のアドレス203により判定される。たとえば、コマンドが、レジスタコマンドであって、RWフラグ202がライト動作を示し、アドレス203に図4(a)のレジスタアドレスのいずれかが格納されている場合、格子点データ設定と判定される。格子点データ設定のレジスタコマンドの場合、設定データ204として、1つの格子点座標における格子点データ(たとえばCMYKデータ)が格納されている。制御部101は、このような、ロード対象の格子点データとレジスタアドレスを含むレジスタコマンドにしたがって記憶部103へのメモリの格納を行う。なお、本実施形態においては、一つの格子点データは4バイト単位で扱われるデータとして4つのレジスタアドレスを消費し、レジスタコマンドのアドレス203にはそれら4つのレジスタアドレスのうちの先頭のアドレスが格納される。
When the
なお、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
制御部101は、アドレスデコーダ104により、予め定められたメモリマップに従って、レジスタコマンド内のレジスタアドレス(アドレス203)を記憶部103におけるメモリのバンクの指定とアドレスへ変換する。そして、制御部101は、レジスタコマンドに格納されている格子点データ(設定データ204)を、指定されたバンクのメモリに書き込んでいく。アドレスデコーダ104は、受信したレジスタコマンドに格納されているレジスタアドレスを、各バンクのメモリに格納される格子点データの個数に基づいてバンク指定とメモリアドレスに変換していく。制御部101は、アドレスデコーダ104により得られたバンク指定とメモリアドレスにしたがって、レジスタコマンドに格納されているロード対象の格子点データを複数バンクのメモリに記憶する。以下、この処理について詳細に説明する。
The
図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
図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
(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
(2) When 729 ≦ A <1377, the
(3) When 1377 ≦ A <2025, the
(4) When 2025 ≦ A <2601, the
(5) When 2601 ≦ A <3249, the
(6) When 3249 ≦ A <3825, the
(7) When 3825 ≦ A <4401, the
(8) When 4401 ≦ A <4913, the
(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の軸当たりの格子点数(グリッド)が2n+1個、次元数がm、各軸の座標値のうちの奇数の座標の個数をp個とすると、(2n−1+1)p×(2n−1)m−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
なお、バンク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
以上、説明したように、本実施形態では、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
なお、バンク7の格子点数は512なので、ステップS618で、バンク7のメモリアドレスの9ビット目より上位のビットのいずれかが‘1’となっている場合にメモリへの書き込みを禁止すれば、閾値4913との比較(ステップS617)は不要になる。この場合、ステップS615でNOと判定された場合にステップS618が実行されることになる。
Since the number of grid points of the
<第2実施形態>
第1実施形態では制御部101に格子点データの格納先を適切に振り分ける機能を持たせることで、記憶部103のメモリ容量やファームウェアを格納するROMの容量を小さくすることが出来ることを示した。第2実施形態では1つの処理部102に複数種類の処理機能を持たせてレジスタ設定により使い分ける例を示す。
Second Embodiment
In the first embodiment, it has been shown that the memory capacity of the
図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
処理部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
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
Read 512 grid point data corresponding to grid points with coordinates (even, even, odd) from
...
Read 512 pieces of data corresponding to lattice points with coordinates (odd, odd, odd) from the
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
次に、制御部701の処理を説明する。制御部701は、処理モード(17GridMode)を設定するためのレジスタ703を有している。まず、制御部701はレジスタ703を設定するためのレジスタコマンドを受け取る。制御部701は、処理モード(17GridMode)を設定するレジスタコマンドを受け取ると、レジスタ703を設定し、処理部702に対して設定値を入力する。17GridMode以外の処理部702への必要な設定も、この時にコマンドとして入力する。なお、レジスタの設定順に規定はなく、設定する順番は前後しても良い。
Next, processing of the
次に、格子点データを設定するためのレジスタコマンドが制御部701に入力される。制御部701は画像処理に必要な格子点データを記憶部103に設定するためのレジスタコマンドを受け取る。16グリッドモードで処理するか17グリッドモードで処理するかによってLUTの格子点データの数が異なるため、制御部701が受け取る格子点データ設定のためのレジスタコマンドの個数も異なる。すなわち、16グリッドモードで処理する場合は、4096個の格子点データ設定のレジスタコマンドを受け取り、一方、17グリッドモードで処理する場合は、4913個の格子点データ設定のレジスタコマンドを受け取る。
Next, a register command for setting grid point data is input to the
制御部701は格子点データを設定するレジスタコマンドを受け取ると、コマンドに格納されているアドレスを参照して格子点データを適切な記憶部103のメモリへ格納していく。前述したように16グリッドモードと17グリッドモードで記憶部103へ格納する格子点データ数が異なるため、制御部701はグリッドモードの設定に応じて適切なバンクのメモリへ格子点データを分配する必要がある。図4(b)に16グリッドモード時のメモリマップを示す。制御部701は既に設定されているレジスタ703の17GridModeを参照して、図4(a)と図4(b)のいずれのメモリマップに従うかを決める。
When the
図6で示すように、制御部701は制御部101と同様に内部にアドレスデコーダ704を有しており、レジスタ703における17GridModeの設定はアドレスデコーダ704から参照可能な構成となっている。そして、レジスタ703における17GridModeが‘0’、つまり16グリッドモードが示される場合は、図4(b)のメモリマップに従って、レジスタアドレスをバンクとメモリアドレスへ変換し、格子点データをメモリに書き込んでいく。
As shown in FIG. 6, the
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
一方、レジスタ703の17GridModeが‘1’、つまり17グリッドモードの場合の動作は第1実施形態と同じであり、図4(a)のメモリマップに従って格子点データが記憶部103の各メモリへマッピングされる。
On the other hand, the operation when the 17GridMode of the
以上のように、制御部701は、第1実施形態と同様に内部にレジスタアドレスからデータ格納先のバンクとメモリアドレスへ変換するアドレスデコーダ704を有し、上述のような格子点データのマッピングを実現する。図8に第2実施形態のアドレスデコーダ704の動作を表すフローチャートである。図5のフローチャートと同じ動作をするステップには同じ符号を与えた。以降で、アドレスデコーダ704の動作を図8のフローチャートに従って説明する。
As described above, the
まず、ステップ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
一方、レジスタ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
(1) When 0 ≦ A <512, the
(2) When 512 ≦ A <1024, the
(3) When 1024 ≦ A <1536, the
(4) When 1536 ≦ A <2048, the
(5) When 2048 ≦ A <2560, the
(6) When 2560 ≦ A <3072, the
(7) When 3072 ≦ A <3584, the
(8) When 3584 ≦ A <4096, the
(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
次に、制御部701はデータコマンドを受け取る。制御部701へ入力されたデータコマンドの中から画像処理の対象となる画像データを取り出して、処理部702へ入力する。処理部702は受け取った画像データを設定されたレジスタ値(17GridModeの値)に従って既定の画像処理を行う。即ち、17GridModeが1に設定されていれば、処理部702は17グリッドモードで処理し、0に設定されていれば、処理部702は16グリッドモードで処理する。処理部702は処理後のデータを再び制御部701へ入力する。制御部701は受け取った処理後のデータからデータコマンドを生成して、出力する。
Next, the
以上が第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
なお、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
<第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
図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
制御部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
(1) When 0 ≦ A <Th0, the
(2) When Th0 ≦ A <Th1, the bank outputs 1, and the memory address outputs A-Th0 (S1105, S1106).
(3) When Th1 ≦ A <Th2, the
(4) When Th2 ≦ A <Th3, the
(5) When Th3 ≦ A <Th4, the
(6) When Th4 ≦ A <Th5, the
(7) When Th5 ≦ A <Th6, the
(8) When Th6 ≦ A <Th7, the
(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
また、処理部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
なお、処理部702が第1実施形態のように17グリッドモードのみという1つの処理モードだけをサポートする場合においても、第3実施形態で提案したような制御部1001は有効に機能する。当然、その場合には処理部702に対して処理モードを示す信号を出力する必要はない。
Even when the
以上で説明したように、制御部にメモリマップの設定用のレジスタを加え、そのレジスタを設定することで、制御部は設計時にメモリマップを記憶しておく必要がなくなり、要素部品としての汎用性を向上させることが可能となる。また、ルックアップテーブルデータの設定に関して、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.
前記指示情報にしたがって、前記閾値のセットを切り替えることを特徴とする請求項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.
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)
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)
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 |
-
2015
- 2015-03-06 JP JP2015045084A patent/JP6501561B2/en active Active
Patent Citations (8)
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 |
---|---|---|
US7599087B2 (en) | Method and apparatus for image processing, and a computer product | |
KR100816709B1 (en) | Image processing apparatus, image processing method, image processing program and storage medium | |
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 | |
JP6501561B2 (en) | DATA PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM | |
JP2007166562A (en) | Color conversion apparatus and method, color conversion program, and storage medium | |
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 | |
JP4096672B2 (en) | Data conversion method and data conversion apparatus | |
JP2017228324A (en) | Image processing apparatus, control method thereof, and program | |
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 | |
KR20070036258A (en) | Image forming apparatus | |
JPH11168610A (en) | Image processor | |
US8175381B2 (en) | Image processing method and apparatus | |
JP5885780B2 (en) | Image processing apparatus, control method therefor, and program | |
JP2003101806A (en) | Image processor |
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 |