映像制作における画像圧縮形式の選び方!~EXRvsTIFF編~

フォーマット

mp4やMOV等の映像素材を連番画像に変換したりCGをレンダリングする際、どの画像形式を、そして圧縮形式を選べばよいか迷うと思います。

山口
山口

え?いつも決まった形式で書き出してるから迷わない?
そうですか…。変なこと言ってすみません…。

ツッコミ係
ツッコミ係

メンタルよわっ!

茶番はさておき、迷う人も迷わない人も適切な形式で連番画像にしたいですよね。

そこで、連番画像として使用頻度の高いEXRTIFFの二つの画像形式で圧縮形式を比較検証してみました。

検証環境として、今回はノンリニア環境のAfterEffectsで行いました。
理由は、リニア環境で比較しても大して差が出なかったためです。
そして! 検証を行っているのはデータ圧縮に詳しいエンジニアではなく、ただのアーティストなので、情報に誤りがある可能性があることにご留意ください!

EXRとTIFF以外の書き出し形式については最後の方でちょろっと触れます。


結論

結論から先に言うと、

「サイズが大きいけど画質が最高のDeflate圧縮TIFF
コスパは最強だけど画質がTiffに及ばないPiz圧縮EXR

です。

残念ながらAfterEffectsではTIFFの圧縮形式でDeflateを選ぶことができません。
次点で圧縮率が優れているLZW圧縮は選択できるのでLZWが最適です。


じゃあEXRTIFFどちらの書き出し形式を使えばよいのかという話ですが、

ぶっちゃけEXRの方が軽いし画質もそんなに変わらない

です。

EXRTIFFの画質の違いがキーイング時にどのくらい影響するのか軽くNukeで見てみましたが、キーイング結果にほとんど違いはありませんでした。

画質の違いよりも、プレビューの速さでEXRの方が圧倒的に早かったです。

TIFFが重いと言うよりも、なぜかLZW圧縮だけプレビューが重くなりました。(走査線を読み込んでいるのが分かるあの線が見える。)上の画像をスクショする余裕がある程度には重いです。Nukeとは相性が良くない圧縮形式なのかもしれません。

ここから先は各圧縮方式の違いに触れつつ、具体的な検証内容を記述していきます。

ちょっと長いので、結果だけ知れれば良い人は「最後に」の項まで飛ばしても大丈夫です。


圧縮の必要性

そもそも、圧縮する必要はあるのでしょうか。

サイズ比較

まずは今回検証に使用したEXRTiffファイルのサイズを比較しました。

TIFFは圧縮することで三割程度、EXRは半分以上サイズを減らすことができました。

品質比較

では圧縮して品質に問題は出ないのでしょうか。これも比較してみました。

圧縮ノイズは、Aeの「差」モードを使い元の撮影素材MXFと変換後の素材の差を出す方法で出しています。そのため、ノイズがあるほど明るく、ノイズが無いほど暗くなっています。

TIFF_NoCompresssion
LZW.tif
EXR_NoCompression
Piz.exr

TIFFとEXRの非圧縮と圧縮で比較してみましたが、品質は圧縮しても変わらないみたいです。

これは圧縮形式が可逆圧縮か非可逆圧縮かによって大きく変わります。

比較画像のような可逆圧縮の圧縮形式で圧縮した場合、ソフトで読み込む時に非圧縮と同じ品質に展開されるのでノイズの量に差はありません。

一方、非可逆圧縮形式では圧縮したままを読み込むため、非圧縮から品質が劣化します。

ということで、TIFFにしろEXRにしろ圧縮はした方が良さそうです。


TIFFの圧縮形式

今回検証で主に使用したAfterEffectsではLZW形式でしか圧縮できませんが、NukeではLZWの他にPackBitsDeflateという圧縮形式で書き出せます。別の素材で軽く比較してみました。

NoCompression.tiff
PackBits.tiff
LZW.tiff
Deflate.tiff

サイズは非圧縮よりもPackBitsの方が大きく、一番小さくなるのはDeflate(Nukeではこれが初期設定)でした。
どの圧縮形式も可逆圧縮形式なので、画質を比較しても差は無いように見えます。

山口
山口

PackBits圧縮が非圧縮よりサイズが大きいのは連長圧縮という圧縮方法をとっているかららしいです。私には難しすぎて説明不能…

Nukeで読み込めない形式であればAfterEffectsのレンダラーでLZW圧縮形式を使用するのが良いでしょう。

Nukeで読み込める形式の素材を変換する場合はNukeでDeflate圧縮形式で書き出すのが良いかと思われます。

