本プロジェクトは RK3588 プラットフォームの3つの主要機能を定量評価します:
MPP動画エンコード性能MPP動画デコード性能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 FPS | Pipeline FPS | Pure 平均 (ms) | Pure P95 (ms) | 出力 (MB) | 状態 |
|---|---|---|---|---|---|---|---|---|---|
| 720p | 1280×720 | MJPG | 20.0 | 128.0 | 94.9 | 7.8 | 8.2 | 17.2 | OK |
| 720p | 1280×720 | H.264 | 4.0 | 397.3 | 233.7 | 2.5 | 2.8 | 1.8 | OK |
| 720p | 1280×720 | H.265 | 4.0 | 400.0 | 285.1 | 2.5 | 2.6 | 1.1 | OK |
| 1080p | 1920×1080 | MJPG | 30.0 | 203.0 | 95.9 | 4.9 | 5.3 | 38.6 | OK |
| 1080p | 1920×1080 | H.264 | 8.0 | 218.0 | 121.7 | 4.6 | 5.1 | 3.6 | OK |
| 1080p | 1920×1080 | H.265 | 8.0 | 213.4 | 111.1 | 4.7 | 4.8 | 2.4 | OK |
| 2K | 2560×1440 | MJPG | 45.0 | 120.7 | 45.6 | 8.3 | 8.5 | 68.4 | OK |
| 2K | 2560×1440 | H.264 | 16.0 | 137.0 | 92.7 | 7.3 | 7.4 | 7.3 | OK |
| 2K | 2560×1440 | H.265 | 16.0 | 138.5 | 93.8 | 7.2 | 7.3 | 4.2 | OK |
| 4K | 3840×2160 | MJPG | 60.0 | 55.9 | 20.3 | 17.9 | 19.3 | 153.9 | OK |
| 4K | 3840×2160 | H.264 | 32.0 | 64.0 | 35.4 | 15.6 | 16.0 | 14.6 | OK |
| 4K | 3840×2160 | H.265 | 32.0 | 64.8 | 35.6 | 15.4 | 15.7 | 9.6 | OK |
| 8K | 7680×4320 | MJPG | 90.0 | 15.6 | 10.2 | 64.2 | 65.4 | 615.2 | OK |
| 8K | 7680×4320 | H.264 | 64.0 | 16.7 | 11.3 | 59.9 | 60.7 | 27.5 | OK |
| 8K | 7680×4320 | H.265 | 64.0 | 32.4 | 18.2 | 30.8 | 31.2 | 31.0 | OK |
#動画デコードテスト(MJPG -> YUV420)
| 解像度 | サイズ | フレーム | Pure FPS | Pipeline FPS | Pure 平均 (ms) | Pure P95 (ms) | 状態 |
|---|---|---|---|---|---|---|---|
| 720p | 1280×720 | 120/120 | 497.4 | 477.8 | 2.0 | 2.4 | OK |
| 1080p | 1920×1080 | 120/120 | 311.7 | 290.3 | 3.2 | 3.4 | OK |
| 2K | 2560×1440 | 120/120 | 208.8 | 198.8 | 4.8 | 5.2 | OK |
| 4K | 3840×2160 | 120/120 | 106.1 | 100.6 | 9.4 | 10.1 | OK |
| 8K | 7680×4320 | 120/120 | 30.4 | 28.8 | 32.9 | 34.4 | OK |
#YOLOv8 640x640 推論テスト
| モデル | 推論 FPS | 平均 (ms) | P95 (ms) | 前処理 (ms) | NPU (ms) | 状態 |
|---|---|---|---|---|---|---|
| YOLOv8n | 33.9 | 28.6 | 33.1 | 0.9 | 19.6 | OK |
| YOLOv8s | 16.7 | 59.2 | 64.6 | 0.8 | 37.8 | OK |
| YOLOv8m | 9.9 | 100.8 | 105.8 | 0.8 | 81.8 | OK |
#1. ベンチマークの実行
reComputer RK3588 上で実行してください。
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結果は次の場所に保存されます:
ls ./benchmark_results
benchmark_summary.md video_codec_benchmark.csv yolov8_inference_benchmark.csv主なパラメーター:
./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. テスト手順
- 指定解像度の動的
YUV420SP (NV12)フレームを生成します。 - MPP の
MJPG、H.264、H.265エンコーダーを個別に実行します。 - 生成した MJPG エレメンタリストリームを保持し、MPP advanced task API で
YUV420にデコードします。 640x640 NV12フレームを生成し、RGA で前処理します。- RK3588 向けに変換した YOLOv8n/s/m RKNN モデルを実行します。
- FPS、平均遅延、P95 遅延、出力サイズを集計します。
- Markdown と CSV レポートを生成します。
#4. 技術方式
#4.1 エンコード
エンコーダーは Rockchip MPP を使用し、動的生成した YUV420SP (NV12) を入力します。MJPG は Q=80、H.264/H.265 は結果表の CBR ビットレートを使用します。各グループは20フレームをウォームアップし、120フレームを測定します。
Pure FPS:測定フレーム数を MPPencode_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.rknnyolov8s_rk3588.rknnyolov8m_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. 推奨展開方針
- リアルタイム検出は YOLOv8n を標準とし、YOLOv8s/m ではフレーム間引きと有界キューで遅延増加を防ぎます。
- 本番の
4K H.264/H.265経路ではゼロコピーまたは共有キャプチャバッファーを使い、他の負荷用にメモリ帯域を確保します。 32.4 Pure FPSだけでエンドツーエンド8K@30を主張しないでください。現在の Pipeline は18.2 FPSです。8K MJPGデコードの P95 は30 FPS の1フレーム間隔を超えるため、設計上の余裕を確保します。- 正式な性能値を公開する前に、必要に応じてクロックを固定し、少なくとも3回実行して中央値、P95、温度を報告します。