Openwrt接UVC摄像头丢帧分析

        Openwrt接UVC摄像头,使用mjpg-streamer,此处默认已经移植成功。这里以Skylab的SKW99为例进行说明,SKW99为高通QCA9531的方案,CPU的频率为650MHz。最近在应用过程中,需求完成后,发现视频码流下降了,相同时间内,对应数据量减少了。由于摄像头的工作模式为MJPG,每一帧对应一张完整的图像,在接收端保存一帧数据,发现一帧数据的大小并没有明显的变化,因此此处判断,数据量减少为丢帧。下面是丢帧前后码流的对比图:

分析原因:与模组性能有关系,做的工作包括:

1.清理缓存,清理后码流会瞬时降低,并不是此处的解决方案

echo 3 > /proc/sys/vm/drop_caches

2.使用sched_setscheduler控制程序的优先级,如下所示:

struct sched_param sched;
sched_getparam(0, &sched);
sched.sched_priority = 80;    //值越大优先级越高
sched_setscheduler(0, SCHED_RR, &sched);

这样控制后,使用网口有线连接,码流有显著提高,但是wifi连接时,仍存在丢帧问题。

3.修改wifi的工作信道

扫描周围wifi集中情况,设置一个干净的信道后,有所改善,但依然较低;

4.修改ddr的速率

当分析到3时,用户提出,启动时,DDR的速率有所下降。不同的uboot对应DDR的速率不同,高速率DDR时,对应的码流要高一些,如下图所示。对比发现,高速率DDR是5年前老版本的QSDK打包对应的uboot。

使用老版本SDK重新打包SDK,加入对应GPIO控制,客户测试后,反馈码流可以达到对应值。

总结,WIFI模组对应UVC摄像头时,自身性能对码流有较大影响,使用高性能模组更适合此应用场景。

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值