Encode/av1 – ffmpeg、nvidiaは、AMDおよびIntelよりも優れたAV1エンコーダーを持っていると主張しています.

0

Nvidiaは、AMDおよびIntelよりも優れたAV1エンコーダーを持っていると主張しています

libaom-av1には、一定の品質(CQ)モード(x264およびx265のCRFなど)があり、すべてのフレームが各フレームをエンコードするのではなく、特定の(知覚的な)品質レベルを達成するに値するビット数を取得することを保証します。ビットレートターゲット. これにより、全体的な品質が向上します. 固定ターゲットファイルサイズを達成する必要がない場合は、これが選択の方法である必要があります.

AV1ビデオエンコーディングガイド

AV1は、非営利業界コンソーシアムであるOpen Media(AOMEDIA)のAllianceが開発したオープンソースおよびロイヤリティフリービデオコーデックです。. .264.

. .

libaom

. . libaomはlibvpxに基づいているため、機能、パフォーマンス、および使用に関する多くの特性を共有しています.

.

  • 一定の品質
  • 2パス平均ビットレート
  • 1パス平均ビットレート

. -aom -paramsを介して渡すことができるオプションの場合、AOMENCアプリケーションの – ヘルプ出力をチェックすることをお勧めします。.

.0.0は-strict -strict experimental(またはエイリアス-Strict -2)を追加する必要があります.

一定の品質

. これにより、全体的な品質が向上します. 固定ターゲットファイルサイズを達成する必要がない場合は、これが選択の方法である必要があります.

.

.MP4 -C:V libaom -av1 -crf 30 av1_test.mkv

CRF値は0〜63です. 値が低いということは、品質が向上し、ファイルサイズが大きいことを意味します. 0はロスレスを意味します. 23のCRF値は、X264(ソース)のCRF 19に対応する品質レベルを生成し、視覚的にロスレスと見なされます.

4以前のFFMPEGバージョンでは注意してください. . これが完了していない場合、-CRFスイッチは、デフォルトのビットレートの256kbpsで制約付き品質モードをトリガーします.

制約のある品質

libaom-av1には、指定された上限の下または特定の境界内にビットレートを維持しながら一定の(知覚)品質に到達することを保証する制約された品質(CQ)モードもあります. この方法は、一般的に一貫した方法でビデオをエンコードするのに役立ちます.

ffmpeg -i input..mkv

品質は-crfによって決定され、ビットレート制限-b:vによってビットレートがあります しなければならない ゼロではありません.

品質のターゲットではなく、最小および最大ビットレートを指定することもできます。

ffmpeg -i input..MP4

注記: .

2パス

. ターゲットビットレートなしで一定の品質が使用される場合、2パスエンコーディングはエンコード効率にも有益です. 2パスの場合、以下を除き、ほぼ同じ設定でFFMPEGを2回実行する必要があります。

  • パス1と2で、それぞれ-Pass 1と-Pass 2のオプションを使用します.
  • . (これにより、FFMPEGが2番目のパスに必要なログファイルが生成されます.))
  • パス1では、-anを指定することでオーディオを除外できます .
ffmpeg -i input.mp4 -c:v libaom -av1 -b:v 2m -pass 1 -an -f null /dev /null && \ ffmpeg -i input.MP4 -C:V libaom -av1 -b:v 2m -pass 2 -c:libopus出力.mkv

注記: Windowsユーザーは /dev /nullの代わりにnulと ^の代わりにnulを使用する必要があります .

libaom-av1は、単純な「平均ビットレート」または「ターゲットビットレート」モードも提供します. .g. 2 Mbit/s.

.MP4 -C:V libaom -av1 -b:v 2m出力.mkv

ファイルサイズの場合にのみ、このオプションを使用します そして エンコード時間は、品質だけよりも重要な要素です. それ以外の場合は、上記の他のレート制御方法のいずれかを使用します.

制御速度 /品質

-CPU使用は、圧縮がどれほど効率的であるかを設定します. デフォルトは1です. 値が低いということは、より良い品質でエンコードが遅く、逆. 有効な値は0〜8の包括的です.

-Row-MT 1は、CPU使用を最大化する行ベースのマルチスレッドを有効にします. 高速デコードパフォーマンスを有効にするには、タイルも追加します(i.e. -タイル4×1または-tiles 2×2 for 4タイル). row-MTを有効にすることは、CPUにエンコードされたタイルの数よりも多くのスレッドがある場合にのみ高速です.

-. -7〜10のCPU使用値はリアルタイムモードでのみ利用可能です(ただし、FFMPEGのバグにより、FFMPEGを介して8を超えるプリセットは使用できません).

