mcpField
J
jetson-video-benchmark

jetson-video-benchmark

github.com/nvidiaテスト・品質3.8k69 回インストール今日更新
リポジトリ

jetson-video-benchmark について

jetson-video-benchmark は、Jetson 上のコーデック処理速度を測定し、文書化された性能データから推定値を算出するスキルです。エンコード、デコード、プリセット比較、ワーカー容量の測定に対応し、入力条件と結果を検証します。

主な機能

  1. 01エンコードとデコードの速度測定
  2. 02プリセット比較と容量測定
  3. 03メディア不要の文書ベース推定
  4. 04入力と出力の検証

活用シーン

  1. 01Jetson の指定ワークロードでコーデック FPS を測定
  2. 02対象機器でプリセットの処理速度を比較
  3. 03SDK 文書のデータに基づく性能推定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nvidia/skills --skill jetson-video-benchmark

インストール後、Claude Code で/jetson-video-benchmarkを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json
references/
benchmark-output-contract.md
benchmark-workflow.md
documented-performance-estimates.md

詳細

Jetson Video Benchmark

目的

根拠が確認できるターゲットと正確なワークロードについて、コーデック処理段階の FPS とメガピクセル/秒を測定します。サポートされるライブ経路は、エンコード、デコード、P4/P5 の比較、およびワーカー数を厳密に増加させる容量スイープです。別途、メディアを使用しない経路では、明確にラベル付けされた SDK ドキュメントに基づく推定値を算出します。測定値を示すことはありません。

終了条件

  1. PSNR または SSIM のみを求めるリクエストには、客観的品質評価はこのスキルの範囲外であり、別途許可されたワークフローが必要であると伝え、その時点で終了します。この範囲に関する回答だけを返します。代替ベンチマークや次の手順を付け加えたり、別のツールの名前を挙げたり、メディアを要求したり、調査やインストールを行ったりしないでください。
  2. 調査や計算を行う前に、コーデックの方向を判断します。明示的なエンコードまたはデコードの指示が優先されます。それ以外の場合、品質、プリセット、ビットレート、レート制御、録画、または圧縮出力に関する表現はエンコードを示し、圧縮済み入力、取り込み、再生、または IP/RTSP 入力に関する明示的な表現はデコードを示します。「接続する」や「処理する」といった一般的なカメラ台数に関する表現や、カメラまたはデバイスに付されたコーデック名からは方向を判断しません。中立的な表現をいったん除外し、残った手掛かりから方向を判断します。中立的な手掛かりによって矛盾が生じることはありません。エンコードを前提としたカメラの推定では、カメラがすでに指定された圧縮コーデックで出力している場合にのみ NVDEC が適用されると説明し、エンコードを主としたまま、計画シナリオを示した後で方向をユーザーに確認します。中立的でない手掛かりが矛盾する場合、または手掛かりがない場合は、両方の解釈を提示し、エンコードの一意な推定には正確なプリセットも必要であり、測定による検証には代表的な入力も必要であると説明したうえで、どちらの方向かを質問し、その時点で終了します。 トランスコードでは、デコードとエンコードそれぞれに別個の予算が必要です。サポートされるデコード経路とエンコード経路で測定し、それぞれの予算を個別に報告します。FPS を合算して報告しないでください。
  3. 明示的なライブ/実行/実測の測定には、要求された方向ごとに代表的な入力が必要です。エンコードには、フォーマット、ジオメトリ、フレーム数が指定された生フレームが必要です。デコードには、圧縮されたエレメンタリーストリームまたはコンテナが必要です。各入力は、ターゲット上の正確なパス、またはユーザーが提示した HTTP(S) URL のいずれかでなければなりません。いずれかの入力が不足している場合、input_required のみを返し、要求された方向ごとに個別の正確なパスまたは URL を含め、不足項目を尋ねます。ワークフローの参照資料や関連スキルを読んだり、調査、認証、レシピの作成、ワークスペースの作成を行ったりする前に、この応答を返してください。セットアップ用のスモークテストフィクスチャをベンチマークに使用したり、カタログ内のメディアで代用したりしないでください。
  4. メディアを使用しない計画/予測/参考値に関する質問には、documented-performance-estimates.md に従います。正確なドキュメント上の行が必要で、スケール調整した推定値の場合はクロックの根拠も必要です。measurement_performed: false に設定します。この参照資料はバイト単位で変更せずに保持してください。計画では、プリセット、ストリームごとの FPS、またはストリーム構成が省略されていても処理を妨げません。参照資料に記載された範囲付きの候補とシナリオを列挙し、すべての前提を明示したうえで、省略された値を尋ねてください。

