Toybrick

rv1126通过v4l2拉取usb摄像头mjpeg流解码耗时很长

xinzhiling111

中级会员

积分
371
发表于 2022-6-28 17:03:58    查看: 245|回复: 0 | [复制链接]    打印 | 显示全部楼层
在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

请问,有大佬碰到过类似问题吗?给下建议,谢谢。
上面解码一帧的耗时是已经按照20. MPP库解码UVC摄像头JPG耗时高问题及解决方法修改了mpp部分之后的,如果不修改mpp部分,耗时更长,并且分段查看了下mpp接口的使用,耗时主要在mApi->poll(mCtx, MPP_PORT_OUTPUT, MPP_POLL_BLOCK);,这个地方选用了堵塞的方式,然后这个接口耗时将近500ms

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表