12 ビット整数(12i)または 16 ビット整数(16i)を 16 ビット浮動小数点(16f)エンコーディング(またはその逆)に変換すると便利であったり、この変換が必要なことがよくあります。このようにエンコーディングを双方向に変換する場合は、イメージの劣化を防止するために、トランスフォームは可能な限り無損失であることが重要になります。
Flame Premium と Smoke では、通常、合成などの操作に使用できる精度を最大化するために、読み込みプロセスの一部として 16i メディアを 16f にプロモートする必要があります。出力用に 16i に変換して戻す必要がある場合は、プロセス全体で最大精度を保持するために、書き出すときにのみこの変換を行う必要があります。
同様に、Flame Reactor で 12i メディアを使用する場合は、16f にプロモートします。
16i 対数エンコーディングから変換する
16 ビット整数対数エンコーディングには多くの種類がありますが、標準的なものは少数です。そのため、これらのイメージを変換する方法について汎用的な推奨を行うことは困難です。
16i イメージを対数スペースからシーンリニアに変換するには、いくつか選択肢があります。
- イメージが ADX16 カラー スペースであると分かっている場合は、film/ADX/ フォルダの ADX16_to_ACES トランスフォームを使用することができます。このトランスフォームでは、フィルム チャネルのクロストークを考慮して、より正確なカラーが生成されます。または、film/LogLin/ フォルダの Log_to_Lin--adx16 トランスフォームを使用することもできます。このトランスフォームは、単純な 1D-LUT スタイルのトランスフォームで、16i に双方向変換する場合に、完全にではないがほとんど反転可能です。
- または、film/LogLin フォルダの他の Log_to_Lin トランスフォームのいずれかを実行します。ただし、これらは、各チャネルを個別に操作することに注意してください。つまり、カラーを複製するという点で正確性に欠けますが、より反転可能であり、双方向変換する場合に ADX トランスフォームよりもエラーが少なくなります。
12i および 16i ビデオ エンコーディングから変換する
12i または 16i のイメージをビデオのようなスペースからシーンリニアの 16f に変換し、次に、元の値をできる限り保持しながら 16i に戻すには、bitdepth/ フォルダに特殊なトランスフォームがいくつかあります。
- 12i_to_16f トランスフォームと 16f_to_12i トランスフォームは、無損失に双方向変換できるように設計されています。
- 16i_to_16f トランスフォームと 16f_to_16i トランスフォームは、量子化の損失が最小になるように設計されています。双方向変換時の最大エラーは 65535 で 2 コード値です。
ただし、12i_to_16f と 16i_to_16f は典型的な反転トーン マップとは非常に異なるため、表示トランスフォームおよび出力トランスフォームとしては(12i または 16i に戻す場合は)、それぞれ 16f_to_12i、16f_to_16i を使用する必要があります。
さらに、これらのトランスフォームはすべての操作で使用するには適さないことに注意してください。たとえば、空間的なフィルタを行うサイズ変更などの操作では、ビデオ スペースとシーン リニア スペースでは非常に異なる結果が生成されます。特に、ランチョス フィルタには大きな負の係数があり、高コントラストのエッジの周囲にリングやハロなどのアーティファクトが発生する可能性があります。このような状況では、変換を行うのに別のトランスフォームを検討する必要があります。
- 読み込み用には、film/LogLin/ フォルダの Log_to_Lin--jzp などの対数からリニアに変換するトランスフォーム、表示および書き出し用には、Lin_to_Log--jzp などのその反転を使用します。
- 読み込み用には、gamma/ フォルダの remove_2.40_gamma などのトランスフォーム、表示および書き出し用には、apply_2.40_gamma などのその反転を使用します。こうすることでハロは最小になりますが、双方向変換すると、失われる精度が大きくなります。