当前位置: 首页 > backend >正文

相机camera开发之差异对比核查一:测试机和对比机的硬件配置差异对比

【关注我,后续持续新增专题博文,谢谢!!!】

上一篇我们讲了

        这一篇我们开始讲 

目录

一、背景

二、:Camera硬件配置差异

    2.1:硬件配置差异核查项

    2.2 :核查方式

    2.3 :高通camx平台核查

    2.4 :MTK平台核查


一、背景

        当一个项目启动后,最小系统跑起来不久,会进入正式开发阶段,这时开发策略和测试策略都会进行筹备,一个重要的参考对象,即参考机。测试机各种测试都会与参考机进行对比。那么对于开发者而言,我们需要核查参考机和开发测试机之间的哪些差异性呢?

二、:Camera硬件配置差异

    2.1:硬件配置差异核查项

对于camera相机模块而言:硬件配置差异涉及以下几个方面,这块涉及主要的硬件特性,硬件配置差异,也涉及摄像头不同硬件组件的各种差异,具体如下:

 核查项包括:

  1. 摄像头模组
  2. 子模块  
  3. sensor型号    
  4. 驱动配置    
  5. 静态Metadata:(测试机和对比机)    
  6. 核查结论    
  7. 影响范围  
  8.  测试建议

细化核查项:

  1. 摄像头模组包含:前置,后置主摄,广角,后置副摄等等,具体看摄像头模组有几个摄像头。
  2. 子模块包含:sensor module EEPROM actuator flash PDAF OIS几个硬件模块
  3. 型号包含:测试机和对比机的前后置所有子模块的硬件型号,看看是否有差异,来作出硬件层面的差异涉及的软件评估。
  4. 驱动配置:评估测试机和对比机的前后置所有子模块的硬件配置是否有差异,特别是使用同一个ic时。
  5. 静态Metadata:评估测试机和对比机的静态Metadata是否有差异,来评估硬件软件特性上的差异。
  6. 核查结论:根据差异项来评估硬件整体上的差异和风险。
  7. 影响范围:根据差异,给出影响的范围。
  8. 测试建议:根据差异,给出测试的建议。

    2.2 :核查方式