キーフレームの配置

デフォルトでは、Libaomの最大キーフレーム間隔は9999フレームです. これにより、特にシーンの変更がほとんどないコンテンツでは、シーニングが遅くなる可能性があります。.

. ほとんどのコンテンツでは最大10秒のものが合理的であると考えられているため、1秒あたり30フレームでは、60 fpsコンテンツ-g 600などに-g 300を使用します。.

固定キーフレーム間隔を設定するには、-gと-keyint_minの両方を同じ値に設定します. -KeyInt_minは-gと同じでない限り無視されているため、最小キーフレーム間隔を単独で設定できないことに注意してください.

専用の出力の場合、-g 0を使用します .

HDRでエンコードするときは、色情報を通過する必要があります。 -colorspace、-color_trcおよび-color_primaries . たとえば、YouTube HDRは使用します

-Colorspace BT2020NC -COLOR_TRC SMPTE2084 -COLOR_PRIMARIES BT2020

AV1には、メインプロファイルに10ビットサポートが含まれています. したがって、コンテンツは、互換性のないハードウェアデコーダを心配することなく、10ビットでエンコードできます.

メインプロファイルで10ビットを使用するには、-pix_fmtyuv420p10leを使用します . 4:4:4クロマサブサンプリング(有名な要求が必要)の10ビットの場合、-pix_fmt yuv444p10leを使用してください . . サポートされているピクセル形式については、ffmpeg -help encoder = libaom -av1を参照してください.

ロスレスエンコーディング

ロスレスエンコーディングに-crf 0を使用します. 4以前のFFMPEGバージョンに存在するバグのため.4、最初のフレームは損失がなく保存されません(問題は2021年3月21日に修正されました). Pre-4の回避策として.4バージョンでは、ロスレス出力に-aom -params lossless = 1を使用できます.

SVT-AV1

SVT-AV1(LIBSVTAV1)は、Netflixと共同でIntelが元々開発したエンコーダです. 2020年、SVT-AV1は、AV1の将来の開発および将来のコーデックの取り組みの基礎としてAomediaによって採用されました. .

サポートを有効にするには、ffmpegを使用して構築する必要があります。 . . FFMPEGドキュメント、アップストリームエンコーダーユーザーガイド、およびすべてのパラメーターのリストも参照してください.

-SVTAV1 -PARAMSを使用して、多くのオプションがエンコーダに渡されます . これはSVT-AV1 0に導入されました.9.1およびFFMPEG 5以降サポートされています..

CRFはデフォルトのレート制御方法ですが、VBRとCBRも利用可能です.

X264およびX265のCRFと同様に、このレート制御方法は、すべてのフレームが特定の(知覚的な)品質レベルを達成するためにふさわしいビット数を確実に取得しようとします。.

.mp4 -c:v libsvtav1 -crf 35 svtav1_test.MP4

-CRFオプションは、2022-02-24以降、FFMPEG Gitビルドでのみサポートされていることに注意してください. これ以前のバージョンでは、CRF値は-QPで設定されます .

有効なCRF値範囲は0-63で、デフォルトは50です. 低い値は、より高い品質とファイルサイズが大きいことに対応しています. 現在、ロスレスエンコードはサポートされていません.

プリセットとチューン

エンコーディング速度と圧縮効率の間のトレードオフは、-presetオプションで管理されます. SVT-AV1 0以降..0、サポートされているプリセットの範囲は0〜13で、数値が高いほどエンコーディング速度が高くなります.

プリセット13は、速い凸面エンコードのデバッグと実行を目的としていることに注意してください. 0より前のバージョンで…

例として、このコマンドは、オーディオをコピーしながら、プリセット8と35のCRFを使用してビデオをエンコードします。

ffmpeg -i input.MP4 -C:コピー-C:V libsvtav1 -preset 8 -crf 35 svtav1_test.

SVT-AV1 0以降.9.1、エンコーダーは視覚品質のチューニングもサポートしています(シャープネス). これは、-svtav1 -params tune = 0で呼び出されます . デフォルト値は1で、PSNRのエンコーダーを調整します.

0以降もサポートされています… SVT-AV1以来1..0、この機能は-SVTAV1-PARAMS FAST-DECODE = 1で呼び出されます .

0で.9.1、オプションは1〜3の整数を受け入れ、数値が多いため、ゼロが容易になります。. 0で.9.1、デコーダーチューニングは5〜10のプリセットに対してのみサポートされ、デコーダーチューニングのレベルはプリセット間で異なります.

デフォルトでは、SVT-AV1のキーフレーム間隔は2〜3秒ですが、ほとんどのユースケースでは非常に短いです. .

