(57)【要約】    【課題】  等間隔グリッドのデータ変換を行う場合に対して、実装コストを増加させることなく、不等間隔グリッドのデータ変換を行えるデータ変換方法、データ変換装置、プロセッサ、プログラム及び記憶媒体を提供する。    【解決手段】  等間隔分割されたグリッド用のデータ変換手段と、該データ変換手段に対する入力値１０１〜１０３を変換することにより不等間隔分割されたグリッドに対応するデータ変換を可能とする入力値変換部１０４〜１０６とを有する。【選択図】      図１
2005348180.tif 000002
【特許請求の範囲】
【請求項１】
入力値の各成分の値域をグリッド分割し、グリッドに対応する出力値を保持するルックアップテーブルと、補間演算とによってデータ変換を行うデータ変換方法であって、
不等間隔分割されたグリッドに対応する入力値を等間隔分割されたグリッドに対応する入力値に変換する入力値変換工程と、
該入力値変換工程により変換後の入力値を等間隔分割されたグリッドに対応する入力値としてデータ変換を行うデータ変換工程と
を有することを特徴とするデータ変換方法。
【請求項２】
前記入力値変換工程は、入力値の複数の上位ビットにより参照されるグリッド番号／グリッド間隔テーブルと、グリッド間隔に従って入力値の複数の下位ビットをシフトするシフト工程とを含むことを特徴とする請求項１に記載のデータ変換方法。
【請求項３】
前記データ変換工程は、前記入力値変換工程の出力に対応するために、等間隔グリッド分割時の入力値の値域よりも広い値域の入力値を受け付け、その入力値の各成分に対応するグリッド数が可変であることを特徴とする請求項１に記載のデータ変換方法。
【請求項４】
入力値の各成分の値域をグリッド分割し且つグリッドに対応する出力値を保持するルックアップテーブルと、補間演算とによってデータ変換を行うデータ変換装置であって、
不等間隔分割されたグリッドに対応する入力値を等間隔分割されたグリッドに対応する入力値に変換する入力値変換手段と、
該入力値変換手段により変換後の入力値を等間隔分割されたグリッドに対応する入力値としてデータ変換を行うデータ変換手段と
を有することを特徴とするデータ変換装置。
【請求項５】
前記入力値変換手段は、入力値の複数の上位ビットにより参照されるグリッド番号／グリッド間隔テーブルと、グリッド間隔に従って入力値の複数の下位ビットをシフトするシフト手段とから成ることを特徴とする請求項４に記載のデータ変換装置。
【請求項６】
前記データ変換手段は、前記入力値変換手段の出力に対応するために、等間隔グリッド分割時の入力値の値域よりも広い値域の入力値を受け付け、その入力値の各成分に対応するグリッド数が可変であることを特徴とする請求項４に記載のデータ変換装置。
【請求項７】
入力値の各成分の値域をグリッド分割し且つグリッドに対応する出力値を保持するルックアップテーブルと、補間演算とによってデータ変換処理を行うことが可能なプロセッサであって、
不等間隔分割されたグリッドに対応する入力値を等間隔分割されたグリッドに対応する入力値に変換する入力値変換命令と、
該入力値変換命令により変換後の入力値に等間隔分割されたグリッド用のデータ変換を高速に行うためのルックアップテーブルアドレス計算／補間係数計算命令と
を有することを特徴とするプロセッサ。
【請求項８】
前記入力値変換命令は、入力値の複数の上位ビットによってグリッド番号／グリッド間隔テーブルを参照し、グリッド間隔に従って入力値の複数の下位ビットをシフトすることを特徴とする請求項７に記載のプロセッサ。
【請求項９】
前記ルックアップテーブルアドレス計算／補間係数計算命令は、前記入力値変換命令の出力に対応するために、等間隔グリッド分割時の入力値の値域よりも広い値域の入力値を受け付け、その入力値の各成分に対応するグリッド数が可変であることを特徴とする請求項７に記載のプロセッサ。
【請求項１０】
請求項１乃至３に記載のデータ変換方法を実現するためのコンピュータ読み取り可能なプログラムコードを有することを特徴とするプログラム。
【請求項１１】
請求項１乃至３に記載のデータ変換方法を実現するためのコンピュータ読み取り可能なプログラムコードを保持することを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを変換処理するデータ変換方法、データ変換装置、プロセッサ、プログラム及び記憶媒体に関する。
【背景技術】
【０００２】
画像データの色空間変換処理は、一般に非線形な変換となるため、代表的な入力値に対する出力値を格納したルックアップテーブルと、代表的な入力値以外の入力値に対する出力値を計算するための補間演算とを組み合わせた変換方式が用いられる。
【０００３】
ここで、代表的な入力値の設定方式としては、２のべき乗（８、１６、３２等）単位の等間隔で代表値を設定するのが一般的であり、Ｒ（赤），Ｇ（緑），Ｂ（青）のように３つの色成分からなる色空間を入力として、他の色空間にデータ変換を行う場合、図１１に示すように、入力値の値域を示す３次元の直方体の各辺を等間隔にグリッド分割（図１１では４等分）して、そのグリッドの各頂点を代表的な入力値として、対応する出力値をルックアップテーブルに格納する。
【０００４】
このように、２のべき乗単位の等間隔グリッド分割を行う理由は、入力値からルックアップテーブルを参照するためのアドレスを計算することと、補間演算の重み付け係数の計算が単純化できるためであり、このような等間隔グリッド分割を行った場合の従来のデータ変換装置の構成例を図１２に示す。
【０００５】
図１２は、入力値が各８ビットで３つの成分から成り、等間隔グリッド分割（グリッド間隔１６）を行った場合のデータ変換装置の構成例を示す。
【０００６】
図１２において、１２０１，１２０２，１２０３は、それぞれ８ビットの入力値であり、その値域は０から２５５となる。これら３つの入力値１２０１〜１２０３がＲＧＢ画像データであった場合、それぞれが、Ｒ（赤）成分、Ｇ（緑）成分、Ｂ（青）成分に対応することになる。１２０４はテーブルアドレス生成部で、各入力値１２０１〜１２０３のＭＳＢ４ビットを受け取り、各入力値１２０１〜１２０３のグリッド番号から、後述するルックアップテーブル１２０５における対応データのアドレスを計算するものである。補間のためには、通常、複数のテーブル出力を必要とするが、四面体補間の場合は、どの四面体を使用するかを決定しないとテーブルアドレスが求められないため、後述する四面体決定部１２０６から選択された四面体の情報を得て、補間に必要な全点のアドレスを計算する。
【０００７】
１２０５はルックアップテーブルで、代表的な入力値に対する出力値を格納したテーブルであり、ここでは、入力値をグリッド間隔１６で等間隔グリッド分割を行っているため、各入力値１２０１〜１２０３について、値０、１６、３２、４８、（途中略）、２２４、２４０、２５５に対応するグリッド頂点の出力値が格納されており、このルックアップテーブル１２０５に格納されたデータの総数は、１７×１７×１７となる。
【０００８】
なお、最大入力値２５５に対応する出力値をルックアップテーブル１２０５に格納しておくため、最後のグリッド間隔だけが２５５−２４０＝１５となっている。このため、最大入力値２５５や入力値２４０〜２５４に対して特別な扱いを行うことも有り得るが、データ変換装置の構成全体に影響を与えるものではないため、ここでは説明しない。状況によっては、最大入力値２５５の代わりに、仮想的な入力値２５６を用いることで、最後のグリッド間隔は１６となり、特別な扱いは不要となる。このグリッド間隔１５の最終グリッドの特別扱いのことを別にすると、各入力値１２０１〜１２０３の８ビットのうち、ＭＳＢ４ビットがどのグリッドに属しているかを示すグリッド番号（０〜１５）を示し、ＬＳＢ４ビットがグリッド内における相対的な位置を示している。
【０００９】
１２０６は四面体決定部で、後述する補間演算部１２０７で四面体補間を行う場合に必要となる部分で、各入力値１２０１〜１２０３のＬＳＢ４ビットを受け取り、それらの大小関係から、グリッド内での入力値の相対的な位置関係を求めて、どの四面体を補間に用いるか決定するものである。また、四面体決定部１２０６は、決定した四面体に応じて、補間で使用される補間係数も計算するものである。
【００１０】
１２０７は補間演算部で、ルックアップテーブル１２０５からテーブル出力値を、四面体決定部１２０６から補間係数をそれぞれ受け取って、四面体補間による補間演算を行い、補間出力値を出力するものである。ここでは、四面体補間で説明したが、補間演算部１２０７で行う補間演算処理は、四面体補間以外の方式でも良い。
【００１１】
図１２を用いて説明したように、等間隔グリッド分割を用いると、比較的単純な構成でデータ変換装置を構成できるが、色空間データ変換処理が非線形性を持つため、単純な等間隔グリッド分割では、データ変換誤差が大きくなってしまう場合がある。
【００１２】
そこで、図１３に示すように、不等間隔グリッド分割を行い、非線形性の強い部分をより細かく分割することで、データ変換誤差の低減を図ることができる。
【００１３】
不等間隔グリッドの場合のデータ変換装置の従来例として、特許文献１に示されたデータ変換装置の構成を図１４に示す。
【００１４】
図１４において、１４０１，１４０２，１４０３はそれぞれ８ビットの入力値であり、各入力値１４０１〜１４０３は、ＭＳＢ３ビットとＬＳＢ５ビットの２つに分割されて、後述するアドレス／補間係数生成部１４０４に入力される。１４０４はアドレス／補間係数生成部で、後述するルックアップテーブル１４０５に対して補間で使用される点のアドレスを出力し、後述する補間演算部１４０６に対して補間係数を出力するものである。１４０５はルックアップテーブル、１４０６は補間演算部である。補間演算部１４０６で行う補間演算処理が四面体補間ではないため、図１２の四面体決定部１２０６に対応する部分は存在していない。１４０７は粗いサンプルのルックアップテーブル（ＬＵＴ−１）、１４０８，１４０９，１４１０は細かいサンプルのルックアップテーブル（ＬＵＴ−２）、１４１１はアドレス生成部である。
【００１５】
図１４における図１２との違いは、アドレス／補間係数生成部１４０４にあるため、その内容に付いて説明する。
【００１６】
各入力値１４０１〜１４０３のＭＳＢ３ビットは集められ、９ビットのアドレスを成して粗いサンプルのルックアップテーブル（図中、ＬＵＴ−１）１４０７を参照する。粗いサンプルのルックアップテーブル１４０７は、入力をグリッド間隔３２で等間隔分割した場合の３次元的な各グリッドに対して、次の情報を保持している。
【００１７】
・ベースアドレス  ：  ルックアップテーブル１４０５において、粗いグリッド（グリッド間隔３２の等間隔グリッド）のベース点のデータを指すアドレス。
【００１８】
・サンプルレート  ：  粗いグリッドが更に細かいグリッドに分割（サブサンプル）されているか否か、また、サブサンプルの比率を示すコード。この情報により、粗いグリッドに属する細かいグリッドのサイズが決定し、グリッドサイズは、各成分に対して、３２，８，４，２のいずれかである。
【００１９】
・ＮＡ、ＮＡ・ＮB    ：  ルックアップテーブル１４０５のアドレス計算を行うために、テーブルのサイズを示す値。粗いグリッドがサブサンプルされている場合、サブサンプルされた値に対するテーブルのサイズは、サブサンプルの比率により決まる。
【００２０】
これらの情報のうち、ベースアドレスとＮＡ、ＮＡ・ＮBは、アドレス生成部１４１１に入力され、サンプルレートは、細かいサンプルのルックアップテーブル（図中、ＬＵＴ−２）１４０８，１４０９，１４１０に入力される。細かいサンプルのルックアップテーブル１４０８，１４０９，１４１０は、各入力値１４０１〜１４０３毎に存在し、入力値のＬＳＢ５ビットと、粗いサンプルのルックアップテーブル１４０７で得られたサンプルレート情報に対して、次の情報を保持している。
【００２１】
・オフセット  ：  入力値（ＬＳＢ５ビット）に応じて、アドレス生成部１４１１でベースアドレスに加えるべきオフセット値を示す。サンプルレートの示すグリッドサイズが３２（サブサンプル無し）の場合は、オフセット値は０であるが、それ以外の場合は、０〜３１の入力値に応じて異なるグリッドに属することになる。
【００２２】
・補間係数  ：  サンプルレートの示すグリッドサイズと、入力値とによって決まる補間係数。
【００２３】
これらの情報のうち、オフセットはアドレス生成部１４１１に入力され、補間係数は補間演算部１４０６に入力される。アドレス生成部１４１１は、粗いサンプルのルックアップテーブル１４０７から来るベースアドレス、ＮＡ、ＮＡ・ＮBと、細かいサンプルのルックアップテーブル１４０８，１４０９，１４１０から来るオフセット情報を利用して、ルックアップテーブル１４０５に対して与えるアドレスを計算する。
【００２４】
また、その他に不等間隔グリッドに対応したデータ変換装置の従来例として、入力の各成分の値全てに対して、予め、入力値と該入力値の属するグリッドのベース点との距離を表す正規化された値のテーブルを作成しておき、このテーブルを利用することで、四面体補間の四面体の選択や補間係数の計算を効率的に行うようにしたものが有る（特許文献２参照）。
【特許文献１】米国特許第５３２１７９７号公報
【特許文献２】特開２０００−２２９７３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２５】
図１４に示した従来のデータ変換装置により、不等間隔グリッドに対応したデータ変換を実現できるが、粗いサンプルのルックアップテーブル１４０７と、細かいサンプルのルックアップテーブル１４０８〜１４１０の２段のテーブル参照を必要とし、特に、粗いサンプルのルックアップテーブル１４０７のサイズが大きいため、図１２に示す等間隔グリッドのデータ変換装置に比べて実装コストが高くなってしまう。
【００２６】
また、アドレス生成部１４１１において、ベースアドレスとオフセットの加算処理を行う必要があり、アドレス演算処理が複雑化する。
【００２７】
また、特許文献２のデータ変換装置は、入力値の全てに対して正規化された距離を示すルックアップテーブルを用意するため、非常に多様な不等間隔グリッドを実現できるが、ルックアップテーブルのサイズが大きくなるため、リソースの限られたデータ変換装置では、実装コストが高くなる。
【００２８】
また、ルックアップテーブルを参照するためのアドレス計算については示されていないため、これは、別に解決する必要がある。
【００２９】
そこで、本発明は、上述のような従来技術の欠点に鑑みてなされたものであり、等間隔グリッドのデータ変換を行う場合に対して、実装コストをあまり増加させることなく、不等間隔グリッドのデータ変換を行えるデータ変換方法、データ変換装置、プロセッサ、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００３０】
上記目的を達成するために、本発明は、入力値の各成分の値域をグリッド分割し、グリッドに対応する出力値を保持するルックアップテーブルと、補間演算とによってデータ変換を行うデータ変換方法であって、不等間隔分割されたグリッドに対応する入力値を等間隔分割されたグリッドに対応する入力値に変換する入力値変換工程と、該入力値変換工程により変換後の入力値を等間隔分割されたグリッドに対応する入力値としてデータ変換を行うデータ変換工程とを有することを特徴とするデータ変換方法を提供する。
【００３１】
また、上記目的を達成するために、本発明は、入力値の各成分の値域をグリッド分割し、グリッドに対応する出力値を保持するルックアップテーブルと、補間演算とによってデータ変換を行うデータ変換装置であって、不等間隔分割されたグリッドに対応する入力値を等間隔分割されたグリッドに対応する入力値に変換する入力値変換手段と、該入力値変換手段により変換後の入力値を等間隔分割されたグリッドに対応する入力値としてデータ変換を行うデータ変換手段とを有することを特徴とするデータ変換装置を提供する。
【発明の効果】
【００３２】
本発明によれば、等間隔グリッドのデータ変換を行う場合に対して、実装コストを増加させることなく、不等間隔グリッドのデータ変換を行える。
【発明を実施するための最良の形態】
【００３３】
本発明のデータ変換方法、データ変換装置、プロセッサ、プログラム及び記憶媒体の実施形態について、図面を参照しながら説明する。
【００３４】
（第１の実施の形態）
まず、本発明の第１の実施の形態を図１乃至図４に基づき説明する。
【００３５】
なお、説明を具体的に行う都合上、入力値は８ビット、３成分とする。また、本発明でサポートする不等間隔グリッドのグリッド間隔は、２のべき乗サイズであるが、ここでは、４，８，１６の３種類のグリッド間隔をサポートするものとする。
【００３６】
図１は、本発明の第１の実施の形態に係るデータ変換装置の構成を示すブロック図であり、このデータ変換装置は、基本的には、入力値の各成分の値域をグリッド分割し、グリッドに対応する出力値を保持するルックアップテーブルと、補間演算手段とによりデータ変換を行うものである。
【００３７】
図１において、１０１，１０２，１０３は入力値で、それぞれ８ビットで表され、例えば、入力値１０１〜１０３がＲＧＢ画像データの場合は、それぞれが、画像データのＲ（赤）成分、Ｇ（緑）成分、Ｂ（青）成分を示している。１０４，１０５，１０６は入力値変換部（入力値変換手段）、１０７はテーブルアドレス生成部、１０８はルックアップテーブル（ＬＵＴ）、１０９は四面体決定部、１１０は補間演算部（補間演算手段）である。
【００３８】
図１２に示す従来のデータ変換装置の場合には、入力値１２０１，１２０２，１２０３は、テーブルアドレス生成部１２０４と四面体決定部１２０６に直接入力されていたが、本実施の形態に係るデータ変換装置では、各入力値１０１〜１０３は、まず、入力値変換部１０４，１０５、１０６によって９ビットのデータに変換される。なお、このデータ変換処理の詳細に付いては、図２及び図３を用いて後述する。
【００３９】
入力値変換部１０４，１０５、１０６は、等分割されたグリッド用のデータ変換手段に対する入力値を変換することで不等間隔分割されたグリッドに対応するデータ変換を可能とするものである。
【００４０】
テーブルアドレス生成部１０７は、データ変換処理後の９ビットの値のうち、上位５ビットを入力とし、ルックアップテーブル１０８に対するアドレスを生成する。テーブルアドレス生成部１０７の動作は、図１２に示す従来のデータ変換装置の場合のテーブルアドレス生成部１２０４の動作と基本的に変わらないが、入力値のビット数が４ビットから５ビットに増加しているため、その分だけ計算に用いるビット数を増やす必要がある。また、等間隔グリッドのグリッド数（図１２では１７×１７×１７）と不等間隔グリッドのグリッド数とが互いに一致するとは限らないため、グリッド数は複数の値の間で可変とする。
【００４１】
ルックアップテーブル１０８に関しては、データの内容が不等間隔グリッドの場合のデータであり、グリッド数が等間隔グリッドの場合と同一でない可能性があることを除いて、図１２と同じである。このルックアップテーブル１０８は、グリッドに対応する出力値を保持するものである。また、四面体決定部１０９、補間演算部１１０は、図１２の四面体決定部１２０６、補間演算部１２０７と同じ機能を有するものである。
【００４２】
次に、本実施の形態に係るデータ変換装置において、図１２或いは図１４に示す従来のデータ変換装置の場合と異なる部分である入力値変換部１０４，１０５，１０６に付いて、図２を用いて説明する。
【００４３】
図２は、本実施の形態に係るデータ変換装置における入力値変換部１０４〜１０６の構成を示すブロック図であり、同図に示すように、入力値変換部１０４〜１０６は、グリッド番号／グリッド間隔テーブル２０１と、シフト部（シフト手段）２０２とから成る。
【００４４】
グリッド番号／グリッド間隔テーブル２０１は、入力値の複数の上位ビットにより参照されるものである。また、シフト部２０２は、グリット間隔に従って入力値の下位ビットをシフトするものである。
【００４５】
図２において、入力値変換部１０４〜１０６に入力された８ビットの入力のうち、上位６ビットは、グリッド番号／グリッド間隔テーブル２０１に、下位４ビットは、シフト部２０２に入力される。
【００４６】
なお、上位６ビットと下位４ビットには２ビットの重なりがある。
【００４７】
グリッド番号／グリッド間隔テーブル２０１は、入力値の値域を最小グリッド間隔（この例では４）で分割した数だけのエントリ（この例では６４）を持ち、個々のエントリは、１つの入力値の成分に着目した場合に対応する入力値の属するグリッド番号を示す５ビットと、そのグリッドのグリッド間隔（この例では４，８，１６の区別）を示す２ビットからなる。
【００４８】
図４は、グリッド番号／グリッド間隔テーブル２０１の一例を示す図である。
【００４９】
図４では、グリッド間隔は、４，８，１６の値で示されているが、グリッド番号／グリッド間隔テーブル２０１においては、これらの区別を付けるための２ビットのコードが格納されている。
【００５０】
図４から分るように、このグリッド番号／グリッド間隔テーブル２０１のエントリ１個は、入力値の値域の範囲４に相当するため、グリッド間隔１６の場合は同じグリッド番号が４エントリ連続し、グリッド間隔８の場合は２エントリ連続している。
【００５１】
シフト部２０２は、グリッド番号／グリッド間隔テーブル２０１の参照により得られたグリッド間隔情報を使用して、入力値の下位４ビットをグリッド間隔情報で決まった量だけ左シフトして、４ビットのデータとして出力する。シフト部２０２に入力されるデータのビット数（この例では４）は、最大グリッド間隔（この例では１６）に対応している。グリッド番号／グリッド間隔テーブル２０１から出力された５ビットのグリッド番号と、シフト部２０２から出力された４ビットは最後に結合され、９ビットの出力値として、入力値変換部１０４〜１０６から出力される。
【００５２】
図３は、図２の入力値変換部１０４〜１０６の処理の流れに沿って、各部でのデータを示した図であり、同図において、８ビットの入力値３０１は、２ビットの重なりを持った上位ビットと下位ビットとに分かれ、それぞれ、テーブル参照部３０２と左シフト部３０５に入力される。テーブル参照部３０２の参照処理結果は、５ビットのグリッド番号３０３と２ビットのグリッド間隔を示すコード３０４である。グリッド間隔を示すコード３０４は、左シフト部３０５の動作を図中の式の通りに制御する。この処理は、入力値のうち、グリッド内のオフセットに相当するビット（グリッド間隔１６では下位４ビット、グリッド間隔８では下位３ビット、グリッド間隔４では下位２ビット）を取り出し、そのＭＳＢが最大グリッド間隔（この例では１６）の場合のビット位置と対応するようにシフトする処理に相当する。
【００５３】
このようなシフト処理を行う理由は、図１で説明したように、入力値変換部１０４〜１０６の後に続くデータ変換処理動作が、基本的に等間隔グリッドに対する変換しかサポートしていないため、最大グリッド間隔で等間隔グリッドの入力がなされたように見せかけるための処理である。
【００５４】
本実施の形態に係るデータ変換装置に入力値（５, ３３, ５４）が入力された場合を説明すると、第１の成分の入力値５に対しては、上位６ビット０、下位４ビット５であるから、グリッド番号／グリッド間隔テーブル２０１よりグリッド番号０、グリッド間隔１６で、シフト部２０２ではシフトされないため、下位ビットの出力は５となる。グリッド番号０と合わせて、第１の成分に対する出力値は５となる。
【００５５】
次に、第２の成分の入力値３３に対しては、上位６ビット８、下位４ビット１であるから、テーブルよりグリッド番号２、グリッド間隔８で、シフト部２０２では１ビットシフトされて、下位ビットの出力は２となる。グリッド番号２と合わせて、第２の成分に対する出力値は３４となる。
【００５６】
更に、第３の成分の入力値５４に対しては、上位６ビット１３、下位４ビット６であるから、グリッド番号／グリッド間隔テーブル２０１よりグリッド番号５、グリッド間隔４で、シフト部２０２では２ビットシフトされて、下位４ビットだけ使われるため、下位ビットの出力は８となる。グリッド番号５と合わせて、第３の成分に対する出力値は８８となる。
【００５７】
このようにして、入力値変換部１０４〜１０６で変換された後の値を、以降のデータ変換部では、最大グリッドサイズ（この例では１６）を持つ等間隔グリッドの場合とみなしてデータ変換処理を行うことで、所望の不等間隔グリッドの場合のデータ変換処理を行うことができる。
【００５８】
本実施の形態に係るデータ変換装置を、図１４に示す従来のデータ変換装置と比較すると、本実施の形態に係るデータ変換装置の方が、必要なルックアップテーブルの参照が少なく、また、ルックアップテーブルのサイズも小さいため、実装コストを抑えることができる。
【００５９】
また、本実施の形態に係るデータ変換装置においては、テーブルアドレスの生成は、グリッド番号のビット数が増える点と、グリッド数が等間隔グリッドの場合と異なる点を除いて、等間隔グリッドの場合と同じであり、図１４に示す従来のデータ変換装置におけるアドレス生成部１４１１のように、ベースアドレスとオフセットとを加算する処理は必要ない。
【００６０】
また、本実施の形態に係るデータ変換装置を、特許文献２のデータ変換装置と比較すると、ルックアップテーブルの参照回数は変わらないが、本実施の形態に係るデータ変換装置の方が、ルックアップテーブルのサイズが小さく、リソースの限られたデータ変換装置での実装コストは抑えられる。また、特許文献２には示されていないアドレス計算についても、本実施の形態に係るデータ変換装置はサポートしている。
【００６１】
なお、本実施の形態においては、説明の都合上、入力値の成分数、各データのビット数やグリッド数、グリッド間隔等、具体的な数値を例として挙げて説明したが、本発明は、この説明の中の具体的な数値に制限されることなく適用できるものである。
【００６２】
また、入力値の各成分に対して共通のグリッド数／グリッド間隔テーブルを用いることもできるし、各成分毎に異なるグリッド数／グリッド間隔テーブルを用いることもできる。
【００６３】
また、入力値の各成分に対してグリッド数は共通でも良く、また、各成分毎に異なっても良いが、自由度を増せば、その分、実装コストが増加する点に留意する必要がある。
【００６４】
更に、本実施の形態においては、補間方式については、四面体補間を用いて説明したが、直方体補間等、他の類似の補間方式にも本発明は適用可能である。
【００６５】
（第２の実施の形態）
次に、本発明の第２の実施の形態を、図５〜図１０に基づき説明する。
【００６６】
本実施の形態は、データ変換処理を高速に行うことのできるプロセッサに関するものであり、後述する専用命令（ルックアップテーブルアドレス計算／補間係数計算命令及び入力値変換命令）を持つことで、等間隔グリッドに対応するデータ変換処理及び不等間隔グリッドに対応するデータ変換処理を高速に行うことができる。
【００６７】
本実施の形態に係るプロセッサは、入力値の各成分の値域をグリッド分割し且つグリッドに対応する出力値を保持するルックアップテーブルと、補間演算とによってデータ変換処理を行うことが可能なものである。
【００６８】
まず、等間隔グリッドに対応するデータ変換処理について、図５〜図７を用いて説明する。
【００６９】
図５は、本実施の形態に係るプロセッサにより、等間隔グリッドに対応するデータ変換処理を行う場合の動作の流れを示すフローチャートである。
【００７０】
入力データが準備できると、まず、ステップＳ５０１で、各８ビット、３成分の入力値を読み込む。次に、ステップＳ５０２で、ルックアップテーブルを参照するためのアドレスと補間で使用する係数の計算を行う。次に、ステップＳ５０３で、前記ステップＳ５０２において求めたアドレスを使用して、ルックアップテーブルを参照してテーブル出力値を得る。次に、ステップＳ５０４で、前記ステップＳ５０３において得られたテーブル出力値と、前記ステップＳ５０２において得られた補間係数とを使用して補間演算処理を行う。次に、ステップＳ５０５で出力値を書き出し、次のステップＳ５０６で、出力成分数（色空間変換の場合は出力色数）が所定数になったか否かを判断する。そして、出力成分数が所定数にならないと判断された場合は、前記ステップＳ５０３へ戻り、また、出力成分数が所定数になったと判断された場合は、本処理動作を終了する。
【００７１】
本実施の形態に係るプロセッサは、上述したようなデータ変換処理を高速に行うため、ステップＳ５０２とステップＳ５０４で、次に説明する専用命令を持つ。
【００７２】
図６は、等間隔１７グリッドを処理する場合のＬＵＴアドレス／補間係数計算命令の処理動作を示す図であり、このＬＵＴアドレス／補間係数計算命令は、等間隔分割されたグリッド用のデータ変換を高速に行うためのものである。また、ＬＵＴアドレス／補間係数計算命令が、後述する入力値変換命令の出力に対応するために、等間隔グリッド分割時の入力値の値域よりも広い値域の「入力を受け付け、入力値の各成分に対応するグリッド数が可変である。
【００７３】
図６において、６０１は入力値、６０２は上位ビット、６０３は下位ビット、６０４は四面体ベースアドレス計算部、６０５は３値大小比較部、６０６は四面体３点分アドレスオフセット計算部、６０７は補間係数計算部、６０８は３点ベースアドレスオフセット加算部、６０９は四面体アドレス出力、６１０は補間係数出力である。
【００７４】
図６において、「８ビット、３成分の入力値６０１」は、「４ビット、３成分の上位ビット６０２」と、「４ビット、３成分の下位ビット６０３」とに分割され、それぞれ、グリッド番号、グリッド内オフセットとして使用される。上位ビット６０２は、四面体ベースアドレス計算部６０４に入力され、四面体補間のベース点に対応するアドレスが計算されて出力される。下位ビット６０３は、３値大小比較部６０５に入力され、３成分のグリッド内オフセット値の比較結果が出力される。この比較結果によって、どの四面体が補間に用いられるかが定まるため、次の四面体３点分アドレスオフセット計算部６０６によって、四面体補間のベース点に対する他の３点のオフセットを計算する。このオフセットは、次の３点ベースアドレスオフセット加算部６０８によってベースアドレスと加算され、四面体補間の４頂点に対応する出力四面体アドレス出力６０９として出力される。下位ビット６０３の値と３値大小比較部６０５の比較結果は、補間係数計算部６０７にも入力され、その後の補間演算処理において使用される補間係数出力６１０が出力される。
【００７５】
図７は、補間演算命令の処理動作の流れを示すフローチャートである。
【００７６】
図７において、入力値は、８ビット、４組の四面体ＬＵＴ値入力７００と、先に、図６に示すＬＵＴアドレス／補間係数計算命令で計算された４組の補間係数入力７０１である。
【００７７】
補間演算処理は、４組の四面体ＬＵＴ値に対応する補間係数を掛けて加算する処理であり、図７において、乗算７０２，７０３，７０４，７０５が、４組の各値の乗算を示し、加算７０６が乗算結果の加算を示す。また、丸め処理７０７は、乗算／加算処理によって増えた有効ビット数を補間出力値７０８のビット数に合わせて丸める処理である。
【００７８】
これらの一連の処理を専用命令で行うことで、データ変換処理は非常に高速化される。
【００７９】
但し、専用命令の処理の分担の仕方は、図６及び図７で示した処理に限られるものではなく、実装コストから更に命令を分割する場合も有り得る。
【００８０】
次に、不等間隔グリッドのデータ変換を行う場合の処理について、図８〜図１０を用いて説明する。
【００８１】
図８は、本実施の形態に係るプロセッサにて、不等間隔グリッドに対応するデータ変換処理を行う場合の動作の流れを示すフローチャートである。
【００８２】
図８において、ステップＳ８０１，ステップＳ８０３〜８０７は、図５におけるステップＳ５０１〜５０６と同一であるから、その説明は省略し、相違点のみを説明する。
【００８３】
図８において、ステップＳ８０１の処理終了後は、ステップＳ８０２で、入力値変換処理を行い、その後、ステップＳ８０３へ進む。
【００８４】
ステップＳ８０２では、後述のように専用命令で処理を行うため、等間隔グリッドの場合と比べて若干の処理速度の低下はあるものの、依然としてデータ変換処理を高速で行うことができる。
【００８５】
ＬＵＴアドレス／補間係数計算命令については、等間隔グリッドの場合と一部異なる部分があるため次に説明するが、補間計算命令については、等間隔グリッド及び不等間隔グリッドの場合と同一であるから、その説明は省略する。
【００８６】
図９は、不等間隔グリッドの場合のＬＵＴアドレス／補間係数計算命令の処理動作を示す図であり、同図において、下位ビット９０３、３値大小比較部９０５、補間係数計算部９０７、３点ベースアドレスオフセット加算部９０８、四面体アドレス出力９０９、補間係数出力９１０は、図６における下位ビット６０３、３値大小比較部６０５、補間係数計算部６０７、３点ベースアドレスオフセット加算部６０８、四面体アドレス出力６０９、補間係数出力６１０と同一であるから、その詳細説明は省略する。
【００８７】
図９において、９０１は入力値、９０２は上位ビット、９０３は下位ビット、９０４は四面体ベースアドレス計算部、９０５は３値大小比較部、９０６は四面体３点分アドレスオフセット計算部、９０７は補間係数計算部、９０８は３点ベースアドレスオフセット加算部、９０９は四面体アドレス出力、９１０は補間係数出力、９１１はグリッド数Ｎである。
【００８８】
不等間隔グリッドの場合のグリッド数は、入力各成分共通でＮ（Ｎ≦３３）とする。図６と図９との違いの１つ目は、入力値変換により入力値９０１の各成分が９ビットになっていること、それによって、上位ビット９０２が５ビット、３成分に増加し、四面体ベースアドレス計算部９０４の入力ビットの精度が高まることである。
【００８９】
図６と図９との違いの２つ目は、グリッド数Ｎが、通常、等間隔グリッドの場合と異なるため、これを設定可能な値９１１とし、四面体ベースアドレス計算部９０４、四面体３点分アドレスオフセット計算部９０６に与えて計算を行うことである。グリッド数Ｎ９１１は、３３以下の任意の値を設定できるようにすることも可能であるが、実装コストの都合で、予め決めておいた選択可能な複数の値から選択することも考えられる。
【００９０】
図１０は、不等間隔グリッド時の入力値変換命令の処理動作を示す図である。
【００９１】
この入力値変換命令は、ＬＵＴアドレス／補間係数計算命令に対する入力値を変換することで、不等間隔分割されたグリッドに対応するデータ変換を可能とするものである。また、この入力値変換命令が、入力値の複数の上位ビットによってグリット番号／グリッド間隔テーブルを参照し、グリッド間隔に従って入力値の複数の下位ビットをシフトするものである。
【００９２】
本実施の形態に係るデータ変換装置における入力値変換部の処理の内容及び使用するグリッド番号／グリッド間隔テーブルの内容は、上述した第１の実施の形態に係るデータ変換装置における入力値変換部及びグリッド番号／グリッド間隔テーブルと同じであり、８ビットの入力値１００１を、上位ビット６ビット１００２、下位ビット４ビット１００３に重なりをもって分けて処理を行う。上位ビット１００２は、グリッドテーブル参照部１００４に入力され、グリッド番号／グリッド間隔テーブル１００５を参照して、５ビットのグリッド番号１００６と２ビットのグリッド間隔コード１００７を出力する。下位ビット１００３は、左シフト部１００８に入力され、グリッド間隔コード１００７に応じて、第１の実施の形態において図３を用いて説明したシフト処理を受けて、４ビットの下位ビットシフト結果１００９として出力される。最後に、５ビットのグリッド番号と４ビットの下位ビットが結合されて、９ビットの出力値１０１０として出力される。
【００９３】
図１０の説明では、入力値の１つの成分に対して処理を行っているため、図１０に示す入力値変換命令を使用して、図８の入力値変換処理ステップＳ８０２を実現する場合は、各成分に対して入力値変換命令を呼び出すため、合計３回の命令呼び出しが必要となる。
【００９４】
なお、実装コストが許すならば、図１０において、複数の入力値の成分に対する処理を並列で行うことで、更にデータ変換処理の高速化を図ることも可能である。
【００９５】
本実施の形態においても、上述した第１の実施の形態と同様、入力値の成分数、各データのビット数やグリッド数、グリッド間隔等、具体的な数値を例として挙げて説明したが、本発明は、この説明中の具体的な数値に制限されるものではない。
【００９６】
（その他の実施形態）
以上が本発明の実施形態の説明であるが、本発明は、これら実施形態に限られるものではなく、特許請求の範囲で示した機能、または実施形態の構成が持つ機能を達成できる構成であれば、どのようなものであっても適用可能である。
【００９７】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体及びプログラムは本発明を構成することになる。
【００９８】
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００９９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１００】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１０１】
【図１】本発明の第１の実施の形態に係るデータ変換装置の構成を示すブロック図である。
【図２】本発明の第１の実施の形態に係るデータ変換装置における入力値変換部の構成を示すブロック図である。
【図３】本発明の第１の実施の形態に係るデータ変換装置における入力値変換部によるデータの処理を示す図である。
【図４】本発明の第１の実施の形態に係るデータ変換装置におけるグリッド番号／グリッド間隔テーブルの一例を表に示す図である。
【図５】本発明の第２の実施の形態に係るデータ変換装置における等間隔グリッド処理時のプロセッサの処理動作の流れを示すフローチャートである。
【図６】本発明の第２の実施の形態に係るデータ変換装置における等間隔グリッド処理時のＬＵＴアドレス／補間係数計算命令の処理動作を示す図である。
【図７】本発明の第２の実施の形態に係るデータ変換装置における等間隔グリッド処理時の補間演算命令の処理動作を示す図である。
【図８】本発明の第２の実施の形態に係るデータ変換装置における不等間隔グリッド処理時のプロセッサの処理動作の流れを示すフローチャートである。
【図９】本発明の第２の実施の形態に係るデータ変換装置における不等間隔グリッド処理時のＬＵＴアドレス／補間係数計算命令の処理動作を示す図である。
【図１０】本発明の第２の実施の形態に係るデータ変換装置における不等間隔グリッド処理時の入力値変換命令の処理動作を示す図である。
【図１１】一般的な等間隔グリッド分割を説明する図である。
【図１２】従来の等間隔グリッド分割時のデータ変換装置の構成を示すブロック図である。
【図１３】一般的な不等間隔グリッド分割を説明する図である。
【図１４】従来の不等間隔グリッド分割時のデータ変換装置の構成を示すブロック図である。
【符号の説明】
【０１０２】
１０１      入力値
１０２      入力値
１０３      入力値
１０４      入力値変換部（入力値変換手段）
１０５      入力値変換部（入力値変換手段）
１０６      入力値変換部（入力値変換手段）
１０８      ルックアップテーブル
２０１      グリッド番号／グリッド間隔テーブル
２０２      シフト部（シフト手段）
３０１      入力値
３０６      出力値
６０１      入力値
９０１      入力値
【図１】
2005348180.tif 000003
【図２】
2005348180.tif 000004
【図３】
2005348180.tif 000005
【図４】
2005348180.tif 000006
【図５】
2005348180.tif 000007
【図６】
2005348180.tif 000008
【図７】
2005348180.tif 000009
【図８】
2005348180.tif 000010
【図９】
2005348180.tif 000011
【図１０】
2005348180.tif 000012
【図１１】
2005348180.tif 000013
【図１２】
2005348180.tif 000014
【図１３】
2005348180.tif 000015
【図１４】
2005348180.tif 000016