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

ssh框架做音乐网站高埗镇仿做网站

ssh框架做音乐网站,高埗镇仿做网站,建材城电商网站建设,sql网站源码问题背景 手机越做越紧凑#xff0c;需要模组和芯片尺寸越做越小#xff0c;在尺寸一定的基础上#xff0c;高像素和大像素#xff0c;对于手机摄像头来说#xff0c;一直是一对矛盾的存在。 高像素#xff1a;带来高分辨率画质大像素#xff1a;带来暗态下高感光度和…问题背景 手机越做越紧凑需要模组和芯片尺寸越做越小在尺寸一定的基础上高像素和大像素对于手机摄像头来说一直是一对矛盾的存在。 高像素带来高分辨率画质大像素带来暗态下高感光度和低噪声的画质。 以上两者都非常重要为了两者兼得4cell1感光芯片应运而生也称之为“Tetra cell”“Quad bayer”“four cell”等该芯片基于经典的Bayer阵列将每一种颜色以4个pixel排列组合成功可以让一款摄像头在高像素和大像素之间自由切换。现如今4cell1感光芯片兼具了常态的高像素和暗态的高感光低噪声的表现已经成为目前手机摄像头的主力军。 同时也带来问题如下图左边实拍图比右图多了许多齿狀格子等伪色。主要原因是芯片本身硬件感光和Remosaic造成的为了优化这种现象‘CrossTalk校准’登场去除由于信号差别造成的格子锯齿状等色块干扰。 什么是crosstalk 在感光芯片中crosstalk串扰现象是指相邻像素之间的信号互相影响导致的一种干扰。当一个像素受到光照并转换成电信号时其附近的像素可能会因为光电效应或其他物理机制而感应到部分光强这不属于它们自身的光学响应而是由于彼此之间产生的非线性相互作用。这种串扰可能导致图像质量下降尤其是在高密度像素阵列如CMOS传感器中更为明显因为它增加了错误信息的传播机会。为了减少crosstalk设计者通常会采用各种技术比如优化像素布局、增加隔离层等措施。 解决办法crosstalk串扰校准。 Crosstalk校准工具通常将全图分成多个ROI方块计算各像素通道的能量并确定其补偿数据芯片再使用这些校准数据让原本不均匀状态的能量分布变得更为平衡。 问题分析 一般是模组厂家在模组出厂的时候会使用上述的crosstalk工具将校准补偿数据烧录在eeprom里面。在调试模组成像效果的时候需要从eeprom中读取crosstalk数据(QSC),然后写入感光芯片中的特定寄存器中进行校准。 注意 4cell1芯片还会涉及到PD补偿坏点补偿等其他的内容而整个流程通常需要先补偿PD点再做Crosstalk校准然后再Remosaic成为正常的Bayer去应用。针对软件的Remosaic这其中所有的步骤通常都封装在芯片厂商提供的一个算法库里面手机端调用该算法库去实现4cell1芯片兼具常态时候的高分辨率和暗态时候的高感光度然后你就可以美美地拍照了。 ———————————————— 版权声明本文为博主原创文章遵循 CC 4.0 BY-SA 版权协议转载请附上原文出处链接和本声明。原文链接https://blog.csdn.net/qq_41897352/article/details/117336884 当向sensor寄存器0x53c0 ~ 0x54df写入Crosstalk补偿数据时候sensor要么在sleep mode0x0100 0要么crosstalk disable寄存器0x5000[6] 0 关键代码 在文件camxeepromdriver.xsd添加Crosstalk对应的QSC数据属性可以模仿SPC的填写方法如在eeprom的xml文件模仿SPC的数据格式填写如下。 QSC!--Specifies the availability of the specified data and type of endiannesselement for operation --QSCData descriptionMemory Type!--Specifies whether a particular OTP data available or not --isAvailabletrue/isAvailable!--Type of the EndiannessValid values are: BIG, LITTLE --endiannessBIG/endianness/QSCDataQSCSettings!--Specifies memory offset value and mask information --dataOffset!--Offset value in the OTP memory --offset0x1798/offset!--mask value which will be applied to obtain required data bits --mask0xFF/mask/dataOffset!--register address value to write QSC data --QSCAddress0x53c0/QSCAddress!--size of the QSC data settings --settingsSize288/settingsSize/QSCSettings!--Register address / data size in bytes --addressType range[1,4]2/addressType!--Register address / data size in bytes --dataType range[1,4]1/dataType!--Delay in milli seconds. Delay is 0 if not explicitly provided --delay0/delay/QSC在仓库camx中先将EEPROM中的crosstalk校准数据读取出来主要实现在src/core/camxeepromdata.cpp中的FormatQSCData();FormatQSCData函数在构造函数EEPROMData::EEPROMData(中调用。FormatQSCData函数是模仿者FormatSPCData函数写的。如下 /// EEPROMData::FormatQSCDataVOID EEPROMData::FormatQSCData(){QSCInfo* pQSCFormatInfo (m_pEEPROMDriverData-formatInfo.QSC);QSCCalibrationData* pQSCData (m_pSensorInfoTable-moduleCaps.OTPData.QSCCalibration);MemoryInfo dataOffset { 0 };pQSCData-isAvailable pQSCFormatInfo-QSCData.isAvailable;if (TRUE pQSCFormatInfo-QSCData.isAvailable){UINT32 totalRegCount 0;for (UINT16 i 0; i pQSCFormatInfo-QSCSettingsCount; i){totalRegCount pQSCFormatInfo-QSCSettings[i].settingsSize;}pQSCData-settings.regSettingCount totalRegCount;pQSCData-settings.regSetting static_castRegisterSetting*(CAMX_CALLOC(sizeof(RegisterSetting) * totalRegCount));if (NULL ! pQSCData-settings.regSetting){RegisterData* pRegData static_castRegisterData*(CAMX_CALLOC(sizeof(RegisterData) * totalRegCount));if (NULL ! pRegData){RegisterSetting* pCurRegOffset pQSCData-settings.regSetting;for (UINT16 i 0; i pQSCFormatInfo-QSCSettingsCount; i){/// copy to local structures so that original offset values wont be modified because of incrementsUtils::Memcpy(dataOffset, pQSCFormatInfo-QSCSettings[i].dataOffset, sizeof(MemoryInfo));UINT32 dataSize MaskLengthInBytes(dataOffset.mask);if (NULL ! pQSCData-settings.regSetting){for (UINT16 index 0; index pQSCFormatInfo-QSCSettings[i].settingsSize; index, pCurRegOffset){(pCurRegOffset)-registerAddr pQSCFormatInfo-QSCSettings[i].QSCAddress index;(pCurRegOffset)-registerData pRegData;(pCurRegOffset)-registerData[0] FormatDataTypeInteger((dataOffset), pQSCFormatInfo-QSCData.endianness);dataOffset.offset static_castUINT16(dataSize);(pCurRegOffset)-regAddrType pQSCFormatInfo-addressType;(pCurRegOffset)-regDataType pQSCFormatInfo-dataType;(pCurRegOffset)-operation OperationType::WRITE;if (0 ! pQSCFormatInfo-delay){(pCurRegOffset)-delayUsExists TRUE;(pCurRegOffset)-delayUsID 0;(pCurRegOffset)-delayUs pQSCFormatInfo-delay;}}}}}else{CAMX_LOG_ERROR(CamxLogGroupSensor, Calloc failed);}}else{CAMX_LOG_ERROR(CamxLogGroupSensor, Calloc failed);}}}同理也需要模仿DumpWBData函数来实现DumpQSCData 其他地方可以参考模仿AWBSPC的写法在SensorNode::LoadSensorConfigCmds()函数中添加即可打通流程。 具体的说crosstalk补偿写入是发生在配流阶段详细可以参考 CamX-Chi 高通Android Camera HAL框架学习2-configure_streams 验证测试 验证高像素模式下修改前后的预览成像和拍照成像在手机上肉眼无法观察到明显差异。 那么如何保证已经正确地将EEPROM中的crosstalk校准数据写入了感光芯片对应的寄存器中呢 首先验证确保从EEPROM中crosstalk校准数据读取正确这可以通过checksum和dump数据来分别验证。 /// EEPROMDataDump::DumpQSCDataVOID EEPROMDataDump::DumpQSCData(){FILE* pQSCDumpFile NULL;CHAR fileName[FILENAME_MAX] { 0 };QSCCalibrationData* pQSCData (m_pSensorInfoTable-moduleCaps.OTPData.QSCCalibration);if (TRUE pQSCData-isAvailable){OsUtils::SNPrintF(fileName, sizeof(fileName), %s/%s_%s_%s, ConfigFileDirectory,m_pEEPROMDriverData-slaveInfo.EEPROMName, qsc, OTP.txt);pQSCDumpFile OsUtils::FOpen(fileName, w);}if (pQSCDumpFile ! NULL){for (UINT16 index 0; index pQSCData-settings.regSettingCount; index){OsUtils::FPrintF(pQSCDumpFile,addr 0x%x : value 0x%x\n,pQSCData-settings.regSetting[i].registerAddr,pQSCData-settings.regSetting[i].registerData[0]);}OsUtils::FClose(pQSCDumpFile);}}如何确保将crosstalk校准数据准确地写入了sensor对应的寄存器0x53c0 ~ 0x54df中最简单的思路就是去读取写入后寄存器的值。遗憾的是这些寄存器都是只写寄存器。 于是,想到找效果同事去验证下Xtalk补偿回写前后高像素模式拍照图片对比。使用效果专用软件发现补偿后的图片在放大后的效果字体更加清晰说明补偿有不错的收益。 代码评审问题 Xtalk补偿回写是在什么时候写入的是在使用高像素模式的时候进行回写补偿吗sensor寄存器0x5380值0x0f默认打开 Xtalk补偿回写有没有副作用 参考文章 https://blog.csdn.net/qq_41897352/article/details/117336884
http://www.tj-hxxt.cn/news/230787.html

