Projet de benchmark RK3576
Ce projet mesure les performances d’encodage et de décodage vidéo MPP ainsi que d’inférence RKNN de la plate-forme RK3576.
- Évaluation des capacités de la puce
- Sélection pour les projets de sécurité
- Comparaison des modèles et résolutions
- Tests de régression et livraison technique
Les tests couvrent YUV420 -> MJPG / H264 / H265, MJPG -> YUV420 et 640x640 YOLOv8n/s/m en 720p / 1080p / 2k / 4k / 8k.
#Résumé du benchmark RK3576
- generated_at: 2026-07-28 16:34:52
- target_fps: 30
- codec_frames: warmup 20 + measured 120
- infer_frames: warmup 20 + measured 200
#YUV420 -> MJPG / H264 / H265
| Résolution | Taille | Codec | Débit(Mbps) | FPS enc. | Moy.(ms) | P95(ms) | Sortie(MB) | État |
|---|---|---|---|---|---|---|---|---|
| 720p | 1280x720 | mjpg | 20.0 | 480.7 | 1.1 | 1.2 | 13.9 | OK |
| 720p | 1280x720 | h264 | 4.0 | 154.7 | 4.4 | 4.8 | 1.7 | OK |
| 720p | 1280x720 | h265 | 4.0 | 179.2 | 4.2 | 4.4 | 1.1 | OK |
| 1080p | 1920x1080 | mjpg | 30.0 | 237.6 | 2.1 | 2.8 | 31.3 | OK |
| 1080p | 1920x1080 | h264 | 8.0 | 90.7 | 7.9 | 8.1 | 3.6 | OK |
| 1080p | 1920x1080 | h265 | 8.0 | 88.8 | 8.2 | 8.3 | 2.5 | OK |
| 2k | 2560x1440 | mjpg | 45.0 | 159.5 | 2.9 | 3.2 | 55.4 | OK |
| 2k | 2560x1440 | h264 | 16.0 | 43.4 | 13.6 | 14.1 | 6.3 | OK |
| 2k | 2560x1440 | h265 | 16.0 | 38.6 | 14.5 | 15.0 | 4.4 | OK |
| 4k | 3840x2160 | mjpg | 60.0 | 77.7 | 5.8 | 6.0 | 124.5 | OK |
| 4k | 3840x2160 | h264 | 32.0 | 24.5 | 28.7 | 29.5 | 14.1 | OK |
| 4k | 3840x2160 | h265 | 32.0 | 21.7 | 31.2 | 32.2 | 9.3 | OK |
| 8k | 7680x4320 | mjpg | 90.0 | 20.5 | 25.1 | 29.7 | 497.7 | OK |
| 8k | 7680x4320 | h264 | 64.0 | 7.1 | 109.0 | 109.8 | 28.8 | OK |
| 8k | 7680x4320 | h265 | 64.0 | 6.6 | 117.6 | 118.1 | 27.8 | OK |
#MJPG -> YUV420
| Résolution | Taille | Images | FPS déc. | Moy.(ms) | P95(ms) | État |
|---|---|---|---|---|---|---|
| 720p | 1280x720 | 120/120 | 380.4 | 2.6 | 2.9 | OK |
| 1080p | 1920x1080 | 120/120 | 268.6 | 3.7 | 4.0 | OK |
| 2k | 2560x1440 | 120/120 | 191.0 | 5.2 | 5.5 | OK |
| 4k | 3840x2160 | 120/120 | 108.6 | 9.2 | 9.7 | OK |
| 8k | 7680x4320 | 120/120 | 32.8 | 30.5 | 31.5 | OK |
#YOLOv8 640x640
| Modèle | Chemin | FPS inf. | Moy.(ms) | P95(ms) | Prétrait.(ms) | NPU(ms) | État |
|---|---|---|---|---|---|---|---|
| yolov8n | model/yolov8n_rk3576.rknn | 35.5 | 27.3 | 32.7 | 1.4 | 16.9 | OK |
| yolov8s | model/yolov8s_rk3576.rknn | 17.0 | 58.2 | 63.8 | 1.2 | 35.2 | OK |
| yolov8m | model/yolov8m_rk3576.rknn | 9.5 | 104.2 | 109.6 | 1.2 | 83.4 | OK |
#1. Exécuter le benchmark
Exécutez le test sur une carte reComputer RK3576.
sudo apt update && sudo apt install unzip -y
wget https://files.seeedstudio.com/RK3576/install.zip -O install.zip && unzip install.zip
cd ./install && export LD_LIBRARY_PATH="$(pwd)/lib:${LD_LIBRARY_PATH}" && chmod +x ./bin/rk3576_benchmark
sudo ./bin/rk3576_benchmark#Résultats du test
ls benchmark_results/
benchmark_summary.md video_codec_benchmark.csv yolov8_inference_benchmark.csv#Options courantes
./bin/rk3576_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#2. Fonctions du projet
Le projet génère les images, teste l’encodage multirésolution, le décodage matériel MJPG et l’inférence YOLOv8 en 640x640, puis produit des rapports Markdown et CSV.
#3. Déroulement du test
- Générer des images
YUV420SP (NV12)à la résolution choisie. - Tester séparément
MJPG / H264 / H265avecMPP Encoder. - Décoder le flux MJPG en YUV420 avec
MPP Decoder. - Tester YOLOv8n/s/m via RKNN avec des images
640x640 NV12. - Compiler FPS, latence moyenne, P95 et taille du flux.
#4. Approche technique
#Encodage MPP
L’encodage utilise Rockchip MPP et des images NV12 générées en interne pour les usages IPC, transcodage NVR, multidiffusion et instantanés.
#Décodage MPP
Le décodage utilise la voie matérielle MJPEG de MPP. Decode FPS repose uniquement sur le temps du cœur de décodage et exclut l’ordonnancement et les journaux du framework.
#RKNN + YOLOv8
L’inférence utilise RKNN, une entrée fixe de 640x640 et yolov8n/s/m ; les latences globale, de prétraitement et NPU sont mesurées.
#5. Définition des mesures
Avg(ms) est le temps moyen par image, P95(ms) la latence au 95e centile et FPS le débit de la phase mesurée.
#6. Analyse des résultats
- L’encodage MJPG dépasse nettement le temps réel de 720p à 4k ; à 8k, 20.5 FPS convient plutôt à la validation.
- H264/H265 assurent un bon temps réel en 720p, 1080p et 2k. Le 4k approche la limite pratique et le 8k ne convient pas à un flux principal temps réel courant.
- Le décodage MJPG termine 120/120 images à chaque résolution et atteint encore 32.8 FPS en 8k.
- yolov8n atteint 35.5 FPS et couvre la détection monocanal à 25/30 FPS ; yolov8s convient à l’échantillonnage et yolov8m à l’analyse événementielle ou hors ligne.
#7. Stratégie de déploiement
- Privilégier
yolov8npar défaut. - Utiliser
1080p / 2kpour l’analyse temps réel en périphérie. - Redimensionner ou échantillonner les entrées
4kcôté IA. - Réserver le
8kaux démonstrations ou validations ciblées.
#Remarques
- YUV420SP, MJPG, H264, H265, NV12, MPP, RKNN, les chemins de modèles, les commandes, les URL et les valeurs sont conservés à l’identique du document de base.
- Les entrées synthétiques offrent des conditions stables et reproductibles pour la régression et la comparaison des résolutions.