バージョン1の時点で..1、SVT-AV1は、シーンの変更でキーフレームの挿入をサポートしていません. 代わりに、キーフレームは設定された間隔で配置されます. SVT-AV1 0で.9.1および以前、機能は存在していましたが、最適ではない状態であると考えられており、デフォルトで無効にされました.

フィルム穀物合成

SVT-AV1は、粒子の多いビデオの外観を保存するためのAV1機能であるFilm Grain Synthesisをサポートしています。. 穀物は除去された画像から除去され、その外観が近似されて合成され、デコード時にビデオの上部にフィルターとして追加されます.

. より高い数は、穀物合成プロセスの除去のより高いレベルに対応しているため、より多くの穀物.

穀物除去プロセスは、特に非常に粒子の多い映画の外観を維持するために必要な高い価値で詳細を削除することができます. . .

rav1e

Librav1eはAV1のXIFHエンコーダーです. -enable-librav1eでコンパイルします . FFMPEGドキュメントと上流のCLIオプションを参照してください.

RAV1Eは最速のソフトウェアAV1エンコーダーであると主張していますが、それは実際には設定に依存します.

AMD AMF AV1

Advanced Media Framework(AMF)は、マルチメディア処理用のAMD GPUへの最適なアクセスを開発者に提供します. . 異なるユーザーの個々のニーズを満たすように設計されています. ユーザーは、エンコーダのパラメーター設定を調整して、解像度、ビットレート、フレームレート、エンコード品質など、さまざまなエンコード要件を満たすことができます。. .

ビデオエンコーダーは、速度、品質、レイテンシなどの要因のバランスを取ります. AMDは、いくつかの典型的なユーザーシナリオプリセットをAMFエンコーダーに統合しました. ユーザーは、「使用法」パラメーターを設定することでこれらのプリセットを使用できます.

  • トランスコーディング:高解像度または高双性ビデオを、帯域幅制限ネットワーク環境での送信またはストレージのための低解像度または低ビトレートビデオに変換します.
  • .

使用ごとに、AMFは対応するシナリオに基づいてエンコーダのパラメーターを最適化およびプリセットしました. これらのパラメーターの最適化とプリセットは、次のことを含むがこれらに限定されないパラメーターの大部分をカバーしています。

  • プロファイルとレベルのエンコード
  • GOPサイズと構造
  • レート制御モードと戦略
  • モーション推定方法と精度
  • フィルター強度をデブロッキングします
  • 適応量子化と速度の歪みの最適化
  • ビットレートと解像度の制約

これらのプリセットを使用することにより、ユーザーは、エンコーダのパラメーターに関する詳細な知識とビデオの品質とパフォーマンスへの影響を必要とせずに、特定の使用シナリオの適切なエンコーディング設定を簡単かつ効率的に選択できます。. トランスコーディングの使用シナリオ

ffmpeg -s 1920x1080 -pix_fmt yuv420p -i input..MP4

低速性のための使用シナリオ

..

品質

このパラメーターは、ビデオの品質と速度を選択するために使用されます. このパラメーターは、エンコード速度に大きな影響を与えます. 3つの有効な値があります。

  • 品質:このプリセットは、ビデオ制作、放送、ライブストリーミングなどのアプリケーションに適した高品質のビデオ出力に最適化されています.
  • バランス:このプリセットは、品質と速度のトレードオフのバランスを取り、ビデオ会議やオンラインゲームなど、2つのバランスを必要とするさまざまなアプリケーションに適しています。.
  • 速度:このプリセットは品質よりもスピードを優先し、オンラインゲームやリモートデスクトップアプリケーションなど、低レイテンシでリアルタイムのビデオエンコードを必要とするアプリケーションに適しています.

ffmpeg -i input.MP4 -C:V AV1_AMF-品質バランス出力.mp4 ffmpeg -i input.MP4 -C:V AV1_AMF-品質の品質出力.mp4 ffmpeg -i input.MP4 -C:V AV1_AMF-品質速度出力.MP4

endforce_hrd

. . 「Enforce_Hrd」パラメーターは、すべてのタイプのシナリオに必ずしも必要または適切ではありません. エンコードされているビデオコンテンツの特定の特性を慎重に検討して使用する必要があります.

ffmpeg -i input.MP4 -C:V AV1_AMF -ENFORCE_HRD True Output.

vbaq

. コンテンツの視覚的な複雑さに基づいて、ブロックの量子化パラメーターを適応させることでこれを達成します. これは、ハイモーションや高控除シーンなど、複雑な視覚コンテンツを使用してビデオをエンコードするのに特に効果的です. ffmpeg -i input.MP4 -C:V AV1_AMF -VBAQ True Output.MP4