Deflateより圧縮効率が悪いLZWですが、速度重視の圧縮形式らしいです。書き出しはLZWの方が速いかもしれません(未検証)。

AdobeMediaEncoderでもTIFF書き出しはできますが、DeflateもLZWも選べないので注意。

TIFFは高品質で低サイズの素材に変換できますが、それでもサイズが大きく、もっと容量を節約したいorプレビューを軽くしたい、という場合はEXR形式が候補に挙がります。


EXRの圧縮形式

EXRは圧縮形式が9種類ありますが、今回の検証ではZip,Zip16,RLE,PXR24,Piz,DWAA,B44の7種類を比較しました。

各圧縮形式でLuminance/Chroma及び32-bit floatの設定ができますが、今回はどちらも無しで検証しました。

山口
山口

この項目に関してはまだ理解が浅いので、また別の機会に調べて記事にします!

ちなみに「RLE」はRun Length Encodingの略で、日本語の「連長圧縮」と同義語です。

Zip、Zip16、RLE、PXR24、Piz形式

Zip.exr
Zip16.exr
PXR24.exr
Piz.exr
RLE.exr

Zip、Zip16、RLE、PXR24、Pizの5種類は可逆圧縮なので非圧縮と同じ品質に見えます。

一般的に可逆圧縮は別工程に渡す中間素材に向いています。

EXR圧縮形式の使い分け方

海外のNicolas Dufresne氏がまとめた情報(ページ末に資料を添付)によると、

実写素材のようなグレインノイズがある素材ではPizが最適なようです。

アニメーションやテクスチャマップ、アルファチャンネル、IDチャンネルなどの
グレインノイズが無い素材の場合、

  • 32bit浮動小数点が必要ならZip
  • 24bit以下で良いならPXR24が適しているようです。

Zipは単一のスキャンライン、Zip16は16個のスキャンラインごとに圧縮します。
走査線読み込み式のNukeではZip圧縮が最も読み込みが早いようです。

Zip,Zip16,PXR24Deflate圧縮を用いた形式らしい。

PXR24の32bit float(=32bit浮動小数点)圧縮は非可逆圧縮なので注意。

DWAA形式

DWAA.exr

DWAAはサイズが格段に小さくなりますが画質の劣化が最もあります。

この圧縮形式は高圧縮率の非可逆圧縮で、最終出力のマスターやバックアップに向いているようです。

しかし、適正露出においてはパッと見で劣化は判別できない程度のため、中間素材として使うこともあるようです。

DWAAの他にDWABという圧縮形式があります。違いは圧縮時の走査線数です。DWAAは32本、DWABは256本で、走査線読み込み方式のNukeではDWAAの方が読み込みが速く、全画素読み込みのAfterEffectsではDWABの方が読み込みが速いみたいです。

B44形式

B44.exr

B44は画質低下がある割りにサイズはあまり小さくなりません。

これは連番で書き出したときにどのフレームも一定のサイズで書き出せるというリボ払いみたいな特性があり、プロキシを利用したプレビューなどのリアルタイム再生が求められる場面で真価を発揮する形式だからのようです。

結論

結論、可逆圧縮である5種類の内、最もサイズが小さくなったPiz圧縮が最良の選択かと思われます。
ストレージ容量を節約したい場合は非可逆圧縮のDWAA圧縮が有力な選択肢となるでしょう。


TiffとEXRの比較

次に、LZW圧縮TiffPiz圧縮EXRの圧縮ノイズの比較をしました。

①元素材

元素材

そもそもRAW素材ではないのでよく見ると既にMXFの圧縮ノイズが乗っています。

最初にも書きましたが、今回はこの素材と変換後素材の差を圧縮ノイズとし、比較します。
※ノイズがあるほど明るく、無ければ暗くなります。

②LZW圧縮TIFFの圧縮ノイズ(露出+31)

LZW.tif(露出+31)

暗部は圧縮ノイズが出やすいようですが、明部はかなり綺麗です。

③Piz圧縮EXRの圧縮ノイズ(露出+31)

Piz.exr(露出+31)

②と異なり明暗関係なく全体的にノイズが出ています。暗部のノイズはほぼ同じですね。

④元素材の露出を+31したもの

元素材(露出+31)

そもそも適正露出では全くノイズが見えないので、②と③でノイズを見る際は露出を+31にしていました。元素材で露出を+31してみると真っ白で何も見えません。

⑤&⑥適正露出のTiffとEXR

LZW.tif(適正露出)
Piz.exr(適正露出)

画像全体で見ても最大までズームしても、適正露出では元素材との違いはわかりませんでした。


さて、TIFFEXRを比べて、サイズが大きいTIFF形式の方が圧縮ノイズは少ないことが分かりました。

