JP5036526B2 - Conversion table compression method and program - Google Patents

Conversion table compression method and program Download PDF

Info

Publication number
JP5036526B2
JP5036526B2 JP2007337660A JP2007337660A JP5036526B2 JP 5036526 B2 JP5036526 B2 JP 5036526B2 JP 2007337660 A JP2007337660 A JP 2007337660A JP 2007337660 A JP2007337660 A JP 2007337660A JP 5036526 B2 JP5036526 B2 JP 5036526B2
Authority
JP
Japan
Prior art keywords
merge
color conversion
difference
lut
compression
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.)
Expired - Fee Related
Application number
JP2007337660A
Other languages
Japanese (ja)
Other versions
JP2009159493A (en
JP2009159493A5 (en
Inventor
充 紺地
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2007337660A priority Critical patent/JP5036526B2/en
Publication of JP2009159493A publication Critical patent/JP2009159493A/en
Publication of JP2009159493A5 publication Critical patent/JP2009159493A5/ja
Application granted granted Critical
Publication of JP5036526B2 publication Critical patent/JP5036526B2/en
Expired - Fee Related 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)

Description

本発明は、たとえば画像の色変換等に用いられる変換テーブルの圧縮方法に関する。詳しくは、カラー画像処理装置で画像データの処理に用いる変換テーブル、特に色変換テーブルを格納するために必要な記憶容量を小さくするための方法、および、変換テーブルを格納に適したデータに変換する。または、格納した変換テーブルを用いて画像処理を行なう画像処理装置に関する。   The present invention relates to a method for compressing a conversion table used for color conversion of an image, for example. Specifically, a conversion table used for processing image data in a color image processing apparatus, particularly a method for reducing the storage capacity necessary for storing a color conversion table, and conversion table conversion into data suitable for storage. . Alternatively, the present invention relates to an image processing apparatus that performs image processing using a stored conversion table.

カラープリンタやカラー複写機またはカラースキャナなどのカラー画像の入力あるいは出力を行う機器では、高品位なカラー画像を実現するために、人間の知覚特性などに基づいて高度に最適化された色変換処理を行う必要がある。このような色変換処理は、単純な演算によって実現することが困難であるため、自由度の高い変換処理を実現することが可能であるルックアップテーブル(以下、LUTとする)を用いた変換処理により実施されている。LUTとは変換テーブルの一種であり、入力に対応する出力値をテーブルとして保持する。LUTに考えられる全ての入力に対する出力データを保持するためには膨大な記憶容量が必要となる。そのため、LUTには、離散的に定めた特定の入力(格子点という)に対する出力データ(格子点値という)を保持し、格子点以外の入力に対する出力データは、格子点値を使用して補間により算出されることが一般的である。   In devices that input or output color images, such as color printers, color copiers, or color scanners, highly optimized color conversion processing based on human perceptual characteristics to achieve high-quality color images Need to do. Since such color conversion processing is difficult to realize by simple calculation, conversion processing using a lookup table (hereinafter referred to as LUT) that can realize conversion processing with a high degree of freedom. Has been implemented. An LUT is a type of conversion table, and holds output values corresponding to inputs as a table. In order to hold output data for all inputs conceivable in the LUT, an enormous storage capacity is required. For this reason, the LUT holds output data (referred to as grid point values) for specific inputs (referred to as grid points) discretely determined, and output data for inputs other than the grid points are interpolated using the grid point values. Is generally calculated by

例えば、色変換処理として最も一般的である、入力データがR(レッド)、G(グリーン)、B(ブルー)各色8ビットで構成され、出力データがC(シアン)、M(マゼンタ)、Y(イエロー)、K(ブラック)各色8ビットとなる色変換処理を考える。8ビットは256階調に相当する。この変換に用いられるLUTは、RGBを座標軸とする3次元のテーブルとなり、RGBの値に応じたYMCKの値をその要素として含む。この場合入力データ(R,G,B)がとり得る値は、0h〜FFFFFFhまでの約1670万通りとなる。したがってこの色変換のために用いるLUTには、約1670万×4バイト=約64Mバイトのデータを記憶する必要ある。   For example, the most common color conversion processing, input data is composed of 8 bits for each color of R (red), G (green), and B (blue), and output data is C (cyan), M (magenta), Y Consider a color conversion process in which each of (yellow) and K (black) is 8 bits. Eight bits correspond to 256 gradations. The LUT used for this conversion is a three-dimensional table having RGB as coordinate axes, and includes YMCK values corresponding to the RGB values as elements. In this case, the input data (R, G, B) can take about 16.7 million values from 0h to FFFFFFh. Therefore, it is necessary to store about 16.7 million × 4 bytes = about 64 Mbytes of data in the LUT used for this color conversion.

そこで、データ量を削減するために、特定の入力、例えばRGBの各値が0、64、128、191、255 のいずれかであるような値を格子点とし、LUTにはその格子点に対応するYMCKの値を格子点値として保存する。たとえば、格子点となる入力データは、(0、0、0)、(128、191、64)、(64、255、128)などであり、それら格子点に対応する格子点値すなわち出力データがLUTに保持される。ここで改めて定義すると、出力データがLUTに保持されている入力データを格子点、保持された出力データの値をその格子点値という。そして格子点以外の入力データ、たとえば(128、200、64)などに対する出力データは、格子点値を格子点からの距離に応じた加重平均により算出することが一般的には実施されている。このように格子点値を加重平均することにより出力データを算出することは補間と呼ばれ、様々な補間の手法が提案されている(特許文献4等参照)。   Therefore, in order to reduce the amount of data, a specific input, for example, each RGB value is 0, 64, 128, 191 or 255 is set as a grid point, and the LUT corresponds to the grid point. YMCK values to be stored are stored as grid point values. For example, input data to be grid points are (0, 0, 0), (128, 191, 64), (64, 255, 128), etc., and grid point values corresponding to these grid points, that is, output data are Held in the LUT. In this case, the input data in which the output data is held in the LUT is referred to as a grid point, and the value of the held output data is referred to as the grid point value. For input data other than grid points, for example, output data for (128, 200, 64), etc., the grid point value is generally calculated by a weighted average according to the distance from the grid point. Calculation of output data by weighted averaging of grid point values in this way is called interpolation, and various interpolation methods have been proposed (see Patent Document 4).

なお各軸の格子点の数を格子点数と呼び、前述の例では格子点数は5である。また、各軸の格子点が対応する入力データの値、前述の例では0、64、128、191、255 を格子位置と呼ぶ。また格子位置をその値が小さいものから順につけた番号を格子番号と呼ぶ。例えば前述の例では格子位置0の格子番号は0、格子位置191の格子番号は3となる。なお、前述の例では各軸の格子点数、格子位置がすべて同じとしたが、格子点数も格子位置も各軸ごとに異なるものにすることも可能である。LUTでは内挿により格子点でない入力データに対応する出力データを算出するため、少なくとも入力データの最小値と最大値に対応する格子点は保持する必要があるので格子点数の最小値は2となる。   The number of lattice points on each axis is called the number of lattice points. In the above example, the number of lattice points is 5. Also, the values of the input data corresponding to the grid points of each axis, in the above example, 0, 64, 128, 191 and 255 are called grid positions. A number in which the lattice positions are assigned in ascending order is called a lattice number. For example, in the above example, the lattice number at lattice position 0 is 0, and the lattice number at lattice position 191 is 3. In the above example, the number of grid points and the grid position of each axis are all the same. However, the number of grid points and the grid position may be different for each axis. Since LUT calculates output data corresponding to input data that is not a grid point by interpolation, it is necessary to retain at least the grid points corresponding to the minimum value and the maximum value of the input data, so the minimum value of the number of grid points is 2. .

近年、インクジェットプリンタをはじめとする画像処理装置は銀塩写真を超えるほどの高画質の実現するようになり、その用途をさらに広げるためより多くの用紙の種類に対応することが求められてきている。また、更なる高画質を実現するためにより高精度な色変換処理の実現が求められている。より多くの用紙の種類に対応するためには、それぞれの用紙に最適化された色変換テーブルが必要であるため1つの画像処理装置において使用される色変換テーブルの数はさらに増えている。また、テーブルに補間演算を併用した色変換処理を高精度に行おうとする場合、その色変換テーブルの格子点の数を多くし、補間演算で用いる格子点と入力データの距離を小さくすることが有効な手法の一つである。しかし、格子点数が多くなると1つのLUTのデータ量が大幅に増加することになる。これらの要因により色変換テーブルのデータ量はますます増大し、そのデータを格納するために使用されるメモリー等のリソースを圧迫する結果をもたらしている。   In recent years, an image processing apparatus such as an ink jet printer has realized high image quality exceeding that of a silver salt photograph, and has been demanded to cope with more types of paper in order to further expand its application. . In addition, there is a need for more accurate color conversion processing to achieve higher image quality. In order to cope with more types of paper, a color conversion table optimized for each paper is required, and therefore the number of color conversion tables used in one image processing apparatus is further increased. In addition, when performing color conversion processing using interpolation calculation on a table with high accuracy, the number of grid points in the color conversion table can be increased, and the distance between grid points used in interpolation calculation and input data can be reduced. This is one of the effective methods. However, as the number of grid points increases, the amount of data in one LUT increases significantly. Due to these factors, the amount of data in the color conversion table is increasing, resulting in the pressure on resources such as memory used to store the data.

一方、限られたリソースに相対的に多量のデータを収める技術として、データ圧縮が知られている。しかしながら、既知のデータ圧縮を色変換テーブルの圧縮にそのまま適用しても、十分にデータ量の低減が図れない、つまり高い圧縮率が得られない問題があった。これは以下の理由による。   On the other hand, data compression is known as a technique for storing a relatively large amount of data in a limited resource. However, there is a problem that even if known data compression is applied as it is to the compression of the color conversion table, the data amount cannot be sufficiently reduced, that is, a high compression rate cannot be obtained. This is due to the following reason.

すなわち、色の連続性により色変換テーブルは通常滑らかな、しかし非線形に変化する値の集合として表現されるため、色変換テーブルを走査して得られるデータ列の値も滑らかに変化する。しかしその変化は規則的なものではなく、さらにその値は広い範囲に偏ることなく分布しているからである。   That is, the color conversion table is usually expressed as a set of values that change smoothly but non-linearly due to the continuity of the colors, so that the value of the data string obtained by scanning the color conversion table also changes smoothly. However, the change is not regular, and the values are distributed over a wide range without any bias.

一方、エントロピー符号化を用いた通常の圧縮処理では、同じデータが高い頻度で繰り返し出現すること利用してデータ量の削減を図っている。このため、同じデータが高頻度で表れるデータの圧縮率は高く、そうでないデータの圧縮率は低くなる。色変換テーブルは、色の連続性により、通常滑らかな、しかし非線形に変化する値の集合として表現される。そのため、色変換テーブルの値は入力の変化に応じて滑らかに変化するが、その変化は規則的なものではなく、さらにその値は広い範囲に偏ることなく分布している。このために、既知のさまざまな圧縮アルゴリズムのどのようなものを適用しても色変換テーブルの圧縮率を挙げることは困難であるという問題がある。   On the other hand, in normal compression processing using entropy coding, the amount of data is reduced by utilizing the fact that the same data repeatedly appears at a high frequency. For this reason, the compression rate of data in which the same data appears frequently is high, and the compression rate of data that is not so is low. The color conversion table is usually expressed as a set of values that change smoothly but nonlinearly due to continuity of colors. For this reason, the values of the color conversion table change smoothly according to changes in input, but the changes are not regular, and the values are distributed without being biased over a wide range. For this reason, there is a problem that it is difficult to increase the compression rate of the color conversion table by applying any of various known compression algorithms.

そこで圧縮処理を施す前に色変換テーブルに対して変換処理を施すことで色変換テーブルの圧縮率を向上する手法が提案されている(たとえば特許文献1乃至特許文献3等参照)。
特開平11−017971号公報 特開2002−209114号公報 特開2003−110869号公報 特開昭53−123201号公報
Therefore, a method has been proposed for improving the compression rate of the color conversion table by performing conversion processing on the color conversion table before performing compression processing (see, for example, Patent Document 1 to Patent Document 3).
JP-A-11-017771 JP 2002-209114 A JP 2003-110869 A JP-A-53-123201

しかし、既に提案されている色変換テーブルに対して圧縮処理の前に変換処理を施す手法には、いくつもの欠陥があった。たとえば、(1)圧縮率の向上が十分なものではない。(2)色変換テーブルが一定の条件を満たさないとその手法を適用することができない。(3)個々の色変換テーブルを個別に処理しているため色変換テーブルの数が増加した場合にも個々の色変換テーブルの圧縮率は変化せず、そのため色変換テーブルの数の増加と同じ割合で圧縮後の色変換テーブルの合計データ量も増加してしまう。   However, there have been a number of deficiencies in the proposed method for performing the conversion process before the compression process on the color conversion table. For example, (1) improvement in compression rate is not sufficient. (2) The method cannot be applied unless the color conversion table satisfies a certain condition. (3) Since the individual color conversion tables are processed individually, even when the number of color conversion tables increases, the compression rate of the individual color conversion tables does not change and is therefore the same as the increase in the number of color conversion tables. The total data amount of the color conversion table after compression also increases at a rate.

上記欠陥を解消して変換テーブルの容量を縮小するために、より効率的で汎用的な圧縮処理の手法が必要とされている。   In order to eliminate the above-described defects and reduce the capacity of the conversion table, a more efficient and general-purpose compression processing technique is required.

本発明は、上述の従来例に鑑みてなされたものであり、その目的とするところは、上記欠陥を解消することにある。より具体的には、色変換テーブルをデータ圧縮して記憶媒体に格納する場合に、どのような色変換テーブルにも適応することが可能で、色変換テーブルの数が増加するに従って圧縮率を向上させることが可能である色変換テーブル圧縮方法を提供することにある。   The present invention has been made in view of the above-described conventional example, and an object thereof is to eliminate the above-described defects. More specifically, when the color conversion table is compressed and stored in a storage medium, it can be applied to any color conversion table, and the compression rate improves as the number of color conversion tables increases. Another object of the present invention is to provide a color conversion table compression method that can be performed.

上述の問題を解決するための本発明は以下の構成を備える。すなわち
色変換テーブルを圧縮して記憶媒体に格納するための色変換テーブル圧縮方法であって、
互いに同じ構成を持つ少なくとも2つの色変換テーブルの同一の格子点に対応する値を、前記格子点ごとに一定の順序で配置するマージ処理を、前記色変換テーブルの各格子点に対して行ったマージテーブルを得るマージステップと、
前記マージテーブルに格納されているマージ処理されたデータを圧縮して圧縮マージテーブルとする圧縮ステップと、
前記マージテーブルが前記少なくとも2つの色変換テーブルのデータをマージ処理して得られていることを示す情報と前記圧縮マージテーブルとを記録媒体に格納する格納ステップとを有した。
The present invention for solving the above-described problems has the following configuration. That is, a color conversion table compression method for compressing a color conversion table and storing it in a storage medium,
Merge processing for arranging values corresponding to the same grid points of at least two color conversion tables having the same configuration in a predetermined order for each grid point was performed on each grid point of the color conversion table A merge step to obtain a merge table;
A compression step of compression merging table compresses the merge processing data stored in said merge table,
The merged table had a storage step of storing the at least two recording media and said compressed merge table information indicating that obtained by merging the data in the color conversion table.

あるいは、色変換テーブルを圧縮して記憶媒体に格納するための色変換テーブル圧縮方法であって、
互いに同じ構成を持つ少なくとも2つの色変換テーブルに格納されているデータを、当該色変換テーブルの入力空間を規定する複数の軸それぞれの方向について、隣接する格子間の差分値にそれぞれ変換して少なくとも2つの全軸差分テーブルとする全軸変換ステップと、
前記少なくとも2つの全軸差分テーブルの同一の格子点に対応する値を、前記格子点ごとに一定の順序で配置するマージ処理を、前記全軸差分テーブルの各格子点に対して行ったマージ全軸差分テーブルを得るマージステップと、
当該マージ全軸差分テーブルに格納されているマージ処理されたデータを圧縮して圧縮マージ全軸差分テーブルとするステップと、
当該マージ全軸差分テーブルが前記少なくとも2つの全軸差分テーブルのデータをマージ処理して得られていることを示す情報と当該圧縮マージ全軸差分テーブルを記録媒体に格納するステップとを有した。
Alternatively, a color conversion table compression method for compressing a color conversion table and storing it in a storage medium,
The data stored in the at least two color conversion table having the mutually same configuration, the plurality of axes each direction defining an input space of the color conversion table, at least to convert the respective difference values between adjacent grating An all-axis conversion step for two all-axis difference tables;
Merging said values corresponding to the same lattice points of the at least two full axial difference table, the merge process to place in a certain order for each of the grid points, were performed against the respective lattice points of the entire axial difference table A merge step to obtain an all-axis difference table;
A step of compression merge all axes difference table is compressed merge processing data stored in the merge all axes difference table,
The merge all axes difference table had and storing the at least two full axial difference table recording medium information and the compressed merge all axes difference table indicating that obtained by merging the data.

あるいは、色変換テーブルを圧縮して記憶媒体に格納するための色変換テーブル圧縮方法であって、
互いに同じ構成を持つ少なくとも2つの第1の色変換テーブルを構成する要素を間引いて、データ量の少ない第2の色変換テーブルをそれぞれ作成する間引きステップと、
前記少なくとも2つの第1の色変換テーブルの要素のうち前記第2の色変換テーブルに含まれない要素の値を、前記少なくとも2つの第1の色変換テーブルの要素と前記第2の色変換テーブルを補間して得た要素値との差分値にそれぞれ変換する差分ステップと、
前記少なくとも2つの第2の色変換テーブルと前記差分値とをそれぞれ連結して連結テーブルとする連結ステップと、
前記少なくとも2つの連結テーブルの同一の格子点に対応する値を、前記格子点ごとに一定の順序で配置するマージ処理を、前記連結テーブルの各格子点に対して行ったマージ連結テーブルを得るマージステップと、
当該マージ連結テーブルに格納されているマージ処理されたデータを圧縮して圧縮マージ連結テーブルとするステップと、
当該マージ連結テーブルが前記少なくとも2つの連結テーブルのデータを互いにマージ処理して得られていることを示す情報と、当該圧縮マージ連結テーブルとを記録媒体に格納するステップとを有した。
Alternatively, a color conversion table compression method for compressing a color conversion table and storing it in a storage medium,
A thinning step of thinning out at least two elements constituting the first color conversion table having the same configuration to create a second color conversion table with a small amount of data,
Of the elements of the at least two first color conversion tables, the values of elements not included in the second color conversion table are used as the values of the elements of the at least two first color conversion tables and the second color conversion table. A difference step for converting each to a difference value with an element value obtained by interpolating
A connecting step of connecting the at least two second color conversion tables and the difference values to form a connection table;
A value corresponding to the same lattice point of the at least two connecting tables, a merge process to place in a certain order for each of the lattice points, obtaining merge connection table went against the respective lattice points of the connection table Merge step and
A step of compression merge linked table is compressed merge processing data stored in the merge connection table,
And information indicating that the merging linked table is obtained by merging together the data of the at least two connecting tables had and storing the said compressed merge linked table to the recording medium.

本発明により上述した欠点を解消することができる。詳しくは、本発明により、様々な形態で変換テーブルの格子点値を差分データ化することになり、取りうる範囲全体に分散していた格子点値の大部分が0近辺に偏ることになる。このため、エントロピー符号化を用いた場合に大幅に圧縮率を向上させることができる。特にLUT内での格子点値の差分化と2つ以上のLUTでのマージを合わせて行うことにより、LUTの数が増加した場合にもデータ量の増大を効果的に抑えることが可能になる。   According to the present invention, the above-mentioned drawbacks can be solved. Specifically, according to the present invention, the lattice point values of the conversion table are converted into differential data in various forms, and most of the lattice point values distributed over the entire possible range are biased near zero. For this reason, when entropy coding is used, the compression rate can be greatly improved. In particular, by combining the difference of grid point values in the LUT and merging in two or more LUTs, it is possible to effectively suppress an increase in data amount even when the number of LUTs increases. .

以下、図面を参照して本発明の実施形態を詳細に説明する。まず、すべての実施形態において共通するルックアップテーブル(以下LUT)の構成について説明する。LUTは3つの要素から構成される入力データに対して1つ以上のデータを出力する3次元テーブルである。このような3次元テーブルは、図1に示すように直方体として模式的に表現することができる。直方体における1つの角を原点とすると、その角を形成する3つの辺が入力軸となり、入力データの3つの要素の値が角からの距離と対応する。各格子点には格子点値が格納される。このように変換テーブル1は、規則的にサンプリングした入力データに対する出力データである格子点値を格納している格子点100から構成されている。図1では省略してあるが直方体のかくれている3面および直方体の内部にも規則的に格子点が並んでおり、全体で105個の格子点から構成されている。そして以下の実施形態では、変換テーブルは、RGB3成分の輝度データを入力とし、CMYK4成分の濃度データを出力とする色変換テーブルである。入力データとしてはRGBのほか、CMY、Lab、XYZなどの入力色空間で定義されたデータが想定される。しかし、それらの以外であっても3つの要素のいずれもが有限の範囲をとるデータであれば本発明を適応することができる。また、出力色空間もYMCK色空間に限られない。さらに、たとえばYMCKからRGBへ変換するための色テーブルのように、入力色空間が3次元ではない色空間であり、出力色空間が4次元ではない色空間であっても、各実施形態は適用可能である。さらに、本実施形態は、色変換テーブルと同様に、入力データの変化に応じて出力値が滑らかに変化するが、変化が非線形であり、圧縮しても高圧縮率が得られないような変換テーブル一般に対して適用することもできる。以下では入力データをRGB、出力データをYMCKとする色変換テーブルについて説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. First, a configuration of a lookup table (hereinafter referred to as LUT) common to all embodiments will be described. The LUT is a three-dimensional table that outputs one or more data for input data composed of three elements. Such a three-dimensional table can be schematically expressed as a rectangular parallelepiped as shown in FIG. If one corner of the rectangular parallelepiped is the origin, the three sides forming the corner serve as the input axis, and the values of the three elements of the input data correspond to the distance from the corner. A grid point value is stored in each grid point. As described above, the conversion table 1 is composed of grid points 100 that store grid point values that are output data for regularly sampled input data. Although omitted in FIG. 1, lattice points are regularly arranged on the three surfaces of the rectangular parallelepiped and inside the rectangular parallelepiped, and the lattice points are composed of 105 lattice points as a whole. In the following embodiment, the conversion table is a color conversion table in which luminance data of RGB 3 components is input and density data of CMYK 4 components is output. As input data, in addition to RGB, data defined in an input color space such as CMY, Lab, and XYZ is assumed. However, the present invention can be applied to any data other than those as long as any of the three elements has a finite range. Further, the output color space is not limited to the YMCK color space. Further, each embodiment is applied even when the input color space is not a three-dimensional color space and the output color space is not a four-dimensional color space, such as a color table for converting YMCK to RGB. Is possible. Furthermore, in the present embodiment, like the color conversion table, the output value changes smoothly according to the change of the input data, but the change is non-linear, and the conversion is such that a high compression rate cannot be obtained even if compression is performed. It can also be applied to tables in general. Hereinafter, a color conversion table in which input data is RGB and output data is YMCK will be described.

図1に示した3次元テーブルは、図2のテーブル201〜203に示すように、入力データのうち1つの要素を格子位置ごとに分割し、残りの2つの要素を2次元的に配置して、それぞれを縦軸、横軸に対応づけることでも模式的に表現することができる。この変換テーブルは、出力データの成分をおのおの独立して保持している。つまり3要素からなる入力により1つの値を出力する変換テーブルである。例えばRGBを入力としCMYKの4つの値を出力する変換テーブルは、RGB値に応じてCMYKのそれぞれの値を与える4つの変換テーブルを1組としたものである。したがって、たとえばCの値は入力RGBの値によってのみ決められる、つまりC=Fc(R、G、B)である(FcはC成分の変換テーブルによる写像)。同様にM=Fm(R、G、B)、Y=Fy(R、G、B)、K=Fk(R、G、B) である。このようなLUTは、通常、各色成分のLUTの格子位置は共通である。本実施形態の処理は、処理の対象となる変換テーブルの出力データの次元数がいくつであっても、各成分について個別に適応できる。そのため、以下の説明では出力データを1次元とする。   In the three-dimensional table shown in FIG. 1, as shown in the tables 201 to 203 in FIG. 2, one element of input data is divided for each lattice position, and the remaining two elements are arranged two-dimensionally. These can also be schematically expressed by associating them with the vertical axis and the horizontal axis. This conversion table holds the components of the output data independently. That is, it is a conversion table that outputs one value by an input consisting of three elements. For example, a conversion table that inputs RGB values and outputs four CMYK values is a set of four conversion tables that give CMYK values according to RGB values. Therefore, for example, the value of C is determined only by the value of input RGB, that is, C = Fc (R, G, B) (Fc is a mapping by a conversion table of C components). Similarly, M = Fm (R, G, B), Y = Fy (R, G, B), and K = Fk (R, G, B). In such an LUT, the lattice positions of the LUTs of the respective color components are usually the same. The processing of this embodiment can be individually applied to each component regardless of the number of dimensions of the output data of the conversion table to be processed. Therefore, in the following description, the output data is one-dimensional.

以下の説明では、特にC[i:j:k]という名のLUTを例にして説明する。また、格子点値は全て正の値で8ビットで表されるものとする。各軸の格子番号を決めれば3次元空間での格子位置が確定される。[i:j:k]はR、G、Bの格子番号がそれぞれi、j、kである格子点を表し、C[i:j:k]は3軸の格子番号がそれぞれi、j、kである格子点値を表すものとする。また、R、G、Bの各軸の格子点数をそれぞれN、M、Lとする。視覚的な理解を容易にするために、格子点を3次元に配置した模式図を図1に示したが、LUTを汎用的なデジタル演算処理装置により処理する場合には1次元のテーブルとする必要がある。LUTを1次元テーブルC[x]により表す手法は何通りか存在する。本実施形態では、1次元テーブルにおける位置と、LUTの格子点を図1のように3次元的に配置したときの3次元空間における格子点の隣接関係が最も容易に関係づけられるように、図3に示すような規則によりLUTを1次元テーブル化する。この規則ではC[i:j:k]の格子点値は、1次元テーブルではC[i*M*L+j*L+k]となる。図3は一例としてN=5、M=3、L=7の場合のC[x]とC[i:j:k]との関係を示している。もちろんC[x]とC[i:j:k]との相違は本質的なものではなく、LUTの要素の表現方法の相違にすぎない。したがって本実施形態ではLUTの添え字を一次元の値で説明しているが、3次元で表現した場合でも同様な処理を行える。図3においては、変換テーブルC[x]においては、インデックスx=i*M*L+j*L+kにより特定された要素がアクセスされる。   In the following description, an LUT named C [i: j: k] will be described as an example. Also, all grid point values are positive values and are represented by 8 bits. If the lattice number of each axis is determined, the lattice position in the three-dimensional space is determined. [i: j: k] represents a lattice point whose lattice numbers of R, G, and B are i, j, and k, respectively, and C [i: j: k] represents a triaxial lattice number of i, j, and k, respectively. Let us denote the grid point value k. In addition, the number of grid points on each of the R, G, and B axes is N, M, and L, respectively. In order to facilitate visual understanding, a schematic diagram in which lattice points are arranged three-dimensionally is shown in FIG. 1, but when a LUT is processed by a general-purpose digital arithmetic processing device, a one-dimensional table is used. There is a need. There are several ways to represent an LUT by a one-dimensional table C [x]. In the present embodiment, the position in the one-dimensional table and the adjacent relationship of the lattice points in the three-dimensional space when the lattice points of the LUT are three-dimensionally arranged as shown in FIG. The LUT is made into a one-dimensional table according to the rules shown in FIG. In this rule, the lattice point value of C [i: j: k] is C [i * M * L + j * L + k] in the one-dimensional table. FIG. 3 shows the relationship between C [x] and C [i: j: k] when N = 5, M = 3, and L = 7 as an example. Of course, the difference between C [x] and C [i: j: k] is not essential, only the difference in the expression method of the elements of the LUT. Therefore, in this embodiment, the LUT subscript is described as a one-dimensional value, but the same processing can be performed even when it is expressed in three dimensions. In FIG. 3, in the conversion table C [x], the element specified by the index x = i * M * L + j * L + k is accessed.

1つの格子点が複数の格子点値を保持するLUTの場合は、各格子点値ごとに図4のように第1要素の1次元テーブルの次に第2要素の1次元テーブルを、第2要素の1次元テーブルの次に第3要素の1次元テーブルを圧縮処理の対象とする。このように各要素のテーブルを連結して1つのデータとし、このデータ全体を圧縮処理の対象とする。図4においては、まず入力座標系の各軸の格子点位置401が記述され、次にシアン要素の変換テーブル402が図3の順序で記述され、同様にマゼンタ、黄、黒の各出力要素403〜405について記述される。格子点位置401には、格子点に対応する入力値が好ましくは昇べき又は降べきに、各格子点毎に区別できるように記述されている。たとえば格子点が、0,128,255であれば、この値が区別可能に記述される。もちろん格子位置は各軸ごとに記述される。なお、図4の例では、全出力要素について格子位置が共通である。もしも共通でなければ、RGBの格子点位置が、各色成分の変換テーブルごとに用意される。   In the case of an LUT in which one grid point holds a plurality of grid point values, a 1-dimensional table of the second element is placed next to the 1-dimensional table of the first element as shown in FIG. Next to the one-dimensional table of elements, the one-dimensional table of the third element is the target of compression processing. In this way, the table of each element is concatenated into one data, and this entire data is the object of compression processing. In FIG. 4, the grid point position 401 of each axis of the input coordinate system is first described, and then the cyan element conversion table 402 is described in the order shown in FIG. 3, and similarly each output element 403 of magenta, yellow, and black. ~ 405 are described. In the grid point position 401, an input value corresponding to the grid point is described so that it can be distinguished for each grid point, preferably ascending or descending. For example, if the grid point is 0, 128, 255, this value is described in a distinguishable manner. Of course, the grid position is described for each axis. In the example of FIG. 4, the grid positions are common to all output elements. If not common, RGB grid point positions are prepared for each color component conversion table.

なお、以下の説明において具体的な例を示す場合には図3に示した格子点数がR軸、G軸、B軸それぞれ5、3、7のLUT(総格子点数105)を例とする。もちろん本発明は2以上のいかなる格子点数のLUTに対しても適応可能である。   In the following description, when a specific example is shown, an LUT (total number of grid points of 105) having the grid points shown in FIG. 3 of 5, 3, and 7 respectively for the R axis, the G axis, and the B axis is taken as an example. Of course, the present invention can be applied to LUTs having any number of grid points of 2 or more.

さて、個別の実施形態について説明する前に、本実施形態に示すフローチャートに即したプログラムを実行するコンピュータの構成を説明する。コンピュータは通常の汎用コンピュータである。ホスト装置51と画像出力装置52のハードウェア構成について図29を参照して説明する。図29は情報処理システムを構成するホスト装置(コンピュータ)51と画像出力装置(プリンタ)52のハードウェア構成概要を示すブロック図である。図29に示されているように、ホスト装置51は処理部1000とこれに周辺装置を含めてホスト装置全体が構成されている。また、プリンタ52は、エンジン部および制御回路部から構成されている。   Before describing individual embodiments, the configuration of a computer that executes a program according to the flowchart shown in the present embodiment will be described. The computer is an ordinary general purpose computer. The hardware configuration of the host device 51 and the image output device 52 will be described with reference to FIG. FIG. 29 is a block diagram showing an outline of the hardware configuration of a host device (computer) 51 and an image output device (printer) 52 constituting the information processing system. As shown in FIG. 29, the host device 51 includes the processing unit 1000 and the peripheral device, and the entire host device is configured. The printer 52 includes an engine unit and a control circuit unit.

ホスト装置51の処理部1000は、制御プログラムに従ってホスト装置の全体制御を司るMPU1001、システム構成要素を互いに接続するバス1002、MPU1001が実行するプログラムやデータ等を一時記憶するDRAM1003を含む。さらに、システムバスとメモリバス、MPU1001を接続するブリッジ1004、例えば、CRTなどの表示装置2001にグラフィック情報を表示するための制御機能を備えたグラフィックアダプタ1005を含んでいる。さらに、処理部1000はHDD装置2002aおよびリムーバブルディスク2002bとのインタフェースを司るディスクコントローラ1006を有する。さらに、キーボード2003とのインタフェースを司るキーボードコントローラ1007、IEEE1284あるいはUSB規格に従って画像出力装置52との間の通信を司る、インタフェースである通信I/F1008を備えている。さらに、処理部1000には、グラフィックアダプタ1005を介して操作者にグラフィック情報等を表示する表示装置2001(この例では、CRT)が接続されている。更に、プログラムやデータが格納された大容量記憶装置であるハードディスクドライブ(HDD)装置2002a、キーボード2003が夫々、コントローラを介して接続されている。   The processing unit 1000 of the host device 51 includes an MPU 1001 that controls the entire host device according to a control program, a bus 1002 that connects system components to each other, and a DRAM 1003 that temporarily stores programs executed by the MPU 1001, data, and the like. Further, the system includes a graphic adapter 1005 having a control function for displaying graphic information on a display device 2001 such as a CRT, for example, a bridge 1004 connecting the system bus and the memory bus and the MPU 1001. Further, the processing unit 1000 includes a disk controller 1006 that manages an interface with the HDD device 2002a and the removable disk 2002b. Furthermore, a communication I / F 1008 that is an interface for managing communication with the image output device 52 in accordance with the keyboard controller 1007 that controls the interface with the keyboard 2003, IEEE1284, or USB standard is provided. Furthermore, a display device 2001 (CRT in this example) that displays graphic information and the like to the operator is connected to the processing unit 1000 via a graphic adapter 1005. Further, a hard disk drive (HDD) device 2002a and a keyboard 2003, which are large-capacity storage devices storing programs and data, are connected via a controller.

各実施形態で説明する圧縮された色変換テーブルは、たとえば不図示のネットワークを介してサーバからダウンロードされたり、あるいはリムーバブルディスクの媒体2002bにより電磁データとして提供される。そして提供された色変換テーブルは、HDD2002aに保存される。コンピュータ51では、プリンタ52に対して送信する画像データの変換等を行うプリンタドライバが実行される。HDD2002aに格納された色変換テーブルはこのプリンタドライバにより参照されて、RGB色空間で定義された色から、YMCK色空間で定義された色への色変換が実行される。ここでHDD2002aには、種々の印刷設定に対応して複数の色変換テーブルが圧縮された状態で保存されている。またプリンタドライバは、用紙の種類等の印刷設定を利用者が指定することができるユーザインターフェースを提供している。プリンタドライバは、指定された印刷設定に対応する色変換テーブルを、圧縮された複数の色変換テーブルから選択して復号(本例では、圧縮に対する用語として復号を用いる。伸長と呼ぶ場合もある)する。そして復号した色変換テーブルを色変換のために使用する。   The compressed color conversion table described in each embodiment is downloaded from a server via a network (not shown), or provided as electromagnetic data by a removable disk medium 2002b. The provided color conversion table is stored in the HDD 2002a. The computer 51 executes a printer driver that performs conversion of image data to be transmitted to the printer 52. The color conversion table stored in the HDD 2002a is referred to by the printer driver, and the color conversion from the color defined in the RGB color space to the color defined in the YMCK color space is executed. Here, the HDD 2002a stores a plurality of color conversion tables in a compressed state corresponding to various print settings. The printer driver also provides a user interface that allows the user to specify print settings such as paper type. The printer driver selects a color conversion table corresponding to the designated print setting from a plurality of compressed color conversion tables and decodes it (in this example, decoding is used as a term for compression, sometimes called expansion). To do. The decoded color conversion table is used for color conversion.

[第1実施形態]
<色変換テーブルの圧縮処理>
図5Bは、図1の色変換テーブルを圧縮するフローチャートである。図5Bの手順は本例では、たとえば色変換テーブルを提供するベンダのコンピュータにより実行される。まず、色変換テーブルの第1の出力色成分に着目して(S103)、その着目色成分のLUT変換処理を行う(S104)。本例では出力色がYMCKであるから、たとえばCに着目し、C色成分について、色変換テーブルの変換を行う。そして全色成分に変換が終了したかテストし(S105)、終了していなければ次の色成分に着目して(S106)、LUT変換を行う。一方全色成分にLUT変換が終了していれば、色変換テーブル全体について、可逆圧縮処理を実行し(S107)、圧縮データを記録媒体に保存する(S108)。圧縮した色変換テーブルをたとえばネットワークを介してオンラインで頒布する場合には、記録媒体はHDD2002aである。また、蓄積媒体を介してオフラインで頒布する場合には、記録媒体はリムーバブル媒体である。もちろんHDD2002aからリムーバブル媒体へと複製しても良い。
[First embodiment]
<Color conversion table compression processing>
FIG. 5B is a flowchart for compressing the color conversion table of FIG. In this example, the procedure of FIG. 5B is executed by a vendor computer that provides a color conversion table, for example. First, paying attention to the first output color component of the color conversion table (S103), LUT conversion processing of the target color component is performed (S104). In this example, since the output color is YMCK, for example, paying attention to C, the color conversion table is converted for the C color component. Then, it is tested whether or not the conversion to all the color components is completed (S105). If not, the next color component is focused (S106), and the LUT conversion is performed. On the other hand, if LUT conversion has been completed for all color components, lossless compression processing is executed for the entire color conversion table (S107), and the compressed data is stored in the recording medium (S108). For example, when the compressed color conversion table is distributed online via a network, the recording medium is the HDD 2002a. In addition, when distributing offline via a storage medium, the recording medium is a removable medium. Of course, the HDD 2002a may be copied to a removable medium.

<色変換テーブルの前置変換処理>
図5Aは、本発明の第1実施形態にかかるLUTの変換処理の手順を示すメインフローチャートである。図5BのステップS104において圧縮に先立って実行される。本実施形態のLUTに対する処理は大きく分けてS100、S101、S102の3つのステップに分けられる。各ステップでは、RGBの各軸方向についての軸方向の差分を求める処理をそれぞれ行う。ステップS100の詳細な処理手順を図6のフローチャートに示す。図6による処理対象は、図4の色変換テーブルである。各色成分のテーブルは、図3のように1次元のインデックスでアクセスされる。
<Pre-conversion processing of color conversion table>
FIG. 5A is a main flowchart showing a procedure of LUT conversion processing according to the first embodiment of the present invention. In step S104 of FIG. 5B, this is executed prior to compression. Processing for the LUT according to the present embodiment is roughly divided into three steps S100, S101, and S102. In each step, a process for obtaining a difference in the axial direction for each of the RGB axial directions is performed. The detailed processing procedure of step S100 is shown in the flowchart of FIG. The processing target in FIG. 6 is the color conversion table in FIG. Each color component table is accessed with a one-dimensional index as shown in FIG.

図5AのステップS100では、ある格子点Xの格子点値と、第3軸方向について格子番号が格子点Xよりも一つ小さい隣接格子点の格子点値との差分を求め、その差分を、格子点Xの格子点値として代入する処理を、すべての格子点について行う。なお、3次元の入力色空間の各軸を第1軸、第2軸、第3軸と呼び、本例では、RGB色空間のB成分が第3軸に相当する。   In step S100 of FIG. 5A, the difference between the lattice point value of a certain lattice point X and the lattice point value of an adjacent lattice point whose lattice number is one smaller than the lattice point X in the third axis direction is obtained, and the difference is The process of substituting as the lattice point value of lattice point X is performed for all lattice points. Each axis of the three-dimensional input color space is called a first axis, a second axis, and a third axis. In this example, the B component of the RGB color space corresponds to the third axis.

図6において、ステップS110からS116で、第3軸の格子番号0番の格子点値を除く全ての格子点値を、1つ前の格子点値との差分値とする。ここで注意が必要なのは、差分値とした値を元の格子点値が格納されていた領域に上書きしている点である。このように上書きをせずに差分値を別の領域に格納して処理を行うことも可能であるが、そのような処理では処理対象のLUTの格納領域とは別に差分値を格納するための同じ量の格納領域が必要になる。逆方向に処理を進めることにより差分値を上書きしながらの処理が可能になる。   In FIG. 6, in steps S110 to S116, all grid point values excluding the grid point value of grid number 0 on the third axis are set as difference values from the previous grid point value. It should be noted here that the difference value is overwritten on the area where the original grid point value was stored. In this way, it is possible to store the difference value in another area without overwriting, but in such processing, the difference value is stored separately from the storage area of the processing target LUT. The same amount of storage space is required. By proceeding in the reverse direction, it is possible to perform processing while overwriting the difference value.

図6においては、N,M,Lは色変換テーブルの格子数に応じて決まる定数であり、図4のRGB各色成分の格子点の数がそれぞれN,M,Lに代入される。また、C[x]は、図3のように一次元のインデックスで示した形式の色変換テーブルであり、図6(図7,図8も同様)ではシアン成分を例とした。p,qは変数であり、DRAM1003に変数として確保される。   In FIG. 6, N, M, and L are constants determined according to the number of grids in the color conversion table, and the numbers of grid points of the RGB color components in FIG. 4 are substituted into N, M, and L, respectively. C [x] is a color conversion table having a one-dimensional index format as shown in FIG. 3, and a cyan component is taken as an example in FIG. 6 (the same applies to FIGS. 7 and 8). p and q are variables, which are secured in the DRAM 1003 as variables.

変数pは第2軸(すなわちG)方向についての格子点位置を示す。1次元で格子点位置(インデックス)xを与える式x=i*M*L+j*L+k=(i*M+j)*L+kに即して説明すると、p=(i*M+j)*Lに相当する。MおよびLは定数であり、pはLを単位として増加するから、pが与えられれば第1軸方向の格子位置iと第2軸方向の格子位置jは定まる。また変数qはkに相当する。すなわちqにより第3軸方向の格子位置が定まる。ステップS113〜S115では、変数pで定まる第1軸および第2軸の格子位置において、第3軸すなわちqの値をまず最大値すなわちL−1とする。その格子点を着目格子点として、着目格子点の格子点値から、当該第3軸上で着目格子点に隣接する格子点の格子点値を差し引き、その値を着目格子点の値として上書きする。ただしここで隣接する格子点とは、着目格子点よりも格子位置がちいさい方向に隣接する格子点である。これを、着目格子位置を、第3軸上で1ずつ小さくしながら繰り返す。k=q=0の格子位置は差分をとる相手が存在しないので、q>0についてのみ行われる。そしてステップS116では、差分計算する格子位置を、第2軸方向に1ずらす。   The variable p indicates the lattice point position with respect to the second axis (ie, G) direction. The description is given in accordance with the formula x = i * M * L + j * L + k = (i * M + j) * L + k that gives the lattice point position (index) x in one dimension. P = (i * M + j) * L. Since M and L are constants and p increases with L as a unit, the lattice position i in the first axis direction and the lattice position j in the second axis direction are determined if p is given. The variable q corresponds to k. That is, the lattice position in the third axis direction is determined by q. In steps S113 to S115, the value of the third axis, that is, q is first set to the maximum value, that is, L-1, at the lattice positions of the first axis and the second axis determined by the variable p. Using the grid point as the target grid point, the grid point value of the grid point adjacent to the target grid point on the third axis is subtracted from the grid point value of the target grid point, and the value is overwritten as the value of the target grid point. . However, the adjacent lattice points here are lattice points adjacent in the direction in which the lattice position is smaller than the lattice point of interest. This is repeated while decreasing the target lattice position by 1 on the third axis. The lattice position of k = q = 0 is performed only for q> 0 because there is no partner to obtain the difference. In step S116, the lattice position where the difference is calculated is shifted by 1 in the second axis direction.

この処理は、LUTを図1のような格子点を三次元的に配置した直方体とした場合にB軸方向に隣り合う格子点値の差分を算出することに対応する。この差分処理により格子点値がB軸方向の変化量になる。   This processing corresponds to calculating a difference between lattice point values adjacent in the B-axis direction when the LUT is a rectangular parallelepiped in which lattice points are three-dimensionally arranged as shown in FIG. By this difference processing, the lattice point value becomes the amount of change in the B-axis direction.

ここで本実施形態での差分を算出する処理について説明する。通常、2つの値a、bの差分dはd=a−bとして、a>=bなら正、a<bなら負という符号付きの値として算出される。そのように演算した場合、aおよびbが8ビットの0〜255の値であっても差分dは−255〜255となり、符号付きの正しい差を記録するために符号ビットを含めた9ビットが必要となる。しかし、本発明における差分では2つの値の正しい差は必要ではなく、復元が可能であれば十分である。そこで差分処理を次にプログラミング言語であるC言語で示す処理のように行うことにより、差分dを0〜255、つまり8ビットで表せる範囲の値とすることができる。
d=a−b;
if ( d<0 ){
d=d+256;
}。
Here, the process of calculating the difference in the present embodiment will be described. Normally, the difference d between the two values a and b is calculated as a signed value d = a−b, positive if a> = b and negative if a <b. In such an operation, even if a and b are values of 0 to 255 of 8 bits, the difference d is -255 to 255, and 9 bits including the sign bit are recorded in order to record a signed difference. Necessary. However, the difference in the present invention does not require a correct difference between the two values, and it is sufficient if restoration is possible. Therefore, the difference d can be set to 0 to 255, that is, a value that can be expressed in 8 bits, by performing the difference processing as in the next processing indicated by C language as a programming language.
d = a−b;
if (d <0) {
d = d + 256;
}.

また差分dとbの値からaの値を復元する併合処理は次のように行う。
a=b+d;
if ( a>=256 ){
a=a−256;
}。
Further, the merging process for restoring the value a from the values of the differences d and b is performed as follows.
a = b + d;
if (a> = 256) {
a = a-256;
}.

これら演算は、8ビットを越える桁数で演算した場合処理であって、たとえば演算の桁数を8ビットに限れば、符号(サイン)なし減算及び符号なし加算を用いることで、条件処理を行うことなく上記差分処理及び併合処理をそれぞれ実現できる。   These operations are performed when the number of digits exceeding 8 bits is calculated. For example, if the number of digits of the operation is limited to 8 bits, conditional processing is performed by using unsigned subtraction and unsigned addition. The difference process and the merge process can be realized without any problem.

この差分・併合処理による幾つかの演算例を示す。
差分 82 − 57 = 25、
併合 57 + 25 = 82、
差分 228 − 3 = 225、
併合 225 + 3 = 228、
差分 57 − 82 = −25、 −25 + 256 = 231、
併合 82 + 231 = 313、 313 − 256 = 57、
差分 0 − 255 = −255、 −255 + 256 = 1、
併合 255 + 1 = 256、 256 − 256 = 0、
差分 23 − 254 = −231、 −231 + 256 = 25、
併合 254 + 25 = 279、 279 − 256 = 23。
Some calculation examples by the difference / merging process are shown.
Difference 82-57 = 25,
Merge 57 + 25 = 82,
Difference 228−3 = 225,
Merger 225 + 3 = 228,
Difference 57−82 = −25, −25 + 256 = 231,
Merge 82 + 231 = 313, 313-256 = 57,
Difference 0-255 = -255, -255 + 256 = 1,
Merge 255 + 1 = 256, 256-256 = 0,
Difference 23−254 = −231, −231 + 256 = 25,
Merged 254 + 25 = 279, 279-256 = 23.

この差分・併合処理を任意のビット数pに適用できるよう一般化すると、
差分:
d=a−b;
if ( d < 0 ){
d=d+2^p;
}。
併合:
a=b+d;
if ( a>=2^p ){
a=a−2^p;
}。
となる。ここで2^pは2のp乗である。なお、p桁の符号なし演算を用いれば、上記条件処理(if以下の処理)は不要となる。
Generalizing this difference / merging process to any number of bits p,
Difference:
d = a−b;
if (d <0) {
d = d + 2 ^ p;
}.
Merger:
a = b + d;
if (a> = 2 ^ p) {
a = a−2 ^ p;
}.
It becomes. Here 2 ^ p is 2 to the power of p. If a p-digit unsigned operation is used, the above condition processing (processing after if) is not necessary.

格子点値が符号付きで負の値も取り得る場合は、符号付きの格子点値を符号ビットも含めて正の値と見なすことにより上記の差分処理を適用することができる。併合も処理自体は上記の処理のまま、上記併合処理により得られた値を符号付きの値と見なすだけで対応することができる。   When the grid point value is signed and can take a negative value, the difference processing described above can be applied by regarding the signed grid point value as a positive value including the sign bit. The merging can be handled by simply considering the value obtained by the merging process as a signed value while the process itself is the above-described process.

結局ステップS110からS116までの処理は次の式で表すことができる。
C[i:j:k] ← C[i:j:k] − C[i:j:k−1]、 i=0〜N−1、j=0〜M−1、k=L−1〜1。
Eventually, the processing from step S110 to S116 can be expressed by the following equation.
C [i: j: k] ← C [i: j: k] −C [i: j: k−1], i = 0 to N−1, j = 0 to M−1, k = L−1 ~ 1.

図9に5つの値に対して逆方向に差分処理を行ったときの各値の変化するようすを示す。図6の手順では、ひとつの変換テーブルが順次書き替えられていくが、図9では説明の便宜から更新前と更新後のテーブルを別々に示した。図9のテーブルは、テーブルC[i:j:k]において、インデックスi及びjを一定値とし、第3軸(k)方向の格子点値を格子位置の順に並べたものである。一番左のテーブル901が初期の状態であり、右にいくに従い最下段の格子点値から順に、そのひとつ前の格子点値との差分に更新されている。処理が終了したテーブル905では、一番上の格子点値を除いて、すべてひとつ前の格子点値との差分値となる。なお、逆に図9の右から順に、上の値をひとつ下の値に加算(併合)してゆくと、左端の初期の状態に戻すことができる。   FIG. 9 shows how each value changes when difference processing is performed in the reverse direction for five values. In the procedure of FIG. 6, one conversion table is rewritten sequentially, but FIG. 9 shows the table before and after the update separately for convenience of explanation. The table of FIG. 9 is obtained by arranging the index points i and j in the table C [i: j: k] as constant values and arranging the grid point values in the third axis (k) direction in the order of the grid positions. The leftmost table 901 is in an initial state, and is updated to the difference from the previous grid point value in order from the lowest grid point value as going to the right. In the table 905 that has been processed, all the difference values from the previous lattice point value are obtained except for the uppermost lattice point value. On the other hand, when the upper value is added (merged) to the lower value in order from the right in FIG. 9, the initial state at the left end can be restored.

次にステップS101の詳細な処理手順を図7のフローチャートに示す。図7のステップS120からS126では、第2軸の格子点番号0番の格子点値を除く全ての格子点値を、格子点数L前の格子点値との差分値としている。ステップS110からS116と同様にここでも逆方向に処理を進めることにより差分値を上書きしながら処理を行う。この処理は、LUTを図1のような格子点を三次元的に配置した直方体とした場合に、G軸(第2軸)方向に隣り合う格子点値の差分を算出することに対応する。図7では、N、M、Lの値は図6と同様である。変数pはR(第1軸)方向のインデックスを示す。変数qは、変数pで与えられるBG面上における格子点位置を示す。そしてqの初期値はM*L−1すなわちG軸およびB軸とも最大値の格子点を示す。その位置からB軸に沿って1ずつ着目格子点を移動しつつ、差分を計算する。   Next, the detailed processing procedure of step S101 is shown in the flowchart of FIG. In steps S120 to S126 of FIG. 7, all the grid point values except the grid point value of grid point number 0 on the second axis are set as the difference values from the grid point values before the grid point number L. Similarly to steps S110 to S116, the process is performed in the reverse direction while overwriting the difference value. This processing corresponds to calculating the difference between the lattice point values adjacent in the G-axis (second axis) direction when the LUT is a rectangular parallelepiped in which lattice points are three-dimensionally arranged as shown in FIG. In FIG. 7, the values of N, M, and L are the same as those in FIG. The variable p indicates an index in the R (first axis) direction. A variable q indicates a lattice point position on the BG plane given by the variable p. The initial value of q indicates M * L-1, that is, the maximum lattice point on both the G and B axes. The difference is calculated while moving the target grid point one by one along the B axis from that position.

ステップS120からS126までの処理は次の式で表すことができる。
C[i:j:k]←C[i:j:k]−C[i:j−1:k]、i=0〜N−1、j=M−1〜1、k=0〜L−1。
また、図6の処理を前提とすれば、C[i:j:k] = C[i:j:k] − C[i:j:k−1],C[i:j−1:k] = C[i:j−1:k] − C[i:j−1:k−1]である。したがって、
C[i:j:k]←(C[i:j:k]-C[i:j:k-1])-(C[i:j-1:k]-C[i:j-1:k-1])
となる。
The processing from step S120 to S126 can be expressed by the following equation.
C [i: j: k] ← C [i: j: k] −C [i: j−1: k], i = 0 to N−1, j = M−1 to 1, k = 0 to L -1.
Further, assuming the processing of FIG. 6, C [i: j: k] = C [i: j: k] −C [i: j: k−1], C [i: j−1: k ] = C [i: j−1: k] −C [i: j−1: k−1]. Therefore,
C [i: j: k] ← (C [i: j: k] -C [i: j: k-1])-(C [i: j-1: k] -C [i: j-1 : k-1])
It becomes.

次にステップS102の詳細な処理手順を図8のフローチャートに示す。ステップS130からS133で第1軸の格子点番号0番の格子点値を除く全ての格子点値を、格子点数のM*L前の格子点値との差分値とする。この処理はLUTを図1のような格子点を三次元的に配置した直方体とした場合にR軸方向に隣り合う格子点値の差分を算出することに対応する。図8では、MNLの値は図6と同様である。変数qは、色変換テーブルの1次元のインデックスを示す。そしてqの初期値はNML−1すなわち図3のテーブルの末尾である。その位置から1ずつ着目格子点を移動しつつ、第1軸方向について隣接する格子点との差分を計算する。   Next, the detailed processing procedure of step S102 is shown in the flowchart of FIG. In steps S130 to S133, all the grid point values excluding the grid point value of grid point number 0 on the first axis are set as difference values from the grid point values before M * L of the number of grid points. This processing corresponds to calculating a difference between lattice point values adjacent in the R-axis direction when the LUT is a rectangular parallelepiped in which lattice points are three-dimensionally arranged as shown in FIG. In FIG. 8, the value of MNL is the same as in FIG. A variable q indicates a one-dimensional index of the color conversion table. The initial value of q is NML-1, that is, the end of the table of FIG. While moving the target lattice point from the position one by one, the difference from the adjacent lattice point in the first axis direction is calculated.

ステップS130からS133までの処理は次の式で表すことができる。
C[i:j:k] ←C[i:j:k]−C[i−1:j:k] 、i=N−1〜1、j=0〜M−1、k=0〜L−1。
The processing from step S130 to S133 can be expressed by the following equation.
C [i: j: k] ← C [i: j: k] −C [i−1: j: k], i = N−1 to 1, j = 0 to M−1, k = 0 to L -1.

また、図6および図7の処理を前提とすれば、テーブルCの全軸差分値C'は以下のように表せる。
C'[i:j:k] ← ((C[i:j:k]-C[i:j:k-1])-(C[i:j-1:k]-C[i:j-1:k-1]))-((C[i-1:j:k]-C[i-1:j:k-1])-((C[i-1:j-1:k]-C[i-1:j-1:k-1]))
=C[i:j:k]-C[i:j:k-1]-C[i:j-1:k]-C[i-1:j:k]
+C[i:j-1:k-1]+C[i-1:j:k-1]+C[i-1:j-1:k]-C[i-1:j-1:k-1] ...(数式1)。
Further, assuming the processing of FIGS. 6 and 7, the all-axis difference value C ′ of the table C can be expressed as follows.
C '[i: j: k] ← ((C [i: j: k] -C [i: j: k-1])-(C [i: j-1: k] -C [i: j -1: k-1]))-((C [i-1: j: k] -C [i-1: j: k-1])-((C [i-1: j-1: k ] -C [i-1: j-1: k-1]))
= C [i: j: k] -C [i: j: k-1] -C [i: j-1: k] -C [i-1: j: k]
+ C [i: j-1: k-1] + C [i-1: j: k-1] + C [i-1: j-1: k] -C [i-1: j-1: k-1] (Formula 1).

このように、以上の処理により[0:0:0]以外の全ての格子点値が差分値となる。ただし、数式1において、該当する格子点が存在しない項の値は0とする。この結果、座標[0:0:0]等、マトリクス端部の格子点を含む全ての格子点を数式1(ただし書きも含む)によって表すことができる。数式1により表される値のことを本実施形態では全軸差分と呼ぶ。なお、着目格子点[i:j:k]に関する差分値の求め方は数式1にはかぎられない。上記例では格子点[0:0:0]の値は差分が求められない値である。これは、各軸方向についての差分値は独立して計算することができるためである。すなわち、各軸方向について、着目格子点のマイナス方向にある隣接格子点を差し引くか(これは上記例である。)、それとも着目格子点のプラス方向にある隣接格子点を差し引くかは選択事項である。したがって、格子点[0:0:0]のように減ずる値(すなわち差分計算の第2項)としかならない格子点を差分原点とよぶとすれば、マトリクスの8隅点のどこを差分原点として選んでも良いはずである。したがって、数式1の"i−1"、"j−1"、"k−1"をそれぞれ"i+1"、"j+1"、"k+1"に置換した数式もやはり全軸差分を表す。すべてを置換せずに、一部を置換した場合も同様である。したがって全軸差分C'[i:j:k]の定義を一般化すると以下のようになる。
C'[i:j:k]=C[i:j:k]-C[i:j:k-a3]-C[i:j-a2:k]-C[i-a1:j:k]
+C[i:j-a2:k-a3]+C[i-a1:j:k-a3]+C[i-a1:j-a2:k]-C[i-a1:j-a2:k-a3]...(数式1')。
ただし、a1,a2,a3は、−1または1であり、該当する格子点が存在しない項の値は0とする。
As described above, all the grid point values other than [0: 0: 0] become the difference values by the above processing. However, in Equation 1, the value of the term where the corresponding grid point does not exist is 0. As a result, all the lattice points including the lattice point at the end of the matrix, such as the coordinates [0: 0: 0], can be expressed by Equation 1 (including writing). In the present embodiment, the value represented by Expression 1 is referred to as an all-axis difference. It should be noted that the method of obtaining the difference value regarding the target lattice point [i: j: k] is not limited to Equation 1. In the above example, the value of the grid point [0: 0: 0] is a value from which a difference cannot be obtained. This is because the difference value for each axial direction can be calculated independently. That is, for each axial direction, whether to subtract adjacent grid points in the minus direction of the target grid point (this is the above example) or whether to subtract adjacent grid points in the positive direction of the target grid point is a matter of choice. is there. Therefore, if a lattice point that has only a reduced value (that is, the second term of the difference calculation) such as a lattice point [0: 0: 0] is called a difference origin, any of the eight corner points of the matrix is set as the difference origin. You should be able to choose. Therefore, the mathematical expressions in which “i−1”, “j−1”, and “k−1” in Equation 1 are replaced with “i + 1”, “j + 1”, and “k + 1”, respectively, also represent all-axis differences. The same applies when a part is replaced without replacing all. Therefore, generalizing the definition of the all-axis difference C ′ [i: j: k] is as follows.
C '[i: j: k] = C [i: j: k] -C [i: j: k-a3] -C [i: j-a2: k] -C [i-a1: j: k ]
+ C [i: j-a2: k-a3] + C [i-a1: j: k-a3] + C [i-a1: j-a2: k] -C [i-a1: j-a2: k-a3] ... (Formula 1 ').
However, a1, a2 and a3 are −1 or 1, and the value of the term where the corresponding lattice point does not exist is 0.

換言すれば、これまでの説明では各軸の差分をとらない格子点値を0番目の格子点値としたが、0番目ではなく各軸の最後の格子点値を、差分をとらない格子点とすることができる。例えば第3軸で最後の格子点値を差分をとらないとした場合には、ステップS110からS116のループは0〜L−2の範囲を0から順方向にまわることになる。これは第3軸の逆方向とするために、数式1'におけるパラメータを、a1=−1、a2=1、a3=1として全軸差分を計算する手順に相当する。   In other words, in the above description, the lattice point value that does not take the difference of each axis is the 0th lattice point value, but the last lattice point value of each axis is not the 0th lattice point value. It can be. For example, if the last grid point value on the third axis is not taken as a difference, the loop from step S110 to S116 goes from 0 to L-2 in the forward direction from 0. This is equivalent to the procedure for calculating the all-axis difference by setting the parameters in Equation 1 ′ as a1 = −1, a2 = 1, and a3 = 1 so as to be in the reverse direction of the third axis.

これまで説明した第1の実施形態では、まず第3軸方向の差分処理を行い、続いて第2軸方向、最後に第1軸方向と差分処理を行っている。この順番は任意に変更して処理を実施することが可能であり、3軸方向全ての差分処理が終了した段階では全く同一の結果を得ることができる。このことは、数式1から明らかであろう。すなわち、これまでの説明で各軸方向の差分処理が相互に依存していないこと、差分処理がその順番を変えても同じ結果が得られることから明らかである。   In the first embodiment described so far, difference processing in the third axis direction is first performed, then difference processing is performed in the second axis direction, and finally in the first axis direction. This order can be arbitrarily changed and the process can be carried out, and exactly the same result can be obtained at the stage where all the differential processes in the three axial directions are completed. This will be clear from Equation 1. That is, it is clear from the above description that the difference processing in each axis direction does not depend on each other and that the same result can be obtained even if the difference processing changes its order.

なお、ここまで説明した処理を実施しても変換テーブルのデータ量は全く変化しない。つまり変換テーブルが格納する値を圧縮が効果的に行えるように変換する処理であって、データ量を削減する圧縮処理ではない。だたし、格子点値を3軸方向に差分をとることにより、偏りなく分散していた格子点値が0または255の近辺の値に集中するようになる。なぜなら色変換のためのLUTの格子点値は多くの場合滑らかに変化しているため、3軸方向の差分をとることは格子点値を小さくすることにつながるからである。なお、255は−1に相当する値である。0付近の値は、2進数で表現すれば比較的長いリーディング0の後に、短い桁の1が表れる数値である。255付近の値は、2進数で表現すれば比較的長いリーディング1の後に、短い桁の0が表れる数値である。このような値をエントロピ符号化、たとえばランレングスを利用した圧縮法で可逆圧縮すれば、高圧縮率で圧縮できる。なお各軸の格子位置401は、変換テーブルを構成するデータの一部である。したがって、格子位置401は全軸差分の処理対象とはならないが、圧縮されたLUTの一部として、あるいは圧縮されたLUTとともに、LUTを利用するコンピュータに提供される。   Note that the amount of data in the conversion table does not change at all even when the processing described so far is performed. That is, it is a process of converting the values stored in the conversion table so that compression can be performed effectively, and is not a compression process that reduces the amount of data. However, by taking the difference of the grid point values in the three-axis directions, the grid point values that have been distributed without deviation are concentrated on values in the vicinity of 0 or 255. This is because the lattice point values of the LUT for color conversion change smoothly in many cases, and taking a difference in the three-axis direction leads to a reduction in the lattice point value. Note that 255 is a value corresponding to -1. A value near 0 is a numerical value in which a short digit 1 appears after a relatively long reading 0 when expressed in binary. The value near 255 is a numerical value in which a short digit 0 appears after a relatively long reading 1 in binary numbers. If such a value is reversibly compressed by entropy coding, for example, a compression method using run length, it can be compressed at a high compression rate. Note that the lattice position 401 of each axis is a part of data constituting the conversion table. Accordingly, the grid position 401 is not a target for all-axis difference processing, but is provided to a computer that uses the LUT as a part of the compressed LUT or together with the compressed LUT.

以上説明してきた3軸方向全ての差分処理をおのおの全ての出力データに施し、図4のようにそれらを連結して得られたデータに対して、図5BのステップS107において圧縮処理を実施する。圧縮処理としては完全に元のデータを復元できる手法、いわゆる可逆圧縮あるいはロスレス圧縮、であればどのような手法であっても適応することができる。一例としてランレングス圧縮やUSP4558302に開示されているLZW圧縮として知られる手法などがある。   The above-described differential processing in all three axes is performed on all output data, and compression processing is performed on the data obtained by connecting them as shown in FIG. 4 in step S107 in FIG. 5B. As a compression process, any technique can be applied as long as it is a technique that can completely restore the original data, so-called lossless compression or lossless compression. As an example, there is a method known as run length compression or LZW compression disclosed in US Pat. No. 4,558,302.

<復元処理>
このように3軸方向に差分処理を行った後、圧縮処理を施したデータを利用して変換処理を実施する処理手順を、図30Bに示す。この処理は、入力された印刷設定に対応した着目色変換テーブルを利用するプリンタドライバが、そのプリンタドライバがインストールされたコンピュータにおいて、着目色変換テーブルを対象として実行する。また、本実施形態では、図30Bの復元プログラムは、図5Bのプログラムによって圧縮された色変換テーブルと共にコンピュータにロードされる。ただし、圧縮された色変換テーブルと復元プログラムは別々に同じコンピュータにロードされても良い。
<Restore process>
FIG. 30B shows a processing procedure for performing the conversion process using the data subjected to the compression process after performing the difference process in the three-axis directions as described above. This process is executed for a target color conversion table by a printer driver that uses the target color conversion table corresponding to the input print setting in a computer in which the printer driver is installed. In the present embodiment, the restoration program in FIG. 30B is loaded into the computer together with the color conversion table compressed by the program in FIG. 5B. However, the compressed color conversion table and the restoration program may be loaded separately on the same computer.

まず、圧縮の復号処理を行う(S3503)。可逆圧縮処理であるので、3軸方向に差分処理を行った後のデータ、すなわち図5BのステップS107直前のデータを取得することができる。   First, compression decoding processing is performed (S3503). Since it is a reversible compression process, it is possible to acquire the data after performing the difference process in the three-axis directions, that is, the data immediately before step S107 in FIG. 5B.

次にLUT復元処理を行って、差分処理された変換テーブルを復元する(S3505)。これを出力色空間の各色成分について繰り返す(S3506、S3507)。復元が終了したなら、復元した色変換テーブルを、DRAM1003あるいはHDD2002aに保存する。保存された色変換テーブルは、色変換のために参照される。LUT復元処理は差分処理とほぼ同じ手順である。ただし以下の2点が異なる。第1に、着目格子点値に、そのひとつ前の格子点値を併合(加算)することである。第2は、順方向に併合処理を進めることである。併合処理を順方向に進めるのは、復号済みのテーブルの格子点値に差分を併合する必要があるためである。   Next, LUT restoration processing is performed to restore the conversion table subjected to the difference processing (S3505). This is repeated for each color component in the output color space (S3506, S3507). When the restoration is completed, the restored color conversion table is stored in the DRAM 1003 or the HDD 2002a. The stored color conversion table is referred to for color conversion. The LUT restoration process is almost the same as the difference process. However, the following two points are different. First, the previous grid point value is merged (added) to the target grid point value. The second is to proceed with the merge process in the forward direction. The reason why the merging process proceeds in the forward direction is because the difference needs to be merged with the lattice point values of the decoded table.

図30AにLUT復号処理の手順を示す。また、図33、図32、図31に、図30AのステップS3500〜S3502それぞれを示す。図31、図32、図33の処理は、それぞれ図6乃至図8の手順のほぼ逆をなぞる処理である。しかし、上記2点が守られれば、着目する軸方向以外の方向に対するテーブルの走査の順序はどのような順序であっても良いので、その順序は必ずしも図6乃至図8それぞれの逆になってはいない。復元処理により、以下の変換がされる。
C[i:j:k] ← C[i:j:k] + C[i:j:k−1]、i=0〜N−1、j=0〜M−1、k=1〜L−1、
C[i:j:k] ← C[i:j:k] + C[i:j−1:k]、i=0〜N−1、j=1〜M−1、k=0〜L−1、
C[i:j:k] ← C[i:j:k] + C[i−1:j:k]、i=1〜N−1、j=0〜M−1、k=0〜L−1。
FIG. 30A shows the procedure of the LUT decoding process. 33, 32, and 31 show steps S3500 to S3502 of FIG. 30A, respectively. The processing of FIGS. 31, 32, and 33 is processing that substantially reverses the procedure of FIGS. However, as long as the above two points are observed, the scanning order of the table in the direction other than the axial direction of interest may be any order, and the order is not necessarily the reverse of that in FIGS. No. The following conversion is performed by the restoration process.
C [i: j: k] ← C [i: j: k] + C [i: j: k-1], i = 0 to N-1, j = 0 to M-1, k = 1 to L -1,
C [i: j: k] ← C [i: j: k] + C [i: j-1: k], i = 0 to N-1, j = 1 to M-1, k = 0 to L -1,
C [i: j: k] ← C [i: j: k] + C [i-1: j: k], i = 1 to N-1, j = 0 to M-1, k = 0 to L -1.

図30Aの例では、図5Aと逆の順序で復元を行っている。しかし、差分処理を行う順番と、差分処理を復元する順番は無関係に実施することができる。たとえば、B軸方向、G軸方向、R軸方向の順に差分処理を行ったとしても、差分処理の復元をG軸、B軸、R軸の順のように、順不同で復元処理を行うことができる。なぜなら、差分処理をどのような順序で行っても得られる結果が変わらないのと同じ理由で、差分処理の復元をどのような順序で行っても結果には変化がないからである。この結果、色変換テーブルには元の値が復元される。   In the example of FIG. 30A, restoration is performed in the reverse order of FIG. 5A. However, the order in which the difference processing is performed and the order in which the difference processing is restored can be performed independently. For example, even if the difference processing is performed in the order of the B-axis direction, the G-axis direction, and the R-axis direction, the restoration processing of the difference processing may be performed in any order, such as the order of the G-axis, B-axis, and R-axis. it can. This is because the result does not change regardless of the order in which the differential processing is restored, for the same reason that the obtained result does not change regardless of the order in which the differential processing is performed. As a result, the original value is restored in the color conversion table.

以上の手順により本実施形態によれば、色変換テーブルの特徴を利用して、色変換テーブルを高圧縮率で圧縮することができる。また、変換および逆変換によって失われる情報がない。   According to the present embodiment by the above procedure, the color conversion table can be compressed at a high compression rate by using the characteristics of the color conversion table. Also, no information is lost due to conversion and inverse conversion.

[第2実施形態]
本実施形態も第1の実施形態と同様に、隣接する格子点値の相関性を活用して圧縮処理の効果を高める手法である。本実施形態では隣接する格子点値の単純な差分を取るのではなく、近隣の格子点値を用いた補間により得られる値と実際の格子点値の差分を取ることにより格子点値を0近辺の値に変換する。本実施形態は、変換精度を向上さるために格子数を増大させたLUTの圧縮に特に有効である。図10は、本発明の第2実施形態にかかるLUTの変換処理の手順を示すメインフローチャートである。なお、圧縮手順は図5Bに示したものと同一である。ただし、ステップS104が図10の手順となる。なお本実施形態でも、第1実施形態と同様に出力色成分(YMCK)それぞれの変換テーブルのうち、C成分の変換テーブルを例として説明するが、全ての色成分について同様に本実施形態の変換処理(図10)は適用され、その後に圧縮が行われる。
[Second Embodiment]
Similar to the first embodiment, this embodiment is a technique for enhancing the effect of compression processing by utilizing the correlation between adjacent grid point values. In this embodiment, instead of taking a simple difference between adjacent grid point values, a grid point value is set to a value near 0 by taking a difference between an actual grid point value and a value obtained by interpolation using neighboring grid point values. Convert to the value of. This embodiment is particularly effective for compression of LUTs in which the number of lattices is increased in order to improve conversion accuracy. FIG. 10 is a main flowchart showing a procedure of LUT conversion processing according to the second embodiment of the present invention. The compression procedure is the same as that shown in FIG. 5B. However, step S104 is the procedure of FIG. In this embodiment as well, as in the first embodiment, the C component conversion table of the output color component (YMCK) conversion tables will be described as an example. However, the conversion of this embodiment is similarly applied to all color components. Processing (FIG. 10) is applied, followed by compression.

本実施形態は大きく分けてステップS204の縮小LUT作成とステップS205の差分データ作成から構成される。さらにステップS204とステップS205とを、格子点数を減少させながら繰り返し処理を行う。図10において、まずN、M、Lの値をセットする(S200〜S201)。これらの値の意味は、第1実施形態の図6乃至図8と同様である。そして縮小LUTが、補間可能な最小のサイズ、すなわち各座標軸の格子点が2となるまでステップS204において間引き処理を行う。ステップS205において、縮小LUTの補間値と、その補間値に対応する、間引き前のLUTの格子点の値との差分データを、各格子点毎に求めて差分テーブルを作成する。図11は縮小LUT作成処理の手順を示すフローチャートである。   The present embodiment is broadly composed of reduced LUT creation in step S204 and difference data creation in step S205. Further, step S204 and step S205 are repeated while decreasing the number of grid points. In FIG. 10, first, values of N, M, and L are set (S200 to S201). The meaning of these values is the same as in FIGS. 6 to 8 of the first embodiment. Then, the thinning process is performed in step S204 until the reduction LUT has a minimum size that can be interpolated, that is, the grid point of each coordinate axis becomes 2. In step S205, difference data between the interpolation value of the reduced LUT and the grid point value of the LUT before thinning corresponding to the interpolation value is obtained for each grid point, and a difference table is created. FIG. 11 is a flowchart showing the procedure of the reduced LUT creation process.

図11では、格子番号が偶数であるか、または最後の格子点である格子点値は縮小LUT(縮小後のLUT)の格子点値とする。この処理を第1軸から第3軸の全ての軸に対して適応することで格子点数をほぼ半減した縮小LUTを作成する。例えば3軸全ての格子点数が17のLUTからは各軸について9格子点の縮小LUTが作成される。縮小はマトリク成分の間引きによって実現される。なお図11の手順は、変換テーブルを3次元のインデックスで表して実現されている。もちろん第1実施形態のように1次元のインデックスで表しても、第1実施形態で示した変換式に則って、図11と同様に間引き処理を実現できる。   In FIG. 11, the grid point value that is an even grid number or the last grid point is the grid point value of the reduced LUT (reduced LUT). By applying this process to all axes from the first axis to the third axis, a reduced LUT in which the number of lattice points is almost halved is created. For example, a reduced LUT with 9 grid points is created for each axis from an LUT with 17 grid points on all 3 axes. Reduction is realized by decimation of matrix components. The procedure of FIG. 11 is realized by expressing the conversion table with a three-dimensional index. Of course, even if it is expressed by a one-dimensional index as in the first embodiment, thinning-out processing can be realized in the same manner as in FIG. 11 according to the conversion formula shown in the first embodiment.

図11において、変数i、j、k、l、m、nはDRAM2003に確保される。定数N、M、LもDRAMに保存される。変数i、j、kは、間引き対象となるLUTの入力色空間の第1座標軸(R)、第2座表軸(G)、第3座標軸(B)のインデックスであり、それぞれの格子番号を表す。変数l、m、nは、間引き後の縮小LUTの第1座標軸(R)、第2座表軸(G)、第3座標軸(B)のインデックスであり、それぞれの格子番号を表す。またC[i:j:k]は間引き対象のLUTの格子点値を、Cr[l:m:n]は縮小LUTの格子点値を示す。図11の手順では、間引き対象のLUTから、RGB各軸について、格子番号が奇数または最大値であるような格子点値を残し、その他を間引いた縮小LUTとしてCr[l:m:n]が作成される。   In FIG. 11, variables i, j, k, l, m, and n are secured in the DRAM 2003. Constants N, M, and L are also stored in the DRAM. Variables i, j, and k are indices of the first coordinate axis (R), second coordinate axis (G), and third coordinate axis (B) of the input color space of the LUT to be thinned, and the respective grid numbers are To express. Variables l, m, and n are indices of the first coordinate axis (R), second coordinate axis (G), and third coordinate axis (B) of the reduced LUT after thinning, and represent the respective lattice numbers. Further, C [i: j: k] represents the lattice point value of the thinning target LUT, and Cr [l: m: n] represents the lattice point value of the reduced LUT. In the procedure of FIG. 11, Cr [l: m: n] is obtained as a reduced LUT by leaving a grid point value such that the grid number is an odd number or the maximum value for each axis of RGB from the LUT to be thinned, and thinning the others. Created.

図12は、図10のステップS205の差分データを作成する処理の手順を示すフローチャートである。差分データは、元LUT(間引き対象LUT)の格子点の内、間引かれた格子点の値と、その格子点に対応して縮小LUTより補間演算により算出された出力データ値との差分である。元LUTの格子点値の内、各軸のいずれかの格子番号が奇数であり、かつ、最後の格子点ではない格子点の格子点値は、縮小LUTに含まれていない。そのため、その格子点の格子位置を縮小LUTの入力データとして出力値を算出する。入力された入力データに相当する格子位置がLUTに登録されていない場合、通常は補間演算により出力値が求められ、出力される。補間手法は既知のどのような手法により行うことも可能であるが、本実施形態のプリンタドライバが実際の色変換処理時に行う補間手法と同じ補間方法を用いるのが最も好ましい。そして、元LUTにおける間引かれた格子点の格子点値と、補間により縮小LUTに基づいて算出された出力値との差分が計算され、その値が差分テーブルに格納される。差分テーブルは元LUTと同じディメンションを持ち、間引かれた格子点値と同じ格子点に、その格子点値と補間値との差分値が登録される。差分計算は第1実施形態で示したものと同じ方法で行う。また補間演算の一例として線形補間を用いる補間演算がある。   FIG. 12 is a flowchart showing a procedure of processing for creating difference data in step S205 of FIG. The difference data is a difference between the value of the thinned lattice point among the lattice points of the original LUT (thinning target LUT) and the output data value calculated by the interpolation operation from the reduced LUT corresponding to the lattice point. is there. Among the lattice point values of the original LUT, the lattice point value of any one of the axes is odd and the lattice point value of the lattice point that is not the last lattice point is not included in the reduced LUT. Therefore, an output value is calculated using the grid position of the grid point as input data for the reduced LUT. When the grid position corresponding to the input data that has been input is not registered in the LUT, an output value is usually obtained by interpolation and output. The interpolation method can be performed by any known method, but it is most preferable to use the same interpolation method as the interpolation method performed by the printer driver of the present embodiment during the actual color conversion processing. Then, the difference between the lattice point value of the thinned lattice point in the original LUT and the output value calculated based on the reduced LUT by interpolation is calculated, and the value is stored in the difference table. The difference table has the same dimensions as the original LUT, and the difference value between the lattice point value and the interpolation value is registered at the same lattice point as the thinned lattice point value. The difference calculation is performed by the same method as that shown in the first embodiment. As an example of the interpolation calculation, there is an interpolation calculation using linear interpolation.

図12において、変数および定数の意味は図11とほぼ同様である。図12に特有の変数として、フラグhr、hg、hbがある。これらのフラグは、その全てが0であった場合、そのときの着目格子点(変数i、j、kで格子番号を示される格子点)が間引かれない格子点であることを示す。また(r、g、b)は、輝度値を示す。Cd[i:j:k]は、着目格子点に係る差分データを示す。図12の手順では、上述の通り間引かれた格子点に対応する差分データが得られ、差分テーブルの対応する位置に登録される。   In FIG. 12, the meanings of variables and constants are almost the same as those in FIG. As variables unique to FIG. 12, there are flags hr, hg, and hb. These flags, when all of them are 0, indicate that the lattice point of interest at that time (the lattice point indicated by the lattice number with variables i, j, k) is a lattice point that is not thinned out. Further, (r, g, b) indicates a luminance value. Cd [i: j: k] indicates difference data related to the target lattice point. In the procedure of FIG. 12, difference data corresponding to the lattice points thinned out as described above is obtained and registered in the corresponding position of the difference table.

間引き前の初期状態において各軸の格子点数が、RGBそれぞれ5×3×7であるLUT(図2参照)に対して、図10の処理を実施した場合を考える。第1段階(第1回目のループ)では、RGBそれぞれが3×2×4の格子点を持つ縮小LUT(図13に示す)が作成される。そして、残りの81(=5*3*7−3*2*4=105−24)の格子点が間引かれる。これら間引かれる格子点について、縮小LUT(図13)による出力値と、元LUT(図2)の格子点値との差分データ(図14に示す)を作成する。図14の差分テーブルにおいては、間引かれずに縮小LUTに含まれる格子点については差分データは不要なので、空欄となっている。また丸印の格子点に差分データが登録される。   Consider a case where the processing of FIG. 10 is performed on an LUT (see FIG. 2) in which the number of grid points of each axis is 5 × 3 × 7 for RGB in the initial state before thinning. In the first stage (the first loop), a reduced LUT (shown in FIG. 13) having 3 × 2 × 4 grid points for each of RGB is created. The remaining 81 (= 5 * 3 * 7-3 * 2 * 4 = 105-24) lattice points are thinned out. For these thinned lattice points, difference data (shown in FIG. 14) between the output value by the reduced LUT (FIG. 13) and the lattice point value of the original LUT (FIG. 2) is created. In the difference table of FIG. 14, the difference data is unnecessary for the lattice points that are not thinned out and are included in the reduced LUT, and thus are blank. Also, difference data is registered at the circled grid points.

例えば初期状態のLUTの3つの各軸の格子位置が図2に示すようである場合は元LUTの格子点[2:1:4]は、入力データ(127、128、190)に対応する。第2軸の格子番号が奇数なので、この格子点は元LUTから間引かれる。この入力データ(127、128、190)に対する縮小LUT(図13)の出力値C'(127、128、190)と、元LUT(図2)のC[2:1:4]の差分を差分データとする。   For example, when the lattice positions of the three axes of the LUT in the initial state are as shown in FIG. 2, the lattice point [2: 1: 4] of the original LUT corresponds to the input data (127, 128, 190). Since the grid number of the second axis is an odd number, this grid point is thinned out from the original LUT. The difference between the output value C ′ (127, 128, 190) of the reduced LUT (FIG. 13) and the C [2: 1: 4] of the original LUT (FIG. 2) for this input data (127, 128, 190) is the difference. Data.

第2段階(第2回目のループ)では、第1段階で作成した格子点数3×2×4の縮小LUT(図13)が元LUTになり、格子点数2×2×3の縮小LUT(図15)が作成される。残りの12(=3*2*4−2*2*3=24−12)の格子点は間引かれる。これらの格子点について、格子点数2、2、3の縮小LUTによる出力と元格子点値との差分データ(図16)が作成される。作成の仕方は、第1段階と同様である。   In the second stage (second loop), the reduced LUT (FIG. 13) having the grid point number 3 × 2 × 4 created in the first stage becomes the original LUT, and the reduced LUT having the grid point number 2 × 2 × 3 (FIG. 13). 15) is created. The remaining 12 (= 3 * 2 * 4-2 * 2 * 3 = 24-12) lattice points are thinned out. For these lattice points, difference data (FIG. 16) between the output by the reduced LUT with the number of lattice points 2, 2, and 3 and the original lattice point value is created. The creation method is the same as in the first stage.

第3段階(第3回目のループ)では、第2段階で作成した格子点数2×2×3の縮小LUT(図15)が元LUTとなり、格子点数2×2×2の縮小LUT(図17)が作成される。残りの4(=2*2*3−2*2*2=12−8)の格子点について、格子点数2、2、2の縮小LUTによる出力と元の格子点値との差分データ(図18)が作成される。   In the third stage (the third loop), the reduced LUT with the grid point number 2 × 2 × 3 (FIG. 15) created in the second stage becomes the original LUT, and the reduced LUT with the grid point number 2 × 2 × 2 (FIG. 17). ) Is created. For the remaining 4 (= 2 * 2 * 3-2 * 2 * 2 = 12-8) grid points, the difference data between the output from the reduced LUT with the grid point numbers 2, 2, and 2 and the original grid point values (see FIG. 18) is created.

縮小LUTの格子点数が2×2×2となるとこれ以上縮小することができないため処理を終了する(S203)。   When the number of grid points of the reduction LUT becomes 2 × 2 × 2, the processing is terminated because it cannot be further reduced (S203).

図10の処理により、差分データの多くが0近辺の値となるため、第1実施形態と同様、ランレングス符号化などを用いた可逆圧縮の圧縮率が大きく向上する。なお、これまで説明してきた図10の処理を実施しても、最終的に得られる縮小LUTと各段階で作成される差分テーブルとを合計したデータ量は、初期のLUTのデータ量と同じである。つまり本手法も格子点値の変換を目的とした処理であって、データ量を削減する圧縮処理ではない。そしてこの変換後に、変換されたデータの圧縮を行う。   Since most of the difference data becomes a value near 0 by the processing of FIG. 10, the compression rate of lossless compression using run-length encoding or the like is greatly improved as in the first embodiment. Even if the processing of FIG. 10 described so far is performed, the total amount of data of the finally obtained reduced LUT and the difference table created at each stage is the same as the data amount of the initial LUT. is there. In other words, this method is also a process aimed at converting lattice point values, and is not a compression process that reduces the amount of data. After this conversion, the converted data is compressed.

上記処理を1段階のみ実施することでも効果はあるが、縮小LUTの格子点数が2になるまで繰り返し実施することがより効果的である。1段階のみ実施とは、図10のループを行わず1回目のステップS205の終了を以てLUT変換処理を終了させることである。たとえば、図2のLUTから、図13の縮小LUTと図14の差分テーブルとを生成した段階が1段階の処理に相当する。   Although it is effective to carry out the above process only in one stage, it is more effective to repeatedly carry out until the number of lattice points of the reduced LUT becomes 2. The implementation of only one stage means that the LUT conversion process is terminated by completing the first step S205 without performing the loop of FIG. For example, the stage in which the reduced LUT in FIG. 13 and the difference table in FIG. 14 are generated from the LUT in FIG. 2 corresponds to one stage of processing.

また、入力空間の座標軸それぞれ(本例では3軸)の格子点数が異なる場合には、全ての軸について同時に格子点数が2とならない場合もある。この場合、格子点数が2になった軸はそれ以降も格子点数を2に維持し、格子点数が2より大きい軸については前述した処理に従い格子点数を減少させてゆく。全ての軸の格子点数が2になったところで処理を終了する。   Further, when the number of grid points of the coordinate axes in the input space is different (three axes in this example), the number of grid points may not be two at the same time for all axes. In this case, the axis having the grid point number of 2 maintains the grid point number of 2 thereafter, and the axis having the grid point number greater than 2 is decreased in accordance with the above-described processing. The process ends when the number of grid points on all axes becomes 2.

なお、圧縮は、図19のデータ全体を対象として行っても良いし、データ量が小さい上に、あまり効果が上がらないことが予想される格子位置1901を除外して残りを圧縮しても良い。   The compression may be performed on the entire data in FIG. 19, or the remaining data may be compressed by excluding the grid position 1901 where the data amount is small and the effect is not expected to be much improved. .

図10の処理は、変換テーブルが格納する値を、圧縮が効果的に行えるように変換する処理であって、データ量を削減する圧縮処理ではない。ただし、本実施形態においても、格子点値を3軸方向に差分をとることにより、偏りなく分散していた格子点値が0または255の近辺の値に集中するようになる。0付近の値は、2進数で表現すれば比較的長いリーディング0の後に、短い桁の1が表れる数値である。255付近の値は、2進数で表現すれば比較的長いリーディング1の後に、短い桁の0が表れる数値である。このような値をエントロピ符号化、たとえばランレングスを利用した圧縮法で可逆圧縮すれば、高圧縮率で圧縮できる。なお各軸の格子位置1901は、差分テーブルを構成するデータの一部である。したがって、格子位置1901は差分の処理対象とはならないが、圧縮されたLUTの一部として、あるいは圧縮されたLUTとともに、LUTを利用するコンピュータに提供される。   The process of FIG. 10 is a process of converting values stored in the conversion table so that compression can be performed effectively, and is not a compression process that reduces the amount of data. However, also in the present embodiment, by taking the difference in the triaxial direction in the lattice point values, the lattice point values dispersed without deviation are concentrated on the value near 0 or 255. A value near 0 is a numerical value in which a short digit 1 appears after a relatively long reading 0 when expressed in binary. The value near 255 is a numerical value in which a short digit 0 appears after a relatively long reading 1 in binary numbers. If such a value is reversibly compressed by entropy coding, for example, a compression method using run length, it can be compressed at a high compression rate. Note that the lattice position 1901 of each axis is a part of data constituting the difference table. Accordingly, the grid position 1901 is not a difference processing target, but is provided to a computer that uses the LUT as a part of the compressed LUT or together with the compressed LUT.

<復元処理>
LUTの復元には、初期状態のLUTの各軸の格子点数および格子位置が必要であるため、図19のようにこれらの値(各軸の格子位置1901)を差分データ1902〜1904および縮小LUT1905とともに格納されている必要がある。元LUTには、図4に示すように各軸の格子位置は与えられているので、それをそのまま保持すればよい。格子点の間引き方を規則的に行う場合は初期状態のLUTの各軸の格子位置のみを格納することによりLUTを復元することができる。なお復元処理は、第1実施形態と同様にたとえばプリンタドライバが、印刷設定を入力された場合に、入力された印刷設定に応じたLUTを選択して、それを復元する。
<Restore process>
Since the LUT restoration requires the number of grid points and the grid position of each axis of the LUT in the initial state, these values (lattice position 1901 of each axis) are converted into the difference data 1902-1904 and the reduced LUT 1905 as shown in FIG. Must be stored with. As shown in FIG. 4, since the lattice position of each axis is given to the original LUT, it may be held as it is. When regularly thinning out the lattice points, the LUT can be restored by storing only the lattice position of each axis of the LUT in the initial state. As in the first embodiment, for example, when the printer driver receives print settings, the restoration process selects an LUT corresponding to the input print settings and restores it.

復元処理は縮小LUTの格子数、差分データおよび初期状態のLUTの格子数・位置を用いて以下のように行う。元LUTの格子位置から差分データのデータ数および各差分データの格子点位置を確定できる。なぜなら格子位置の間引き方は規則的であるため、各段階の格子位置を初期状態のLUTの格子位置から決定することができるからである。よって、各段階の縮小LUTの格子点位置、すなわち差分テーブルの格子点の位置が得られる。こうして、元LUTの格子位置の情報から縮小LUTの格子位置と1つ前のLUTの格子位置が得られる。そこで縮小LUTを使用して、1つ前のLUTの格子位置(すなわち差分テーブルの格子点の位置)を入力とした時の出力値を、格子点値の補間によって得ることができる。その出力値と該当する格子位置の差分データとを併合(加算)することで1段階前のLUTの格子点値を取得することができる。1段階前のLUTとは、間引き処理を行う前のLUTである。この処理を1段階前のLUTのすべての格子点に対して行うことにより、1段階前のLUTを復元することができる。   Restoration processing is performed as follows using the number of lattices of the reduced LUT, the difference data, and the number and position of the lattices of the LUT in the initial state. From the grid position of the original LUT, the number of data of difference data and the grid point position of each difference data can be determined. This is because the lattice position thinning method is regular, and the lattice position at each stage can be determined from the lattice position of the LUT in the initial state. Therefore, the grid point position of the reduced LUT at each stage, that is, the position of the grid point of the difference table is obtained. Thus, the lattice position of the reduced LUT and the lattice position of the previous LUT are obtained from the information of the lattice position of the original LUT. Therefore, by using the reduced LUT, an output value when the grid position of the previous LUT (that is, the position of the grid point in the difference table) is input can be obtained by interpolation of grid point values. By merging (adding) the output value and the difference data of the corresponding grid position, the grid point value of the previous LUT can be acquired. The LUT before one stage is an LUT before performing the thinning process. By performing this process on all the lattice points of the previous LUT, the previous LUT can be restored.

そしてそれらの処理を、格子点数が初期状態のLUT(元LUT)と同じになるまで繰り返すことによりLUTを完全に復元することができる。   The LUT can be completely restored by repeating these processes until the number of grid points is the same as the initial LUT (original LUT).

図34に復元処理手順の例を示す。この例では復元を各格子点毎に行わず、補間により得られたデータのみによる補間値テーブルを作成し、それに対応する差分を加算して1段階上のLUTを復元している。まず、圧縮データを復号する(S3901)。次に、復元に先立って、各段階における縮小LUTの格子位置を、格子点の間引き方法に基づいて決定し、記憶しておく。そして、まず最低階層の差分テーブルに着目する。これを着目差分テーブルと呼ぶ。なお縮小LUTとは、ある時点において復元されたLUTを指す。   FIG. 34 shows an example of the restoration processing procedure. In this example, the restoration is not performed for each grid point, an interpolation value table is created only from the data obtained by interpolation, and the corresponding difference is added to restore the one-step LUT. First, the compressed data is decoded (S3901). Next, prior to restoration, the lattice position of the reduced LUT at each stage is determined and stored based on the thinning method of lattice points. First, pay attention to the difference table in the lowest hierarchy. This is called a focused difference table. Note that the reduced LUT refers to an LUT restored at a certain point in time.

次に復号したデータ中に含まれる縮小LUTの値に基づいて、着目差分テーブルの格子点に対応する各格子点の格子点値を補間し、補間テーブルを作成する(S3902)。次に補間テーブルの各格子点値について、着目差分テーブルの対応する格子位置の差分データを加算する(S3903)。次に最上位まで復元したか判定する(S3904)。たとえば復元されたLUTの格子数が、格子位置情報1901に含まれる格子位置を一致していれば、最上位まで復元したものと判定できる。復元が終了して入れば、復元したLUTを保存し(S3906)、終了していなければ、現在より1段階上の差分テーブルに着目する(S3905)。もちろん縮小LUTは、復元されたLUTとする。そしてステップS3902に戻る。
一方、図20のように各段階の縮小LUTの格子位置を順に格納する方法も可能である。先に示したLUTの場合であれば、第3段階の各軸の格子位置であるR軸0、255、G軸0、255、B軸0、255を第3段階で作成される縮小LUTの前に格納する。第2段階の各軸の格子位置であるR軸0、255、G軸0、255、B軸0、190、255を第3段階で作成される差分データの前に格納する。第1段階の各軸の格子位置であるR軸0、127、255、G軸0、255、B軸0、85、190、255を第2段階で作成される差分データの前に格納する。初期状態の格子位置であるR軸0、64、127、190、255、G軸0、128、255、B軸0、42、85、127、190、232、255を第1段階で作成される差分データの前に格納する。
Next, based on the value of the reduced LUT included in the decoded data, the grid point value of each grid point corresponding to the grid point of the difference table of interest is interpolated to create an interpolation table (S3902). Next, for each grid point value in the interpolation table, the difference data of the corresponding grid position in the target difference table is added (S3903). Next, it is determined whether restoration to the highest level is made (S3904). For example, if the number of lattices of the restored LUT matches the lattice position included in the lattice position information 1901, it can be determined that the data has been restored to the top. If the restoration is completed, the restored LUT is saved (S3906). If the restoration is not completed, attention is paid to the difference table one level higher than the present (S3905). Of course, the reduced LUT is the restored LUT. Then, the process returns to step S3902.
On the other hand, as shown in FIG. 20, it is possible to store the grid positions of the reduced LUTs at each stage in order. In the case of the LUT shown above, the R-axis 0, 255, G-axis 0, 255, and B-axis 0, 255, which are the lattice positions of the respective axes in the third stage, are used in the reduced LUT created in the third stage. Store before. R-axis 0, 255, G-axis 0, 255, and B-axis 0, 190, 255, which are lattice positions of each axis in the second stage, are stored before the difference data created in the third stage. R-axis 0, 127, 255, G-axis 0, 255, and B-axis 0, 85, 190, 255, which are lattice positions of each axis in the first stage, are stored before the differential data created in the second stage. R-axis 0, 64, 127, 190, 255, G-axis 0, 128, 255, B-axis 0, 42, 85, 127, 190, 232, 255, which are lattice positions in the initial state, are created in the first stage. Store before differential data.

これらの形式で格子位置を格納すれば、差分処理がどのように行われたかが格子位置情報から判別できる。そのため、差分処理の格子点の間引き方、およびどの格子数まで間引くかという取り決めを変更しても、間引きデータからLUTの復元処理を行うことが可能になる。   If lattice positions are stored in these formats, it can be determined from the lattice position information how the difference processing has been performed. Therefore, it is possible to perform the LUT restoration processing from the thinned data even if the method of thinning out the lattice points in the difference processing and the number of lattices to be thinned out are changed.

以上説明したように本実施形態では、色変換LUTを、補間値との差分を示す差分テーブルに変換することで、各格子点値を0に近い値に変換することができる。これによって、可逆圧縮した際のLUTの圧縮率を高めることができる。   As described above, in the present embodiment, each grid point value can be converted to a value close to 0 by converting the color conversion LUT into a difference table indicating a difference from the interpolation value. Thereby, the compression rate of the LUT when the lossless compression is performed can be increased.

[第3実施形態]
第3の実施形態では、異なる複数のLUTをマージする。1つの画像処理装置であっても用紙種類や品位、使用インクなどの条件に対応して複数の異なる色変換テーブルを格納していて、条件に従って適切なものを選択して使用している。このような複数の色変換テーブルを保有する装置においては全く同一ではないが類似性の高いLUTが存在することがある。第3の実施形態はその類似性を活用することにより圧縮率を向上させる手法である。
[Third Embodiment]
In the third embodiment, a plurality of different LUTs are merged. Even one image processing apparatus stores a plurality of different color conversion tables corresponding to conditions such as paper type, quality, and ink used, and selects and uses an appropriate one according to the conditions. In such an apparatus having a plurality of color conversion tables, there may be LUTs that are not identical but have high similarity. The third embodiment is a technique for improving the compression ratio by utilizing the similarity.

マージはマージ対象とする複数のLUTの格子点値を交互に組み合わせて、新たなLUT(以後、マージLUTと呼ぶ)を作成する。より具体的には、図21、図22、図23を用いて説明する。図21に示したLUTa1000とLUTb1010は、それぞれ格子点に対応した格子点値Ca,Cbを格納している。すなわち格子点値こそ互いに独立しているが、その構成(構造)は互いに同一である。マージはLUT1020に示すようにLUTa1000の格子点値CaとLUTb1010の格子点値Cbを交互にインターリーブしていく。この処理を各色で行い、マージLUTab1030(図23)を作成する。また、マージLUTab1030の先頭にマージ順番を付加する。図22の例では格子点値Caの次に格子点値Cbを配置しているため、順番はLUTa→LUTbとなる。この順番を示す識別符号10301が、マージLUTab1030に付加される。なお図21〜図23の例では2つのLUTをマージしているが、これに限らず、例えば3つ以上のLUTに用いても良い。また、2格子点以上を交互にマージしてもよい。   In the merge, a new LUT (hereinafter referred to as a merge LUT) is created by alternately combining lattice point values of a plurality of LUTs to be merged. More specifically, this will be described with reference to FIGS. The LUTa1000 and LUTb1010 shown in FIG. 21 store grid point values Ca and Cb corresponding to the grid points, respectively. In other words, the lattice point values are independent from each other, but their configurations (structures) are the same. In the merging, as shown in the LUT 1020, the lattice point value Ca of the LUTa1000 and the lattice point value Cb of the LUTb 1010 are alternately interleaved. This process is performed for each color to create a merge LUTab 1030 (FIG. 23). Further, the merge order is added to the head of the merge LUTab 1030. In the example of FIG. 22, since the lattice point value Cb is arranged next to the lattice point value Ca, the order is LUTa → LUTb. An identification code 10301 indicating this order is added to the merge LUTab 1030. In the example of FIGS. 21 to 23, two LUTs are merged. However, the present invention is not limited to this. For example, three or more LUTs may be used. Two or more grid points may be alternately merged.

図24は、本発明の第3実施形態にかかる色変換テーブルの変換処理および格納の手順を示すメインフローチャートである。S1000からプログラムがスタートし、処理はS1002に移る。S1002では、まず全てのLUTを単独で圧縮する(圧縮された単独LUTを以後、単独圧縮LUTと呼ぶ)。圧縮は例えばエントロピ符号化などを用いて行われる。圧縮処理が終了すると、処理はS1004に移る。S1004では、全てのLUTの組み合わせに対してマージし、圧縮する(圧縮されたマージLUTを以後、圧縮マージLUTと呼ぶ)。本実施形態では全ての組み合わせとしているが、これに限らず、任意のグループを設け、その中で組み合わせてもよい。図25はS1004の処理の詳細な流れ図である。なお、各単独LUTに0からの通し番号を付加し、LUTを一意に特定する。通し番号の割り当て方法はどのようなものでもよく、例えば単独LUTのデータ量順が挙げられる。また、説明を簡単化するために、2つのLUTをマージする場合を記載する。   FIG. 24 is a main flowchart showing the procedure of color conversion table conversion processing and storage according to the third embodiment of the present invention. The program starts from S1000, and the process proceeds to S1002. In S1002, all LUTs are first compressed alone (the compressed single LUT is hereinafter referred to as a single compression LUT). The compression is performed using, for example, entropy coding. When the compression process ends, the process proceeds to S1004. In S1004, all combinations of LUTs are merged and compressed (the compressed merge LUT is hereinafter referred to as a compressed merge LUT). In the present embodiment, all combinations are used, but the present invention is not limited to this, and an arbitrary group may be provided and combined. FIG. 25 is a detailed flowchart of the process of S1004. A serial number from 0 is added to each individual LUT to uniquely identify the LUT. Any serial number assignment method may be used, for example, the order of data amount of a single LUT. In order to simplify the description, a case where two LUTs are merged will be described.

S1100からスタートし、処理はS1102に移る。S1102ではLUTを一意に特定する際に使用する変数iを初期化する。初期化が終了すると、処理はS1104に移る。S1104では、変数iがLUTの総数Eを超えていないかを判別する。超えていない場合、処理はS1106に移る。S1106ではLUTを一意に特定する際に使用する変数jをi+1で初期化する。本処理でのマージ順番は最初にi番目のLUT、次にj番目のLUTとしている。マージ順番は圧縮効率には影響がないため、S1106の処理でマージの組み合わせが重複しないようにしている。   Starting from S1100, the process proceeds to S1102. In step S1102, a variable i used to uniquely specify the LUT is initialized. When the initialization is completed, the process proceeds to S1104. In S1104, it is determined whether or not the variable i exceeds the total number E of LUTs. If not, the process moves to S1106. In step S1106, a variable j used for uniquely identifying the LUT is initialized with i + 1. The merge order in this process is first the i-th LUT and then the j-th LUT. Since the merge order does not affect the compression efficiency, the merge combination is not duplicated in the processing of S1106.

初期化が終了すると、処理はS1108に移る。S1108では、変数jがLUTの総数Eを超えていないかを判別する。超えていない場合、処理はS1110に移る。S1110ではi番目の単独LUTとj番目の単独LUTを前述した方法でマージする。マージが終了すると、処理はS1112に移る。S1112では、S1110で作成したマージLUTを圧縮する。圧縮すると、処理はS1114に移る。S1114では、変数jをインクリメントし、処理はS1108に戻る。   When the initialization is completed, the process proceeds to S1108. In S1108, it is determined whether or not the variable j exceeds the total number E of LUTs. If not, the process moves to S1110. In step S1110, the i-th single LUT and the j-th single LUT are merged by the method described above. When the merge ends, the process proceeds to S1112. In S1112, the merge LUT created in S1110 is compressed. After compression, the process proceeds to S1114. In S1114, the variable j is incremented, and the process returns to S1108.

一方、S1108で変数jがLUTの総数Eを超えている場合、処理はS1116に移り、変数iをインクリメントし、S1104に戻る。S1104で、変数iがLUTの総数Eを超えている場合、処理はS1118に移り、S1004は終了する。   On the other hand, if the variable j exceeds the total number E of LUTs in S1108, the process moves to S1116, increments the variable i, and returns to S1104. If the variable i exceeds the total number E of LUTs in S1104, the process proceeds to S1118, and S1004 ends.

圧縮マージLUTの作成が終了すると、処理はS1006に移る。S1006では、マージペアリストの作成を行う。本処理では、マージによって圧縮効果の高まる単独LUTの組み合わせに対してのみマージ処理を行い、そうでない場合は単独LUTを採用する。そこで、全ての単独LUTに対して、マージ処理を加えるか、またその相手となる単独LUTの情報を格納したマージペアリストを作成する。図26にマージペアリスト1100の具体例を示す。マージペアリストは単独LUTの総数E個の配列となっており、それぞれの配列要素は単独LUTの通し番号に対応している。配列要素にはマージのペアとなる他の単独LUTの通し番号(以後、ペア情報と呼ぶ)を格納する。図の例では、0番目の単独LUTは2番目の単独LUTとペアとなり、1番目の単独LUTはペアが存在しない(図中、NAと表記)ことを示している。   When the creation of the compression merge LUT is completed, the process proceeds to S1006. In S1006, a merge pair list is created. In this process, the merge process is performed only for combinations of single LUTs in which the compression effect is enhanced by merging. Otherwise, the single LUT is adopted. Therefore, merge processing is applied to all the single LUTs, or a merge pair list is created in which information on the single LUT as the counterpart is stored. FIG. 26 shows a specific example of the merge pair list 1100. The merge pair list is an array of a total number E of single LUTs, and each array element corresponds to a serial number of the single LUT. In the array element, the serial number of another single LUT that becomes a merge pair (hereinafter referred to as pair information) is stored. In the example shown in the figure, the 0th single LUT is paired with the second single LUT, and the first single LUT has no pair (indicated as NA in the figure).

図27はS1008の処理の詳細な流れ図である。なお、各圧縮マージLUTに0からの通し番号を付加し、LUTを一意に特定する。通し番号の割り当て方法はどのようなものでもよく、例えば圧縮マージLUTのデータ量順が挙げられる。   FIG. 27 is a detailed flowchart of the process of S1008. A serial number starting from 0 is added to each compression merge LUT to uniquely identify the LUT. Any method of assigning serial numbers may be used. For example, the order of data amount of the compression merge LUT can be mentioned.

S1200からスタートし、処理はS1202に移る。S1202からS1210ではマージによる削減データ量を算出する。まず、S1202では、圧縮マージLUTを一意に特定する際に使用する変数mを初期化し、S1004で作成した圧縮マージLUTの総数Mを単独LUTの総数Eを用いて算出する。初期化が終了すると、処理はS1204に移る。S1204では、変数mが圧縮マージLUTの総数Mを超えていないかを判別する。超えていない場合、処理はS1206に移る。S1206では以降の処理対象となる圧縮マージLUTを変数mで特定する。対象LUTが決定すると、処理はS1208に移る。   Starting from S1200, the process proceeds to S1202. In steps S1202 to S1210, a reduction data amount by merging is calculated. First, in S1202, a variable m used when uniquely specifying a compression merge LUT is initialized, and the total number M of compression merge LUTs created in S1004 is calculated using the total number E of single LUTs. When the initialization is completed, the process proceeds to S1204. In S1204, it is determined whether or not the variable m exceeds the total number M of compression merge LUTs. If not, the process moves to S1206. In S1206, the compression merge LUT to be processed later is specified by the variable m. When the target LUT is determined, the process proceeds to S1208.

S1208では、対象LUTを構成する2つの単独圧縮LUTのデータ量から対象LUTのデータ量を減算し、対象LUTの削減データ量を算出する。削減データ量を算出すると、処理はS1209に移る。S1209では対象LUTを削減データ量リストに登録する。削減データ量リストは、圧縮マージLUTの通し番号と削減データ量によって構成された配列である。全ての圧縮マージLUTを削減データ量リストに登録すると、処理はS1210に移り、変数mをインクリメントして、S1204に戻る。   In S1208, the data amount of the target LUT is subtracted from the data amount of the two single compression LUTs constituting the target LUT to calculate the reduced data amount of the target LUT. When the reduction data amount is calculated, the process proceeds to S1209. In step S1209, the target LUT is registered in the reduction data amount list. The reduction data amount list is an array configured by the serial number of the compression merge LUT and the reduction data amount. When all the compressed merge LUTs are registered in the reduction data amount list, the process proceeds to S1210, increments the variable m, and returns to S1204.

S1204で、変数mが圧縮マージLUTの総数Mを超えている場合、処理はS1212に移る。S1212では、S1209で作成した削減データ量リストを削減データ量が多い順に並べ直す。削減データ量リストの並べ直しが終了すると、処理はS1214、S1216に移る。   If the variable m exceeds the total number M of compression merge LUTs in S1204, the process proceeds to S1212. In S1212, the reduction data amount list created in S1209 is rearranged in order of increasing reduction data amount. When the rearrangement of the reduced data amount list is completed, the process proceeds to S1214 and S1216.

S1214では、削減データ量リストに登録されている圧縮マージLUTを一意に特定する際に使用する変数i、S1216ではペアリストを「NA」で初期化する。初期化が終了すると、処理はS1218に移る。S1218では、変数iが圧縮マージLUTの総数Mを超えていない、かつ削減データ量がゼロより大きいかを判別する。条件を満たす場合、処理はS1220に移る。S1220では削減データ量リストにおけるi番目の圧縮マージLUTを以降の処理対象とする。対象圧縮マージLUTが決定すると、処理はS1222に移る。S1222では対象圧縮マージLUTを構成する単独LUTが他のマージに使用さていないかを判別する。図26の例において、1番目と3番目の単独LUTから構成された圧縮マージLUTが対象の場合、共にマージのペアは存在していない(図中、NAと表記)。しかし、1番目と2番目の単独LUTから構成された圧縮マージLUTが対象の場合、2番目の単独LUTは既に他の単独LUTとペアが決定している。片方でもペアが既に決定している場合、処理はS1226に移る。   In S1214, the variable i is used to uniquely identify the compression merge LUT registered in the reduced data amount list. In S1216, the pair list is initialized with “NA”. When the initialization is completed, the process proceeds to S1218. In S1218, it is determined whether the variable i does not exceed the total number M of compression merge LUTs and the reduction data amount is greater than zero. If the condition is satisfied, the process proceeds to S1220. In S1220, the i-th compressed merge LUT in the reduced data amount list is set as a subsequent processing target. When the target compression merge LUT is determined, the process proceeds to S1222. In S1222, it is determined whether the single LUT constituting the target compression merge LUT is not used for another merge. In the example of FIG. 26, when the compression merge LUT composed of the first and third single LUTs is the target, there is no merge pair (denoted as NA in the figure). However, when the compression merge LUT composed of the first and second single LUTs is targeted, the second single LUT has already been paired with another single LUT. If at least one pair has already been determined, the process proceeds to S1226.

一方、決定していない場合、S1224に移る。S1224では、マージペアリストにペアとなる単独LUTの情報(ペア情報と呼ぶ。)を格納する。ペア情報を格納すると、処理はS1226に移り、変数iをインクリメントして、処理はS1218に戻る。S1218で、前述した条件を満たさない場合、処理はS1228に移り、S1006は終了する。   On the other hand, if not determined, the process proceeds to S1224. In S1224, information on a single LUT that forms a pair (referred to as pair information) is stored in the merge pair list. When the pair information is stored, the process proceeds to S1226, the variable i is incremented, and the process returns to S1218. In S1218, when the conditions described above are not satisfied, the process proceeds to S1228, and S1006 ends.

S1006が終了すると、処理はS1008に移る。S1008では、S1006で作成したマージペアリストをもとに、S1002で作成した単独圧縮LUTおよびS1004で作成した圧縮マージLUTをメモリーに格納する。図28はその具体例であり、図26のマージペアリストをもとにしている。LUT格納領域1122には、マージペアリストで指定されているマージペアに対応した圧縮LUTをメモリーに格納する。図中、ML.tblは圧縮マージLUT、SL.tblは単独圧縮LUTを表し、添え字は通し番号に対応している。インデックス領域1120は単独LUTの総数Eの配列となっており、それぞれの配列は単独LUTの通し番号に対応している。配列には上記で格納した圧縮LUTが格納されているアドレス番地を格納する。図の例では、0番目と2番目の単独LUTはマージのペアであるため、それらに対応した圧縮マージLUTが格納されているアドレス番地(図中、A0で表記)をそれぞれに格納する。圧縮LUTの格納が終了すると、処理はS1010に移り、本処理は終了する。インデックス領域1120は、圧縮において用いられる単独圧縮LUTまたは圧縮マージLUTを示すリストである。本実施形態ではポインタのリストであるが、もちろんテーブルそのもののリストであっても構わない。本実施形態では、ポインタで実現されている場合も含めて、テーブルのリストと呼ぶことにする。   When S1006 ends, the process proceeds to S1008. In S1008, based on the merge pair list created in S1006, the single compression LUT created in S1002 and the compression merge LUT created in S1004 are stored in the memory. FIG. 28 shows a specific example thereof, which is based on the merge pair list of FIG. In the LUT storage area 1122, the compressed LUT corresponding to the merge pair specified in the merge pair list is stored in the memory. In the figure, ML. tbl is a compression merge LUT, SL. tbl represents a single compression LUT, and the subscripts correspond to serial numbers. The index area 1120 is an array of the total number E of single LUTs, and each array corresponds to the serial number of the single LUT. The array stores the address address where the compressed LUT stored above is stored. In the example shown in the figure, the 0th and 2nd single LUTs are merge pairs, and therefore the address addresses (indicated by A0 in the figure) where the corresponding compressed merge LUTs are stored are stored respectively. When the storage of the compressed LUT is completed, the process proceeds to S1010, and this process ends. The index area 1120 is a list indicating a single compression LUT or a compression merge LUT used in compression. In the present embodiment, it is a list of pointers, but of course it may be a list of tables themselves. In the present embodiment, a list of tables including a case where it is realized by a pointer is referred to.

また、メモリーに格納した圧縮LUTから特定の圧縮LUTを取得するには、まずインデックス領域1120から圧縮LUTが格納されているアドレス番地を取得する。次に、そのアドレス番地にある圧縮LUTを解凍する。そのLUTがマージLUTである場合には、マージLUTに格納しているマージ順番情報をもとに、単独LUTに分離する。   Further, in order to acquire a specific compressed LUT from the compressed LUT stored in the memory, first, an address address where the compressed LUT is stored is acquired from the index area 1120. Next, the compressed LUT at the address is decompressed. If the LUT is a merge LUT, it is separated into a single LUT based on the merge order information stored in the merge LUT.

上記処理を行う事によって、特に単独LUTでは連続していない格子点値であっても、類似性の高い単独LUTをマージすることによって、同じ値が連続する可能性を飛躍的に向上させえる。これによって、圧縮効率をより高めることができる。   By performing the above processing, even if the lattice point values are not continuous in the single LUT, the possibility that the same value continues can be dramatically improved by merging the single LUTs having high similarity. Thereby, the compression efficiency can be further increased.

<復元処理>
本手法により変換されたLUTを復元するには、図28のリスト1120,1122に対して、図24の逆の処理を実行すればよい。すなわち、MPUは、図28の圧縮マージテーブルと単独圧縮テーブルとのリストをインデックス0から読み込む。そして、そのリストが示す圧縮テーブル(圧縮マージテーブルと単独圧縮テーブルとを圧縮テーブルと総称する。)を読み、単独圧縮テーブルであれば、その解凍を行う。一方、圧縮マージテーブルであれば、解凍した後、マージ順を示す識別符号に従って、マージされているテーブルを、個別のテーブルに分解する。このようにして復元された色変換テーブルが、画像形成に使用される。
<Restore process>
To restore the LUT converted by this method, the reverse process of FIG. 24 may be executed on the lists 1120 and 1122 of FIG. That is, the MPU reads a list of the compression merge table and the single compression table in FIG. Then, the compression table indicated by the list (a compression merge table and a single compression table are collectively referred to as a compression table) is read, and if it is a single compression table, it is decompressed. On the other hand, in the case of a compressed merge table, after decompression, the merged table is decomposed into individual tables according to an identification code indicating the merge order. The color conversion table restored in this way is used for image formation.

本実施形態では、複数のテーブルがマージされた圧縮マージテーブルと、単独圧縮テーブルとのうち、圧縮率が高いものを選択することができる。このため、圧縮率の向上に寄与する。   In this embodiment, it is possible to select a compression merge table obtained by merging a plurality of tables and a single compression table having a high compression rate. For this reason, it contributes to the improvement of a compression rate.

さて以上をまとめると以下のようになる。本実施形態は、色変換テーブルを圧縮して記憶媒体に格納するための色変換テーブル圧縮方法を開示する。そして互いに同じ構成を持つ少なくとも2つの色変換テーブルに格納されているデータを互いにマージしてマージテーブルとし、マージテーブルに格納されているマージデータを圧縮して圧縮マージテーブルとする。そしてマージデータが色変換テーブルのデータをマージしていることを示す情報と前記マージテーブルとを記録媒体に格納する格納ステップとを有している。   The above is summarized as follows. The present embodiment discloses a color conversion table compression method for compressing a color conversion table and storing it in a storage medium. Data stored in at least two color conversion tables having the same configuration are merged to form a merge table, and merge data stored in the merge table is compressed to form a compressed merge table. The merge data includes information indicating that the data of the color conversion table is merged and a storage step of storing the merge table in the recording medium.

さらに、色変換テーブルに格納されているデータを単独で圧縮して単独圧縮色変換テーブルとし、圧縮マージテーブルと、圧縮マージテーブルを構成する色変換テーブルの単独圧縮色変換テーブルとのうち、データ量の少ない方を選択する。そして選択したテーブルを記録媒体に格納する。これにより単独圧縮とマージ圧縮のうち効率の高い方を利用できる。   Further, the data stored in the color conversion table is independently compressed to form a single compression color conversion table, and the data amount of the compression merge table and the single compression color conversion table of the color conversion table constituting the compression merge table Choose the one with less. The selected table is stored in the recording medium. As a result, it is possible to use the more efficient one of single compression and merge compression.

さらに、圧縮テーブル選択ステップは、圧縮マージテーブルのデータ量と、圧縮マージテーブルを構成する色変換テーブルを単独で圧縮して得られたデータ量との差分値である削減データ量を算出する。そして削減データ量の順に圧縮マージテーブルを並べた削減データ量リストを作成する。そして削減データ量リストから削減データ量の大きい順に、削減データ量が0より大きい圧縮マージテーブルを選択する。また削減データ量リストにおいて削減データ量が0以下の圧縮マージテーブルについては、当該圧縮マージテーブルを構成する色変換テーブルの単独圧縮テーブルを選択する。こうして、より高効率で色変換テーブルを圧縮できる。   Further, the compression table selection step calculates a reduction data amount that is a difference value between the data amount of the compression merge table and the data amount obtained by independently compressing the color conversion table constituting the compression merge table. Then, a reduction data amount list in which the compression merge table is arranged in the order of the reduction data amount is created. Then, a compression merge table having a reduced data amount larger than 0 is selected from the reduced data amount list in descending order of the reduced data amount. For a compression merge table with a reduction data amount of 0 or less in the reduction data amount list, the single compression table of the color conversion table constituting the compression merge table is selected. In this way, the color conversion table can be compressed with higher efficiency.

[第4実施形態]
第4の実施形態は第1の実施形態と第2の実施形態の手法を効果的に組み合わせたものである。第2の手法で縮小LUTおよび差分テーブルを作成し、格子点数が2になる以前であってもその処理を停止する。そうして残った格子点数が2以上の縮小LUTに対して第1の実施形態の手法で全軸方向差分をとる。こうして得られた、全軸方向差分化された縮小LUTと差分テーブルとを圧縮する。
[Fourth Embodiment]
The fourth embodiment is an effective combination of the techniques of the first embodiment and the second embodiment. A reduced LUT and a difference table are created by the second method, and the processing is stopped even before the number of grid points becomes 2. The difference in all axial directions is obtained by the method of the first embodiment for the reduced LUT having two or more remaining grid points. The reduced LUT and the difference table that have been differentiated in all axial directions are compressed.

あるいは、縮小LUTに対して全軸方向差分をとり、差分データとともに圧縮したデータ量と、縮小LUTをさらに一段階縮小して、その差分データと縮小LUTの全軸方向差分をとったLUTを圧縮したデータ量とを比較する。そして、縮小を進めた場合にデータ量が低減されない場合には、LUTをさらに一段階縮小する前の状態で、全軸方向差分化された縮小LUTと差分テーブルとを圧縮する。低減された場合には、上記処理を繰り返す、データ量がより小さくなる限り繰り返す。こうすることで、第1の手法と第2の手法の最適な組み合わせを得ることができる。以上の手順によりより圧縮率を向上させることができる。   Alternatively, the difference in all axial directions is taken with respect to the reduced LUT, the amount of data compressed together with the difference data, and the reduced LUT are further reduced by one step, and the LUT taking the difference in all axial directions of the difference data and the reduced LUT is compressed. Compare the data amount. If the data amount is not reduced when the reduction is advanced, the reduced LUT and the difference table that have been differentiated in all axial directions are compressed before the LUT is further reduced by one step. If it is reduced, the above process is repeated as long as the data amount is smaller. By doing so, an optimal combination of the first method and the second method can be obtained. The compression rate can be further improved by the above procedure.

[第5実施形態]
第5の実施形態は、第1の実施形態と第3の実施形態の手法を効果的に組み合わせたものである。本実施形態では、第3の実施形態の手法を3軸方向差分処理を行ったLUTに対して処理を行う。すなわち、まず、全てのLUTに対して第1の実施形態で示した3軸方向差分処理を行う。すなわち図5BのステップS104まで実行する。そして3軸方向差分が施されたLUTに対して第3の実施形態に示したLUT間マージを行う。すなわち、得られた全軸差分テーブルを対象として、図24の処理を実行する。
[Fifth Embodiment]
The fifth embodiment is an effective combination of the techniques of the first and third embodiments. In the present embodiment, the process of the third embodiment is performed on the LUT that has been subjected to the triaxial difference process. That is, first, the three-axis direction difference process shown in the first embodiment is performed on all LUTs. That is, the process is executed up to step S104 in FIG. 5B. Then, the inter-LUT merging shown in the third embodiment is performed on the LUT subjected to the three-axis direction difference. That is, the process of FIG. 24 is executed on the obtained all-axis difference table.

復号も、第1実施形態と第3実施形態と組み合わせればよい。すなわちマージされ圧縮された全軸差分テーブルを解凍してマージ以前の個別の全軸差分テーブルに戻す。これを第1実施形態と同じ要領で通常の色変換テーブルに戻せばよい。   Decoding may be combined with the first embodiment and the third embodiment. That is, the merged and compressed all-axis difference table is decompressed and returned to the individual all-axis difference table before merging. This may be returned to the normal color conversion table in the same manner as in the first embodiment.

第1の実施形態の説明で示した通り、第1の手法を実施してもLUTのデータ量は変化せず、格子点値が差分された値に変化するだけである。また第3の実施形態はLUTの格子点値の内容に全く関係なく実施可能である。そのため、第1の実施形態のLUT変換方法と、第3の実施形態のLUT変換方法とを全く変更することなく適応することができる。すなわち、3軸方向差分処理を行うことにより各LUTの特徴が低減され、複数のLUT間の類似性が高まる。そのため第3の実施形態による手法がより効果的となる。   As shown in the description of the first embodiment, even if the first method is performed, the data amount of the LUT does not change, and only changes to a value obtained by subtracting the grid point values. Further, the third embodiment can be implemented regardless of the contents of the LUT lattice point values. Therefore, the LUT conversion method according to the first embodiment and the LUT conversion method according to the third embodiment can be applied without any change. That is, by performing the triaxial difference process, the characteristics of each LUT are reduced, and the similarity between a plurality of LUTs is increased. Therefore, the method according to the third embodiment becomes more effective.

これをまとめると、本実施形態の色変換テーブルを圧縮して記憶媒体に格納するための色変換テーブル圧縮方法は、以下の通りである。互いに同じ構成を持つ少なくとも2つの色変換テーブルに格納されているデータを、当該色変換テーブルの入力空間を規定する複数の軸それぞれの方向について、隣接する格子間の差分値にそれぞれ変換して全軸差分テーブルとする全軸変換ステップを持つ。本実施形態では少なくとも2つの色変換テーブルはRGB各色成分の色変換テーブルである。もちろん、色成分が2つであれば、「少なくとも2つ」は2つと解釈されるし、4つ以上であれば「少なくとも2つ」は4つと解釈される。   In summary, the color conversion table compression method for compressing the color conversion table of the present embodiment and storing it in the storage medium is as follows. Data stored in at least two color conversion tables having the same configuration is converted into differential values between adjacent grids for each direction of a plurality of axes that define the input space of the color conversion table. It has an all-axis conversion step as an axis difference table. In the present embodiment, at least two color conversion tables are color conversion tables for RGB color components. Of course, if there are two color components, “at least two” is interpreted as two, and if there are four or more, “at least two” is interpreted as four.

さらに、その少なくとも2つの全軸差分テーブルに格納されているデータを互いにマージしてマージ全軸差分テーブルとする。当該マージ全軸差分テーブルに格納されているマージデータを圧縮して圧縮マージ全軸差分テーブルとする。さらに、当該マージデータが前記全軸差分テーブルのデータをマージしていることを示す情報と当該圧縮マージ全軸差分テーブルを記録媒体に格納する。   Furthermore, the data stored in the at least two all-axis difference tables are merged with each other to obtain a merged all-axis difference table. The merge data stored in the merge all-axis difference table is compressed into a compressed merge all-axis difference table. Further, information indicating that the merge data is merged with the data of the all-axis difference table and the compression merge all-axis difference table are stored in the recording medium.

加えて、前記全軸差分テーブルに格納されているデータを単独で圧縮し単独圧縮全軸差分テーブルとし、圧縮マージ全軸差分テーブルと前記圧縮マージ全軸差分テーブルを構成する単独圧縮全軸差分テーブルのうち、データ量の少ない方を選択する。その選択した圧縮テーブルのみ記録媒体に格納する。   In addition, the data stored in the all-axis difference table is independently compressed to form a single-compression all-axis difference table, and the compression merge all-axis difference table and the compression merge all-axis difference table constituting the compression merge all-axis difference table Of these, select the one with the smaller amount of data. Only the selected compression table is stored in the recording medium.

また、圧縮テーブルを選択するステップでは、前記圧縮マージ全軸差分テーブルのデータ量と、前記圧縮マージ全軸差分テーブルを構成する全軸差分テーブルを単独で圧縮して得られたデータ量との差分値である削減データ量を算出する。そして、削減データ量の順に圧縮マージ全軸差分テーブルを並べたリストを作成し、削減データ量リストから削減データ量の大きい順に、削減データ量が0より大きい圧縮マージ全軸差分テーブルを選択する。一方その削減データ量リストにおいて削減データ量が0以下の圧縮マージ全軸差分テーブルについて当該圧縮マージ全軸差分テーブルを構成する全軸差分テーブルの圧縮テーブルを選択する。   In the step of selecting a compression table, the difference between the data amount of the compression merge all-axis difference table and the data amount obtained by compressing the all-axis difference table constituting the compression merge all-axis difference table independently. A reduction data amount that is a value is calculated. Then, a list in which the compressed merge all-axis difference table is arranged in the order of the reduced data amount is created, and the compressed merge all-axis difference table having the reduced data amount larger than 0 is selected from the reduced data amount list in the descending order of the reduced data amount. On the other hand, for the compression merge all-axis difference table whose reduction data amount is 0 or less in the reduction data amount list, the compression table of the all-axis difference table constituting the compression merge all-axis difference table is selected.

このような手順により、高効率で色変換テーブルを圧縮することができる。   By such a procedure, the color conversion table can be compressed with high efficiency.

[第6実施形態]
第6の実施形態は第2の実施形態と第3の実施形態の手法を効果的に組み合わせたものである。まず全てのLUTに対して第2の手法による変換(間引きおよび全軸差分)を施し、LUTを縮小LUTと差分データにする。第2の手法により縮小LUTと差分データに変換されたLUTデータの間で第3の手法で示した手順でマージにする。すなわち図10の処理を実行する。第2の手法が施されてもデータ量は変化しないため、第2の手法を施す前のLUTに対するのと全く同様な方法で第3の手法を適応することができる。すなわち、図19あるいは図20に示す複数のテーブルをマージする。そして、図28のリストを作成する。
[Sixth Embodiment]
The sixth embodiment is an effective combination of the methods of the second and third embodiments. First, conversion (decimation and all-axis difference) by the second method is performed on all LUTs, and the LUT is converted into a reduced LUT and difference data. Merging is performed between the reduced LUT and the LUT data converted into the difference data by the second method according to the procedure shown in the third method. That is, the process of FIG. 10 is executed. Since the amount of data does not change even if the second method is applied, the third method can be applied in exactly the same manner as for the LUT before the second method is applied. That is, a plurality of tables shown in FIG. 19 or FIG. 20 are merged. Then, the list of FIG. 28 is created.

解凍は、圧縮の逆の処理を行う。すなわち、圧縮されたテーブルを解凍し、マージされていれば元に戻す。その後は第2実施形態と同じ要領で復元できる。   Decompression is the reverse of compression. That is, the compressed table is decompressed and restored if it has been merged. Thereafter, it can be restored in the same manner as in the second embodiment.

なお、第3の実施形態の変換は、第2の実施形態の変換によってえられた縮小LUTのみならず、差分テーブルについて適用することもできる。   Note that the conversion of the third embodiment can be applied not only to the reduced LUT obtained by the conversion of the second embodiment but also to the difference table.

以上の手順をまとめると以下のようになる。すなわち、本実施形態は、色変換テーブルを圧縮して記憶媒体に格納するための色変換テーブル圧縮方法である。そして、互いに同じ構成を持つ少なくとも2つの第1の色変換テーブルを構成する要素を間引いて、データ量の少ない第2の色変換テーブルをそれぞれ作成する間引きステップを有する。ここで第1及び第2の色変換テーブルは、本実施形態ではRGBの各色成分について与えられる。   The above procedure is summarized as follows. That is, this embodiment is a color conversion table compression method for compressing a color conversion table and storing it in a storage medium. Then, there is a thinning step for thinning out elements constituting at least two first color conversion tables having the same configuration to create a second color conversion table with a small amount of data. Here, in the present embodiment, the first and second color conversion tables are given for each color component of RGB.

次に、少なくとも2つの第1の色変換テーブルの要素のうち第2の色変換テーブルに含まれない要素の値を、少なくとも2つの第1の色変換テーブルの要素と第2の色変換テーブルを補間して得た要素値との差分値にそれぞれ変換する差分ステップを有する。ここで少なくとも2つとは、本実施形態においてはRGB各色成分の色変換テーブルである。これにより間引かれた色変換テーブルについて差分テーブルが作成される。   Next, out of at least two elements of the first color conversion table, values of elements not included in the second color conversion table are set, and at least two elements of the first color conversion table and the second color conversion table are set. There is a difference step for converting each to a difference value with the element value obtained by interpolation. Here, at least two are the color conversion tables of the RGB color components in the present embodiment. As a result, a difference table is created for the thinned color conversion table.

次に、RGBの各色について、第2の色変換テーブルと差分値とをそれぞれ連結して連結テーブルとする。これは本実施形態においては、図19のテーブルに相当する。そして、少なくとも2つの連結テーブルに格納されているデータを互いにマージしてマージ連結テーブルとする。当該マージ連結テーブルに格納されているマージデータを圧縮して圧縮マージ連結テーブルとする。そして当該マージデータが少なくとも2つの連結テーブルのデータを互いにマージしていることを示す情報と、圧縮マージ連結テーブルとを記録媒体に格納する。   Next, for each color of RGB, the second color conversion table and the difference value are connected to form a connection table. This corresponds to the table of FIG. 19 in the present embodiment. Then, the data stored in at least two linked tables are merged to form a merge linked table. The merge data stored in the merge connection table is compressed into a compressed merge connection table. Then, information indicating that the merge data merges data of at least two linked tables and the compressed merge linked table are stored in the recording medium.

さらに以下のステップを付加することもできる。前記連結テーブルに格納されているデータを単独で圧縮して単独圧縮連結テーブルとし、圧縮マージ連結テーブルと圧縮マージ連結テーブルを構成する単独圧縮連結テーブルのうち、データ量の少ない方を選択する。そして選択した圧縮テーブルを記録媒体に格納する。   Furthermore, the following steps can be added. The data stored in the concatenation table is independently compressed to form a single compression concatenation table, and the one with the smaller data amount is selected from the compression merge concatenation table and the single compression concatenation table constituting the compression merge concatenation table. The selected compression table is stored in a recording medium.

さらに、以下のステップを付加することもできる。圧縮テーブルを選択するステップでは、圧縮マージ連結テーブルのデータ量と、圧縮マージ連結テーブルを構成する連結テーブルを単独で圧縮して得られたデータ量との差分値である削減データ量を算出する。そして削減データ量の順に前記マージ連結テーブルを並べたリストを作成する。削減データ量リストから削減データ量の大きい順に、削減データ量が0より大きい圧縮マージ連結テーブルを選出する。削減データ量リストにおいて削減データ量が0以下の当該マージ連結テーブルについて当該圧縮マージ連結テーブルを構成する連結テーブルの圧縮テーブルを選択する。   Furthermore, the following steps can be added. In the step of selecting the compression table, a reduction data amount that is a difference value between the data amount of the compression merge concatenation table and the data amount obtained by compressing the concatenation table constituting the compression merge concatenation table alone is calculated. Then, a list in which the merge connection table is arranged in the order of the reduced data amount is created. A compression merge concatenation table having a reduction data amount larger than 0 is selected from the reduction data amount list in descending order of the reduction data amount. In the reduced data amount list, the compression table of the concatenated table constituting the compressed merge concatenated table is selected for the merge concatenated table whose reduced data amount is 0 or less.

以上の手順により一層圧縮率を向上させることが可能となる。   The compression rate can be further improved by the above procedure.

なお本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。   Note that the present invention can be applied to a system (for example, a copier, a facsimile machine, etc.) consisting of a single device even if it is applied to a system composed of a plurality of devices (eg, a host computer, interface device, reader, printer, etc.). You may apply. Another object of the present invention is to supply a recording medium recording a program code for realizing the functions of the above-described embodiments to a system or apparatus, and the system or apparatus computer reads out and executes the program code stored in the storage medium. Is also achieved. In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing the program code constitute the present invention.

また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。   Further, according to the present invention, the operating system (OS) running on the computer performs part or all of the actual processing based on the instruction of the program code, and the functions of the above-described embodiments are realized by the processing. This is also included. Furthermore, the present invention is also applied to the case where the program code read from the storage medium is written into a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer. In that case, based on the instruction of the written program code, the CPU of the function expansion card or the function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are realized by the processing. .

3軸LUTを模式的に示した図A diagram schematically showing a 3-axis LUT 3軸LUTを2次元的に展開した図A two-dimensional development of a 3-axis LUT 3軸LUTを1次元テーブルに展開した図Diagram of 3-axis LUT expanded into a one-dimensional table 複数の出力データを格納する3軸LUTを1次元テーブルに展開した図Diagram of a three-dimensional LUT that stores multiple output data expanded into a one-dimensional table 第1実施形態のメインフローチャートMain flowchart of the first embodiment 第1実施形態のメインフローチャートMain flowchart of the first embodiment 第1実施形態の部分処理のフローチャートFlowchart of partial processing of the first embodiment 第1実施形態の部分処理のフローチャートFlowchart of partial processing of the first embodiment 第1実施形態の部分処理のフローチャートFlowchart of partial processing of the first embodiment 格子点値の差分処理による変化Changes due to difference processing of grid point values 第2実施形態のメインフローチャートMain flowchart of the second embodiment 2実施形態の部分処理のフローチャートFlowchart of partial processing according to the second embodiment 第2実施形態の部分処理のフローチャートFlowchart of partial processing of the second embodiment 第2実施形態の第1段階の縮小LUTFirst-stage reduction LUT of the second embodiment 第2実施形態の第1段階の差分データDifference data of the first stage of the second embodiment 第2実施形態の第2段階の縮小LUTSecond stage reduced LUT of the second embodiment 第2実施形態の第2段階の差分データSecond stage difference data of the second embodiment 第2実施形態の第3段階の縮小LUTThird stage reduced LUT of the second embodiment 第2実施形態の第3段階の差分データDifference data of the third stage of the second embodiment 第2実施形態の圧縮対象となるデータData to be compressed in the second embodiment 第2実施形態の圧縮対象となるデータData to be compressed in the second embodiment 2つの3軸LUTを1次元テーブルに展開した図Diagram of two 3-axis LUTs expanded into a one-dimensional table 2つの3軸LUTをマージして1次元テーブルに展開した図Diagram of two 3-axis LUTs merged and expanded into a one-dimensional table 2つの3軸LUTを各色でマージして1次元テーブルに展開した図Diagram of two three-axis LUTs merged with each color and developed into a one-dimensional table 第3実施形態のメインフローチャートMain flowchart of the third embodiment 圧縮マージLUT作成手順を示すフローチャートFlow chart showing compression merge LUT creation procedure マージペアリストMerge pair list マージペアリスト作成手順を示すフローチャートFlow chart showing merge pair list creation procedure 圧縮LUTのメモリー格納形態を示す図The figure which shows the memory storage form of the compression LUT コンピュータのブロック図Computer block diagram 第1実施形態におけるLUTの復元手順のメインフローチャートMain flowchart of LUT restoration procedure in the first embodiment LUTの復号手順のメインフローチャートMain flowchart of LUT decryption procedure 第1実施形態の復元処理の部分フローチャートPartial flowchart of restoration processing of the first embodiment 第1実施形態の復元処理の部分フローチャートPartial flowchart of restoration processing of the first embodiment 第1実施形態の復元処理の部分フローチャートPartial flowchart of restoration processing of the first embodiment 第2実施形態の復元処理のフローチャートFlowchart of restoration processing of the second embodiment 第3実施形態の復元処理のフローチャートFlowchart of restoration processing of the third embodiment

Claims (5)

色変換テーブルを圧縮して記憶媒体に格納するための色変換テーブル圧縮方法であって、
互いに同じ構成を持つ少なくとも2つの色変換テーブルの同一の格子点に対応する値を、前記格子点ごとに一定の順序で配置するマージ処理を、前記色変換テーブルの各格子点に対して行ったマージテーブルを得るマージステップと、
前記マージテーブルに格納されているマージ処理されたデータを圧縮して圧縮マージテーブルとする圧縮ステップと、
前記マージテーブルが前記少なくとも2つの色変換テーブルのデータをマージ処理して得られていることを示す情報と前記圧縮マージテーブルとを記録媒体に格納する格納ステップと
を有したことを特徴とする色変換テーブル圧縮方法。
A color conversion table compression method for compressing a color conversion table and storing it in a storage medium,
Merge processing for arranging values corresponding to the same grid points of at least two color conversion tables having the same configuration in a predetermined order for each grid point was performed on each grid point of the color conversion table A merge step to obtain a merge table;
A compression step of compression merging table compresses the merge processing data stored in said merge table,
Color, wherein the merge table had a storage step of storing in the recording medium and said compressed merge table information indicating that obtained by merging the data of said at least two color conversion tables Translation table compression method.
色変換テーブルを圧縮して記憶媒体に格納するための色変換テーブル圧縮方法であって、
互いに同じ構成を持つ少なくとも2つの色変換テーブルに格納されているデータを、当該色変換テーブルの入力空間を規定する複数の軸それぞれの方向について、隣接する格子間の差分値にそれぞれ変換して少なくとも2つの全軸差分テーブルとする全軸変換ステップと、
前記少なくとも2つの全軸差分テーブルの同一の格子点に対応する値を、前記格子点ごとに一定の順序で配置するマージ処理を、前記全軸差分テーブルの各格子点に対して行ったマージ全軸差分テーブルを得るマージステップと、
当該マージ全軸差分テーブルに格納されているマージ処理されたデータを圧縮して圧縮マージ全軸差分テーブルとするステップと、
当該マージ全軸差分テーブルが前記少なくとも2つの全軸差分テーブルのデータをマージ処理して得られていることを示す情報と当該圧縮マージ全軸差分テーブルを記録媒体に格納するステップと
を有したことを特徴とする色変換テーブル圧縮方法。
A color conversion table compression method for compressing a color conversion table and storing it in a storage medium,
The data stored in the at least two color conversion table having the mutually same configuration, the plurality of axes each direction defining an input space of the color conversion table, at least to convert the respective difference values between adjacent grating An all-axis conversion step for two all-axis difference tables;
Merging said values corresponding to the same lattice points of the at least two full axial difference table, the merge process to place in a certain order for each of the grid points, were performed against the respective lattice points of the entire axial difference table A merge step to obtain an all-axis difference table;
A step of compression merge all axes difference table is compressed merge processing data stored in the merge all axes difference table,
That said merge all axes difference table had and storing said at least two recording medium information and the compressed merge all axes difference table indicating that obtained by merging the data of all axes difference table A color conversion table compression method characterized by the above.
色変換テーブルを圧縮して記憶媒体に格納するための色変換テーブル圧縮方法であって、
互いに同じ構成を持つ少なくとも2つの第1の色変換テーブルを構成する要素を間引いて、データ量の少ない第2の色変換テーブルをそれぞれ作成する間引きステップと、
前記少なくとも2つの第1の色変換テーブルの要素のうち前記第2の色変換テーブルに含まれない要素の値を、前記少なくとも2つの第1の色変換テーブルの要素と前記第2の色変換テーブルを補間して得た要素値との差分値にそれぞれ変換する差分ステップと、
前記少なくとも2つの第2の色変換テーブルと前記差分値とをそれぞれ連結して連結テーブルとする連結ステップと、
前記少なくとも2つの連結テーブルの同一の格子点に対応する値を、前記格子点ごとに一定の順序で配置するマージ処理を、前記連結テーブルの各格子点に対して行ったマージ連結テーブルを得るマージステップと、
当該マージ連結テーブルに格納されているマージ処理されたデータを圧縮して圧縮マージ連結テーブルとするステップと、
当該マージ連結テーブルが前記少なくとも2つの連結テーブルのデータを互いにマージ処理して得られていることを示す情報と、当該圧縮マージ連結テーブルとを記録媒体に格納するステップと
を有したことを特徴とする色変換テーブル圧縮方法。
A color conversion table compression method for compressing a color conversion table and storing it in a storage medium,
A thinning step of thinning out at least two elements constituting the first color conversion table having the same configuration to create a second color conversion table with a small amount of data,
Of the elements of the at least two first color conversion tables, the values of elements not included in the second color conversion table are used as the values of the elements of the at least two first color conversion tables and the second color conversion table. A difference step for converting each to a difference value with an element value obtained by interpolating
A connecting step of connecting the at least two second color conversion tables and the difference values to form a connection table;
A value corresponding to the same lattice point of the at least two connecting tables, a merge process to place in a certain order for each of the lattice points, obtaining merge connection table went against the respective lattice points of the connection table Merge step and
A step of compression merge linked table is compressed merge processing data stored in the merge connection table,
And characterized in that the merge linked table had the information indicating that obtained by merging together the data of at least two connecting tables, and storing the said compressed merge linked tables in a recording medium Color conversion table compression method.
請求項1乃至3のいずれか1項に記載された色変換テーブル圧縮方法を実行して色変換テーブルを圧縮することを特徴とする色変換テーブル圧縮装置。   A color conversion table compression apparatus for compressing a color conversion table by executing the color conversion table compression method according to any one of claims 1 to 3. コンピュータにより、請求項1乃至3のいずれか1項に記載された色変換テーブル圧縮方法を実行するためのプログラム。   A program for executing the color conversion table compression method according to any one of claims 1 to 3 by a computer.
JP2007337660A 2007-12-27 2007-12-27 Conversion table compression method and program Expired - Fee Related JP5036526B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007337660A JP5036526B2 (en) 2007-12-27 2007-12-27 Conversion table compression method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007337660A JP5036526B2 (en) 2007-12-27 2007-12-27 Conversion table compression method and program

Publications (3)

Publication Number Publication Date
JP2009159493A JP2009159493A (en) 2009-07-16
JP2009159493A5 JP2009159493A5 (en) 2011-02-10
JP5036526B2 true JP5036526B2 (en) 2012-09-26

Family

ID=40962959

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007337660A Expired - Fee Related JP5036526B2 (en) 2007-12-27 2007-12-27 Conversion table compression method and program

Country Status (1)

Country Link
JP (1) JP5036526B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5768579B2 (en) * 2011-08-11 2015-08-26 ブラザー工業株式会社 Image processing device
JP2013153251A (en) 2012-01-24 2013-08-08 Ricoh Co Ltd Image processing device, image processing method, image formation device, image projection device, program, and storage medium
WO2014166334A1 (en) * 2013-04-10 2014-10-16 中兴通讯股份有限公司 Depth information encoding and decoding method, system, and device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004025572A (en) * 2002-06-25 2004-01-29 Canon Inc Printing processing system and printing processing method
JP4137113B2 (en) * 2005-10-20 2008-08-20 キヤノン株式会社 Image processing apparatus and image processing method
JP4651108B2 (en) * 2006-02-20 2011-03-16 キヤノン株式会社 Conversion table compression method and program, and conversion table compression apparatus

Also Published As

Publication number Publication date
JP2009159493A (en) 2009-07-16

Similar Documents

Publication Publication Date Title
JP4651108B2 (en) Conversion table compression method and program, and conversion table compression apparatus
JP5558767B2 (en) Image processing apparatus and processing method thereof
JP4996501B2 (en) Multidimensional data encoding apparatus, decoding apparatus, and control method therefor
JP5267255B2 (en) Image processing apparatus, image processing method, and program
JP4844331B2 (en) Image data processing method and apparatus
JP5158096B2 (en) Encoding data generation apparatus, encoding data generation method, decoding apparatus, and decoding method
JP2008193529A (en) Scanning converter, and scanning conversion method
JP5036526B2 (en) Conversion table compression method and program
JP2011254405A (en) Image processor and image processing method
JP5025779B2 (en) Conversion table compression method, apparatus, program, conversion table restoration apparatus, program
JP3705316B2 (en) Printing control apparatus, printing control method, and recording medium
JP4588916B2 (en) Two-dimensional code reading device, two-dimensional code reading method, two-dimensional code reading program, and computer-readable recording medium
JP2773812B2 (en) Image processing device
JP3962930B2 (en) Printing control apparatus, printing control method, and computer-readable recording medium recording printing control program
US6556312B1 (en) Data converter and method
JP4137113B2 (en) Image processing apparatus and image processing method
JP3346051B2 (en) Image processing device
JP4802853B2 (en) Image processing apparatus and image processing program
JP3911898B2 (en) Color conversion apparatus and method
EP0820186B1 (en) Signal processor
JP2005210740A (en) Manufacturing apparatus and manufacturing method and recording medium of color conversion table
JP2810585B2 (en) Image encoding method and image decoding method
JP5606223B2 (en) Image processing apparatus and processing method thereof
JP4971880B2 (en) Image encoding apparatus, image decoding apparatus, and control method thereof
JP4374056B2 (en) Data format reversible conversion method, image processing apparatus, data format reversible conversion program, and storage medium

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101220

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120215

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120703

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5036526

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees