IROZORA / 記事

「SNSに上げると色が変わる」は本当か — 実測しました

TikTokやInstagramに上げると色が変わる、と言われます。H.264の再圧縮で何が起きるかを4枚の素材×4段階のビットレートで実測したところ、色相はほとんど動かず、壊れるのは階調でした。グレインを足すと逆に悪化します。

よく言われていること

「TikTokやInstagramは暖色に寄る」「フィルムグレインを乗せると圧縮ノイズが 目立たなくなる」。どちらも海外の記事で繰り返し見かけます。 ただ、数字が一つも出てきません。 売る側が「変わります」とだけ言うのは、買う側から見ると何の情報でもありません。

そこで測りました。測ったのはH.264の再圧縮です。 各プラットフォームのアップロード処理そのものを外から観測することはできないので、 「TikTokに上げて測った」とは書きません。ただ、あの工程の中身は最終的に H.264の再圧縮なので、ここは手元で正確に再現できます。

測り方

素材4枚(夜の街/夕景/空撮/人物)を1080×1920の縦動画にして、 8・4・2・1 Mbps で再エンコードし、中央のフレームを取り出して比較しました。 静止画のJPEGではなく動画で測っています。捨てられるものが違うからです。

平坦率を測る「なだらかだった場所」は、基準画像で一度だけ決めて固定します。 画像ごとに決め直すと、グレインを足したときに母集団自体が変わってしまい、 「グレインを足すほど平坦になる」という逆の結論が出ます(最初これで間違えました)。

結果1:色相はほとんど動かない

素材8Mbps4Mbps2Mbps1Mbps
夜の街-0.02-0.02-0.02-0.04
夕景-0.01-0.03-0.10-0.18
空撮+0.00+0.01+0.04+0.03
人物-0.02-0.01-0.03-0.09

R−B の変化量です。単位は0〜255。一番動いた夕景でも 0.18で、 これは人の目には見えません。1Mbpsまで落としてもこの程度です。

つまり「圧縮されると暖色に寄る」は、少なくとも再圧縮では起きていません。 色が変わったように見えるとしたら、それは圧縮ではなく、アプリ側のフィルタや 表示プロファイルなど別の工程です。LUTを暖色/寒色に振って対策する意味はありません。

結果2:壊れるのは階調

素材基準2Mbps1Mbps
夜の街32.6%39.4%47.3%
夕景30.9%33.4%36.7%
空撮61.1%62.1%66.0%
人物20.8%25.1%32.1%

平坦率です。夜の街で 32.6% → 47.3%、人物で 20.8% → 32.1%。 なだらかだった場所の半分近くが「段差」に変わっています。 これが「SNSに上げると汚くなった」の正体で、色ではなく階調の問題です。

被害が大きいのは暗い素材と、なだらかなグラデーションが広い素材です。 夜景・夕焼けの空・肌のハイライト。逆に空撮のように細かい模様が全面にある絵は もともと平坦部が少ないので、目立ちません。

結果3:グレインは「足せば良くなる」ものではない

グレイン量夜の街人物夕景空撮
なし39.7%24.9%33.2%62.1%
48.0%30.9%38.7%67.4%
50.3%37.6%41.1%67.9%

2Mbps固定でグレインを足したときの平坦率です。4枚すべてで悪化しました。

理由は単純で、ビットレートが決まっているからです。 粒はフレームごとにランダムなので圧縮が効かず、そこに符号量を持っていかれます。 その分だけ絵に回る情報が減ります。 「グレインが圧縮ノイズを隠す」が成り立つのはビットレートに余裕がある場合で、 上限が決まっているSNSでは逆に働きます。

では何をすればいいか

この検証について

測定に使ったスクリプトは商品には含まれません。IROZORAは 全ファイルに自動検査を通してから出荷しています (LUTは階調と10ルックの識別性、環境音はループの継ぎ目を実測)。 この記事の測り方も、その検査と同じ考え方です。

この記事に関係する素材

SNS LUT vol.4 — スマホ・SNS

撮って出しを「盛る」ための10ルック。黒を潰さず、肌を焼かず、スマホの映像に当たるように作ってあります。

¥890 — 商品ページを見る