mp4やMOV等の映像素材を連番画像に変換したりCGをレンダリングする際、どの画像形式を、そして圧縮形式を選べばよいか迷うと思います。
え?いつも決まった形式で書き出してるから迷わない?
そうですか…。変なこと言ってすみません…。
メンタルよわっ!
茶番はさておき、迷う人も迷わない人も適切な形式で連番画像にしたいですよね。
そこで、連番画像として使用頻度の高いEXRとTIFFの二つの画像形式で圧縮形式を比較検証してみました。
EXRとTIFF以外の書き出し形式については最後の方でちょろっと触れます。
結論
結論から先に言うと、
です。
じゃあEXRとTIFFどちらの書き出し形式を使えばよいのかという話ですが、
ぶっちゃけEXRの方が軽いし画質もそんなに変わらない
です。
EXRとTIFFの画質の違いがキーイング時にどのくらい影響するのか軽くNukeで見てみましたが、キーイング結果にほとんど違いはありませんでした。
画質の違いよりも、プレビューの速さでEXRの方が圧倒的に早かったです。
TIFFが重いと言うよりも、なぜかLZW圧縮だけプレビューが重くなりました。(走査線を読み込んでいるのが分かるあの線が見える。)上の画像をスクショする余裕がある程度には重いです。Nukeとは相性が良くない圧縮形式なのかもしれません。
ここから先は各圧縮方式の違いに触れつつ、具体的な検証内容を記述していきます。
ちょっと長いので、結果だけ知れれば良い人は「最後に」の項まで飛ばしても大丈夫です。
圧縮の必要性
そもそも、圧縮する必要はあるのでしょうか。
サイズ比較
まずは今回検証に使用したEXRとTiffファイルのサイズを比較しました。
TIFFは圧縮することで三割程度、EXRは半分以上サイズを減らすことができました。
品質比較
では圧縮して品質に問題は出ないのでしょうか。これも比較してみました。
TIFFとEXRの非圧縮と圧縮で比較してみましたが、品質は圧縮しても変わらないみたいです。
ということで、TIFFにしろEXRにしろ圧縮はした方が良さそうです。
TIFFの圧縮形式
今回検証で主に使用したAfterEffectsではLZW形式でしか圧縮できませんが、NukeではLZWの他にPackBitsとDeflateという圧縮形式で書き出せます。別の素材で軽く比較してみました。
サイズは非圧縮よりもPackBitsの方が大きく、一番小さくなるのはDeflate(Nukeではこれが初期設定)でした。
どの圧縮形式も可逆圧縮形式なので、画質を比較しても差は無いように見えます。
PackBits圧縮が非圧縮よりサイズが大きいのは連長圧縮という圧縮方法をとっているかららしいです。私には難しすぎて説明不能…
Nukeで読み込めない形式であればAfterEffectsのレンダラーでLZW圧縮形式を使用するのが良いでしょう。
Nukeで読み込める形式の素材を変換する場合はNukeでDeflate圧縮形式で書き出すのが良いかと思われます。
Deflateより圧縮効率が悪いLZWですが、速度重視の圧縮形式らしいです。書き出しはLZWの方が速いかもしれません(未検証)。
TIFFは高品質で低サイズの素材に変換できますが、それでもサイズが大きく、もっと容量を節約したいorプレビューを軽くしたい、という場合はEXR形式が候補に挙がります。
EXRの圧縮形式
EXRは圧縮形式が9種類ありますが、今回の検証ではZip,Zip16,RLE,PXR24,Piz,DWAA,B44の7種類を比較しました。
ちなみに「RLE」はRun Length Encodingの略で、日本語の「連長圧縮」と同義語です。
Zip、Zip16、RLE、PXR24、Piz形式
Zip、Zip16、RLE、PXR24、Pizの5種類は可逆圧縮なので非圧縮と同じ品質に見えます。
一般的に可逆圧縮は別工程に渡す中間素材に向いています。
EXR圧縮形式の使い分け方
海外のNicolas Dufresne氏がまとめた情報(ページ末に資料を添付)によると、
Zipは単一のスキャンライン、Zip16は16個のスキャンラインごとに圧縮します。
走査線読み込み式のNukeではZip圧縮が最も読み込みが早いようです。
Zip,Zip16,PXR24はDeflate圧縮を用いた形式らしい。
DWAA形式
DWAAはサイズが格段に小さくなりますが画質の劣化が最もあります。
この圧縮形式は高圧縮率の非可逆圧縮で、最終出力のマスターやバックアップに向いているようです。
しかし、適正露出においてはパッと見で劣化は判別できない程度のため、中間素材として使うこともあるようです。
DWAAの他にDWABという圧縮形式があります。違いは圧縮時の走査線数です。DWAAは32本、DWABは256本で、走査線読み込み方式のNukeではDWAAの方が読み込みが速く、全画素読み込みのAfterEffectsではDWABの方が読み込みが速いみたいです。
B44形式
B44は画質低下がある割りにサイズはあまり小さくなりません。
これは連番で書き出したときにどのフレームも一定のサイズで書き出せるというリボ払いみたいな特性があり、プロキシを利用したプレビューなどのリアルタイム再生が求められる場面で真価を発揮する形式だからのようです。
結論
結論、可逆圧縮である5種類の内、最もサイズが小さくなったPiz圧縮が最良の選択かと思われます。
ストレージ容量を節約したい場合は非可逆圧縮のDWAA圧縮が有力な選択肢となるでしょう。
TiffとEXRの比較
次に、LZW圧縮TiffとPiz圧縮EXRの圧縮ノイズの比較をしました。
①元素材
そもそもRAW素材ではないのでよく見ると既にMXFの圧縮ノイズが乗っています。
最初にも書きましたが、今回はこの素材と変換後素材の差を圧縮ノイズとし、比較します。
※ノイズがあるほど明るく、無ければ暗くなります。
②LZW圧縮TIFFの圧縮ノイズ(露出+31)
暗部は圧縮ノイズが出やすいようですが、明部はかなり綺麗です。
③Piz圧縮EXRの圧縮ノイズ(露出+31)
②と異なり明暗関係なく全体的にノイズが出ています。暗部のノイズはほぼ同じですね。
④元素材の露出を+31したもの
そもそも適正露出では全くノイズが見えないので、②と③でノイズを見る際は露出を+31にしていました。元素材で露出を+31してみると真っ白で何も見えません。
⑤&⑥適正露出のTiffとEXR
画像全体で見ても最大までズームしても、適正露出では元素材との違いはわかりませんでした。
さて、TIFFとEXRを比べて、サイズが大きいTIFF形式の方が圧縮ノイズは少ないことが分かりました。
しかし、適正露出で行う実際の合成ワークにおいては、圧縮ノイズはあまり影響がないと思われます。ストレージの容量や作業効率を考えるとEXRの方が都合が良いかもしれません。
そこはストレージ容量や作業にかけられる時間、求められる品質と相談して判断してください。
キーイングに使用するクロマキー素材に関しては圧縮ノイズが影響する可能性があるので、できるだけノイズの少ない素材で行うのが良いかもです。
その他の形式
今回はTiffとEXRを詳しく比較しましたが、TargaやDPXなど他にもVFXで使用される形式はあります。
AfterEffectsとAdobeMediaEncoderで4K素材を書き出せるすべての書き出し形式を比較してみましたが、TiffとEXRが最も画質が良かったです。
AfterEffectsのレンダラーでは、EXRとTIFF以外の書き出し形式の圧縮形式はもっと細かく設定できますが、種類が多すぎて面倒くさいのでそれらはまた別の機会に検証してみます。
最後に
表
TIFFとEXRの圧縮形式の詳細を表にまとめてみました。太緑>細緑>細赤>太赤
サイズ(絶対) | サイズ削減率 | 画質低下 | 展開可非 | 向いている素材 | 向いてるプロセス | 書き出せるソフト | 使用に向いているソフト | |
---|---|---|---|---|---|---|---|---|
PackBits.tiff | 最大 | わからん※1 | ほぼ無し | 可逆圧縮 | Nuke | |||
LZW.tiff | 大きい | 3割程度 | ほぼ無し | 可逆圧縮 | Ae/Nuke | |||
Deflate.tiff | やや大きい | 6割程度 | ほぼ無し | 可逆圧縮 | Nuke | |||
Zip.exr | 中の上 | 5割程度 | 微量 | 可逆圧縮 | グレインノイズ無し素材(32bit) | 中間素材(32bit) | Ae/Nuke | Nuke |
Zip16.exr | やや小さい | 7割程度 | 微量 | 可逆圧縮 | グレインノイズ無し素材(32bit) | 中間素材(32bit) | Ae/Nuke | |
PXR24.exr | 中の下 | 7割弱程度 | 微量 | 可逆圧縮※2 | グレインノイズ無し素材(~24bit) | 中間素材(~24bit) 最終書き出し | Ae/Nuke | |
RLE.exr | 中の下 | 7割弱程度※1 | 微量 | 可逆圧縮 | 大きなフラットエリアのある素材(アニメ系) | Ae/Nuke | ||
Piz.exr | やや小さい | 7割程度 | 微量 | 可逆圧縮 | グレインノイズありの素材(実写系) | 中間素材 最終書き出し | Ae/Nuke | |
DWAA.exr | 小さい | 9割程度 | あり | 非可逆圧縮 | 中間素材 最終書き出し | Ae/Nuke | Nuke | |
DWAB.exr | 小さい | 9割程度 | あり | 非可逆圧縮 | 中間素材 最終書き出し | Ae/Nuke | Ae | |
B44.exr | 中の中 | 6割程度※4 | 若干あり ※4 | 非可逆圧縮※3 | プロキシ等のリアルタイム用途 | Ae/Nuke | ||
B44A.exr | 中の中 | 7割程度※4 | 若干あり ※4 | 非可逆圧縮 | 大きなフラットエリアのある素材(アニメ系) | プロキシ等のリアルタイム用途 | Ae/Nuke |
※1
画像処理における連長圧縮についてはよくわかんないので割愛。今回は逆にサイズが増えたりした。
※2
32bit floatでは非可逆圧縮。
※3
16bitでは非可逆圧縮、32bitでは非圧縮らしい。
※4
Aeのデフォルトである圧縮レベル45の時。圧縮レベルは可変。
まとめ
考察
毒にも薬にもならない考察なので暇人だけ読んでください。
TIFFで最も効率良く圧縮できるDeflate圧縮ですが、EXRの圧縮形式のうちZipとPXR24もDeflate圧縮を利用した形式です。 既述の通りZipとPXR24の二つはグレインノイズの無い素材に向いている形式です。 ということは、TIFFのDeflate圧縮もグレインノイズの無い素材に向いているのかもしれません。
その他
記事冒頭で少し書きましたが、圧縮形式の比較基準はサイズや画質の他に速度があります。
これは書き出し速度や、AfterEffectsやNuke等でのプレビューの軽さに影響するものと思われます。
今回はそこまで詳しく検証しませんでしたが、速度に関してはまた別の記事で検証してみようと思います。
当ブログのツイッターアカウントでは記事の投稿を随時おしらせしますので、速度に関しても検証結果を知りたい方はぜひフォローしてお待ちください。
また今回の検証に際し、速度に関しての記事をいくつか見つけたので、山口の記事を待ってられないぜ!という方は参考にしてみてください。
EXR: Lossless Compression · Aras’ website
今更だけど、データ圧縮についてまとめてみたい | PINTO! by PLAN-B
検証は以上です。
長文の読了お疲れさまでした。
本記事にご意見、ご感想、ご質問などあれば本記事のコメント欄か、こちらからいつでもお気軽にお寄せ下さい。
参考資料
↑Nicolas Dufresne氏がまとめたこちらの資料にEXRの圧縮形式の用途別の解説がありました。
英語の資料なので(翻訳ソフトが)日本語に翻訳した資料を作成しました。↓
参考記事など
今更だけど、データ圧縮についてまとめてみたい | PINTO! by PLAN-B
EXR: Lossless Compression · Aras’ website
Tutorial | The Grand Tour: Compositing
↓OpenEXR公式サイト
コメント