Jetsonの動画処理で、Pythonからのハードウェアエンコード・デコードと、実機に合わせたコーデック設定・測定を利用できるようになった。NVIDIAのJetPack 7.2.1は、PyNvVideoCodec 2.2と動画処理用のエージェント向けスキルを追加した。
Pythonから動画のエンコードとデコードを扱う
Jetson Thorでは、JetPack 7.1でC/C++向けのVideo Codec SDKが導入され、動画エンコーダーのNVENCとデコーダーのNVDECを直接扱えるようになった。JetPack 7.2.1では、NVIDIAがJetsonで初めてPythonライブラリのPyNvVideoCodec 2.2をサポートした。
このライブラリは、ハードウェア支援による動画のエンコードとデコードをPythonから利用するための入口となる。開発者は処理に必要なインターフェースに応じて、C/C++向けのVideo Codec SDKとPython向けのライブラリを選べる。
GPU上のフレームを後続の処理へ渡す
PyNvVideoCodecは動画フレームをGPU上のメモリーで入出力し、DLPackとCUDAのデバイスバッファーを通じて扱えるようにする。この経路を使うと、デコードしたフレームを後続の処理に渡す際、GPU上のデータを利用できる。
ThreadedDecoderは別のスレッドでフレームを先読みしてデコードする。デコードの待ち時間を後続の推論処理から切り離すための機能で、動画を入力とする処理の構成に組み込める。
実機の能力からコーデック設定を組み立てる
JetPack 7.2.1は、Video Codec SDKとPyNvVideoCodecの上位に動画処理用のエージェント向けスキルを追加した。スキルは実機のJetsonの機種と導入済みソフトウェアを確認し、利用できるコーデック、形式、メモリー経路、セッション能力を調べる。
その確認結果を受け、低遅延やビットレートなどの要件を明示的なエンコーダー設定と実行可能な処理経路へ変換する。設定の選択は、仕様上の対応情報だけでなく、対象端末で確認した能力に結び付く。
測定結果と設定を再現可能な形で残す
動画処理スキルは、コーデック処理のスループット、遅延、使用率、ビットレート、出力品質を反復して測定する機能を備える。設定から実行、測定までをつなぐ検証手順は、設定内容、実行結果、警告、再現に必要な証拠を返す。
この手順の対象はVideo Codec SDKとPyNvVideoCodecを使うコーデック処理段階である。NVIDIAは、開発者がその段階の動作と性能を確認できるようにする機能として位置付けている。