专栏算法工具链J6X 视频通路常用 debug & 问题定位方法

J6X 视频通路常用 debug & 问题定位方法

zsy2024-11-19
126
0

帧率查看

方式一: dv_fps.sh脚本,运行时,脚本会自动抓取帧率信息。

dv_fps.sh为视频通路帧率监测调试工具,支持vin(cim)、isp、ynr、pym、gdc、stitch、idu等模块的帧率监控。

ich表示输入帧率och表示输出帧率

方式二:cat /sys/class/vps/flow/fps, 查看瞬态帧率

 

查看当前通路状态

cat /sys/class/vps/flow/path_stat

含义解释

通路状态

  • active 表示通路正在使用

  • inactive  表示通路已经停止(释放)
  • S0 表示数据通路0,一般与配置json中的pipeline id对应

绑定方式

  • otf 绑定方式,表示模块硬件直连,不需要下DDR

  • m2m 绑定方式,表示模块之间需要下DDR

模块名

  • vin1 指mipi RX1、cim1、lpwm等模块的硬件抽象合集

  • C0   指第几个软件实例,如vin 有四个通道实例,那么就有C0-C3,   pym、gdc等就是分时复用的软件ctx实例

查看硬件IP负载

通过统计一段时间内IP真正工作的时间来计算IP的loading,以cat调用的sys接口为时间点,统计采样一段时间内IP的负载。

使用方法

支持负载查看的硬件IP有:isp\pym\gdc\stitch

查看丢帧信息

  • hw drop 表示出现硬件报错的丢帧

  • sw drop 表示由于软件异常导致的丢帧,如长时间没有拿数据帧,导致无输出buf可用,此时软件驱动则会进行丢帧

  • user drop 表示由于用户主动调用导致的丢帧,如在使用pym的condition接口时,用户主动要求丢弃老帧拿最新帧,此时软件驱动会按照要求进行丢帧,这部分丢帧则会划分为user drop

 

通路数据延迟查看

此处延迟的含义为  sensor出图的第一个pix 到 某个模块处理完该帧的时间差,一般成为通路延迟,其中包含硬件处理耗时和软件耗时。不同场景下可能这个数据有较大差别。如passthru模式下耗时最低、多路分时复习的模式下耗时相对大一点。

 

通路buf信息查看

  • cid 0表示输入、cid 8 表示输出

  • PRO 表示正常处理的buf数量,通常为1 or 0

  • COM 表示处理完成没有被消费者使用的buf数量,用户拿走后会转入USED

  • USED 表示用户拿走的buf数 

PS :根据buf状态可以排查一些常见的获取数据失败、丢帧等问题,应用层获取数据失败时会打印buf 状态

场景1:获取buf失败,输出buf状态全部为USED

输出buf都处于USED 表示所有buf都被消费者(用户或者其他模块)拿走了,此时由于模块没有输出buf,会进行sw丢帧,同时如果这个状态持续一段时间也就导致拿buf失败。

场景2: 获取buf失败,输出buf状态为一帧PRO

输出buf 处于PRO表示这个buf正在被处理,如果出现拿buf失败(拿帧超时),那么大概表示数据流在此模块断了,此时可以查看下驱动dmesg日志,查看是否存在相应模块的错误日志

场景3: 获取buf失败,输入buf全部处于REQ、FREE状态,输出buf全部处于REQ

输入buf 全部处于FREE状态,表明模块处于初始化状态,没有处理一帧图像,同时根据输入通道的状态可以判定,前几模块或者用户没有给该模块数据流。大多出现在开流失败或者回灌场景中用户没有给数剧流的情况。

 

算法工具链
社区征文征程6技术深度解析官方教程
评论0
0/1000