しかし、適正露出で行う実際の合成ワークにおいては、圧縮ノイズはあまり影響がないと思われます。ストレージの容量や作業効率を考えるとEXRの方が都合が良いかもしれません。

そこはストレージ容量や作業にかけられる時間、求められる品質と相談して判断してください。

キーイングに使用するクロマキー素材に関しては圧縮ノイズが影響する可能性があるので、できるだけノイズの少ない素材で行うのが良いかもです。


その他の形式

AME_Formats

今回はTiffとEXRを詳しく比較しましたが、TargaやDPXなど他にもVFXで使用される形式はあります。

AfterEffectsとAdobeMediaEncoderで4K素材を書き出せるすべての書き出し形式を比較してみましたが、TiffとEXRが最も画質が良かったです。

DPX_+31
IFF_+31
AnimationGIF_+31
PNG_+31
Tiff_LZW_32bitFloat_+31
H.264_+31
Radiance_+31
GIF_+31
JPEG_+31
Tiff_LZW_+31
DNxHR DNxHD OP1a_+31
TARGA_+31
SGI_+31
QuickTime_ProRes4444XQ_+31
EXR_Piz._+31

AfterEffectsのレンダラーでは、EXRとTIFF以外の書き出し形式の圧縮形式はもっと細かく設定できますが、種類が多すぎて面倒くさいのでそれらはまた別の機会に検証してみます。


最後に

TIFFとEXRの圧縮形式の詳細を表にまとめてみました。太緑細緑細赤

サイズ(絶対)サイズ削減率画質低下展開可非向いている素材向いてるプロセス書き出せるソフト使用に向いているソフト
PackBits.tiff最大わからん※1ほぼ無し可逆圧縮Nuke
LZW.tiff大きい3割程度ほぼ無し可逆圧縮Ae/Nuke
Deflate.tiffやや大きい6割程度ほぼ無し可逆圧縮Nuke
Zip.exr中の上5割程度微量可逆圧縮グレインノイズ無し素材(32bit)中間素材(32bit)Ae/NukeNuke
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/NukeNuke
DWAB.exr小さい9割程度あり非可逆圧縮中間素材
最終書き出し
Ae/NukeAe
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が最良だがNukeでしか書き出せないため、AfterEffectsで書き出すならLZWが最適。
     
  • EXRの圧縮形式は実写素材ならPiz、それ以外は32bit素材はZipZip16、24bitまでの素材はPXR24がそれぞれ最適。

考察

毒にも薬にもならない考察なので暇人だけ読んでください。

TIFFで最も効率良く圧縮できるDeflate圧縮ですが、EXRの圧縮形式のうちZipPXR24もDeflate圧縮を利用した形式です。 既述の通りZipPXR24の二つはグレインノイズの無い素材に向いている形式です。 ということは、TIFFDeflate圧縮もグレインノイズの無い素材に向いているのかもしれません。

その他

記事冒頭で少し書きましたが、圧縮形式の比較基準はサイズや画質の他に速度があります。

これは書き出し速度や、AfterEffectsやNuke等でのプレビューの軽さに影響するものと思われます。

今回はそこまで詳しく検証しませんでしたが、速度に関してはまた別の記事で検証してみようと思います。

当ブログのツイッターアカウントでは記事の投稿を随時おしらせしますので、速度に関しても検証結果を知りたい方はぜひフォローしてお待ちください。

また今回の検証に際し、速度に関しての記事をいくつか見つけたので、山口の記事を待ってられないぜ!という方は参考にしてみてください。

EXR: Lossless Compression · Aras’ website

今更だけど、データ圧縮についてまとめてみたい | PINTO! by PLAN-B


検証は以上です。
長文の読了お疲れさまでした。
本記事にご意見、ご感想、ご質問などあれば本記事のコメント欄か、こちらからいつでもお気軽にお寄せ下さい。


参考資料

↑Nicolas Dufresne氏がまとめたこちらの資料にEXRの圧縮形式の用途別の解説がありました。

英語の資料なので(翻訳ソフトが)日本語に翻訳した資料を作成しました。↓

参考記事など

連長圧縮 – Wikipedia

Deflate – Wikipedia

Lempel-Ziv-Welch – Wikipedia

OpenEXR

今更だけど、データ圧縮についてまとめてみたい | PINTO! by PLAN-B

Quantel Rio V4.0.0 PDF

OpenEXR v2.2.0リリース

EXR: Lossless Compression · Aras’ website

Tutorial | The Grand Tour: Compositing

↓OpenEXR公式サイト

OpenEXR

コメント

タイトルとURLをコピーしました