ライブの事前確認

benchmark-workflow.md を一度最後まで読み、その事前確認セクションに従います。明示された native、pynvc、both はそのまま保持し、委任された選択は auto に対応付けます。jetson-video-setup から、読み取り専用の最新の準備状況を取得します。その際、この会話ですでに提示または確認されている正確なインタープリターがあれば、それを渡します。それ以外の場合、セットアップでは標準のプロファイルパスを確認します。auto の場合、対象となるサーフェスが 0 個ならブロックされ、1 個なら実行し、2 個なら selection_required を返します。Python によるエンコードと比較には full-samples 環境が必要です。デコード性能の測定には pynvc-smoke を使用できます。

エンコード、比較、エンコード容量の測定には、jetson-video-recipe から取得した、検証済みのスキーマ 2 レシピも必要です。依存関係が不足している場合、その分岐を dependency_required で停止します。対象となる別の分岐は partial として続行できます。

測定

  1. サンプルの許可リスト、ビルド、引数リストの直接指定、フレームの計上、オプションの確認、マーカーの文法、比較、ワーカーのスイープについても、同じ参考資料に従います。
  2. ドライランの計画を示してから、新しいモード 0700 のワークスペースを使用します。各ランチャーは使用直前に認証し、引数リストをそのまま渡して起動します。
  3. 各バリアントと各サーフェスについて、除外対象のプロセス全体のウォームアップを 1 回実行し、新しい測定対象プロセスを 3 回以上実行します。いずれも有限のタイムアウトを設定し、-loop は使用しません。
  4. サンプルが報告する FPS は、正のマーカーと処理済みフレーム数が一致する場合にのみ採用します。benchmark-output-contract.md に記載された ID、ワークロード、マーカー、統計に関する確認をすべて実施します。

レポート

各起動の編集していない出力を保持し、benchmark-output-contract.md に記載された簡潔な結果を作成します。すべての反復測定値、再計算した平均値/最小値/最大値、寸法がサンプルに基づく場合のみ MP/s、部分的な分岐、制限事項、再試行の理由を報告します。ワーカーのスイープにはコーデック段階の処理能力の上限、プリセットの比較にはスループットのみであることを明記します。

制限事項

  • 結果が適用されるのは、根拠が示されたターゲット、リリース、クロック、サンプル、コンテンツ、フレーム範囲、制御に限られます。製品全般に適用できる上限値ではありません。
  • 文書化されていないプリセットを補間したり、形式、ビット深度、クロマ、コーデック、レート制御、チューニングをまたいで値をスケーリングしたりしないでください。解像度のスケーリングが認められるのは、推定値の参考資料で明示的にラベル付けされたピクセル面積のヒューリスティックに限ります。
  • 文書化された推定値はエンジンごとに保持します。すべてのエンジンに対する乗数を使用できるのは、推定値の参考資料に明記された集計計画ルールに従う場合のみです。
  • PyNvVideoCodec 2.1 のエンコード性能ヘルパーでは、各ワーカーのフレーム数が 1,000 に制限されています。ワークフローの共通フレームルールに従ってください。
  • input_required、selection_required、dependency_required、blocked、partial、failed をそのまま保持し、別の実行者の成功を引き継がないでください。

コメント