Parker Hu2026-09-20

RK3588 VPU・NPU ハードウェアアクセラレーションベンチマーク

reComputer RK3588 で、MPP による NV12 から MJPG/H.264/H.265 へのハードウェアエンコード、MJPG から YUV420 へのデコード、および RKNN による YOLOv8n/s/m 推論を再現可能な方法で測定します。

vpunpubenchmarkDownload

本プロジェクトは RK3588 プラットフォームの3つの主要機能を定量評価します:

  1. MPP 動画エンコード性能
  2. MPP 動画デコード性能
  3. RKNN 推論性能

テスト範囲:

  • エンコード:NV12 -> MJPG / H.264 / H.265
  • デコード:MJPG -> YUV420
  • 推論:640x640 入力の YOLOv8n / YOLOv8s / YOLOv8m
  • 解像度:720p / 1080p / 2K / 4K / 8K

#RK3588 ベンチマーク概要

  • 生成日時:2026-09-20 17:09:50
  • コーデック:ウォームアップ 20 フレーム + 測定 120 フレーム
  • 推論:ウォームアップ 20 フレーム + 測定 200 フレーム
  • CPU governor:ondemand
  • テスト前後の温度:約 35–36°C / 36–37°C

#動画エンコードテスト(NV12 -> MJPG / H.264 / H.265)

解像度サイズコーデックビットレート (Mbps)Pure FPSPipeline FPSPure 平均 (ms)Pure P95 (ms)出力 (MB)状態
720p1280×720MJPG20.0128.094.97.88.217.2OK
720p1280×720H.2644.0397.3233.72.52.81.8OK
720p1280×720H.2654.0400.0285.12.52.61.1OK
1080p1920×1080MJPG30.0203.095.94.95.338.6OK
1080p1920×1080H.2648.0218.0121.74.65.13.6OK
1080p1920×1080H.2658.0213.4111.14.74.82.4OK
2K2560×1440MJPG45.0120.745.68.38.568.4OK
2K2560×1440H.26416.0137.092.77.37.47.3OK
2K2560×1440H.26516.0138.593.87.27.34.2OK
4K3840×2160MJPG60.055.920.317.919.3153.9OK
4K3840×2160H.26432.064.035.415.616.014.6OK
4K3840×2160H.26532.064.835.615.415.79.6OK
8K7680×4320MJPG90.015.610.264.265.4615.2OK
8K7680×4320H.26464.016.711.359.960.727.5OK
8K7680×4320H.26564.032.418.230.831.231.0OK

#動画デコードテスト(MJPG -> YUV420)

解像度サイズフレームPure FPSPipeline FPSPure 平均 (ms)Pure P95 (ms)状態
720p1280×720120/120497.4477.82.02.4OK
1080p1920×1080120/120311.7290.33.23.4OK
2K2560×1440120/120208.8198.84.85.2OK
4K3840×2160120/120106.1100.69.410.1OK
8K7680×4320120/12030.428.832.934.4OK

#YOLOv8 640x640 推論テスト

モデル推論 FPS平均 (ms)P95 (ms)前処理 (ms)NPU (ms)状態
YOLOv8n33.928.633.10.919.6OK
YOLOv8s16.759.264.60.837.8OK
YOLOv8m9.9100.8105.80.881.8OK

#1. ベンチマークの実行

reComputer RK3588 上で実行してください。

bash
sudo apt update && sudo apt install unzip -y
wget https://files.seeedstudio.com/RK3576/rk3588_mpp_benchmark_install.zip -O install.zip && unzip install.zip
cd ./install && export LD_LIBRARY_PATH="$(pwd)/lib:${LD_LIBRARY_PATH}" && chmod +x ./bin/rk3588_benchmark
sudo ./bin/rk3588_benchmark

結果は次の場所に保存されます:

bash
ls ./benchmark_results
benchmark_summary.md  video_codec_benchmark.csv  yolov8_inference_benchmark.csv

主なパラメーター:

bash
./bin/rk3588_benchmark \
  --output-dir ./benchmark_results \
  --resolutions 720p,1080p,2k,4k,8k \
  --models yolov8n,yolov8s,yolov8m \
  --codec-warmup 20 \
  --codec-frames 120 \
  --infer-warmup 20 \
  --infer-frames 200

ラッパースクリプトは LD_LIBRARY_PATH をパッケージ内の lib/ に設定します。現在のユーザーが /dev/mpp_service または /dev/rga にアクセスできない場合は、sudo で再実行します。

#2. プロジェクト機能