AV1 BitStream仕様には、デコーダが特定のピクセルの正確な解像度を表示するためのトリミング情報が含まれていません. 代わりに、適切な収穫情報をコンテナに提示する必要があると予想されます. AMF AV1エンコーダーは、エンコードされたビットストリームをデコードして適切に提示できるように、ハードウェアアライメント要件に対応するパラメーター「Align」を導入します. 「Align」を設定するための値:

  • 64×16:解像度が64×16に並べられている入力ビデオがコーディングされます。解像度が64×16に並べられていない入力ビデオはコーディングされません。他のすべての解像度ビデオはサポートされません.
  • 1080p:解像度が64×16に並んでいる入力ビデオと1920×1080ビデオがコーディングされます。他のすべての解像度ビデオはサポートされません. 1920×1080の解像度の場合、出力ビデオの解像度は1920×1082になることに注意してください。. フレームの下部に2つの余分な線がパッドで埋められ、黒いピクセルで満たされています.
  • なし:解像度のあるビデオはコーディングできます. ただし、解像度が64×16に整列していないビデオの場合、出力解像度は64×16にアライメントされ、黒いピクセルでパディングされるように外挿されます. 例外は、値「1080p」の場合のように、1082pにパッドで埋められる1080pの解像度です。.

ffmpeg -i input.MP4 -C:V AV1_AMF -ALIGN 1080P出力.MP4

キーフレームの配置

デフォルトでは、AMF AV1のキーフレーム間隔は250フレームで、ほとんどのユースケースのバランスの取れた値です. . たとえば、ブロードキャストテレビアプリケーションでは、通常、優れたユーザーエクスペリエンスのために快適なチャネルの切り替え時間を確保することが望まれます。. 2秒のキーフレームは、この目的のための共通の設定として広く使用されています. したがって、1秒あたり30フレームのフレームレートのコンテンツの場合、コマンド「-g 60」を使用します。.

.MP4 -C:V AV1_AMF -G 60出力.MP4

  • SVT-AV1パラメータードキュメント
  • SVT-AV1のFFMPEGガイド
  • SVT-AV1:一般的な質問と関心のあるトピック
  • SVT-AV1のユーザーガイド
  • SVT-AV1発行トラッカー
  • libaom発行トラッカー

Nvidiaは、AV1エンコーダーはAMDやIntelのよりも優れていると言います

昨日、OBS Studio 29の安定したバージョン.1がリリースされました. ベータと同じように、このバージョンはYouTubeストリーミング用のAV1エンコーディングをサポートしています. Nvidiaはこの機会を利用して、競合他社と比較してAV1エンコーディングの優位性について話し合いました.

AV1は、オープンメディアのためのAllianceのオープンソースコーデックです. 2年以上にわたって、このビデオコーデックは、オープンソースではないH264およびH265/HEVCの真の代替品として浮上しています. .

私たちが知っているように、AV1エンコーディングは現在、すべての最新のGPUアーキテクチャでサポートされています:Geforce RTX 40(ADA)、Radeon RX 7000(RDNA3)、Arc Alchemist(XE-HPG). ただし、実装は異なり、エンコード機能は顕著な違いを示す場合があります.

プロのコンテンツクリエイターの厳しさをサポートするように設計されたNVENCは、競争力のあるエンコーダよりも高い精度でビデオの品質を保持しています. GeForce RTXユーザーは、競合製品と同じビットレートで高品質の画像をストリーミングしたり、同様の画質を維持しながら、より低いビットレートでエンコードできます.

– nvidia

Nvidiaは、AMD RX 7900 XTX、ARC A770、およびそのRTX 4080 GPUをAV1 4Kおよび12 Mbpsエンコードの比較を特徴とするビデオ比較をリリースしました. 同社は、エンコーダが同じビットレートで高品質の画像を生成していると主張しています。

NVIDIA RTX 40 GPUは、一部のGPUでフレームを水平レーンに分割することにより、最大8k60(FPS)エンコードを可能にする第8世代NVENCエンコーダーに依存しています。. .20 Mbpsで264ストリームがありますが、全体的にNVIDIAはAV1エンコードが約40%優れたエンコーディング効率を提供すると主張しています.

OBS Studio 29.. .

どのグラフィックカードがそれをサポートしているのか、そしてそれが重要な理由は何ですか?

ハイテク業界は、最近AV1エンコードについておしゃべりで賑わっています. ストリーミングビデオ、ゲームストリーミング、インターネット全体にどのように革命をもたらすかについて大胆な主張がありますが、AV1とは何ですか、なぜそれがとても重要なのですか?