而核查方式上,高通和MTK存在一些差异,主要基于代码架构等等不一样。具体如下:

  1. 【型号】
    1. 高通Camx平台:
      1. 在chi-cdk仓库中查询本项目buildbins.yaml文件,填写yaml文件中每个sensor及子模块对应型号名称,yaml文件包含所有涉及本项目的sensor&tuning bin编译规则
    2. MTK平台
      1. MTK sensor,EEPROM:drivers/misc/mediatek/imgsensor/src-v4l2/common/
      2. MTK actuator:drivers/misc/mediatek/lens/vcm/v4l2/
      3. MTK flashlight:drivers/misc/mediatek/flashlight/v4l2/
  2. 【驱动配置】
    1. 高通Camx平台:
      1. 每个sensor对应的xml配置文件,包含各个子模块对应配置文件,填写升级前后对应配置文件的差异;
    2. MTK平台
      1. MTK sensor,EEPROM:drivers/misc/mediatek/imgsensor/src-v4l2/common/
      2. MTK actuator:drivers/misc/mediatek/lens/vcm/v4l2/
      3. MTK flashlight:drivers/misc/mediatek/flashlight/v4l2/
  3. 【静态Metadata(对比机&测试机)】
    1. 对比机&测试机对应sensor的静态metadata差异项,核查指令:adb shell dumpsys media.camera > static_meta.txt,开机后执行指令分别dump升级前后的meta信息,每个sensor会对应一组静态metadata,分别对比升级前后该组meta的差异。

    2.3 :高通camx平台核查

  1. 型号
  • chi-cdk\cdk\tools\buildbins.yaml
    sensor_drivers:
    - com.qti.sensormodule.ofilm_ov12a10:- sensor/default/ov12a10/ov12a10_sensor.xml- module/ofilm_ov12a10_ov13880_module.xml- actuator/default/dw9763_actuator.xml- eeprom/ohs0443_ov12a10_eeprom.xml- flash/back_sensor_flash.xml- sensor/default/ov12a10/ov12a10_pdaf.xml- com.qti.sensormodule.ofilm_ov13880:- sensor/default/ov13880/ov13880_sensor.xml- module/ofilm_ov12a10_ov13880_module.xml- actuator/default/dw9763b_actuator.xml- eeprom/ohs0443_ov13880_eeprom.xml- flash/back_sensor_flash.xml- sensor/default/ov13880/ov13880_pdaf.xml- com.qti.sensormodule.ofilm_s5k2p6sq:- sensor/default/s5k2p6sq/s5k2p6sq_sensor.xml- module/ofilm_s5k2p6sq_s5k2t7sm_module.xml- sensor/default/s5k2p6sq/s5k2p6sq_ofilm_pdaf.xml- flash/back_sensor_flash.xml- actuator/default/dw9714_actuator_main_ofilm.xml- eeprom/ofilm_bl24c64a_s5k2p6sq_eeprom.xml- com.qti.sensormodule.ofilm_s5k2t7sm:# - sensor/default/s5k2t7sm/s5k2t7sm_sensor.xml- sensor/default/s5k2t7sm/s5k2t7sm_sensor_4cell.xml   - module/ofilm_s5k2p6sq_s5k2t7sm_module.xml- sensor/default/s5k2t7sm/s5k2t7sm_ofilm_pdaf.xml- flash/back_sensor_flash.xml- actuator/default/dw9714_actuator_aux_ofilm.xml- eeprom/ofilm_bl24c64a_s5k2t7sm_eeprom.xml- com.qti.sensormodule.sunny_s5k2p6sq:- sensor/default/sunny_s5k2p6sq/sunny_s5k2p6sq_sensor.xml- module/sunny_s5k2p6sq_s5k2t7sm_module.xml- sensor/default/sunny_s5k2p6sq/s5k2p6sq_sunny_pdaf.xml- flash/back_sensor_flash.xml- actuator/default/gt9772_actuator_main_sunny.xml- eeprom/sunny_bl24c64a_s5k2p6sq_eeprom.xml- com.qti.sensormodule.sunny_s5k2t7sm:- sensor/default/sunny_s5k2t7sm/sunny_s5k2t7sm_sensor_4cell.xml- module/sunny_s5k2p6sq_s5k2t7sm_module.xml- sensor/default/sunny_s5k2t7sm/s5k2t7sm_sunny_pdaf.xml- flash/back_sensor_flash.xml- actuator/default/gt9772_actuator_aux_sunny.xml- eeprom/sunny_bl24c64a_s5k2t7sm_eeprom.xml- com.qti.sensormodule.ofilm_ov13855:- sensor/default/ov13855/ov13855_sensor.xml- module/ofilm_ov13855_module.xml- actuator/default/dw9767_actuator.xml- eeprom/ofilm_dw9767_eeprom.xml- com.qti.sensormodule.ofilm_ov12a10_front:- sensor/default/ov12a10_front/ov12a10_front_sensor.xml- sensor/default/ov12a10_front/ov12a10_front_pdaf.xml- module/ofilm_ov12a10_front_module.xml- actuator/default/dw9763_actuator.xml- eeprom/ohs0443_ov12a10_eeprom.xmlfacedetection_binaries:
    - fdconfigvideo:- fd/fdconfigdata.xml- fdconfigvideolite:- fd/fdconfigdata.xml- fdconfigpreview:- fd/fdconfigdata.xml- fdconfigpreviewlite:- fd/fdconfigdata.xmlchromatix_projects:
    - com.qti.tuned.default:- tuning/default_c7project- com.qti.tuned.ofilm_ov12a10:- tuning/ov12a10_c7project- com.qti.tuned.ofilm_ov12a10_front:- tuning/ov12a10_c7project_front- com.qti.tuned.ofilm_ov13880:- tuning/ov13880_c7project- com.qti.tuned.ofilm_ov13855:- tuning/ov13855_c7project- com.qti.tuned.ofilm_s5k2p6sq_front:- tuning/ofilm_s5k2p6sq_front_c7project- com.qti.tuned.ofilm_s5k2t7sm_front:- tuning/ofilm_s5k2t7sm_front_c7project- com.qti.tuned.ofilm_s5k2p6sq_back:- tuning/ofilm_s5k2p6sq_back_c7project- com.qti.tuned.ofilm_s5k2t7sm_back:- tuning/ofilm_s5k2t7sm_back_c7project- com.qti.tuned.sunny_s5k2p6sq_front:- tuning/sunny_s5k2p6sq_front_c7project- com.qti.tuned.sunny_s5k2t7sm_front:- tuning/sunny_s5k2t7sm_front_c7project- com.qti.tuned.sunny_s5k2p6sq_back:- tuning/sunny_s5k2p6sq_back_c7project- com.qti.tuned.sunny_s5k2t7sm_back:- tuning/sunny_s5k2t7sm_back_c7project
    
  1. 驱动配置:较多配置,以一个为例:
  • sensor/default/s5k2p6sq/s5k2p6sq_sensor.xml<!--Sensor slave information --><slaveInfo><!--Name of the sensor --><sensorName>s5k2p6sq</sensorName><!--8-bit or 10-bit write slave address --><slaveAddress>0x5a</slaveAddress><!--Register address / data size in bytes --><regAddrType range="[1,4]">2</regAddrType><!--Register address / data size in bytes --><regDataType range="[1,4]">2</regDataType><!--Register address for sensor Id --><sensorIdRegAddr>0x0000</sensorIdRegAddr><!--Sensor Id --><sensorId>0x2106</sensorId><!--Mask for sensor id. Sensor Id may only be few bits --><sensorIdMask>4294967295</sensorIdMask><!--I2C frequency mode of slaveSupported modes are: STANDARD (100 KHz), FAST (400 KHz), FAST_PLUS (1 MHz), CUSTOM (Custom frequency in DTSI) --><i2cFrequencyMode>FAST</i2cFrequencyMode><!--Sequence of power configuration type and configuration value required to control power to the device --><powerUpSequence>    <!--Power setting configurationContains: configType, configValue and delay in milli seconds --><powerSetting><!--Power configuration typeSupported types are: MCLK, VANA, VDIG, VIO, VAF, RESET, STANDBY --><configType>RESET</configType><!--Configuration value for the type of configuration --><configValue>0</configValue><!--Delay in milli seconds --><delayMs>1</delayMs></powerSetting><powerSetting><configType>CUSTOM_GPIO2</configType><configValue>1</configValue><delayMs>18</delayMs></powerSetting><powerSetting><configType>CUSTOM_GPIO1</configType><configValue>1</configValue><delayMs>18</delayMs></powerSetting><powerSetting><configType>VIO</configType><configValue>0</configValue><delayMs>0</delayMs></powerSetting><powerSetting><configType>MCLK</configType><configValue>24000000</configValue><delayMs>1</delayMs></powerSetting><powerSetting><configType>RESET</configType><configValue>1</configValue><delayMs>18</delayMs></powerSetting></powerUpSequence>

    2.4 :MTK平台核查