相关文章:

  • 上海网站建设 方案网站策划怎么写
  • 建开发网站做网站要什么知识条件
  • 二级院系网站建设情况津南网站建设
  • 网站建设方法冫金手指排名26wordpress top主题
  • 山东省住房和城乡建设厅定额站子网站网站建设云服务器与虚拟主机
  • 从写代码到网站运行不了了网站维护建设需要什么花费
  • 成都地铁建设分公司网站wordpress获取表前缀
  • 网站做标签页佛山营销网站建设公司
  • 超凡网络网站邢台163信息网
  • 网站静态图怎么做品牌网站建设-建站之路
  • 免费无版权图片网站wordpress 国外免费主题
  • 做塑料的外贸网站有哪些wordpress ftp
  • php网站 缓存泾阳做网站
  • 新手如何建立网站中国石油大学网站建设
  • 沈阳网站制作平台个人网站备案材料填写
  • 中山网站建设策划方案凡客诚品售后服务官方
  • 个人网站做百度云电影链接犯法吗做哪个外贸网站不用交费
  • 网站运营主要做什么工作罗田住房和城乡建设局网站
  • 不关闭网站备案建设的网站百度搜不到
  • 开发公司资质质量体系表单网站怎么做seo
  • 网站 框架那个网站有题做
  • 哪个网站做废旧好怎么快速建设小型外贸网站
  • 工控机做网站服务器服务器类网站建设
  • 免费的中文logo网站持啊传媒企业推广
  • wordpress类开源网站网站建设玖金手指排名12
  • 网站建设运动会成绩管理系统一级消防工程师考试报名
  • 数码网站建设维护昆山网站建设哪家便宜
  • 网站公司做的网站被攻击做网站标题代码
  • 五金模具技术支持 东莞网站建设评估企业网站建设
  • 淄博网站app全国企业查询系统官网