(57)【要約】【課題】ＬＵＴへのアクセスには連続アドレスを利用し、且つ高速処理を可能としながら、補間演算に必要なＲＡＭ容量を大幅に削減する。【解決手段】各８ビットの入力データＲＧＢの上位２ビットで表される４通りと補間用の１通りで表される１２５個の格子点座標のアドレスに出力データを記憶したルックアップテーブル３０と、前記入力データＲＧＢに応じて該ルックアップテーブル３０から前記出力データを読み出す複数のアドレスを生成するアドレス生成部２０と、該アドレス生成部２０で生成された複数のアドレスから読み出された複数の前記出力データと前記入力データＲＧＢとに基づいて変換済みデータを生成する補間演算部４０とを備える。ルックアップテーブル３０は、前記入力データＲＧＢの上位２ビットで表される値が奇数であるか偶数であるかによって前記１２５個の格子点座標を８組に分け、該８組に対応して８個のＲＡＭを設け、該各ＲＡＭの連続するアドレスに前記出力データを格納する。【選択図】図１
2010114542.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがＭビットの値で表されるＸ，Ｙ，Ｚ３次元の座標空間内の入力データを変換済みデータに変換するデータ変換装置であって、
前記３次元のそれぞれＭビットの値のうちの、上位Ｎビットの値の組合せの２N通りと補間演算用の１通りで表される格子点座標のそれぞれにおける変換係数もしくは出力データを対応するアドレスに記憶したルックアップテーブルと、
変換対象の入力データの前記３次元空間内の座標に応じて、前記ルックアップテーブルから前記変換係数もしくは出力データを読み出す複数のアドレスを生成するアドレス生成部と、
該アドレス生成部で生成された複数のアドレスから読み出された複数の変換係数もしくは出力データと、前記変換対象の入力データの３次元空間内の座標に基づいて、該変換対象の入力データが変換された変換済みデータを生成する補間演算部とを備え、
前記ルックアップテーブルは、前記上位Ｎビットの値の組合せで表される格子点座標を、Ｘ，Ｙ，Ｚ方向のそれぞれの値が奇数であるか偶数であるかによって８組に分け、該８組のそれぞれに対応して設けられたＲＡＭの、連続するアドレスに、前記変換係数もしくは出力データを記憶したものであることを特徴とするデータ変換装置。
【請求項２】
前記ルックアップテーブルは、前記８組に分けた格子点座標のそれぞれについて、Ｘ方向の値の増大に伴って第１のステップで増大し、Ｙ方向の値の増大に伴って前記第１のステップよりも小さい第２のステップで増大し、Ｚ方向の値の増大に伴って１ずつ増大するアドレスを設定し、前記変換係数もしくは出力データを、対応するＲＡＭの該設定したアドレスに記憶したものであることを特徴とする請求項１記載のデータ変換装置。
【請求項３】
前記設定されるアドレスが、前記格子点座標のＸ、Ｙ，Ｚ方向の値をｘ、ｙ、ｚとして、ＩＮＴ（ｘ／２）、ＩＮＴ（ｙ／２）、ＩＮＴ（ｚ／２）をそれぞれ、ｘ／２、ｙ／２、ｚ／２の整数部分として、
Ｙ方向の値が偶数でＺ方向の値が偶数である格子点座標については、（２N-1＋１）2×ＩＮＴ（ｘ／２）＋（２N-1＋１）×ＩＮＴ（ｙ／２）＋ＩＮＴ（ｚ／２）で、
Ｙ方向の値が偶数でＺ方向の値が奇数である座標については、（２N-1＋１）（２N-1）×ＩＮＴ（ｘ／２）＋（２N-1）×ＩＮＴ（ｙ／２）＋ＩＮＴ（ｚ／２）で、
Ｙ方向の値が奇数でＺ方向の値が偶数である格子点座標については、（２N-1＋１）（２N-1）×ＩＮＴ（ｘ／２）＋（２N-1＋１）×ＩＮＴ（ｙ／２）＋ＩＮＴ（ｚ／２）で、
Ｙ方向の値が奇数でＺ方向の値が奇数である格子点座標については、（２2(N-1)）×ＩＮＴ（ｘ／２）＋（２N-1）×ＩＮＴ（ｙ／２）＋ＩＮＴ（ｚ／２）で、
それぞれ表されることを特徴とする請求項２記載のデータ変換装置。
【請求項４】
前記アドレス生成回路は、
前記変換対象の入力データの座標の上位ＮビットのＸ，Ｙ，Ｚ方向の値の組合せが含まれる格子点座標に対応するＲＡＭについては、前記請求項３の対応する式でアドレスを生成し、
他のＲＡＭについては、前記上位ＮビットのＸ，Ｙ，Ｚ方向の値の１つもしくは複数に１を加えて、前記請求項３の対応する式でアドレスを生成することを特徴とする請求項３記載のデータ変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元の座標空間内の入力データを出力データに変換するデータ変換装置に関するものである。
【背景技術】
【０００２】
画像処理によって色の変換や補正を行う場合、ルックアップテーブル（ＬＵＴ）が用いられる。例えば、入力画像がＲＧＢデータで表される色空間の場合、これと出力画像データの色空間とを対応づけた３次元ＬＵＴを用い、直接的に色変換を行う方法が良く知られている。
【０００３】
ここで、入力画像のＲＧＢデータが各々８ビットで表現される色空間の場合、表現可能な色の数は
２8×２8×２8＝１６，７７７，２１６となるが、この色の全てに対応する出力画像データが格納可能な３次元ＬＵＴを半導体回路内部に設けることは、ＬＵＴ容量が膨大となり、現実的ではない。
【０００４】
そこで、入力画像のＲＧＢデータの値を表すビット幅のうちのある一部のビットに対応する出力画像データのみを３次元ＬＵＴに格納し、該一部のビットにより特定された出力画像データと、入力画像データの残りのビットによって補間を行うことにより、最終的な出力画像データを作成し、色変換を実現するという手法により、ＬＵＴ容量の削減を図ることが行われている。
【０００５】
例えば、入力画像のＲＧＢデータを各々８ビットとすると、そのうち上位３ビットのＲＧＢデータの組み合わせに対応する出力画像データを３次元ＬＵＴに格納し、入力画像のＲＧＢデータの下位５ビットのデータを用いて補間を実施する方法である。このとき、３次元ＬＵＴに格納されるデータ数は、ＲＧＢ各々が
（３ビットで表現される８通り）＋（補間演算のための１通り）＝９通り
となり、ＬＵＴデータ総数は、９3＝７２９となる。
【０００６】
図５に入力画像のＲＧＢの３次元色空間を示す。を示す。図中の小さな丸で示される位置は格子点座標と呼ばれ、ＲＧＢのデータの上位３ビットのデータをアドレスとする３次元ＬＵＴに出力画像データが格納されている座標である。隣接する格子点座標の間隔は、この例の場合では３２ステップ、すなわち５ビットに相当する（２5＝３２）。ＲＧＢの各軸について、上位３ビットで表される格子点座標は、８ビットの画像データの０，３２，６４，９６，１２８，１６０，１９２，２２４に相当し、補間演算のための格子点座標は２５６である。図５の３次元色空間は、図６に示す８個の格子点座標Ｐ０〜Ｐ７によって形成される５１２個の単位立方体の集合から成り立っている。
【０００７】
図５の３次元色空間内の任意の座標Ｐｔの入力データを変換した画像データＤｔは、座標Ｐｔが含まれる単位立方体を形成する８個の格子点座標Ｐ０〜Ｐ７の画像データと、入力画像データＲＧＢの下位５ビットのデータから、補間演算によって求めることができる。
【０００８】
例えば、図６において、各格子点座標Ｐ０〜Ｐ７のデータをＤ０〜Ｄ７とし、座標Ｐｔを通るようにＲＧ平面、ＧＢ平面、ＢＲ平面からそれぞれ垂直に切断することで得られる８個の分割立方体をＶ０〜Ｖ７とし、ＰｔからみてＰｎ（ｎ＝０〜７）の反対側に存在する分割立方体の体積をＶｎとする（例えば、ＰｔからみてＰ０の反対に位置する単位立方体はＶ０）と、座標Ｐｔの入力データを変換した画像データＤｔは
Ｄｔ＝（ΣＤｎ・Ｖｎ）／３２3
の補間によって求めることができる。
【０００９】
ところが、上記のような補間演算によって座標Ｐｔの出力画像データＤｔを求める際に、特にＴＶのような動画を表示するアプリケーションの場合には、各画素の入力画像データをリアルタイムで毎クロックサイクル処理する必要がある。このため、８個の格子点座標の画像データを用いる補間演算の場合は、同一のＬＵＴを８個準備しておき、各ＬＵＴから同時に格子点座標データを読み出して補間処理を行う必要がある。このようなことから、例えば特許文献１では、実施例として同じ容量の格子点座標テーブルを８個使用することが記述されている。
【００１０】
しかし、全く同じＬＵＴを８個用意することは、ハードウェアとしては回路規模が大きくなり、得策ではない。ＬＵＴは通常ではＲＡＭで構成されるが、前記の例の場合では、７２９ワード×２４ビットのＲＡＭが８個、すなわち７２９×８＝５８３２ワードのＲＡＭ容量必要となる。
【００１１】
ところが、本来、補間演算に使用する８個の格子点座標のデータは全て異なるデータであり、同一の格子点座標のデータが複数同時に読み出されることは無い。そこで、３次元空間を複数の単位立方体に分割し、各単位立方体の格子点座標に対応させて出力データを記憶させるとき、各格子点座標に対応する３次元入力データの偶数、奇数の８通りの組合せに基づき、出力データを８つに分割して、それぞれＲＯＭ１〜ＲＯＭ８に記憶させる技術が開示されている（特許文献２）。
【特許文献１】特開２００１−２５７８９９号公報
【特許文献２】特開平５−６３９６７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし、特許文献２には、８つに分割した出力データを各ＲＯＭ１〜ＲＯＭ８のどのようなアドレスに記憶するかが記載されていない。すなわち、特許文献２には、ＲＯＭ１〜ＲＯＭ８のそれぞれに、ＲＧＢそれぞれの上位（Ｎ−２）ビットに、インクリメンタ１〜１２で必要に応じて１を加えた値を供給することが記されているのみであり、これらの値をどのように利用してＲＯＭ１〜ＲＯＭ８にアクセスしているのかが記載されていない。しかし、例えば、ＲＧＢそれぞれの上位ビットに必要に応じて１を加えた数値をつなぎ合わせてアドレスを生成した場合を考えると、ＲＯＭ１〜ＲＯＭ８のそれぞれにＲＧＢそれぞれの上位ビットを組み合わせた格子点の全て、および、補間演算のための格子点に対応するアドレスを設けることが必要になり、メモリ容量の削減を実現することができない。
【００１３】
本発明の目的は、高速処理を可能としながら、補間演算に必要なＲＡＭ容量を大幅に削減したデータ変換装置を提供することである。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、請求項１にかかる発明のデータ変換装置は、それぞれがＭビットの値で表されるＸ，Ｙ，Ｚ３次元の座標空間内の入力データを変換済みデータに変換するデータ変換装置であって、前記３次元のそれぞれＭビットの値のうちの、上位Ｎビットの値の組合せの２N通りと補間演算用の１通りで表される格子点座標のそれぞれにおける変換係数もしくは出力データを対応するアドレスに記憶したルックアップテーブルと、変換対象の入力データの前記３次元空間内の座標に応じて、前記ルックアップテーブルから前記変換係数もしくは出力データを読み出す複数のアドレスを生成するアドレス生成部と、該アドレス生成部で生成された複数のアドレスから読み出された複数の変換係数もしくは出力データと、前記変換対象の入力データの３次元空間内の座標に基づいて、該変換対象の入力データが変換された変換済みデータを生成する補間演算部とを備え、前記ルックアップテーブルは、前記上位Ｎビットの値の組合せで表される格子点座標を、Ｘ，Ｙ，Ｚ方向のそれぞれの値が奇数であるか偶数であるかによって８組に分け、該８組のそれぞれに対応して設けられたＲＡＭの、連続するアドレスに、前記変換係数もしくは出力データを記憶したものであることを特徴とする。
請求項２にかかる発明は、請求項１に記載のデータ変換装置において、前記ルックアップテーブルは、前記８組に分けた格子点座標のそれぞれについて、Ｘ方向の値の増大に伴って第１のステップで増大し、Ｙ方向の値の増大に伴って前記第１のステップよりも小さい第２のステップで増大し、Ｚ方向の値の増大に伴って１ずつ増大するアドレスを設定し、前記変換係数もしくは出力データを、対応するＲＡＭの該設定したアドレスに記憶したものであることを特徴とする。
請求項３にかかる発明は、請求項２に記載のデータ変換装置において、前記設定されるアドレスが、前記格子点座標のＸ、Ｙ，Ｚ方向の値をｘ、ｙ、ｚとして、ＩＮＴ（ｘ／２）、ＩＮＴ（ｙ／２）、ＩＮＴ（ｚ／２）をそれぞれ、ｘ／２、ｙ／２、ｚ／２の整数部分として、Ｙ方向の値が偶数でＺ方向の値が偶数である格子点座標については、（２N-1＋１）2×ＩＮＴ（ｘ／２）＋（２N-1＋１）×ＩＮＴ（ｙ／２）＋ＩＮＴ（ｚ／２）で、Ｙ方向の値が偶数でＺ方向の値が奇数である座標については、（２N-1＋１）（２N-1）×ＩＮＴ（ｘ／２）＋（２N-1）×ＩＮＴ（ｙ／２）＋ＩＮＴ（ｚ／２）で、Ｙ方向の値が奇数でＺ方向の値が偶数である格子点座標については、（２N-1＋１）（２N-1）×ＩＮＴ（ｘ／２）＋（２N-1＋１）×ＩＮＴ（ｙ／２）＋ＩＮＴ（ｚ／２）で、Ｙ方向の値が奇数でＺ方向の値が奇数である格子点座標については、（２2(N-1)）×ＩＮＴ（ｘ／２）＋（２N-1）×ＩＮＴ（ｙ／２）＋ＩＮＴ（ｚ／２）で、それぞれ表されることを特徴とする。
請求項４にかかる発明は、請求項３に記載のデータ変換装置において、前記アドレス生成回路は、前記変換対象の入力データの座標の上位ＮビットのＸ，Ｙ，Ｚ方向の値の組合せが含まれる格子点座標に対応するＲＡＭについては、前記請求項３の対応する式でアドレスを生成し、他のＲＡＭについては、前記上位ＮビットのＸ，Ｙ，Ｚ方向の値の１つもしくは複数に１を加えて、前記請求項３の対応する式でアドレスを生成することを特徴とする。
【発明の効果】
【００１５】
本発明のデータ変換装置によれば、ＬＵＴに格納する変換係数もしくは出力データを、入力データの上位Ｎビットが偶数であるか奇数であるかによって８つのＲＡＭに振り分けて格納し、各ＲＡＭへのアクセスには、連続アドレスを利用するので、必要なＲＡＭ容量を大幅に削減することができる。
【発明を実施するための最良の形態】
【００１６】
補間演算に必要なデータは、変換対象の入力データの座標Ｐｔが含まれる単位立方体の頂点におけるデータであるので、全て異なるアドレスのデータとなる。したがって、補間演算に必要な各格子点座標のデータを別々のＲＡＭに格納することが可能である。そして、本実施例では、各ＲＡＭのアドレス設定を工夫することにより、１個あたりのＲＡＭの容量を削減し、全体として１つのＬＵＴとなるように構成する。まず、各格子点座標のデータを入力データの上位Ｎビットが偶数であるか奇数であるかによって８つのＲＡＭに振り分け、各ＲＡＭの連続アドレスに格納する。そして、これらのＲＡＭへのアクセスの際には、入力データの上位Ｎビットが偶数であるか奇数あるかによって基準ＲＡＭを定め、入力データの上位Ｎビットの値から基準ＲＡＭのアドレスを求める。さらに、入力データの上位Ｎビットの値を補正した値から残りの７つのＲＡＭアドレスを求める。
【００１７】
＜実施例＞
以下、本発明の実施例について説明する。ここでは、３次元ＬＵＴで説明する。なお簡単のため、以下の例では入力画像のＲＧＢデータ各８ビットのうちの上位２ビットに対応する３次元ＬＵＴを８個のＲＡＭで構成する。入力画像のＲＧＢデータ各８ビットに対して、その上位２ビットに対応するＬＵＴの大きさは
（２2＋１）3＝１２５ワード
となる。ＲＧＢデータの下位６ビットに対しては、８つの格子点座標データを用いて線形補間を行う。この場合、ＬＵＴとして必要なＲＡＭの容量は、
１２５×８＝１０００ワード
となる。ここでは、ＬＵＴを構成する８つの各ＲＡＭは、同一のデータを格納したものを想定している。
【００１８】
しかしながら、入力データの下位６ビットによる補間演算に必要な８つの格子点座標は、ＬＵＴ上の異なるアドレスに格納されているため、８つのＲＡＭの２つ以上に対して同一のアドレスから読み出しが行われることは無い。
【００１９】
そこで、[Ａ]から[Ｈ]までの８つのＲＡＭを用意し、ＬＵＴに格納すべき１２５個のデータをこの８つのＲＡＭに振り分けて格納するようにする。図２(a)〜(e)はそのデータ振り分け方法の一例を表した図であり、簡単のためにＲの入力データの上位２ビットがある値のときのＧＢ平面の２次元ＬＵＴで表している。図２(a)はＲの上位２ビットが「００」（上位２ビットの値が０）の場合、図２(b)はＲの上位２ビットが「０１」（上位２ビットの値が１）の場合、図２(c)はＲの上位２ビットが「１０」（上位２ビットの値が２）の場合、図２(d)はＲの上位２ビットが「１１」（上位２ビットの値が３）の場合のＧＢ平面のＬＵＴである。図２(e)は補間用（上位２ビットの値が４）のＧＢ平面のＬＵＴである。○は３次元ＬＵＴの格子点座標を表し、○の中のＡ〜Ｈは割り当てられたＲＡＭ[Ａ]〜ＲＡＭ[Ｈ]を表し、○の右下の数字は３次元ＬＵＴの格子点の番号を表す。Ｒの上位２ビットの値が偶数（０，２，４）のＧＢ平面のデータはＲＡＭ[Ａ]〜ＲＡＭ[Ｄ]に格納される。またＲの上位２ビットの値が奇数（１，３）の場合、ＧＢ平面のデータはＲＡＭ[Ｅ]〜ＲＡＭ[Ｈ]に格納される。
【００２０】
このように１２５個のＬＵＴデータを８つのＲＡＭ[Ｅ]〜ＲＡＭ[Ｈ]に分割格納すると、ＲＡＭ[Ａ]には２７個の格子点座標におけるデータが格納され、ＲＡＭ[Ｂ]，[Ｃ]，[Ｅ]にはそれぞれ１８個の格子点座標におけるデータが格納され、ＲＡＭ[Ｄ]，[Ｆ]，[Ｇ]にはそれぞれ１２個の格子点座標におけるデータが格納され、ＲＡＭ[Ｈ]には８個の格子点座標におけるデータが格納される。よって、データの格納に必要なＲＡＭ容量は、２７＋１８×３＋１２×３＋８＝１２５となるので、同一ＲＡＭを８個用意する従来の場合と比較し、必要なＲＡＭ容量は１／８となる。
【００２１】
そして、それぞれのＲＡＭの０から始まるアドレスに、図２に示された３次元ＬＵＴの格子点の番号の順番に、データを記憶する。例えば、ＲＡＭ［Ａ］のアドレス０には図２（ａ）に示された番号０の格子点のデータを記憶し、続いて、アドレス１，２，３，４，５，６，７，８には図２（ａ）に示された番号２，４，１０，１２，１４，２０，２２，２４の格子点のデータを記憶する。続いて、アドレス９には図２（ｃ）に示された番号５０の格子点のデータを記憶し、続いて、アドレス１０，１１，１２，１３，１４，１５，１６，１７に、図２（ｃ）に示された番号５２，５４，６０，６２，６４，７０，７２，７４の格子点のデータをそれぞれ記憶する。さらに、アドレス１８，１９，２０，２１，２２，２３，２４，２５，２６に、図２（ｅ）に示された番号１００，１０２，１０４，１１０，１１２，１１４，１２０，１２２，１２４の格子点のデータをそれぞれ記憶する。
【００２２】
続いて、ＲＡＭ［Ｂ］のアドレス０，１，２，３，４，５に、図２（ａ）に示された番号１，３，１１，１３，２１，２３の格子点のデータを、アドレス８，７，８，９，１０，１１に、図２（ｃ）に示された番号５１，５３，６１，６３，７１，７３の格子点のデータを、アドレス１２，１３，１４，１５，１６，１７に、図２（ｅ）に示された番号１０１，１０３，１１１，１１３，１２１，１２３の格子点のデータを記憶する。ＲＡＭ［Ｃ］〜ＲＡＭ［Ｈ］についても同様である。
【００２３】
図３に、ＲＡＭ［Ａ］〜ＲＡＭ〔Ｈ］のアドレスと、図２（ａ）〜（ｅ）に示された三次元ＬＵＴの格子点の番号との対応を示す。図３に示されたように、ＲＡＭ［Ａ］〜ＲＡＭ［Ｈ］のそれぞれの、連続するアドレスに対応する格子点のデータが記憶される。従って、ＲＡＭ［Ａ］〜ＲＡＭ［Ｈ］に必要なアドレスの個数は格子点の個数分だけであり、実際に、メモリ容量の削減を実現することができる。
【００２４】
図３に示されたＲＡＭ［Ａ］〜ＲＡＭ［Ｈ］のアドレスは、８組に分けた格子点座標のそれぞれについて、Ｒ方向の値の増大に伴って第１のステップで増大し、Ｇ方向の値の増大に伴って第１のステップよりも小さい第２のステップで増大し、Ｂ方向の値の増大に伴って１ずつ増大する。例えば、ＲＡＭ［Ａ］のアドレスは、図２（ａ）から図２（ｃ）へ、そしてさらに、図２（ｅ）へと移り、Ｒ方向の上位２ビットの値が０（００）→２（１０）→４（補間用）と増大するに伴って９ずつ増大する。そして、図２（ａ）、（ｃ）、（ｅ）それぞれの、最下段から３段目へ、そしてさらに、最上段へと移り、Ｇ方向の上位２ビットの値が０（００）→２（１０）→４（補間用）と増大するに伴って３ずつ増大する。さらに、図２（ａ）、（ｃ）、（ｅ）それぞれの、左端の列から左側から３列目へ、そしてさらに、右端の列へと移り、Ｂ方向の上位２ビット値が０（００）→２（１０）→４（補間用）と増大するに伴って１ずつ増大する。同様に、ＲＡＭ［Ｅ］のアドレスも、Ｒ方向の値の増大に伴って９ずつ増大し、Ｇ方向の値の増大に伴って３ずつ増大し、Ｂ方向の値の増大に伴って１ずっ増大する。
【００２５】
ＲＡＭ［Ｂ］のアドレスは、図２（ａ）から図２（ｃ）へ、そしてさらに、図２（ｅ）へと移り、Ｒ方向の上位２ビットの値が０（００）→２（１０）→４（補間用）と増大するに伴って６ずつ増大する。そして、図２（ａ）、（ｃ）、（ｅ）それぞれの、最下段から３段目へ、そしてさらに、最上段へと移り、Ｇ方向の上位２ビット値が０（００）→２（１０）→４（補間用）と増大するに伴って２ずつ増大する。さらに、図２（ａ）、（ｃ）、（ｅ）それぞれの、左側から２列目から４列目へと移り、Ｂ方向の上位２ビット値が１（０１）→３（１１）と増大するに伴って１ずつ増大する。同様に、ＲＡＭ［Ｆ］のアドレスも、Ｒ方向の値の増大に伴って６ずつ増大し、Ｇ方向の値の増大に伴って２ずつ増大し、Ｂ方向の値の増大に伴って１ずつ増大する。
【００２６】
同様に、ＲＡＭ［Ｃ］，［Ｇ］のアドレスは、Ｒ方向の値の増大に伴って６ずつ増大し、Ｇ方向の値の増大に伴って３ずつ増大し、Ｂ方向の値の増大に伴って１ずつ増大する。ＲＡＭ［Ｄ］，〔Ｈ］のアドレスは、Ｒ方向の値が増大するに伴って４ずつ増大し、Ｇ方向の値が増大するに伴って２ずつ増大し、Ｂ方向の値が増大に伴って１ずつ増大する。
【００２７】
このように、図２（ａ）〜（ｅ）に示された１２５個のデータを、ＲＡＭ〔Ａ］〜ＲＡＭ［Ｈ］の８個のＲＡＭに分けて、それぞれのアドレスに記憶する。次に、入力データに対応する出力データを得るときには、８個のＲＡＭ［Ａ］〜ＲＡＭ［Ｈ］のそれぞれから１つずつのデータを読み出し、そのデータを利用した補間演算を行う。このとき、ＲＡＭ［Ａ］〜ＲＡＭ［Ｈ］のそれぞれからデータを読み出すためのアドレスを次のようにして求める。
【００２８】
（１）．入力データの上位２ビットが偶数（Ｅｖｅｎ）であるか奇数（Ｏｄｄ）であるかによって、補間の基準となるＲＡＭを、図４に示すように決定する。
【００２９】
（２）．基準ＲＡＭ[Ａ]〜ＲＡＭ[Ｈ]のアドレスは、入力データのＲＧＢ上位２ビットから以下の式で求める。ＩＮＴは得られた値の整数を求める関数である。
2010114542.tif 000003
【００３０】
（３）．補間演算のための残りの７つのＲＡＭのアドレスは、基準ＲＡＭを求めたＲＧＢ値を、以下のように補正したＲ’、Ｇ’、Ｂ’を用いて、（２）の各式から求める。
【００３１】
基準ＲＡＭがＲＡＭ[Ａ]の場合
ＲＡＭ[Ｂ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｃ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
ＲＡＭ[Ｄ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｅ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ
ＲＡＭ[Ｆ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｇ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
ＲＡＭ[Ｈ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
【００３２】
基準ＲＡＭがＲＡＭ[Ｂ]の場合
ＲＡＭ[Ａ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｃ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｄ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
ＲＡＭ[Ｅ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｆ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ
ＲＡＭ[Ｇ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｈ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
【００３３】
基準ＲＡＭがＲＡＭ[Ｃ]の場合
ＲＡＭ[Ａ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
ＲＡＭ[Ｂ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｄ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｅ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
ＲＡＭ[Ｆ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｇ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ
ＲＡＭ[Ｈ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
【００３４】
基準ＲＡＭがＲＡＭ[Ｄ]の場合
ＲＡＭ[Ａ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｂ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｃ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
ＲＡＭ[Ｅ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｆ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｇ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
ＲＡＭ[Ｈ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ
【００３５】
基準ＲＡＭがＲＡＭ[Ｅ]の場合
ＲＡＭ[Ａ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ
ＲＡＭ[Ｂ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｃ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
ＲＡＭ[Ｄ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｆ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｇ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
ＲＡＭ[Ｈ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
【００３６】
基準ＲＡＭがＲＡＭ[Ｆ]の場合
ＲＡＭ[Ａ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｂ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ
ＲＡＭ[Ｃ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｄ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
ＲＡＭ[Ｅ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｇ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｈ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
【００３７】
基準ＲＡＭがＲＡＭ[Ｇ]の場合
ＲＡＭ[Ａ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
ＲＡＭ[Ｂ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｃ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ
ＲＡＭ[Ｄ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｅ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｆ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｈ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
【００３８】
基準ＲＡＭがＲＡＭ[Ｈ]の場合
ＲＡＭ[Ａ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｂ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
ＲＡＭ[Ｃ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
ＲＡＭ[Ｄ]：Ｒ’＝Ｒ＋１、  Ｇ’＝Ｇ、      Ｂ’＝Ｂ
ＲＡＭ[Ｅ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ＋１
ＲＡＭ[Ｆ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ＋１、  Ｂ’＝Ｂ
ＲＡＭ[Ｇ]：Ｒ’＝Ｒ、      Ｇ’＝Ｇ、      Ｂ’＝Ｂ＋１
【００３９】
（４）．（２）の各式に（３）のＲＧＢ値を適用することにより、８分割したＲＡＭのそれぞれのアドレスを求め、これらのＲＡＭからなるＬＵＴから補間用のデータを同時に読み出すことができる。このように、基準ＲＡＭを定めることにより、他のＲＡＭについても、入力データの上位ビットを一定の規則に従って補正した値を用いて、基準ＲＡＭの場合と同一の式を用いてアドレスを求めることができる。これにより、アドレス生成回路の構成を単純化することができる。ただし、本発明において、他のアドレス生成方法を採用することも可能である。
【００４０】
そして、これら８個のＲＡＭから読み出した８個のデータを利用した補間演算を行い、入力データに対応する変換済みデータを算出する。すなわち、ＬＵＴに格納されたデータが各格子点座標における出力データである場合には、読み出したデータを利用した補間演算により、直接、変換済みデータが算出される。ＬＵＴに格納されたデータが各格子点座標における変換係数である場合には、読み出したデータを利用した補間演算により、入力データに対応する変換係数を算出し、この変換係数を利用して入力データを変換して、変換済みデータを算出する。なお、従来技術では、体積を利用した補間演算方法について簡単に述べたが、本発明では補間演算の方法については特に限定されるものではない。
【００４１】
以上、入力画像のＲＧＢデータの各上位２ビットによる５×５×５＝１２５個のデータを格納した３次元ＬＵＴでの例を記述したが、上位Ｎビット（Ｎ≧２）による（２N＋１）3のデータを格納した３次元ＬＵＴの場合は、上記（２）で示した基準ＲＡＭのアドレスを求める式は、
2010114542.tif 000004
で表すことができる。
【００４２】
８分割したＬＵＴの各ＲＡＭ容量については、ＲＡＭ[Ａ]の容量は（２N-1＋１)3ワード、ＲＡＭ[Ｂ]，[Ｃ]，[Ｅ]の容量は２N-1×（２N-1＋１)2ワード、ＲＡＭ[Ｄ]，[Ｆ]，[Ｇ]の容量は２2(N-1）×（２N-1＋１）ワード、ＲＡＭ[Ｈ]の容量は２3(N-1)ワードとなる。
【００４３】
したがって、上位３ビットによる９×９×９＝７２９ワードのデータを格納する３次元ＬＵＴの場合は、１２５ワードのＲＡＭが１個（ＲＡＭ[Ａ]）、１００ワードのＲＡＭが３個（ＲＡＭ[Ｂ]，[Ｃ]，[Ｅ]）、８０ワードのＲＡＭが３個（ＲＡＭ[Ｄ]，[Ｆ]，[Ｇ]）、６４ワードのＲＡＭが１個（ＲＡＭ[Ｈ]）の合計７２９ワードのＲＡＭでＬＵＴが構成できることになり、７２９ワードのＲＡＭを８個使用する従来の場合と比べて、７２９×７＝５１０３ワードのＲＡＭ容量を削減できる。
【００４４】
図１は以上説明した手法によって構成したデータ変換装置を表す図である。図中、１０は基準ＲＡＭ選択部であり、入力画像のＲＧＢデータの上位Ｎビットが奇数か偶数かによって基準ＲＡＭを選択する。２０はＲＡＭアドレス生成部であり、選択された基準ＲＡＭに応じて、前記した（２）〜（３）によってＲＡＭ[Ａ]〜[Ｈ]のアドレスを生成する。３０は３次元ＬＵＴであり、８分割したＲＡＭ[Ａ]３１〜ＲＡＭ[Ｈ]３８からなる。４０は補間演算回路であり、３次元ＬＵＴ３０から同時に読み出された８個の格子点座標データと入力画像のＲＧＢデータの下位（８−Ｎ）ビットのデータとを利用して補間演算を行ってＲＧＢの変換済みデータを作成する。
【００４５】
また、上記ＬＵＴ構成は、色変換等の場合のＲＧＢによる３次元ＬＵＴだけではなく、例えば現在データと過去データから最適な補正値を決定するオーバドライブ回路で用いられるような２次元ＬＵＴにおいても、同様な方法でＬＵＴを構成するＲＡＭの削減が可能となる。この場合、２次元ＬＵＴによる４点補間が行われ、画像データ上位Ｎビットによる２次元ＬＵＴを考えると、４分割したＬＵＴの各ＲＡＭ容量は、（２N-1＋１）2ワードのＲＡＭが１個、２N-1×（２N-1＋１）ワードのＲＡＭが２個、２2(N-１）ワードのＲＡＭが１個となる。
【００４６】
また、上位４ビットによる１７×１７の２次元ＬＵＴの場合、８１ワードのＲＡＭが１個、７２ワードのＲＡＭが２個、６４ワードのＲＡＭが１個の合計２８９ワードのＲＡＭ容量でＬＵＴが構成可能となり、２８９ワードのＲＡＭからなるＬＵＴを４点補間のため４個使用する場合と比較して、２８９×３＝８６７ワードのＲＡＭ容量を削減できる。
【図面の簡単な説明】
【００４７】
【図１】本発明の１つの実施例のデータ変換装置の回路図である。
【図２】３次元ＬＵＴを構成する８個のＲＡＭへの格子点座標データの格納の一例の説明図である。
【図３】各ＲＡＭのアドレスと格子点の番号との対応を示す説明図である。
【図４】基準ＲＡＭ選択の説明図である。
【図５】３次元色空間の格子点座標を示す図である。
【図６】１つの単位立方体を示す図である。
【符号の説明】
【００４８】
１０：基準ＲＡＭ選択部、２０：ＲＡＭアドレス生成部、３０：ＬＵＴ、３１〜３８：ＲＡＭ、４０：補間演算部
【図１】
2010114542.tif 000005
【図２】
2010114542.tif 000006
【図３】
2010114542.tif 000007
【図４】
2010114542.tif 000008
【図５】
2010114542.tif 000009
【図６】
2010114542.tif 000010