
CLF(Common LUT Format)は、LUTや数式による色変換を、処理順序とともに記述できるファイル形式です。従来の3DLUTだけでなく、そのLUTを適用する前の前処理や後処理など、複数のステップの処理をひとつのファイルにまとめて記述することができます。
この記事では、4つの活用例を通してCLFの特徴と使い方を紹介します。
CLFで記述できること
LUTはLook-Up Tableの略で、入力値と出力値の対応を表すテーブルです。CLFは名前にLUTを含みますが、1D LUTや3D LUTだけでなく、マトリクス演算、ASC CDL、Logやガンマなどの演算も扱えます。XML形式のテキストファイルにこれらの処理要素を順に並べることで、一連の色変換を記述します。[1]
CLF v3は、2020年のACES 1.2とともに導入されました。ACES由来の規格ですが、用途がACESのパイプラインだけに限定されるわけではありません。利用時には、そのソフトウェアがCLFv3に対応しいることの確認が必要ですが、DaVinci Resolve20, Baselight6、OCIO2.0以降ではすでに対応済みであり、普及期に入っている、と言えます。[2]
活用例1:ACESのリニア画像にshow LUTを適用する
作品のルックを共有するshow LUTには、入出力をACEScctとして作成されたものがあります。ここでは、そのLUTをACES2065-1(AP0、シーンリニア)の画像に適用する例を考えます。本記事の図では、ACES2065-1を「ACES AP0」と略記します。
処理は、ACES AP0からACEScctへ変換し、show LUTを適用した後、ACES AP0へ戻す順序です。これらの前処理・LUT・後処理を、ひとつのCLFにまとめられます。

図1 ACES AP0の画像に、ACEScct入出力のshow LUTを適用する。クリーム色の四角は色空間、青灰色の六角形は処理を示す。
ACEScctはAP1の色域と、暗部にリニア部分を持つLog系の符号化を組み合わせたものです。そのため、図の前後の変換には、符号化だけでなくAP0とAP1の色域変換も含まれます。[3]
リニア画像にLUTを使うこと自体が、CLF以前には不可能だったわけではありませんが一般的ではありませんでした。CLFのポイントは、LUTに適した入力へ変換する処理もファイル内に明示できることです。ただし、LUTの入力範囲を外れる値の扱いやクリッピングは、別途確認が必要です。
この例はACES AP0へ戻すところまでです。モニターに表示するには、その後に適切な出力変換が必要です。
活用例2:IDTをLUTを使用せずに記述する
ACESのIDT(Input Device Transform)は、各種カメラのLog信号を、共通のシーンリニア色空間であるACES2065-1(AP0)へ変換するためのものです。ACES対応ソフトウェアには多くのカメラ用の入力変換が組み込まれていますが、新しいカメラなどでは、自ら変換を用意する必要がある場合があります。
その際の選択肢のひとつが3D LUTです。ただし、LUTへの焼き込みでは、格子点数に応じてファイルサイズが大きくなり、補間誤差も生じます。また、ACES AP0からカメラLogへ戻す逆変換は、簡単に作れるものではありませんでした。
CLFでは、LogC4のように対応する数式で表せるカメラLogカーブを、パラメーターで記述できます。LogC4/ARRI Wide Gamut 4(AWG4)の場合、Log演算でリニア化し、Matrix演算でAWG4からACES AP0へ変換します。LUTを使わないためファイルを小さくでき、LUTの補間誤差も避けられます。[1] [7]

図2 LogC4/AWG4をLog演算でリニア化し、Matrix演算でACES AP0へ変換する。中央のLinear AWG4は、AWG4の原色を持つシーンリニア値を示す。
逆変換も、逆マトリクスとリニアからLogC4への演算を逆順に組み合わせて記述できます。
右上のExpandボタンを押すことで、IDTがLogとMatrixの2段階の変換で構成されていることが確認できます。
活用例3:SONYの素材にARRIのRec.709 LUTを使う
次は、SONYのS-Log3/S-Gamut3.Cineの素材に、ARRIが配布するLogC4/ARRI Wide Gamut 4(AWG4)入力のRec.709 LUTを適用する例です。
素材をIDTによりいったんACES AP0へ変換し、そこからIDTの逆変換でLogC4/AWG4へ変換して、ARRI LUTに入力します。LUTの前段で、LUTが作成時に想定した色空間に変換することが重要です。[4]

