Davinci Resolveで気になる動作や現象

2020年5月18日

Davinci Resolveの使用時の問題点や疑問点の解決策の糸口になるページにしていきたい。

最適化メディアのフォーマットでCPUGPUの使われ方が違う

最適化メディア生成時

最適化メディア生成時におけるフォーマットによるCPUとGPUの使用率の違い
フォーマット CPU使用率 GPU使用率 使用CPU 使用GPU
DNxHR HQX 85-90% 30% Xeon E5-2697 v2 GTX 1660 SUPER
非圧縮10-bit 5-10% 20-30% Xeon E5-2697 v2 GTX 1660 SUPER

始めて非圧縮のフォーマットを使ってみて、最適化メディアを作ってみたらCPUGPUの振る舞いが違うことに気づきました。もしかしたら他のフォーマットでもまた違うのかもしれません。試してないけど。日常的な使用としてはデフォルトのDNxHR HQXで十分だとは思いますが。

ちなみに、レンダーキャッシュはこんな具合。↓

レンダーキャッシュ生成時

レンダーキャッシュ生成時におけるフォーマットによるCPUとGPUの使用率の違い
フォーマット CPU使用率 GPU使用率 使用CPU 使用GPU
DNxHR HQX 50-90% 30-35% Xeon E5-2697 v2 GTX 1660 SUPER
非圧縮10-bit 10-20% 15-20% Xeon E5-2697 v2 GTX 1660 SUPER

じゃあこの使用率と比例するようにキャッシュ生成時間が変わるかというと、そんなことはありませんでした。3秒間のある同じテキストの合成を10個並べて、合計30秒の動画をキャッシュしたところ、DNxHR HQXでは48秒で、非圧縮10-bitでは50秒で、ほぼ誤差の範囲内でした。

ノイズリダクションのノードだけキャッシュできない?

  • キャッシュはなるべく作りたくない(ストレージ圧迫するから)

  • でもNR(ノイズリダクション)だけはキャッシュしたい

  • ところがユーザー指定でノードのキャッシュを生成しても、タイムラインまでキャッシュ生成してしまう

解決策はこちらにまとめました。ノイズリダクションに限らず、特定のノードだけキャッシュを生成する方法です。↓

キャッシュを作るとPCの動作は軽くなるのですが、キャッシュを作る時には重くなるし、SSDの容量をめっちゃ消費します。作業が終わるたびに削除すれば済むんですが、その作業が面倒。なので、私は最近ではなるべく使わないようにしています。

ただこれ(キャッシュ一切無し)には問題があって、レンダリングする度にノイズリダクションをレンダリングする必要があるので、動画の書き出しにめっちゃ時間がかかります。例えば私の環境の場合、4K映像でNR無しならレンダリング速度25 fpsでも、中程度のNRをかけると3-4 fpsまで落ちます。これでは使い物にならない。

そう思ってキャッシュのレンダリングを「ユーザー」に指定して、カラーページでNRのノードだけキャッシュをONにすると、なぜかタイムラインのキャッシュが真っ先に作られてしまう。字幕までもキャッシュが作られる。タイムライン上でのキャッシュ無しでのカクつきについては、作業モニタが1080p環境なのでプロキシモードを1/2にしたり、レンダリング時以外はNRをOFFにすることで回避可能なので、別にキャッシュは要らないんですよね。でもノイズリダクションについては、GTX 2080 Tiみたいなハイエンドモデルのグラフィックボードでもカクつきが起こるので、この設定は高性能パソコンを使用している人にも役立つのではないでしょうか。