Este proyecto mide cuantitativamente tres capacidades principales de la plataforma RK3588:
- Codificación de vídeo
MPP - Decodificación de vídeo
MPP - Inferencia
RKNN
Alcance de la prueba:
- Codificación:
NV12 -> MJPG / H.264 / H.265 - Decodificación:
MJPG -> YUV420 - Inferencia: entrada
640x640conYOLOv8n / YOLOv8s / YOLOv8m - Resoluciones:
720p / 1080p / 2K / 4K / 8K
#Resumen del benchmark RK3588
- Generado:
2026-09-20 17:09:50 - Códecs: calentamiento de
20fotogramas + medición de120 - Inferencia: calentamiento de
20fotogramas + medición de200 - CPU governor:
ondemand - Temperatura antes/después: aproximadamente
35–36°C / 36–37°C
#Prueba de codificación de vídeo (NV12 -> MJPG / H.264 / H.265)
| Resolución | Tamaño | Códec | Bitrate (Mbps) | Pure FPS | Pipeline FPS | Media Pure (ms) | P95 Pure (ms) | Salida (MB) | Estado |
|---|---|---|---|---|---|---|---|---|---|
| 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 |
#Prueba de decodificación de vídeo (MJPG -> YUV420)
| Resolución | Tamaño | Fotogramas | Pure FPS | Pipeline FPS | Media Pure (ms) | P95 Pure (ms) | Estado |
|---|---|---|---|---|---|---|---|
| 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 |
#Prueba de inferencia YOLOv8 640x640
| Modelo | FPS de inferencia | Media (ms) | P95 (ms) | Preprocesado (ms) | NPU (ms) | Estado |
|---|---|---|---|---|---|---|
| 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. Ejecutar el benchmark
Ejecútelo en la placa 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_benchmarkLos resultados se guardan en:
ls ./benchmark_results
benchmark_summary.md video_codec_benchmark.csv yolov8_inference_benchmark.csvParámetros habituales:
./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 200El script contenedor apunta LD_LIBRARY_PATH al directorio lib/ del paquete. Si el usuario no puede acceder a /dev/mpp_service o /dev/rga, vuelve a ejecutar mediante sudo.
#2. Capacidades del proyecto
El proyecto genera fotogramas de prueba, ejecuta codificación multirresolución, decodificación MJPG por hardware e inferencia YOLOv8 a 640x640, y exporta un resumen Markdown con datos CSV.
#3. Proceso de prueba
- Generar fotogramas dinámicos
YUV420SP (NV12)con la resolución indicada. - Ejecutar por separado los codificadores MPP
MJPG,H.264yH.265. - Conservar el flujo MJPG y decodificarlo a
YUV420mediante la API advanced task de MPP. - Generar fotogramas
640x640 NV12y preprocesarlos con RGA. - Ejecutar modelos RKNN YOLOv8n/s/m convertidos para RK3588.
- Agregar FPS, latencia media, latencia P95 y tamaño de salida.
- Generar informes Markdown y CSV.
#4. Enfoque técnico
#4.1 Codificación
El codificador usa Rockchip MPP con entrada YUV420SP (NV12) dinámica. MJPG usa Q=80; H.264/H.265 usan los bitrates CBR de la tabla. Cada grupo calienta 20 fotogramas y mide 120.
Pure FPS: fotogramas medidos divididos por el tiempo acumulado enencode_put_frameyencode_get_packetde MPPPipeline FPS: rendimiento del bucle completo, incluida generación, escritura de entrada y copia de salidaPure Avg/P95: latencia media y P95 por fotograma en el intervalo MPPOutput: tamaño total codificado de los 120 fotogramas medidos
Pure FPS es una tasa de servicio con envío serie. Excluye el tiempo ocioso de la VPU mientras la CPU prepara el siguiente fotograma y no representa la tasa final de una cadena completa de cámara, red, visualización o almacenamiento.
#4.2 Decodificación
El decodificador reutiliza el flujo MJPG de cada resolución y ejecuta MJPG -> YUV420 mediante la API advanced task de MPP para RK3588. Cada grupo calienta 20 fotogramas y mide 120.
Pure Decode FPS: desde terminar la asignación y copia del paquete hasta que MPP devuelve el fotogramaPipeline FPS: incluye preparación del paquete y reciclaje de task
#4.3 Inferencia
La ruta genera fotogramas 640x640 NV12, los preprocesa con RGA y los envía a RKNN Runtime para probar estos modelos:
yolov8n_rk3588.rknnyolov8s_rk3588.rknnyolov8m_rk3588.rknn
Cada modelo calienta 20 fotogramas y mide 200. El informe registra las latencias de Infer, preprocesado RGA y etapa RKNN.
#5. Explicación de métricas
#5.1 Resultados de codificación
Use Pure FPS para comparar el servicio VPU y Pipeline FPS para evaluar el bucle completo sin optimizar. La diferencia refleja generación y copias de memoria.
#5.2 Resultados de decodificación
Pure Avg/P95 y Pure FPS describen el intervalo de hardware tras preparar el paquete; Pipeline FPS cubre el bucle completo.
#5.3 Resultados de inferencia
Inference FPS procede de la llamada serie completa Infer; Preprocess mide RGA y NPU la etapa RKNN. No incluye cámara, red, pantalla ni colas.
#6. Evaluación objetiva
Excluyendo generación NV12, escrituras de entrada y copias de salida en CPU, la codificación pura 4K H.264/H.265 en RK3588 alcanza unos 64 FPS, la decodificación pura 4K MJPG alcanza 106.1 FPS y YOLOv8n alcanza 33.9 FPS. Las cifras end-to-end inferiores reflejan preparación y movimiento de memoria del Pipeline, no solo la VPU. Aunque 8K H.265 puro llega a 32.4 FPS, el bucle completo alcanza 18.2 FPS; mantener 8K@30 requiere zero-copy, envío paralelo y optimización integral.
#7. Estrategia de despliegue recomendada
- Use YOLOv8n por defecto; con YOLOv8s/m aplique muestreo y colas acotadas para evitar acumulación de latencia.
- Las cadenas
4K H.264/H.265de producción deben usar zero-copy o búferes compartidos y reservar ancho de banda. - No use
32.4 Pure FPSpara afirmar8K@30end-to-end; el Pipeline actual solo alcanza18.2 FPS. - El P95 de
8K MJPGsupera el intervalo de un fotograma a 30 FPS; deje margen. - Antes de publicar cifras, fije relojes cuando proceda, ejecute al menos tres rondas e informe mediana, P95 y temperatura.