MTK平台camera相关几项CTS/ITS/CTS-VERIFIER问题的解决思路

本文详细记录了解决CTS和ITS测试中出现的fail问题的过程,包括调整帧率设置、解决曝光相关测试项以及修正CameraFormats测试项的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CTS fail项

  1. 观察fail结果,都是帧率相关的测试项,比如:
    testCameraToSurfaceTextureMetadata
    testPreviewFpsRange
    再查看result/log,发现fail都出现在测试前摄时。
  2. 打开系统相机,查看前摄的帧率在室内光/打灯条件下是不是正常,能不能达到30fps。结果:前摄帧率最大只跑到了15fps,这显然是一个异常状态
  3. 强制固定帧率为30fps(这一步有很多丧心病狂的方法,改代码/设置属性),查看实时log依然只有15fps。
  4. 直接看内核驱动代码的log,实际设置的shutter/framelength的值是多少,这里有两个个计算公式:
    (1)实时帧率 = pclk/linelength/framelength;pclk与linelength来自于驱动中配置的imgsensor info。
    (2)framelength = ((shutter + margin)< min_framelength)?(min_framelength):(shutter + margin);shutter来自效果参数的一系列计算,margin来自驱动代码的配置,min_framelength即为imgsensor info中设置的framelength。
    然而从实际打印的内核Log看,shutter与framelength的值违反了第二个公式,shutter值在2000左右波动,framelength一直固定在4164.
    从对应的imgsensor info中查找到pclk与linelength的值计算实时帧率,结果大概在15帧,同时发现imgsensor info里面设置的framelength = 4164,但最大帧率写的是30fps。
  5. 此处framelength显然是一个异常值,那么应该修改成什么值呢?
    从write_shutter中可以看到framelength的值最终被写入寄存器0x0006中,查找对应setting(cap)中0x0006写入的值:0x0822,转换成十进制就是2082。所以将imgsensor info中的framelength修改成2082验证。
  6. 修改后系统相机室内亮光环境下可以达到30帧,复测cts fail项,都可以pass。
  7. 找FAE double check后提交修改。

ITS fail项

  1. 查看fail项,基本都是曝光相关的测试项,如:
    test_exposure
    test_latching……
  2. test_latching是其中比较典型的一个测试项,查看测试脚本可以看出,此测试项内容是:
    (1)获取IC支持的sensitivity和exposuretime
    (2)然后设置预设的一系列值来获取图片:
            its.objects.manual_capture_request(s,  e,   0.0, True, props)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值