AV1は、ビデオストリーム用に設計された(比較的)新しいビデオコーデックです. AVCよりも大きな利点を提供します(h.264)およびHEVC(h.. . Aomediaには、Amazon、Cisco、Intel、Microsoft、Mozilla、Netflixの7人の設立メンバーがいます。.

ただし、成功するには、無料でオープンソース以上のものである必要があります。. それは空間での最初の努力とはほど遠いものであり、実際にはオープンソースの前身であるVP9などの肩に基づいて構築されています. VP9は、多くのプラットフォームでサポートをエンコードするハードウェアを含む合理的な採用を獲得しましたが、最終的にはHよりも効率が低いと見なされます。.同様のパフォーマンスで265. AV1ははるかに優れています.

?

AV1は、他の多くの形式と同様にエンコードするために「ブロックベースの周波数変換」を使用します. 実際、これらの方法は、フレームをピクセルグループの小さな「ブロック」に分割し、その後、すべてのピクセルのすべてのビットを記述するために必要なデータのヒープなしで、許容できる方法でデータを保存するために、いくつかのフーリエ変換に関連する数学を実行します。. AV1はVP9のソリューションをベースとして使用しますが、追加のテクニックでオプションを拡張します.

AV1の場合、128×128または64×64ピクセルのいわゆるスーパーブロックを使用します。. . これにより、特定の画像品質のターゲットに対してビットレート(したがって帯域幅)が少なくなる(したがって帯域幅)が必要なビデオストリーム、または他のコーデックと比較した場合、同じビットレートでの見栄えの良い画像が得られます。.

. . まだあまり需要はありませんが、コーデックは時が来たときに8Kコンテンツにも適しています. また、同様に高いデータ需要を備えた360度ビデオにも使用できます.

しかし、ビデオコンテンツをAV1に切り替えるのは簡単な作業ではありませんでした。. AV1エンコードとデコードは、ソフトウェアを介してCPUでブルートを強制することで実現できますが、Hよりも計算的に集中的です.. これにより、モバイルデバイスのバッテリー寿命への影響は言うまでもなく、下端のハードウェアが処理されるようになります.

しかし最近、いくつかのプラットフォームがAV1のハードウェアエンコードとデコードの組み込みを開始しています. これらの特殊なサーキットは、ソフトウェアが引き抜くことができるよりもはるかに効率的です. . . .

AV1デコードは、AMD RDNA 2 GPU(Navi 24ベースの6500 XTの外側)、Nvidia Geforce 30および40シリーズGPU、Intel XE、ARC GPUのハードウェア、およびSamsung Exynos 2100および2200などのモバイルチップでサポートされています。さまざまなMediaTek Dimenity SoC、およびGoogleのテンソルプロセッサ. Qualcommはこのリストには特に存在しませんが、2023年からSnapdragonチップでコーデックがサポートされることを示しています。. デコードサポートはコンテンツの消費者に最適ですが、サポートをエンコードすることなく、AV1コンテンツははるかに乏しいです.

Intel AV1 H264との比較

そのために、主要なシリコンプレーヤーは現在、コンテンツの作成をサポートするためにAV1エンコードをサポートすることを求めています. Intelは、AV1ハードウェアをエンコードするARC Alchemist Aシリーズグラフィックカードをエンコードすることで、熱狂的な消費者スペースに実際にステップアウトした最初の人物でした. これらは最近まで州内を調達することは困難でしたが、インクルージョンは大きな賞賛を集めています. スイートに続いて、Nvidiaの真新しいRTX 40シリーズAda Lovelace GPUもAV1エンコード筋肉をもたらします。. AMDがまもなく発表されるRDNA3 GPUがパーティーから除外されないと仮定することもできます。.

AV1コーデックの未来は明るく見えます. . .

SVCは、さまざまな品質のブロードキャスト並列ストリームの冗長性を減らしながら、より低いビットレートエンコーディングを高いビットレートソースから抽出できるように効果的に使用できます。. 低いビットレートストリームは、解像度の減少の形をとることができるだけでなく、フレームを削除してフレームレートを減らして帯域幅を減らすこともできます。. この手法を使用する唯一のコーデックではありませんが、それでも非常に重要な考慮事項です。.

AV1は非常に多くの技術的進歩がそうであるように、多くの約束を抱えています. 最良の部分は、ほとんどの消費者がそれを利用するために特別なことをする必要がないということです. テクノロジーを活用するのはコンテンツクリエイターと配信プラットフォーム次第ですが、すぐに最新のデバイスを持っている人なら誰でも、画質を改善し、データの使用量を削減することができるでしょう。.