圧縮検証3: Blenderでファイルサイズを抑えつつ透過連番画像(中間素材)を出力する
#雑検証シリーズ
概要
BlenderからAfter Effectsで中間ファイルを扱う際に困った
数千~数万フレームはPNG連番でも辛いので、せめてファイルサイズだけでも小さくしたい
条件
アニメーション
透過できる(RGBA)
After Effectsで読み込める
読み込みやエンコが軽い
ファイル
3DCGアニメーション
1フレーム 1.4MB (PNG圧縮時) のものを作成
2048x1024
透過を扱う
8bit/16bit のいずれか
なるべく低いbitを使う
/icons/-.icon
横の%は、PNGの 1.4MB=100% としたときの割合。小さければ小さいほどファイルサイズは小さい
PNG 100%
圧縮率があって、計算量によって圧縮具合を変えられる
リソースがあれば100%で軽くしてもいいけど、エンコが無限にかかる
「圧縮: 50%」がバランス良さそうだったので、これを以降の基準とする
「圧縮: 55%」より高くすると、指数関数的にエンコ時間がかかる
FFmpeg動画 (QuickTime) 150%
番外編だけど気になったので
QuickTimeの「QT RLE/QTアニメーション」を使えば透過可能
ファイルサイズがPNGより1.5倍大きくなる……却下
TIFF (Deflate) 95%
エンコ時間がすごく早い割には、PNG(50%)より5%ほど軽い
場合によってはPNGよりこっちかも
WebP 4~30%
「品質: 100%」でサイズは7割ほど削減
「品質90%」でサイズは96%削減と驚異的
エンコがかなり重い、After Effects未対応なので却下
Targa 400%
アニメ業界で使われるフォーマット。4倍ほどのサイズになってしまったので却下
JPEG2000 未記録
JPEGの後継で透過にも対応
After Effects未対応なので却下
OpenEXR (Pxr24) 170%
3DシーンやVFXでよく使われるフォーマットだそう 参考 OpenEXRだとBlender内のカラーマネジメントが反映されないっぽいので注意
24bit以下でできるだけきれいに保存したければこれが良いらしい (可逆) 参考 PNGよりもサイズが1.7倍になってしまった
OpenEXR (DWAB) 30%
JPEGのような非可逆圧縮なのにきれい、**かつ透過が使える**という謎フォーマット 参考 同様、Blender内のカラーマネジメントが反映されないっぽいので注意
PNG(50%)から7割ほどファイルサイズを削減できた
エンコードはTIFF並にすごく軽い (これが正解では……?)
/icons/-.icon
結果
互換性重視なら → PNG連番 or TIFF連番
容量重視なら → OpenEXRのDWABを使った連番 …… かな?