Seeed Studio2026-11-08

Raspberry Pi 5 frente a RK3588: benchmark reproducible de codificación H.264 en 4K

Compara la codificación por software FFmpeg/libx264 en Raspberry Pi 5 y reComputer RK3588 con la codificación por hardware Rockchip MPP, usando entradas idénticas verificadas, datos originales y un panel bilingüe sin conexión.

BenchmarkRaspberry Pi 5RK3588VPUH.264FFmpegGitHub

Ver en YouTube · Abrir el panel interactivo · Repositorio de código fuente

Este proyecto compara tres rutas de codificación de vídeo: FFmpeg/libx264 en Raspberry Pi 5, FFmpeg/libx264 en Seeed reComputer RK3588 Devkit y GStreamer con codificación por hardware Rockchip MPP en RK3588. Ambas placas tienen 16 GB de RAM.

El repositorio de código fuente incluye scripts de reproducción, datos CSV de cada ejecución y un panel HTML independiente en inglés y chino. Permite examinar los compromisos entre rendimiento, uso de CPU del proceso y calidad de salida en esta prueba concreta.

Resultados medidos

Los siguientes valores proceden del CSV de resumen del repositorio. Cada ruta de codificación se ejecutó tres veces con la misma entrada de 300 fotogramas cargada en RAM.

MétricaRaspberry Pi 5: libx264RK3588: libx264RK3588: MPP H.264
Mediana del tiempo transcurrido24.64 s20.04 s10.37 s
Rendimiento (300 / mediana del tiempo transcurrido)12.18 fps14.97 fps28.93 fps
Mediana del uso de CPU del proceso327%357%54%
SSIM All respecto al origen sin comprimir0.9953760.9953780.991389
Tasa de bits de salida representativa10.21 Mbps10.21 Mbps9.70 Mbps

En esta configuración, RK3588 MPP alcanzó aproximadamente 2.38 veces el rendimiento de libx264 en Pi 5. Las ejecuciones individuales de MPP tardaron 10.93, 10.37 y 9.86 segundos: dos de las tres superaron los 10 segundos de duración del clip de entrada.

Condiciones de prueba

ElementoConfiguración
Raspberry Pi 516 GB; Debian 13 Trixie; FFmpeg 7.1.5
reComputer RK3588 Devkit16 GB; Armbian 26.8.7 (Ubuntu 26.04); kernel del fabricante 6.1.172; Rockchip MPP 1.5.0-1 complemento
EntradaBig Buck Bunny Sunflower; 3840 × 2160; 30 fps; 300 fotogramas; NV12
Selección del clip10 segundos a partir de 00:01:00
Ubicación de entrada cronometrada/dev/shm/rkpi_real_4k_10s.nv12
Ajustes de codificación objetivoH.264; 10 Mbps; GOP 60
Ajustes de libx264-preset veryfast -threads 4 -maxrate 10M -bufsize 20M
Ajustes de MPPmpph264enc rc-mode=cbr bps=10000000 gop=60

MPP es la ruta específica de Rockchip y se utiliza únicamente en RK3588. La ruta de Pi 5 emplea aquí codificación por software.

Reproducir el benchmark

Requisitos previos

Utiliza un entorno Linux de tipo Debian/Ubuntu con git, bash, wget, unzip, sha256sum, ffmpeg, ffprobe y /usr/bin/time. El script de preparación también utiliza herramientas estándar como stat, df y cp. FFmpeg debe incluir el codificador libx264 y el filtro SSIM.

Para la codificación por hardware en RK3588, instala el entorno GStreamer apropiado de Rockchip/Seeed con gst-launch-1.0, el elemento mpph264enc y controladores MPP funcionales. El script MPP incluido invoca sudo; la imagen del sistema utilizada en la medición requería privilegios elevados para acceder a /dev/mpp_service.

La entrada sin procesar ocupa 3,732,480,000 bytes (3.48 GiB), con otra copia en RAM. El proyecto original recomienda 16 GB de RAM y unos 4 GB libres en /dev/shm. Reserva también espacio en disco para el ZIP de origen, el MP4 extraído, la entrada sin procesar y las salidas codificadas.

Preparar una entrada idéntica en ambas placas

Ejecuta los comandos desde una copia independiente del repositorio en cada dispositivo. La revisión fijada corresponde a los resultados documentados arriba.

bash
git clone https://github.com/Seeed-Projects/raspberrypi-rockchip_benchmark_lab.git
cd raspberrypi-rockchip_benchmark_lab
git checkout b7758d37bdc2b20b1cdf85acc25a94c349d9fc13
bash scripts/00_prepare_input.sh

El script de preparación descarga el ZIP de origen de Blender, extrae el clip, comprueba su tamaño en bytes y su SHA-256 y copia la entrada NV12 verificada a /dev/shm. El SHA-256 esperado de la entrada sin procesar es:

text
d1e3403d6886a5472c7261dfe07a4149b941d1d7bdfa92d46f181dff381f5fd7

Detén el proceso si falla la verificación. La extracción del material de origen es una tarea de preparación y no debe contabilizarse como tiempo de codificación.

Ejecutar la ruta de codificación correspondiente

En Raspberry Pi 5:

bash
bash scripts/01_cpu_encode.sh pi5
bash scripts/03_measure_quality.sh output/cpu_pi5_run2.mp4

En RK3588:

bash
bash scripts/01_cpu_encode.sh rk3588
bash scripts/02_rk3588_mpp.sh
bash scripts/03_measure_quality.sh output/cpu_rk3588_run2.mp4
bash scripts/03_measure_quality.sh output/mpp_rk3588_run2.mp4

Cada script de codificación realiza tres ejecuciones. Las salidas se guardan en output/ y los registros de tiempo y calidad en logs/. Comprueba el estado de salida y el número de fotogramas: cada salida debe contener 300 fotogramas. El script de calidad informa del SSIM, la tasa de bits y el número de fotogramas decodificados respecto a la entrada sin procesar verificada.

Evita grabar la pantalla o monitorizar simultáneamente durante las ejecuciones cronometradas, ya que puede alterar las mediciones. No añadas a Git los vídeos descargados ni los archivos sin procesar generados.

Explorar el panel y los datos

Descarga website/index.html mediante la descarga del archivo raw de GitHub, o ábrelo desde tu copia local en un navegador de escritorio. El panel funciona sin conexión, permite alternar entre inglés y chino e incluye un modo de presentación 16:9. Su animación de carrera reproduce las medianas de tiempo medidas; no realiza codificación en directo.

Limitaciones y atribución

Estos resultados de tres ejecuciones abarcan un único clip de animación. No determinan el rendimiento con imágenes de cámaras, cargas de videovigilancia, captura de vídeo, decodificación HEVC o AV1, ni el consumo eléctrico del dispositivo completo. La frecuencia de CPU, refrigeración, firmware, kernel y versiones del software pueden afectar a la reproducción. SSIM es una métrica de similitud calculada, no una evaluación visual humana.

El material de prueba es Big Buck Bunny, Blender Foundation (2008), reedición Sunflower 4K, distribuido bajo CC BY 3.0. El script de preparación descarga el ZIP original de Blender; la película no está incluida en el repositorio del benchmark. Conserva la atribución de la película al crear presentaciones o vídeos derivados.