スポンサードリンク
【快適配信】シリーズは、Youtube LiveやTwitchなどリアルタイム配信(ライブストリーミング)サービスで、PS4/Xbox/Switch等のコンシューマーゲーム機やPCゲームのプレイ動画・ゲーム実況を快適に配信するのに役立つ予備知識を紹介していくコーナーです。
【快適配信】シリーズの第4弾まではCPUを使用したx264ソフトウェアエンコーダを使用するのに必要なCPU性能について解説してきましたが、第5弾からは満を持して、軽くて安くてそこそこ高画質なGPUハードウェアエンコーダについて紹介します。
GPUハードウェアエンコーダの画質や速度について実機による検証結果をお伝えする前に、【快適配信】シリーズ第5弾では、Truing世代の登場とともにアップグレードされたNVEncの諸事情について解説します。
NVIDIA製ハードウェアエンコーダNVEncについて
NVIDIA製GPUにはNVEncと呼ばれるハードウェアエンコーダが実装されています。NVEncはCPUによるソフトウェアエンコーダと比較して動作が軽量、x264高画質プリセットに対応できるエンスー向けCPU導入に比較して高コストパフォーマンス、CPUを使用したx264の高画質プリセットほどではありませんが画質も比較的綺麗ということで、『軽くて安くて、そこそこ高画質』の3拍子が揃っていることからストリーミングや高速エンコーディングにおいて定評があります。
NVEncとはNVIDIA製GPUにおいてPCゲームグラフィック性能に直結する(3Dグラフィックのレンダリングを行う)CUDAコアとは別に実装されたハードウェアエンコーダユニットのことです。
NVEnc自体がCUDAコアから独立しているので、PCゲームプレイへの影響を最小限にしてGPUを使用したリアルタイムエンコードが可能な機能となっています。またNVEncはPCゲームプレイ&リアルタイム配信(エンコード)を同時に行う実用的な手段として、多くの配信ソフトウェアにおいて選択可能な汎用性のあるエンコーダになっています。
RTX 20XXシリーズやGTX 16XXシリーズなどTuring世代GPUでは「HEVC B Frame」がサポートされるなど、ハードウェアレベルでNVEncがアップグレードされ高画質化を果たしています。
なお注意点としてGTX 1650のみVolta世代(ほぼPascalと同じ)のハードウェアエンコーダのため、GTX 1650では上位モデルのようなハードウェアレベルでの高画質化はありません。
Turing世代RTX 20/GTX 16と新NVEncについて
「OBS(Open Broadcaster Software) Ver23.1」や「XSplit Broadcaster Ver3.7」等のリアルタイム配信ソフトウェアの最新バージョンでは、NVIDIA次世代GPU「Turing」、すなわちGeForce RTX 20XXシリーズやGeForce RTX 16XXシリーズがサポートする最新の高画質エンコードに対応しています。ひとくくりにして「新NVEnc」と呼ばれることの多いNVEncの改良についてですが、ハードウェア(Truing世代のハードウェアエンコーダ)とソフトウェア(Video Codec SDK Ver9.0への更新)がそれぞれ高画質化と高速化に対してどのように寄与しているのか、テーブルで簡単にまとめると次のようになっています。
GPUエンコーダのハードウェアレベルにおいて、Turing世代はPascal世代よりも高画質化を果たしています。また注意点として一応Turing世代のGTX 1650のみVolta世代(ほぼPascalと同じ)のハードウェアエンコーダのため、GTX 1650では上位モデルのようなハードウェアレベルでの高画質化はありません。
ソフトウェアレベルでの改良(Video Codec SDK Ver9.0への更新)について詳しくは次の章で解説しますが、単純な高画質化に加えて、高速化(PCゲームのプレイ&録画時のインゲームFPSの低下抑制、録画フレーム落ちの抑制)の2つの側面があります。ソフトウェアレベルでの改良についてはTruing世代だけでなく、GTX 1650やPascal世代でも同様に恩恵を受けることができます。(GPU世代による程度の差が存在する可能性は残る)
NVEncの新機能に関する早見表 | |||
Turing RTX 20XX / GTX 16XX (GTX1650を除く) |
Pascal +α GTX 1650 、 GTX 10XX |
||
ハードウェアレベル | Turing世代はPascal世代と比較して高画質化 | ||
SDK 9.0 | 高画質化 主にAdaptive Quantization Temporal |
〇 |
〇 |
高速化 メモリアクセス最適化 |
〇 | 〇 |
OBSやXSplitがサポートする新たなNVEncについて
「OBS」においてNVEnc(New)と呼ばれ、「XSplit」でも使用できる新機能は、PCゲームや配信ソフトウェアとNVENCの橋渡しをするNVIDIA Video Codec SDKの最新バージョン「Video Codec SDK Ver9.0」によって実現されています。「Video Codec SDK Ver9.0」によって新たにサポートされる新機能のうち重要なものを抜粋すると、
まず目につくのが「Turing世代GPUにおけるエンコード画質の向上」という項目で、具体的な機能としては「Rate Distortion Optimization(直訳でレート歪み最適化)」と「Multiple Frames to be used as reference(複数フレームの参照)」の2つに分かれます。
「Rate Distortion Optimization」はOBSのNVEnc(New)において「心理視覚チューニング(Psycho Visual Tuning)」と呼ばれ、ビットレート当たりの画質の向上に大きく影響するとNVIDIA公式のブログポストで解説されています。OBSのNVEnc(New)でもデフォルトでチェックが入っており、NVEnc(New)の主役的な機能と言えます。ちなみにNVEncの機能的には「Adaptive Quantization Temporal」と呼ばれるオプションがこれに当たるようです。
一方で「Multiple Frames to be used as reference(複数フレームの参照)」はOBSのNVEnc(New)において、「Look-ahead」と呼ばれており、0から設定値の範囲内で動的にBフレームを入れることで画質の向上を果たす機能になっています。画面変化が小さい(ゆっくりとしている)もしくは低フレームレートな配信に効果的な反面、Bフレームの挿入はデータ量が増え、実効ビットレートが少なくなってしまうので、バトルロイヤル系に代表されるような高速に変化するゲームには不向きで、OBSにおいても標準ではチェックされていません。
この2つの機能は商用の配信ソフトウェアとして比較的シェアの高い「XSplit Broadcaster」でも「Adaptive Quantization」と「Look ahead」として用意されています。
もう1つ重要な更新は「VRAM内の映像の取り扱い」です。従来ではGPUでレンダリングされVRAMに格納された映像は、一度システムメモリにコピーされて、それからNVEncに送られるため、このコピー作業がオーバーヘッドになるという非効率なものでした。SDK Ver9.0ではVRAMのデータがNVEncへ直接送られるようになったので、システムメモリ帯域やコピーに伴うCPU使用が減って、NVEncと同時に実行されているゲームのパフォーマンス低下を減らすことができます。
NVIDIA次世代GPU「Turing」の高画質エンコーダと新NVEncの画質は?
以上ざっくりとNVIDIA次世代GPUのGeForce RTX 20XXシリーズやGeForce RTX 16XXシリーズがサポートする新型の高画質エンコーダの概要について解説しましたが、新NVEncの画質について簡単に紹介しておきます。エンコーダで画質に差が出るのは高圧縮・低ビットレートの時だけ
最初に1つ注意しておきたい点として、エンコーダによって画質に大きく差がでるのは解像度&フレームレートに対してビットレートが小さい場合、つまり高圧縮で圧縮の品質が影響する場合です。フルHD/60FPSで言うとTwitchなどのリアルタイム配信において主流な6Mbpsは圧縮の品質が画質に大きく影響しますが、単純なゲーム画面の録画において主流である20Mbpsを超えるビットレートではエンコーダによる画質の差は小さく、エンコーダの圧縮品質に差があってもビットレートを上げることによって画質はカバーできます。
つまり、十分に大きいビットレートで録画しておいて、後で編集してYoutubeにアップロードするといったケースにおいては録画動画のフレームレートが安定してさえいれば、新旧NVEncやx264の各種プリセットの差はCPU使用率やGPU使用率の違い、すなわち録画と同時に実行しているPCゲームのフレームレートへの影響のみと考えて大丈夫です。
新NVEncの画質:NVIDIA&OBSによると
新NVEncの具体的な効用としてはNVIDIAによると、旧NVEnc(GTX 10XXシリーズ以前)、x264のFastプリセット、新NVEnc(RTX 20XX/GTX 16XXシリーズ)、x264のMediumプリセットの順番に高画質なリアルタイムエンコードが可能になるとのことです。ベストケースに近い変化を抜粋したのだと思いますが、CPUソフトウェアエンコーダのx264 Fastプリセット(Intel Core i9 9900K発売以前、Core i7 8700Kで考えるとPCゲームプレイ&配信において現実的な高画質設定)と比較して、RTX 20XX/GTX 16XXシリーズを使用した新NVEncのほうが、フォートナイトのような動きの変化の大きいバトルロイヤル系ゲームにおいて、文字認識に優れ、ディティールが精細であるとアピールされています。
新NVEncの画質:XSplitによると
またOBSと違ってNVIDIA公式がプレスリリースを出していないので、若干認知度が低いですが、商用の配信ソフトウェアとして比較的シェアの高い「XSplit Broadcaster」のVer3.7以降も新NVEncをサポートしており、XSplit公式からは新旧NVEncを比較した動画が配信されています。XSplit公式の動画によるとRTX 20XX/GTX 16XXシリーズの新NVEncはx264 Mediumプリセット相当、GTX 10XX/GTX 9XXシリーズの旧NVEncはx264 Very Fastプリセット相当という評価のようです。
SDK9.0ではインゲームFPSの低下をさらに抑制
この特徴はTuring世代GPUエンコーダのハードウェアレベルではなく、「Video Codec SDK Ver9.0」によるソフトウェアレベルでの改良ですが、SDK9.0に関する解説で紹介したように、SDK9.0を使用する「OBS」や「XSplit」の最新バージョンではVRAMデータへのアクセスが最適化されており、PCゲームのプレイ&録画を行った時のインゲームフレームレートの低下が従来よりもさらに抑制されています。NVIDIAによると、CPUによるx264ソフトウェアエンコーダを使用してPCゲームのプレイ&録画を行った場合、20~30%程度のインゲームフレームレートの低下が発生するのに対して、従来のNVEncでは10%程度のFPS低下に収まります。これでも十分に優秀でしたが、新NVEncでは4%程度の低下へとさらに改善され、PCゲームの実況をしながらでも、ネイティブなPCゲーミングと同等のプレイが可能になります。
以上、『Turing&新SDKによるNVEncの高画質・高速化を解説』でした。
今回はTuring世代GPUや新SDKによるNVEncの改良について概要をまとめてお伝えしましたが、次回はこの内容を踏まえて管理人が行った実機検証をベースにしてさらに詳しく解説します。
【快適配信】シリーズの最新記事やバックナンバーについてはこちらの記事一覧を参照してください。
・【快適配信】シリーズの記事一覧へ
・GTX 1660 販売ページ:
<Amazon><PCショップアーク><パソコン工房>
<TSUKUMO><ドスパラ><PCワンズ><ソフマップ>
関連記事
・GeForce RTX 20XX/GTX 16XXシリーズのレビュー記事一覧へ・AMD Radeon VIIシリーズのレビュー記事一覧へ
・おすすめグラボまとめ。予算・性能別で比較。各社AIBモデルの選び方
・グラフィックボードのレビュー記事一覧へ
・CPUレビュー記事一覧へ
・Intel第9世代CoffeeLake Refresh-Sのレビュー記事一覧へ
・AMD第2世代Ryzenのレビュー記事一覧へ
(注:記事内で参考のため記載された商品価格は記事執筆当時のものとなり変動している場合があります)
スポンサードリンク