Camera:多帧降噪及photo、video模式下的防抖处理

news/2025/2/19 17:23:49/

           今天突然遇到手机相机拍出的照片没有多帧降噪效果了,Tunning很多的效果调试需要基于多帧降噪进行处理,最后很坑爹的发现多帧降噪居然与EIS、AIS等防抖的处理有关系;带着满脸的黑人问号研究了一下相机的多帧降噪以及AIS、EIS的防抖处理。

 

1.多帧降噪和防抖的联系:

联系与底层的宏控有关,下面列举一下不同宏控所对应的不同处理方式:

device\mediateksample\k62v1_32_bsp_2g_ago\ProjectConfig.mk-MTK_CAM_MFB_BUILDIN_SUPPORT = 0 //多帧降噪开关+MTK_CAM_MFB_BUILDIN_SUPPORT = 1MTK_CAM_MFB_MAX_FRAME = 6-MTK_CAM_MFB_SUPPORT = 0 //多帧降噪的不同处理方式+MTK_CAM_MFB_SUPPORT = 3

MTK_CAM_MFB_SUPPORT = 1 :项目支持MFLL功能(多张合成降噪功能),通过应用层控制开启或者关闭;

MTK_CAM_MFB_SUPPORT = 2 :项目支持AIS功能(防止手震功能,会将shutter降低,拉高ISO的方式来防止曝光时间过长导致的手震现象,然后再进行多张合成进行降噪)

MTK_CAM_MFB_SUPPORT = 3 :项目支持MFLL以及AIS功能,应用层通过接口下发执行哪个功能

附:AIS和MFLL功能执行条件,要看拍照的当前环境或者手动设置的ISO值有没有达到400以上,超过400,才会真正的走AIS和MFLL的降噪处理。

 

2.dump是否经过多帧降噪处理的图片对比

上图为经过多帧降噪处理后的相机图片,可以看到ISO为3200以及MFNR下其他参数值是正常的, 需要在暗环境下拍照,有的算法会在夜景模式会除了算法处理再进行多张图片的多帧降噪合成处理,夜景拍出来的图片就处理的很厉害。

 

上面俩副图是未经过多帧降噪处理的,差别很明显,通过参数一目了然。

 

3.解决方法:

了解了多帧降噪和AIS之间的联系,应用层去处理一下相关的下发也容易的多,直接选用比较轻松成熟的控制模式,宏控MTK_CAM_MFB_SUPPORT = 3

应用层添加AIS feature, on下发AIS功能;off下发多帧降噪功能。这样不管如何底层的处理都会在跑;

@Overridepublic void configCaptureRequest(CaptureRequest.Builder captureBuilder) {if (captureBuilder == null) {return;}String value = mAis.getValue();String overrideValue = mAis.getOverrideValue();if (value == null) {return;}if (VALUE_OFF.equals(value)) {if (!VALUE_OFF.equals(overrideValue)&& mSupportedValues.contains(VALUE_AUTO)) {value = VALUE_AUTO;}}if (VALUE_ON.equals(value)) {value = VALUE_AIS;}int[] mode = new int[1];mode[0] = convertStringToEnum(value);LogHelper.d(TAG, "[configCaptureRequest], mode[0]:" + mode[0]);captureBuilder.set(mAisRequestModeKey, mode); //下发on/off状态}

 


http://www.ppmy.cn/news/480333.html

相关文章

mysql时间字段根据当前时间更新

保存数据时默认值设置为当前时间 create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间;保存行数据时默认值设置为当前时间,同时更新字段时自动更新为当前时间 update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_T…

Vue 点击添加className

例如如下dom <li class"del" click"del($event)">删除</li>因为js获取兄弟元素需要中转&#xff0c;所以先获取父元素&#xff0c;再获取子元素&#xff0c;移除className&#xff0c;再给当前dom添加className const siblings e.currentTa…

Vue脚手架

目录 一、脚手架文件结构1.1 创建脚手架 二、关于不同版本的Vue三、vue.config.js配置文件四、ref属性五、props配置项六、mixin(混入)七、插件八、scoped样式九、小结十、webStorage十一、组件的自定义事件十二、全局事件总线&#xff08;GlobalEventBus&#xff09;十三、nex…

win10计算机怎样双屏,有什么办法让window10双屏显示_教你一招让window10双屏的方法...

win10电脑运行多个程序会不知不觉打开多个不同类型的窗口&#xff0c;窗口多了总要时不时的来回频繁切换&#xff0c;总感觉很麻烦。如果不想频繁切换&#xff0c;我们可以让window10双屏显示&#xff0c;而且win10系统双屏显示设置步骤并不困难&#xff0c;下面小编就为大家演…

Linux vi 双屏显示,如何设置双屏显示器

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。 以电脑为例&#xff0c;其设置双屏显示器的方法是&#xff1a; 1、首先要准备好必要的硬件设备&#xff0c;主机一台&#xff0c;显示器两个&#xff0c;vga线三根&#xff0c;分屏…

深入浅出实现Electron判断屏幕当前是否是双屏显示?

如果在win10中设置双屏显示如下配置: 开启了双屏后,我们可以通过以下两种方式实现双屏显示的判断: 使用nodejs的child_process方式实现信息读取。// 方式一: 使用 wmic 以及 exec读取显示器序列号数量判断是否多显示器const cmdStr = "WMIC /NameSpace:\\\\Root\\WMI …

双屏计算机主机是什么,双屏显示器怎么连接(台式机连接步骤教程) - 双屏显示器怎么设置_双屏显示器怎么连接_双屏显示器有什么用(电脑)...

双屏显示器怎么连接(台式机连接步骤教程) 1、根据你的电脑显卡的双接口情况连接好二台显示器。如接口不支持时将显卡的接口用转换接头进行转换后再连接。电脑开机如下图所示&#xff0c;你的显示器是不亮的。 2、硬件正确连接后&#xff0c;现在马上升级你的显卡程序(因大部分电…

java 双屏显示_程序员,你双屏了吗?

前一段时间&#xff0c;因为做自动化测试框架&#xff0c;调试的时候需要三个程序(Delphi/自动化测试客户端/测试目标系统)同时运行&#xff0c;非常不方便&#xff0c;因此申请一台可以双屏的系统。 刚开始以为这是一个很简单的事情&#xff0c;只需要加一个显卡&#xff0c;然…