瑞芯微Rockchip开发者社区
直播中

张勇

7年用户 1482经验值
私信 关注
[问答]

RV1126通过v4l2拉取usb摄像头mjpeg流解码耗时很长如何解决

在rv1126上拉取usb摄像头1080p分辨率的视频流的时候,默认情况下拉取的是yuv格式的,并且拉取1080p的时候帧率是5fps,如果要拉取25或者30fps的,需要拉取mjpeg编码的才行,通过v4l2拉取到了mjpeg的视频流,保存文件测试确认分辨率是1080p,而且帧率也是够的,然后参考mpi_dec_test测试文件添加解码部分,通过计算发现调用mpp的解码接口,耗时平均一帧500ms左右,但是我打开了mpp的调试信息,发现硬解码的时间都不到20ms,应用上参考mpi_dec_test封装的解码接口的耗时如下:

mpp[993]: HAL_JPEG_VDPU2: jpegd_setup_pp pp_enable 0
write frame to file 8
decode 8 frame neet time 593 ms
mpp[993]: HAL_JPEG_VDPU2: jpegd_setup_pp pp_enable 0
write frame to file 9
decode 9 frame neet time 597 ms
mpp[993]: HAL_JPEG_VDPU2: jpegd_setup_pp pp_enable 0
write frame to file 10
decode 10 frame neet time 600 ms
mpp[993]: HAL_JPEG_VDPU2: jpegd_setup_pp pp_enable 0
write frame to file 11
decode 11 frame neet time 599 ms
mpp[993]: HAL_JPEG_VDPU2: jpegd_setup_pp pp_enable 0

上面log中的时间,是解码第几帧时的耗时。另外mpp硬解码耗时log如下:

[228278.710354] ffb90400.vdpu: pid: 993, session: 7aafb89e, time: 22230 us
[228279.307964] ffb90400.vdpu: pid: 993, session: 7aafb89e, time: 22182 us
[228279.906292] ffb90400.vdpu: pid: 993, session: 7aafb89e, time: 22133 us
[228280.508154] ffb90400.vdpu: pid: 993, session: 7aafb89e, time: 22141 us

回帖(1)

张勇

2022-11-23 16:32:35
分析解码里面的接口,发现是mApi->poll(mCtx, MPP_PORT_OUTPUT, MPP_POLL_BLOCK);这个地方等待了好长时间。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分