美颜预览卡顿问题跟踪
创始人
2024-03-07 04:46:50
0

预览卡顿的问题,首先第一想法就是看下帧率,帧率小,自然会卡顿。根据人眼视觉暂留原理,帧率小于24帧,人脸就会感知到卡顿。
帧率的概念在Camera中我们经常会提到,其实有3个帧率概念,从下往常看:

  • sensro帧率
  • AE帧率
  • hal帧率
    一般排查问题从底层往上看

sensor帧率:30,正常

    Line 5988: M238607  11-23 16:44:28.527   464 17405 I gc05a2_sharkl2: 162, gc05a2_drv_calc_exposure: fps = 30.084728Line 5989: M238608  11-23 16:44:28.527   464 17405 I gc05a2_sharkl2: 167, gc05a2_drv_calc_exposure: mode = 2, exposure_line = 1834, dummy_line= 16, frame_interval= 30 msLine 6161: M2386B3  11-23 16:44:28.652   464 17405 I gc05a2_sharkl2: 162, gc05a2_drv_calc_exposure: fps = 30.084728Line 6162: M2386B4  11-23 16:44:28.652   464 17405 I gc05a2_sharkl2: 167, gc05a2_drv_calc_exposure: mode = 2, exposure_line = 1833, dummy_line= 205, frame_interval= 33 ms

AE帧率:30 正常

我们知道AE帧率会受环境亮度影响,亮度越低,帧率越低,但是本题的卡顿现象实在正常环境亮度下也会卡顿

    Line 6159: M2386B1  11-23 16:44:28.652   464 17405 D Libae[Core]: 2019,aec_alg_status_printf:(auto):ae,0,unstb,face_unstb,unlock,50Hz,fps[8.33, 30.00]:30.00 cur-(s 1834(0.030001s),g 424,dmy 0),nxt:idx:239,(s 1833(0.030000s),g 411,dmy 205) bv:850,cur_l:(f:132.00, c:172,n:79.00),y_l:0,tar_l[71,75]73Line 6217: M2386EA  11-23 16:44:28.667   464 17405 D Libae[Core]: 2019,aec_alg_status_printf:(auto):ae,1,unstb,face_unstb,unlock,50Hz,fps[8.33, 30.00]:30.00 cur-(s 1834(0.030001s),g 424,dmy 0),nxt:idx:238,(s 1833(0.030000s),g 399,dmy 205) bv:852,cur_l:(f:133.00, c:172,n:80.00),y_l:124,tar_l[69,73]71Line 6352: M23876F  11-23 16:44:28.700   464 17405 D Libae[Core]: 2019,aec_alg_status_printf:(auto):ae,2,unstb,face_unstb,unlock,50Hz,fps[8.33, 30.00]:30.00 cur-(s 1834(0.030001s),g 424,dmy 0),nxt:idx:221,(s 1833(0.030000s),g 236,dmy 205) bv:852,cur_l:(f:133.00, c:173,n:80.00),y_l:124,tar_l[68,72]70Line 6439: M2387C5  11-23 16:44:28.728   464 17405 D Libae[Core]: 2019,aec_alg_status_printf:(auto):ae,3,unstb,face_unstb,unlock,50Hz,fps[8.33, 30.00]:30.00 cur-(s 1833(0.030000s),g 411,dmy 205),nxt:idx:219,(s 1833(0.030000s),g 222,dmy 205) bv:857,cur_l:(f:133.00, c:173,n:80.00),y_l:126,tar_l[67,71]69

hal帧率

hal帧率有几种方式可以查看,比如过滤log中1s内 processCaptureRequest 的个数,或者cmr_prev中prev_set_preview_buffer的个数。我们以 processCaptureRequest 为例,看下打开美颜和关闭美颜下 1s内 processCaptureRequest 的个数。
结论如下:
hal打印 processCaptureRequest 的速度:
识别人脸:20次/s左右
不识别人脸:30次/s左右

本题的复现路径十分明确,同一环境下,同一时刻下,打开美颜就会卡顿,关闭美颜就明显流畅很多,也就能猜到大概率跟美颜算法有关了。
到这里我们看到确实是hal帧率偏慢,这时候我们可以抓trace看下更加详细的信息。
ps:trace是性能分析中常用的工具,但是我看trace比较少,对trace的理解比较浅

这是我抓到的一份打开美颜卡顿trace,可以看到在receivePreview的时候基本都在40几ms左右
在这里插入图片描述
而关闭美颜,没有卡顿的trace,在一次receivePreview的时候基本在10几ms左右
在这里插入图片描述
这里就与我们之前的猜想相符了,在receivePreview的时候,会跑美颜算法,导致了预览卡顿。

我们这个项目是2G的低配版本,最开始的想法是问供应商有没有针对低配版的轻量级美颜算法库,得知没有后,平台建议在低配版本上通过拉频的方式提高性能:在打开美颜将频点提到最高,关闭美颜在恢复。尝试这个方案是有效的,但是拉频会涉及到功耗,所以这个方案也只能算一个备选方案吧。

本篇主要是想告诉大家,在遇到预览卡顿类的问题时,需要从哪些方面去排查,大方向找准,在针对具体问题场景去做优化。

相关内容

热门资讯

三部门:不断完善学前教育成本分... 观点网讯:12月23日,国家发展改革委、教育部、财政部联合发布《关于完善幼儿园收费政策的通知》,要求...
汪清林区法院:化解未成年人纠纷... 近日,吉林省汪清林区法院审结了一起涉未成年人在校遭受人身损害案件,法院充分考量了未成年人的行为特点及...
北京市长城保护条例 北京市人民代表大会常务委员会公告 〔十六届〕第45号 《北京市长城保护条例》已由北京市第十六届人民代...
棒杰股份(002634)披露关... 截至2025年12月23日收盘,棒杰股份(002634)报收于5.28元,较前一交易日下跌4.52%...
高盛再度唱多!预计中国股市到2... 来源:视觉中国 界面新闻编辑 | 江怡曼 近日,高盛发布名为《中国策略:2025年中国股市十大...
尤文身价变化:共10人身价下降... 在意甲联赛的激烈竞争中,尤文图斯的球员身价变化引发了广泛关注。根据最新的德转数据,尤文队内有10名球...
美国发布H-1B签证新规,优先... 当地时间12月23日,美国国土安全部发布新规,正式以“加权选择”机制取代H-1B签证原有的随机抽签制...
悉尼恐袭事件,意外替德国默茨政... 刚刚过去的一周,发生在澳大利亚的悉尼邦迪海滩恐怖袭击事件引起全球关注。 对于万里之外的德国而言,这场...
视频丨“粤车南下”驶入香港市区... 今天(12月23日),“粤车南下”驶入香港市区政策正式实施,符合条件的广东私家车可直接驶入香港市区,...
立白回应与经销商解约纠纷:个别... 12月23日,红星新闻报道《多地代理商称与立白集团解约后 对方未按约交接市场致严重损失,律师解读》一...