Nick Lear による Nvidia RTX 4000 シリーズ デュアル エンコーダーを使用して Davinci Resolve で超高速エクスポートを実現します

ブログ

ホームページホームページ / ブログ / Nick Lear による Nvidia RTX 4000 シリーズ デュアル エンコーダーを使用して Davinci Resolve で超高速エクスポートを実現します

Jun 02, 2023

Nick Lear による Nvidia RTX 4000 シリーズ デュアル エンコーダーを使用して Davinci Resolve で超高速エクスポートを実現します

Esporta fino a 6 volte più velocemente con una sola modifica delle impostazioni. Quello che ho fatto di recente lo è

設定を 1 つ変更するだけで、最大 6 倍の速度でエクスポートできます。

最近、さまざまな NLE および集中的なグラフィックス アプリケーションにわたって新しい Nvidia RTX 4080 グラフィックス カードの一連の徹底的なテストを行ったので、4000 シリーズに付属する新しい第 8 世代 Nvidia エンコーダ (NVENC) についてさらに詳しく調べたいと思いました。 AV1、H.265 (HVEC)、および H.264 (AVC) のエンコード。 私はハードウェア、特にデュアル エンコーダーを最大限に活用する方法を知りたかったのです。Nvidia は今回 2 つのエンコーダー チップを搭載しました。

よく「良い、速い、安い – 2 つ選ぶ」と言われますが、ポストプロダクションに非常によく適合します。 エンコードでは、品質、速度、ファイル サイズの間に同様の関係があります。

たとえば、一般的に行われているように、ビットレートを固定してファイル サイズを固定すると、エンコードにかかる時間が長くなり、品質が向上します。 品質を修正すると (Handbrake の一定品質スライダーなどを使用して)、エンコードに時間がかかることでファイル サイズを少し小さくできます。 これに対処する方法は、別のプリセットを選択することです。たとえば、Handbrake の x264 エンコーダーの場合に見られます。

プリセットは次のように定義されます。

プリセットは、特定のエンコード速度と圧縮率を提供するオプションのコレクションです。 プリセットを遅くすると圧縮率が高くなります (圧縮率はファイルサイズごとの品質です)。 これは、たとえば、特定のファイル サイズまたは一定のビット レートをターゲットとする場合、より遅いプリセットを使用するとより良い品質が得られることを意味します。 同様に、一定の品質でエンコードする場合は、より遅いプリセット (ソース) を選択することでビットレートを節約するだけです。

しかし、本当の問題は、その余分な時間を費やす価値があるかどうかです。 最高の品質が必要であり、それを待つ準備ができていることを知っていて、最も遅いプリセットを選択する人もいます。 個人的には、何かを遅くする価値があるかどうかを常に知りたいと思っています。誰も目に見えない 0.01% の改善を得るために、毎日さらに 10 分待っているとしたらどうでしょうか? x264 のようなソフトウェア エンコーダだけでなく、後で説明する新しい RTX 4000 シリーズでも、それはまったく同じであることがわかりました。

少し前に、Jan Ozer による「x264 プリセットの選択」という素晴らしい研究を見つけました。これは、品質の点で「高速な」プリセットよりも遅いものを使用しても、ほとんど何も得られないことを明らかに示していますが、かなりの時間を費やすことになります。もし、するなら。

Nvidia ハードウェア エンコーダ (NVENC) には、正式に P1 (最速) から P7 (最も遅い) と呼ばれるプリセットもあり、Nvidia によれば「たとえば、GOP 構造、B フレーム、先読みエンコーディングなどを決定する」もので、ほとんどの人が使用します。理解する時間がありませんが、同じことです。もう少し時間をかけて、品質を高めたり、ファイルを小さくしたりするのです。

そして、エクスポート時間はこれらのプリセット間で大幅に異なることがわかりました。 RTX 4080 でいくつかのテストを実行し、5 分間の DNxHR UHD 25fps クリップを 7 つのプリセットすべての 3 つの出力オプション (H.264、H.265、AV1) すべてにエクスポートしました。 H.265 および AV1 の場合、最も速いプリセットは最も遅いプリセットよりも約 6 倍速かったです。約 50 FPS から約 300 FPS になります。 これをある文脈に置き換えると、30 分のタイムラインがある場合、「非常に遅い」プリセットには 15 分以上かかり、「非常に速い」プリセットには 2.5 分かかります。これを毎日やっていると、それだけの時間がかかってしまいます。 このエクスポート速度を実現するには、入力コーデックが ProRes または DNxHR (または同等のメザニン コーデック) であり、エフェクトが既にキャッシュ/レンダリングされている必要があります。そうしないと、エンコーダーに十分な速度でデータが供給されません。

2 つの最速プリセットでエンコード速度が急激に上がるのには理由もあります。ここでデュアル エンコーダーが活躍します。 明らかに、特定の条件下では、新しいカードはビデオを 2 つの半分に分割し、それぞれの半分を各エンコーダに渡してから再結合することができます。 新しい RTX 4000 シリーズでデュアル エンコーダーを使用するには、次の条件を満たす必要があります。

また、これは Davinci Resolve でのみ実現できました (Premiere Pro や Shutter Encoder ではありません)。 興味深いことに、H.265 エンコードが H.264 よりも全体的に高速になっています。まだ使用していない場合は、使用を開始する時期が来たと思います。

