回答:
ほとんどのビデオ形式(ほぼすべて)では、カスタムICCカラープロファイルを埋め込むことができません。(改善/修正:MP4は、ビデオファイルのメタデータでタグ付けされたカラープロファイルを持つことができます。)コンシューマエンドのほとんどのビデオは、REC.709カラースペースを対象としています。sRGBは類似しており、同じ原色を使用します。トランスコーディング(圧縮を含む)では、ほとんどの場合、色の精度、彩度、ガンマ曲線、または白黒レベルのシフトがわずかにシフトします。これは、RGBとYCbCrのカラースペース間の変換により悪化します。
それが作成者によって撮影されたので、特に圧縮が関係しているとき、それは一種の曖昧な概念です。色の再現はデバイスごとに大きく異なり、キャリブレーションされたディスプレイとソースに戻る色制御の完全なチェーンがなければ、正確な結果は得られません。それでも、ラインのどこかでカラースペースが正確に一致しない可能性があります。
圧縮は色に影響を与えるため、圧縮に入るとさらに困難になります。色は圧縮によって微妙に一般化されます。簡略化できる画像の領域が大きいほど(特に漫画など)、画像を小さくすることができます。ほとんどの場合、そのフレームに見られるわずかなカラーバンディングはオリジナルには存在しませんが、H264は類似したカラーをグループ化して1つに単純化するため、バンディングエフェクトが発生します。
つまり、損失の多い形式の場合、カラープロファイルは問題を解決することにはなりません。なぜなら、色が正確に保持されないからです。それはそれを少し改善するのに役立つかもしれませんが、それでも圧縮からの色の変更があるでしょう。
h.264はビットストリームでさまざまな色情報をサポートしています。からx264 --fullhelp
:
--range <string> Specify color range ["auto"]
- auto, tv, pc.
--colorprim <string> Specify color primaries ["undef"]
- undef, bt709, bt470m, bt470bg, smpte170m,
smpte240m, film, bt2020.
--transfer <string> Specify transfer characteristics ["undef"]
- undef, bt709, bt470m, bt470bg, smpte170m,
smpte240m, linear, log100, log316,
iec61966-2-4, bt1361e, iec61966-2-1,
bt2020-10, bt2020-12.
--colormatrix <string> Specify color matrix setting ["???"]
- undef, bt709, fcc, bt470bg, smpte170m,
smpte240m, GBR, YCgCo, bt2020nc, bt2020c.
--chromaloc <integer> Specify chroma sample location (0 to 5) [0].
したがって、カスタムカラープロファイルを埋め込むことはできないと思いますが、RGBピクセル値を生成するためにデコーダーが使用する標準を指定できます。
いくつかのコンテナー形式も色空間に関する情報を保持できると思いましたが、そうではないかもしれません。