図3 S-Log3/S-Gamut3.Cineを、ACES AP0経由でLogC4/AWG4へ変換してARRI LUTに入力する。図中のS-Log3はS-Gamut3.Cine、LogC4はAWG4との組み合わせを示す。出力はサンプルLUTに合わせてRec.709/D65/Gamma 2.4。
この構成なら、既存の3D LUTを再サンプリングして新しい3D LUTに焼き直すことなく、前段の変換とともにCLFへ格納できます。SONYのカメラに、ARRIのLUTのルックを適用することができます。
活用例4:カメラマッチングの処理を分けて記述する
CMT(Camera Matching Transform)は、サブカメラの色や階調をメインカメラに近づけるための変換です。ここでは、シーンリニアのACES AP0上で、マトリクス補正、露出調整、ホワイトバランス調整を順に行う構成を例にします。

図4 カメラ間の差を低減する処理を、マトリクス補正、露出調整、ホワイトバランス(WB)調整に分けて記述する。各処理はACES AP0のシーンリニア値に対して行う。
このサンプルの露出調整とホワイトバランス調整には、ASC CDLのSlopeを使います。露出はRGB共通の倍率、ホワイトバランスはRGBごとに異なる倍率を設定します。いずれもOffsetは0、PowerとSaturationは1とし、FwdNoClampを使用する構成です。
処理を機能別に残しておけば、各要素の役割を確認しやすくなり、用途に合わせた編集も行えます。例えば、Exposureのみ残し、露出補正のみ適用する、という処理も簡単に実現できます。
.cubeとの違い:処理の内訳を残せる
一般的な3D LUTは、一連の変換の結果を格子点の値として記録します。一方、CLFでは、マトリクスやLog変換などを演算として残し、その間にLUTを配置できます。色変換の順序や役割を明示しながら、複数の処理をひとつのファイルで共有できることが特徴です。[1]
3DLUTは通常0~1に規格化された色空間が入力されることを想定しています。1以上の画素値を持つ.cubeを設計することはできますが、著しく精度が落ちるため、通常、そのような方法を使用することはありません。CLFはLUTでなく、計算式を用いることにより、そのような制約もなく、精度を確保し、処理の中身を明示的に記載することができるのです。[2]
AMFとCLFの役割
AMF(ACES Metadata File)は、ACESの入力変換、ルック、出力変換などを再現するための情報を記録するメタデータ形式です。CLFは、そのルックの色変換を記述するファイルとしてAMFから参照できます。AMFがパイプラインの構成を伝え、CLFが変換の中身を伝える、という関係です。[6]
DaVinci ResolveでAMFを書き出すと、カラーコレクションが存在する場合は、AMFに加え、カラーコレクションに対応するCLFも書き出されます。AMFにおけるカラーコレクションは、CLFのみ対応しています。
CLF Builderで試す
PixCal Solutionsでは、CLFを組み立てるための無料ツール「CLF Builder」を公開しています。変換パーツをドラッグ&ドロップで連結し、パイプラインを作成できます。
プリセットやお手持ちの.cubeファイルを使って構成を試し、完成したCLFをダウンロードできます。まずは各図のサンプルを開き、入力と出力の色空間、処理の順序を確認してみてください。
参照資料
[1] ACES Documentation — CLF Specification
[2] ACES Documentation — CLF Implementation Guide
[3] ACES Documentation — ACEScct
[4] ARRI — LUT Generator / LogC4 LUT Package
[5] ARRI — How to create an ARRI Look File 4
