コンテンツにスキップ

利用者:BitMaster206/sandbox

下記: en:NVIDIA NVEncの翻案

NVEncは、NVIDIAが提供するビデオエンコード・オフロード用のGPU機能。GeForce 600シリーズ(Kepler)から提供されている。

これが提供するエンコーダーはOBS StudioBandicamといったライブストリームソフト・レコーディングソフトの他、Adobe PremiereDaVinci Resolveのような動画編集ソフトウェア、GeForce Experience等のゲームキャプチャーソフトなどでサポートされている。

バージョン[編集]

Keplerでの初搭載以降、改良が加えられ続けている。

NVEncのバージョン別機能差分[1][2]
GPU ハードウェア H.264 (AVC)

(H.264環境下では、NVEncはBフレームとして最大解像度4096x4096、最大8ビット深度の映像のみサポートする)

H.265 (HEVC) AV1
世代 GPU コードネーム 対応 クロマ ロスレスエンコード クロマ ロスレスエンコード 画面解像度 色深度 Bフレーム AV1
4:2:0 4:4:4 4:2:0 4:4:4
1世代 rowspan="4" style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes Yes No No 未対応 未対応
GK107
GK106
GK104
2世代 style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes Yes Yes Yes 未対応 未対応
3世代 rowspan="1" style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes Yes Yes Yes Yes Y?[2] N?[1] No 4096x4096 8ビット No
rowspan="2" style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes No
GM200
4世代 style="background:#FFC7C7;vertical-align:middle;text-align:center;" class="table-no"|0 NVEncが搭載されていない
rowspan="2" style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes Yes Yes Yes Yes Yes Yes Yes Yes No AV1 not supported
GP106
rowspan="1" style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes
style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes
style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes
rowspan="2" style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes Template:Some
5世代 rowspan="6" style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes
rowspan="5" style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes
6世代 rowspan="4" style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes
TU106
TU104
TU102
7世代 rowspan="4" style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
GA106
GA104
GA102
style="background:#FFC7C7;vertical-align:middle;text-align:center;" class="table-no"|0 NVEncが搭載されていない
8世代 rowspan="3" style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
AD106
AD104-250
rowspan="3" style="background: #d2ffd2; color: black; vertical-align: middle; text-align: center; " class="table-yes2"|Yes
AD103
AD102
世代 GPU コードネーム 対応 クロマ ロスレスエンコード クロマ ロスレスエンコード 画面解像度 色深度 Bフレーム AV1
4:2:0 4:4:4 4:2:0 4:4:4

第1世代(Kepler GK1xx)[編集]

第1世代NVEncはKepler世代のすべてのGPUに搭載され、H.264ハイプロファイル(YUV420, I/P/Bキーフレーム,CAVLC/CABAC)とH.264 SVC 一時エンコードVCE、および Display Encode Mode(DEM)に対応した。

NVIDIAのドキュメントによれば、このエンコーダーはピーク性能時にリアルタイムで1920x1080の映像を最大8倍(ベースラインでは30Hzを1倍とする)のスループットでエンコードできる。あくまでこれは理論値で、この理論値はNVEnc高パフォーマンスプリセット(圧縮効率やクオリティを最小に下げた状態)を利用した場合の数値である。実際の性能はプリセットやユーザーが指定したプリセット・設定、GPUとメモリの周波数に依存する。高クオリティプリセット使用時には若干の性能低下が見られるが、 圧縮アーティファクトは減少する。

第2世代(Maxwell GM107)[編集]

第2世代NVEncは第1世代Maxwellアーキテクチャの一部GPUに搭載された。この世代では高パフォーマンスHP444プロファイル(YUV4:4:4, 予測敵ロスレスエンコード)に対応し、エンコーダースループットが最大16倍(1080p 480Hzに相当)まで向上した。

ただし、Maxwell GM108にはNVEncが搭載されていない。

第3世代(Maxwell GM20x)[編集]

第3世代NVEncは第2世代MaxwellアーキテクチャのGPUに搭載された。この世代ではH.265の対応が始まったほか、H.264のエンコーダーのスループットが4K60Hzまで向上した。しかし、H.265エンコードではBフレームへの対応がなされず、I/Pフレームのみの対応となった。最大のNVEnc H.265 コーディングツリーユニット(以下、CU)のサイズは32(H.265標準では64が最大である)となり、最低値は8である。

H.265によるエンコードにはサンプル・アダプティブ・オフセットがない。また、アダプティブクオンタイゼーション、ルック・アヘッド・レートコントロール、アダプティブ・Bフレーム(H.264における)、そしてアダプティブGOPといった機能はNVIDIA Video Codec SDK 7のリリースにより追加された。これらの機能にはCUDAによるハードウェアアクセラレーションが用いられている。

SDK 7ではアダプティブ・クオンタイゼーションに次の2つ形式を利用する。

一般向けGeForceカードと一部のローエンドQuadroカードでは同時にエンコードできるジョブの3つまでに制限されている。これは上位グレードのQuadroカードを利用することで回避できる。

第4世代(Pascal GP10x)[編集]

第4世代NVEncはPascalアーキテクチャのGPUに搭載された。この世代ではH.265 Main10 10ビットハードウェアエンコーディングに対応した。この変更により前世代のH.264/H.265エンコーダーと比べ、4K動画において2倍ほどの性能向上が見られた。またH.265における8Kエンコード、4:4:4の彩度比でのサブサンプリング、ロスレスエンコード、サンプルアダプティブオフセットに対応した。

NVIDIA ビデオコーデックSDK 8には、Pascal独自の機能である重み付き画素値予測(CUDAベース)が追加された。この機能はH.264のBフレームが規定されたエンコードセッションではサポートされていない。

H.265エンコードにおけるBフレームの対応はされていない。また、最大CUサイズは32×32である。

NVIDIA GT1030とモバイル版Quadro P500に搭載されているGP108チップでは、NVEncエンコーダがサポートされていない。

ラップトップ向け製品では、Maxwell GM108チップ、及びPascal GP108チップをベースとした世代のNVIDIA MX グラフィックスでのNVEncサポートが省かれている他、GeForce MX350に搭載されたNVIDIA GP107チップでは製造過程でNVEncエンコーダが無効化されている。

第5世代(Volta GV10x/Turing TU117)[編集]

  1. ^ a b Video Encode and Decode GPU Support Matrix” (英語). NVIDIA Developer (2016年11月9日). 2020年8月22日閲覧。
  2. ^ a b NVIDIA VIDEO CODEC SDK” (英語). NVIDIA Developer (2016年11月9日). 2020年8月22日閲覧。
  3. ^ NVIDIA Ampere Architecture In-Depth” (英語). NVIDIA Developer Blog (2020年5月14日). 2020年8月31日閲覧。