181231_画像形成_デジタル技術_1_new
「ルックアップテーブル」はフリー百科事典『ウィキペディア(Wikipedia)』によれば、次のように意味づけされている。「計算機科学におけるルックアップテーブル(Lookup table)とは、複雑な計算処理を単純な配列の参照処理で置き換えて効率化を図るために作られた、配列や連想配列などのデータ構造のことをいう。例えば大きな負担がかかる処理をコンピュータに行わせる場合、あらかじめ先に計算できるデータは計算しておき、その値を配列(ルックアップテーブル)に保存しておく。コンピュータはその都度計算を行う代わりに配列から目的のデータを取り出すことによって、計算の負担を軽減し効率よく処理を行うことができる。高価な計算処理や入出力処理をテーブルルックアップで置き換えた場合、処理時間を大きく削減することができる。他にも、あるキーワードを基にあるデータを取り出すとき、その対応を表としてまとめたものもルックアップテーブルといえる。テーブルの作成方法には、コンパイル前に計算したものを静的に確保したメモリに格納しておく方法や、プログラムの初期化処理中に計算(メモ化)やプリフェッチを行っておく方法がある。また、入力された値がルックアップテーブルにあるか調べることで入力値のチェックを行ったり、プログラミング言語によっては、ルックアップテーブルに関数ポインタ(あるいはラベルへのオフセット)を格納しておいて入力に応じた処理を行ったりするといった応用的な使い方をされることもある。」

実際にはどのようにLUTが使われているかというと、図1に示すように色空間を変換する場合に用いられる。もちろん通常色変換*1を行う場合には、色変換式を使ってそれに画像データを当てはめて行えばよいが、この方法だと効率が悪くなるので、LUTを使って効率的に色変換を行うことになる。

LUTの作業は、一般に図2に示す通り、一元(1D)と三次元(3D)があり色空間変換のバックグラウンドで高速で処理される。

Dの場合は、入力データがR:60G:70B:80であるときは、表中の「In」が60の時に赤のOut80InG:70の時は、Out95InB:80の時は、Out95となり、

基の画像がR:60G:70B:80のデータは、色空間変換後の画像データはR:80,G:95,B:95となる。また、3Dの場合は、入力データがR:50,G:60,,B:50のとき、出力はIn3つとも一致するものを選択し、その出力としてR:75,G:80;B:70という画像データに変換される。

このように、LUTは元の色空間と変換先の色空間が表(テーブル)に置換されているデータを選ぶだけで良いことになるので素早く変換することが出来き、処理時間が短縮される。


*1 色空間変換:

ICC(インターナショナル・カラー・コンソーシアム、International Color Consortium)に準拠したカラーマネージメントシステムでは、装置やデータドキュメントで使用されるRGBCMYKなどのデバイスディペンデントカラー(Device Dependent Color/装置依存色)を、ICCプロファイルを使用してCIE L*a*b*CIE XYZなどのデバイスインディペンデントカラー(Device Independent Color/装置非依存色、装置独立色)で管理されるPCSProfile Connection Space)に色空間の変換を行う。