テストフレームを自動生成し、複数解像度のエンコード、MJPG ハードウェアデコード、640x640 YOLOv8 推論を実行して、Markdown 概要と CSV 生データを出力します。

#3. テスト手順

  1. 指定解像度の動的 YUV420SP (NV12) フレームを生成します。
  2. MPP の MJPG、H.264、H.265 エンコーダーを個別に実行します。
  3. 生成した MJPG エレメンタリストリームを保持し、MPP advanced task API で YUV420 にデコードします。
  4. 640x640 NV12 フレームを生成し、RGA で前処理します。
  5. RK3588 向けに変換した YOLOv8n/s/m RKNN モデルを実行します。
  6. FPS、平均遅延、P95 遅延、出力サイズを集計します。
  7. Markdown と CSV レポートを生成します。

#4. 技術方式

#4.1 エンコード

エンコーダーは Rockchip MPP を使用し、動的生成した YUV420SP (NV12) を入力します。MJPG は Q=80、H.264/H.265 は結果表の CBR ビットレートを使用します。各グループは20フレームをウォームアップし、120フレームを測定します。

  • Pure FPS:測定フレーム数を MPP encode_put_frame と encode_get_packet の累積呼び出し時間で割った値
  • Pipeline FPS:フレーム生成、入力書き込み、出力コピーを含む全ループのスループット
  • Pure Avg/P95:MPP 測定区間における1フレームの平均および P95 遅延
  • Output:測定した120フレームの総エンコード出力サイズ

Pure FPS は直列投入時のサービスレートです。CPU が次フレームを準備する間の VPU アイドル時間を含まないため、カメラ、ネットワーク、表示、保存を含む全経路の最終フレームレートではありません。

#4.2 デコード

各解像度の MJPG ストリームを再利用し、RK3588 MPP advanced task API で MJPG -> YUV420 を実行します。各グループは20フレームをウォームアップし、120フレームを測定します。

  • Pure Decode FPS:圧縮パケットの割り当てとコピー完了後から、MPP が出力フレームを返すまでを測定
  • Pipeline FPS:圧縮パケット準備と task 回収も含む

#4.3 推論

推論経路は 640x640 NV12 フレームを生成し、RGA 前処理後に RKNN Runtime へ送り、次のモデルをテストします:

  • yolov8n_rk3588.rknn
  • yolov8s_rk3588.rknn
  • yolov8m_rk3588.rknn

各モデルは20フレームをウォームアップし、200フレームを測定します。レポートには完全な Infer、RGA 前処理、RKNN 推論段階の遅延を記録します。

#5. 結果指標の説明

#5.1 エンコード結果

Pure FPS で VPU サービス性能を比較し、Pipeline FPS で未最適化の全ループを評価します。差分はフレーム生成とメモリコピーの影響を示します。

#5.2 デコード結果

Pure Avg/P95 と Pure FPS は圧縮パケット準備後のハードウェアデコード区間を示し、Pipeline FPS はパケット処理ループ全体を示します。

#5.3 推論結果

Inference FPS は完全な直列 Infer 呼び出しから算出します。Preprocess は RGA、NPU は RKNN 推論段階を個別に計測し、カメラ入力、ネットワーク、表示、アプリケーションキューは含みません。

#6. 現在の結果に基づく客観評価

CPU 側の NV12 生成、入力メモリ書き込み、出力コピーを除くと、RK3588 は純粋な 4K H.264/H.265 エンコードで約 64 FPS、純粋な 4K MJPG デコードで 106.1 FPS、YOLOv8n 推論で 33.9 FPS に達します。低いエンドツーエンド値は VPU 自体ではなく、本テスト Pipeline のフレーム準備とメモリ転送を主に反映します。純粋な 8K H.265 は 32.4 FPS ですが、全ループは 18.2 FPS のため、持続的な 8K@30 にはゼロコピー、並列投入、メディア経路全体の最適化が必要です。

#7. 推奨展開方針

  1. リアルタイム検出は YOLOv8n を標準とし、YOLOv8s/m ではフレーム間引きと有界キューで遅延増加を防ぎます。
  2. 本番の 4K H.264/H.265 経路ではゼロコピーまたは共有キャプチャバッファーを使い、他の負荷用にメモリ帯域を確保します。
  3. 32.4 Pure FPS だけでエンドツーエンド 8K@30 を主張しないでください。現在の Pipeline は 18.2 FPS です。
  4. 8K MJPG デコードの P95 は30 FPS の1フレーム間隔を超えるため、設計上の余裕を確保します。
  5. 正式な性能値を公開する前に、必要に応じてクロックを固定し、少なくとも3回実行して中央値、P95、温度を報告します。