如:kernel-5.15/drivers/misc/mediatek/imgsensor/src-v4l2/common/imx214_mipi_raw/

【关注我,后续持续新增专题博文,谢谢!!!】

下一篇讲解

http://www.xdnf.cn/news/10854.html

相关文章:

  • 国标GB28181设备管理软件EasyGBS视频平台筑牢文物保护安全防线创新方案
  • Unity 性能优化终极指南 — GameObject 篇
  • 从零开始,学会上传,更新,维护github仓库
  • KV Cache:大语言模型推理加速的核心机制详解
  • AD转嘉立创EDA
  • Mac电脑_钥匙串操作选项变灰的情况下如何删除?
  • 机器学习——使用多个决策树
  • 从仿射矩阵得到旋转量平移量缩放量
  • MySQL 全量、增量备份与恢复
  • HJ73 计算日期到天数转换
  • 解决MyBatis参数绑定中参数名不一致导致的错误问题
  • 剑指offer14_二进制中1的个数
  • 谷歌地图免费下载手机版
  • OpenLayers 地图标注之Popup标注
  • 符号执行与SemFix、DirectFix 、Angelix的主要思想
  • 【Bluedroid】蓝牙启动之sdp_init 源码解析
  • Matlab回归预测大合集又更新啦!新增2种高斯过程回归预测模型,已更新41个模型!性价比拉满!
  • SQL 筛选出在表1但不在表2中的数据
  • 消费者行为变革下开源AI智能名片与链动2+1模式S2B2C商城小程序的协同创新路径
  • 大模型:从基座构建到应用落地--预训练与后训练及个人解析-2025.6
  • 【原神 × 二分查找】找出圣遗物强化到暴击的最小尝试次数!
  • vLLM:让大语言模型推理更高效的新一代引擎 —— 原理详解一
  • String 学习总结
  • WPS 利用 宏 脚本拆分 Excel 多行文本到多行
  • 数据可视化有哪些步骤?2025高效落地指南
  • 机器学习与深度学习08-随机森林02
  • 记我的第一个深度学习模型尝试——MNIST手写数字识别
  • 可视化大屏工具对比:GoView、DataRoom、积木JimuBI、Metabase、DataEase、Apache Superset 与 Grafana
  • 使用Redis作为缓存优化ElasticSearch读写性能
  • 各个主要目录的功能 / Linux 常见指令