Camera实现差值及cts性能优化

camera如何实现插值

camera插值在底层已经做好了, 只需要在中间层和app层添加对应的picture size即可, 但需要注意一下几点:
1. 插值的倍数只能小于等于16倍,也就是说假如是1M的sensor,那最多只能插值到16M;
2. 插值后的width和height都不能超过8192,也就是picture size设置的width和height的大小都不能超过8192;
3. 由于hardware jpeg encoder的限制,插值时设置的width和height请您分别都设为16的整数倍,若设置非16整数倍的width或height,则可能导致拍出来的图片会有异常(如图片扭曲、花屏、连拍的图片绿屏)。

camera cts性能优化
Camera是移动设备非常重要的feature, Google对于Camera的CTS测试中有一些比较严格的性能测试,以保证camera程序的用户使用友好度。
Camera CTS测试中性能相关的有很多很多,基本上所有基本功能都有包含性能超时的验证,一般来说是指必须在指定时间返回的测试项。如果camera driver以及相应的配置或者测试环境,使得sensor fps较低,就会出现一堆性能测试的fail.

  1. 测试时一定要使用user版本测试

    1. 请保证前摄或者后摄没有被遮挡,且摄像头均在明亮环境:
      后摄:不要将平板直接放在桌子上进行测试,后摄被遮挡,一般后摄的fps因为外部光源较弱就会被降低,最好放在支架上,后摄可以对着明亮的电脑屏幕或者灯光;
      前摄: 不要在平板上前摄盖着东西,或者因为全测时间很长,在夜晚关闭灯光放在黑暗环境下去测试,这样前摄的fps也很可能被降低,摄最好也对着灯光。
      明亮环境: 可以打开camera,在main log中搜索aaa_state_camera_preview: lv, 此值一般要在60以上

    2. 保证camera sensor fps:
      最好preview,capture都可以达到30fps, 建议preview的帧率至少在24fps以上,capture的帧率在15fps以上;

log查看fps:
如果不确定camera sensor fps是多少,可以实际通过log来获得:
打开camera进入预览状态, 在log中搜索handleReturnBuffer,此为display端得到的fps信息,一般和sensor真实的fps比较接近,形如:
D MtkCam/DisplayClient: [handleReturnBuffers] + (99) 34ms < Duration(99), Show frame:0 1 [ion:325 0xe65c4000/3110400 89925290000]
其中Duration(99)就是代表此帧是99ms返回, 这是比较慢的了。
一般,比较理想的环境下,此值一般为33, 除了在因为scenario切换导致的显示时间较大。

实践中,可以发现,camera sensor对着不同亮度的环境,sensor fps很可能跟着变动,一般越是明亮的环境,sensor fps会越大。
可以根据这种操作,来放置测试平台的位置,使得在比较好的亮度环境。

Driver部分:
1 理论fps值:此方面需要和sensor FAE或者datasheet确定设置寄存器的代码,确定sensor输出的理论fps值。
2 提高driver性能:
1)减少延时: camera sensor driver减少上电延时和driver init/preview/capture/setting/feature control等的延时:
尽可能在符合camera sensor spec的基础上减少延时;
2)camera sensor driver I2C speed提高:
默认的I2C speed应该是100K, 如果camera sensor可支持,可以尝试提高到400K来测试,这样camera driver中读写I2C的速度会提高到之前的4倍;
3)camera driver在不影响画面显示的情况下尽可能减少delay frame:
如下的数值尽可能减少:
.cap_delay_frame = 3,
.pre_delay_frame = 3,
.video_delay_frame = 3,
不要小看这几个delay的数值,因为实际测试项的执行情况可能调用很多次preview,capture, 有可能少了1就会pass.
实际中,可以先都改为0来测试cts是否可以pass, 如果可以pass, 再查看camera preview/capture/video开始显示画面时是否有黑屏/绿屏/杂线的问题,如果有,可以酌情
增加delay, 同时确保cts也可以pass.

3 如果sensor fps实在太低,cts测试可能无论怎么优化都不会pass.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值