もちろん、大きな問題は、これらの速度と品質のトレードオフは何でしょうか? エクスポートが必要な品質であるかどうかを目で確認することはできますし、目で確認する必要がありますが、より微妙な違いについては、PSNR や VMAF などを使用して視覚的な品質を評価するのが最善です。

VMAF は、「Netflix が開発し、エミー賞を受賞した知覚ビデオ品質評価アルゴリズム」です。 そして、FFmpeg 内で無料で使用できます。私はこのガイド (これも Jan Ozer による) に従いました。 VMAF の本当に良い点は、100 点満点のスコアなので非常に理解しやすく、Netflix によると 85 以上のスコアが良好であることです。

プリセット全体で品質のわずかな低下はありますが、実際には非常に小さく、VMAF ポイントの半分未満であり、肉眼では見えません。 実際、スコアが 90 を超えると、アーティファクトをまったく確認するのが難しくなります。 H.264 の代わりに H.265 を使用すると、はるかに大きな違いが見られます (AV1 の方がさらに優れています)。 もちろん、実際の数値はソース資料によって異なりますが、他にもいくつかのテストを行ったところ、同様の結果が得られました。

エンコードの速度は品質にあまり影響しませんが、ビットレート/ファイルサイズは品質に影響します。 ここでは、10Mbps から 1Mbps までのビットレートで H.265 にエンコードされた 1080p テスト ファイルを確認できます。品質はプリセット間でほとんど変わりませんが、ビットレート間では大きく異なります。 私の目には、6Mbps を超えるエンコードに非常に満足していました。

ほとんどの人がドライブ容量やインターネット速度に不足していないことを考えると、最速のプリセットを使用してエンコードを迅速に完了できるという利点を維持しながら、ビットレートを上げることが品質を向上させる方法であることは間違いありません。

Premiere Pro ではオプションがさらに制限されていますが、設定を適切に調整することでエクスポートを高速化できます。 H.264 ではプリセットは利用できず、AV1 はまだまったく利用できません (サードパーティのプラグイン Voukoder を使用することを除けば) が、形式として HVEC (H.265) を選択し、ビデオ設定でダイヤルダウンすると、次のようになります。 「品質」として 5 つのオプションがリストされています。なぜ 7 つではなく 5 つがあるのか​​はわかりません (私の推測では、外側の 2 つを省略してシンプルにしようとしているのだと思います)。 また、Nvidia NVENC エンコーダーを使用するワンパス ハードウェア エンコーディングを選択していることを確認する必要があります。

ここでも大幅な時間の節約が可能ですが、残念ながらデュアル エンコーダにアクセスできる人は一人もいなかったようです。 しかし、デフォルトの「良好」設定から「低め」設定にすると約 67% の速度向上が見られました。今回は品質の低下はまったく無視できました (すべてのプリセットで VMAF ポイントはわずか 0.1 ポイント)。 Davinci Resolve の 300 FPS には及ばないにしても、167 FPS に到達するのはかなり印象的です。

Shutter Encoder は人気のある無料のエンコード ツールなので、私も試してみようと思いました。 これは非常に便利で、多くの点で Handbrake よりも優れています (タイムコードをそのまま保持するなど)。 これは FFmpeg のフロントエンドであり、デフォルトでは x264 などの CPU エンコーダを使用します。 これは、古いグラフィック カードを使用している場合、または可能な限り最高の品質を求めている場合に最適です。 より高速な速度を実現したい場合は、強制的に NVENC を使用することができます。私のテストでは、デフォルト設定から NVENC「非常に高速」に変更することで 10 倍の速度向上が得られました。 183 FPS で Premiere と同様のパフォーマンスを発揮しましたが、やはりデュアル エンコーダーを使用できなかったようです。

一般に、ソフトウェア エンコーダーは同じ素材に対して 1 つまたは 2 つ多くの VMAF ポイントを与えていることがわかりました。したがって、これもまた、品質の最後の部分を絞り出そうとしているかどうか、そしてそれに時間を費やすことを気にしないかどうかによって異なります。

Nvidia ハードウェア エンコーダ (NVENC) は、何世代にもわたって非常に高品質であり、ソフトウェア エンコーダの品質に十分近く、価値があり、はるかに高速です。 この RTX 4000 シリーズではさらに優れており、デュアル エンコーダーの搭載は非常にエキサイティングです。 Davinci Resolve でこれらにアクセスできるのは素晴らしく、最速のプリセットを使用すると、エンコード速度が最大 300 FPS という驚異的な速度になります。 そして、これらの速度では品質の低下はほとんどなく、ビットレートを少し上げることでそれを補うことができ、実質的なデメリットはありません。

また、H.264 を捨てて H.265 を導入する時期が来たとも思います。 受信側のハードウェアで簡単に再生できるようになり、作成も速くなり、品質も向上しました。 H.264 が登場してから 20 年が経過し、H.265 の方が安心できるのであれば、AV1 に対して「安全な」選択肢とみなされるようになりました。

映画製作者は、プリプロダクション、プロダクション、ポストプロダクション機器を購入するのに最適な場所です。

最速のプリセットは最も遅いプリセットより約 6 倍速かったため、タイムラインが 30 分の場合、「非常に遅い」プリセットには 15 分以上かかり、「非常に速い」プリセットには 2.5 分かかります。