活动介绍
file-type

MTK6735M AE模块深度调试:从测光到算法详解

PPTX文件

下载需积分: 46 | 2.72MB | 更新于2024-07-18 | 76 浏览量 | 3 评论 | 74 下载量 举报 12 收藏
download 立即下载
"MTK6735M_AE模块调试涉及了自动曝光(AE)的多个方面,包括AE流程、测光模式、ISO设置、AEPlineTable配置、AEPlineInfo参数、帧率调整、autoflicker处理、EV曝光档、flare校正、AEC生效机制、闪光灯触发条件、AFpline、strobepline、EVcalibration、CCT_AE操作、多影像处理器(PIP)、录像功能、AE算法、录像电子防抖(EIS)问题、3G通话兼容性、AEmode的不同模式以及调试心得。此外,还提到了DP-AE以及不同测光模式的实现,如点测光、中心测光和平均测光。" MTK6735M是一款面向移动设备的系统级芯片(SoC),其AE模块是摄像头系统的重要组成部分,负责自动调整曝光参数以获得合适的图像亮度。调试过程中,开发者需要理解并调整以下关键点: 1. **AE流程**:这是整个曝光控制的核心,涉及到测光、计算曝光时间、增益调整等多个步骤,确保在不同光照条件下捕捉到清晰且曝光准确的图像。 2. **AE测光模式**:包括点测光、中心测光和平均测光,每种模式下图像的曝光计算方式不同,影响最终图像的亮暗分布。 3. **ISO**:ISOspeed是衡量传感器灵敏度的指标,通过调整ISO值可以在光线不足的情况下提高图像亮度,但可能会增加噪点。 4. **AEPlineTable**:用于定义不同场景模式下的预览和拍照的帧率,以及对应的曝光参数,确保不同模式下的一致性。 5. **AEPlineInfo**:包含最小增益、最大增益和最小ISO增益等信息,这些参数影响图像质量和动态范围。 6. **帧率配置**:针对预览、拍照、录像等不同应用场景,需设定合适的帧率以保持流畅性并避免过度曝光或欠曝。 7. **autoflicker**:解决因频率不匹配导致的闪烁现象,通常在荧光灯或某些LED照明环境下尤为显著。 8. **EV曝光档**:用来表示曝光程度的单位,通过调整EV值可以改变整体曝光量,正EV值使图像更亮,负EV值则相反。 9. **flare**:指光线进入镜头后产生的散射现象,调试时需要校正以减少图像质量的下降。 10. **AEC生效机制**:理解如何根据环境光变化快速调整曝光参数,确保图像正确曝光。 11. **闪光灯打闪阈值**:确定何时启动闪光灯以辅助照明,避免过亮或过暗的照片。 12. **AFpline和strobepline**:与自动对焦(AF)和闪光灯相关的参数,影响对焦速度和闪光效果。 13. **EVcalibration**:对曝光值进行校准,确保传感器的响应与实际光照相匹配。 14. **CCT_AE**:色彩温度相关的AE调整,保证不同光源下的白平衡准确性。 15. **PIP**:多影像处理器功能,允许在同一屏幕上显示多个视频源,例如预览和取景器同时显示。 16. **录像EIS**:电子防抖技术,在录制视频时抵消手抖引起的画面晃动,但可能会影响画面亮度。 17. **3G通话**:确保在通话期间不影响摄像头的正常工作。 18. **AEmode调试心得**:在HS/AOE/ABL/NS等不同模式下,调试经验的分享,有助于优化AE性能。 19. **DP-AE**:双像素自动曝光,提升 AE 的精确性和响应速度。 通过以上各项的调试和优化,MTK6735M_AE模块能够为用户提供高质量的摄影体验,无论是日常拍摄还是特殊场景下,都能自动适应并呈现出良好的图像效果。

相关推荐

filetype

[ 0.643174] musb-hdrc musb-hdrc: MUSB HDRC host driver [ 0.643197] musb-hdrc musb-hdrc: new USB bus registered, assigned bus number 1 [ 0.643309] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.12 [ 0.643318] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 0.643322] usb usb1: Product: MUSB HDRC host driver [ 0.643326] usb usb1: Manufacturer: Linux 6.12.30-android16-5-g1ed949324a3e-ab13881345-4k musb-hcd [ 0.643330] usb usb1: SerialNumber: musb-hdrc [ 0.643510] hub 1-0:1.0: USB hub found [ 0.643531] hub 1-0:1.0: 1 port detected [ 0.643593] [MUSB]musb_hub_control 392: try to call musb_start in virthub [ 0.643629] probe of 1-0:1.0 returned 0 after 130 usecs [ 0.643670] probe of usb1 returned 0 after 234 usecs [ 0.643781] mt_usb mt_usb: role_sx_set role 0, latest_role: 0 [ 0.643787] musb-hdrc musb-hdrc: mailbox VBUS_OFF [ 0.643792] ------------[ cut here ]------------ [ 0.643795] unbalanced disables for regulator-dummy [ 0.643816] WARNING: CPU: 6 PID: 1 at drivers/regulator/core.c:3001 _regulator_disable+0x60/0x290 [ 0.643828] Modules linked in: musb_main(O+) musb_boost(O) mtk_dvfsrc_helper(O) musb_hdrc(O) phy_mtk_tphy(O) phy_generic aee_rs(O) reset_ti_syscon(O) spi_mt65xx(O) cmdq_helper_inf(O) cmdq_platform_mt6855(O) mtk_cmdq_drv_ext(O) device_apc_common(O) system_heap(O) mtk_iommu(O) iommu_secure(O) iommu_debug(O) mtk_iommu_util(O) mmqos_wrapper(O) mmqos_mt6855(O) mmqos_common(O) mtk_mm_monitor_controller(O) mm_monitor_platform_mt6855(O) mtk_mmdvfs_debug_v3(O) mtk_mmdvfs_debug(O) mtk_mmdvfs_v3(O) mtk_tinysys_ipi(O) mtk_rpmsg_mbox(O) mtk_mbox(O) mtk_mmdvfs(O) mtk_mmdebug_vcp_stub(O) vcp_status(O) mtk_mmdvfs_ftrace(O) mtk_icc_core(O) mmprofile(O) mtk_smi_dbg(O) emi(O) emi_mpu(O) mtk_smi(O) mtk_mminfra_util(O) mtk_emi(O) mtk_dvfsrc_devfreq(O) mtk_dvfsrc_regulator(O) mtk_dvfsrc(O) mtk_dramc(O) 8250_mtk(O) mtk_uart_apdma(O) irq_dbg(O) pd_chk_mt6855(O) mtk_scpsys_bringup(O) mtk_scpsys_mt6855(O) mtk_scpsys(O) clk_fmeter_mt6855(O) clk_bringup(O) clk_chk_mt6855(O) clk_dbg_mt6855(O) clk_mt6855_mdp(O) clk_mt6855_imgsys2(O) [ 0.643907] clk_mt6855_imgsys1(O) clk_mt6855_cam_m(O) clk_mt6855_vcodec(O) clk_mt6855_img(O) clk_mt6855_bus(O) clk_mt6855_peri(O) clk_mt6855_mmsys(O) clk_mt6855_cam(O) clk_mt6855_adsp(O) clk_mt6855(O) clk_common(O) pinctrl_mtk_common_v2_debug(O) pinctrl_mt6855(O) pinctrl_mtk_v2(O) nvmem_mt635x_efuse(O) sec_rng(O) timer_mediatek(O) mtk_wdt(O) nvmem_mtk_devinfo(O) log_store(O) mtk_printk_ctrl(O) monitor_hang(O) aee_hangdet(O) aee_aed(O) mtk_disp_notify(O) mtk_sync(O) dbgtop_drm(O) bootprof(O) mkp(O) mrdump(O) pkvm_hypmmu(O) pkvm_mgmt(O) [ 0.643956] CPU: 6 UID: 0 PID: 1 Comm: init Tainted: G O 6.12.30-android16-5-g1ed949324a3e-ab13881345-4k #1 82a8f78d3d6649bbda1d71f2836e9b207ae10386 [ 0.643963] Tainted: [O]=OOT_MODULE [ 0.643967] Hardware name: MT6855 (DT) [ 0.643971] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 0.643976] pc : _regulator_disable+0x60/0x290 [ 0.644016] lr : _regulator_disable+0x60/0x290 [ 0.644021] sp : ffffffc08008b4a0 [ 0.644025] x29: ffffffc08008b4a0 x28: 0000000000000101 x27: ffffff80cc23dfc4 [ 0.644033] x26: ffffff80cda37dc0 x25: ffffff80cc23d4e9 x24: ffffffc080fa0044 [ 0.644040] x23: ffffff80cc23dfd1 x22: ffffff80cc23c2a0 [ 0.644041] probe of soc:odm:rt5133-gpio3 returned -517 after 8 usecs [ 0.644044] x21: 0000000000000000 [ 0.644049] x20: ffffff80c0ca9000 x19: ffffff80c0ca9000 x18: ffffffc0800810d0 [ 0.644056] x17: 00000000fed73151 x16: 00000000fed73151 x15: 0000000000000004 [ 0.644063] x14: ffffff817e42ea80 x13: 0000000000000003 x12: 0000000000000003 [ 0.644069] x11: 00000000fffeffff x10: c0000000fffeffff x9 : e87d8386db7a6900 [ 0.644076] x8 : e87d8386db7a6900 x7 : 205b5d3539373334 x6 : 362e30202020205b [ 0.644083] x5 : ffffffea99c4f9d0 x4 : ffffffc08008b02f x3 : 0000000000000000 [ 0.644089] x2 : 0000000000000000 x1 : ffffffc08008b230 x0 : 0000000000000027 [ 0.644096] Call trace: [ 0.644100] _regulator_disable+0x60/0x290 [ 0.644105] regulator_disable+0x44/0x84 [ 0.644110] mt_usb_role_sx_set+0x274/0x344 [musb_hdrc 370cdfbe66e30270facfcb77759aca51da1aa4ea] [ 0.644196] mt_usb_otg_switch_init+0x160/0x3cc [musb_hdrc 370cdfbe66e30270facfcb77759aca51da1aa4ea] [ 0.644267] probe of soc:odm:rt5133-gpio1 returned -517 after 5 usecs [ 0.644268] musb_init_controller+0xd40/0xfc0 [musb_hdrc 370cdfbe66e30270facfcb77759aca51da1aa4ea] [ 0.644336] musb_probe+0x10c/0x114 [musb_main 2815e527052e031cd7abea8fc260a5130dff4833] [ 0.644344] platform_probe+0xa0/0xe0 [ 0.644351] really_probe+0x104/0x354 [ 0.644356] __driver_probe_device+0xe4/0x130 [ 0.644361] driver_probe_device+0x3c/0x218 [ 0.644365] __driver_attach+0x10c/0x1e8 [ 0.644369] bus_for_each_dev+0x104/0x160 [ 0.644377] driver_attach+0x24/0x34 [ 0.644381] bus_add_driver+0x140/0x2ac [ 0.644388] driver_register+0x68/0x104 [ 0.644392] __platform_driver_register+0x20/0x30 [ 0.644398] init_module+0x20/0xfe4 [musb_main 2815e527052e031cd7abea8fc260a5130dff4833] [ 0.644405] do_one_initcall+0xdc/0x34c [ 0.644410] do_init_module+0x58/0x224 [ 0.644415] load_module+0x12e0/0x1430 [ 0.644423] __arm64_sys_finit_module+0x264/0x304 [ 0.644430] invoke_syscall+0x58/0x10c [ 0.644437] el0_svc_common+0xa8/0xdc [ 0.644444] probe of soc:odm:rt5133-gpio2 returned -517 after 4 usecs [ 0.644444] do_el0_svc+0x1c/0x28 [ 0.644451] el0_svc+0x38/0x88 [ 0.644457] el0t_64_sync_handler+0x70/0xbc [ 0.644461] el0t_64_sync+0x1a8/0x1ac [ 0.644466] ---[ end trace 0000000000000000 ]--- [ 0.644468] probe of firmware:scmi returned -517 after 4 usecs [ 0.644506] [MUSB]mt_usb_disconnect 4118: [MUSB] USB disconnect [ 0.644523] [MUSB]issue_connection_work 4105: issue work, ops<0> [ 0.644530] mt_usb mt_usb: mt_usb_role_sx_set: if vbus_event false [ 0.644538] [MUSB]do_connection_work 4011: is_host<0>, power<1>, ops<0> [ 0.644545] [MUSB]cmode_effect_on 3998: cable_mode=1, effect=0 [ 0.644555] [MUSB]set_usb_phy_mode 105: force PHY to mode 0, 0x6c=3f11 [ 0.644572] CH0(0x204)=0xe4600 [ 0.644576] probe of soc:mmdvfs returned -517 after 11 usecs [ 0.644577] CH0(0x204)=0xe0000 [ 0.644581] CH1(0x214)=0xe0000 [ 0.644586] CH1(0x214)=0xe0000 [ 0.644589] CH2(0x224)=0xe0000 [ 0.644594] CH2(0x224)=0xe0000 [ 0.644597] CH3(0x234)=0xe0000 [ 0.644602] CH3(0x234)=0xe0000 [ 0.644605] CH4(0x244)=0xe0000 [ 0.644610] CH4(0x244)=0xe0000 [ 0.644613] CH5(0x254)=0xe0000 [ 0.644617] CH5(0x254)=0xe0000 [ 0.644621] CH6(0x264)=0xe0000 [ 0.644625] CH6(0x264)=0xe0000 [ 0.644629] CH7(0x274)=0xe0000 [ 0.644633] CH7(0x274)=0xe0000 [ 0.644652] [MUSB]mt_usb_disable 3879: begin, <1,1>,<1,1,1,0> [ 0.644665] [MUSB]mt_usb_disable 3897: end, <1,1,1,1> [ 0.644669] [MUSB]musb_stop 1473: HDRC disabled [ 0.644672] [MUSB]do_connection_work 4063: lock not active [ 0.644815] probe of 1c00f000.dvfsrc:dvfsrc-helper returned -517 after 8 usecs [ 0.647352] mtk-tphy soc:usb-phy@11e40000: u2_phy_instance_power_off(0) [ 0.647362] ------------[ cut here ]------------ [ 0.647365] proc_dir_entry '/proc/mtk_usb' already registered [ 0.647380] WARNING: CPU: 6 PID: 1 at fs/proc/generic.c:376 proc_register+0x12c/0x1b0 [ 0.647389] Modules linked in: musb_main(O+) musb_boost(O) mtk_dvfsrc_helper(O) musb_hdrc(O) phy_mtk_tphy(O) phy_generic aee_rs(O) reset_ti_syscon(O) spi_mt65xx(O) cmdq_helper_inf(O) cmdq_platform_mt6855(O) mtk_cmdq_drv_ext(O) device_apc_common(O) system_heap(O) mtk_iommu(O) iommu_secure(O) iommu_debug(O) mtk_iommu_util(O) mmqos_wrapper(O) mmqos_mt6855(O) mmqos_common(O) mtk_mm_monitor_controller(O) mm_monitor_platform_mt6855(O) mtk_mmdvfs_debug_v3(O) mtk_mmdvfs_debug(O) mtk_mmdvfs_v3(O) mtk_tinysys_ipi(O) mtk_rpmsg_mbox(O) mtk_mbox(O) mtk_mmdvfs(O) mtk_mmdebug_vcp_stub(O) vcp_status(O) mtk_mmdvfs_ftrace(O) mtk_icc_core(O) mmprofile(O) mtk_smi_dbg(O) emi(O) emi_mpu(O) mtk_smi(O) mtk_mminfra_util(O) mtk_emi(O) mtk_dvfsrc_devfreq(O) mtk_dvfsrc_regulator(O) mtk_dvfsrc(O) mtk_dramc(O) 8250_mtk(O) mtk_uart_apdma(O) irq_dbg(O) pd_chk_mt6855(O) mtk_scpsys_bringup(O) mtk_scpsys_mt6855(O) mtk_scpsys(O) clk_fmeter_mt6855(O) clk_bringup(O) clk_chk_mt6855(O) clk_dbg_mt6855(O) clk_mt6855_mdp(O) clk_mt6855_imgsys2(O) [ 0.647459] clk_mt6855_imgsys1(O) clk_mt6855_cam_m(O) clk_mt6855_vcodec(O) clk_mt6855_img(O) clk_mt6855_bus(O) clk_mt6855_peri(O) clk_mt6855_mmsys(O) clk_mt6855_cam(O) clk_mt6855_adsp(O) clk_mt6855(O) clk_common(O) pinctrl_mtk_common_v2_debug(O) pinctrl_mt6855(O) pinctrl_mtk_v2(O) nvmem_mt635x_efuse(O) sec_rng(O) timer_mediatek(O) mtk_wdt(O) nvmem_mtk_devinfo(O) log_store(O) mtk_printk_ctrl(O) monitor_hang(O) aee_hangdet(O) aee_aed(O) mtk_disp_notify(O) mtk_sync(O) dbgtop_drm(O) bootprof(O) mkp(O) mrdump(O) pkvm_hypmmu(O) pkvm_mgmt(O) [ 0.647501] CPU: 6 UID: 0 PID: 1 Comm: init Tainted: G W O 6.12.30-android16-5-g1ed949324a3e-ab13881345-4k #1 82a8f78d3d6649bbda1d71f2836e9b207ae10386 [ 0.647508] Tainted: [W]=WARN, [O]=OOT_MODULE [ 0.647512] Hardware name: MT6855 (DT) [ 0.647515] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 0.647520] pc : proc_register+0x12c/0x1b0 [ 0.647524] lr : proc_register+0x124/0x1b0 [ 0.647528] sp : ffffffc08008b530 [ 0.647531] x29: ffffffc08008b530 x28: 0000000000000101 x27: ffffff80cc23dfc4 [ 0.647538] x26: ffffff80c0f05998 x25: 0000000000000008 x24: 0000000000000010 [ 0.647545] x23: 0000000000000007 x22: ffffff80cd9626ac x21: ffffffea99ad3010 [ 0.647551] x20: ffffffea99ad2f90 x19: ffffff80cd962600 x18: ffffffc0800810c8 [ 0.647557] x17: 00000000fed73151 x16: 00000000fed73151 x15: 0000000000000004 [ 0.647564] x14: ffffff817e42ea80 x13: 0000000000000003 x12: 0000000000000003 [ 0.647570] x11: 00000000fffeffff x10: c0000000fffeffff x9 : e87d8386db7a6900 [ 0.647576] x8 : e87d8386db7a6900 x7 : 205b5d3536333734 x6 : 362e30202020205b [ 0.647582] x5 : ffffffea99c4f9d0 x4 : ffffffc08008b0bf x3 : 0000000000000000 [ 0.647589] x2 : 0000000000000000 x1 : ffffffc08008b2c0 x0 : ffffffea99c70cdc [ 0.647595] Call trace: [ 0.647598] proc_register+0x12c/0x1b0 [ 0.647603] proc_mkdir+0x60/0x8c [ 0.647607] musb_init_debugfs+0x2c/0x240 [musb_hdrc 370cdfbe66e30270facfcb77759aca51da1aa4ea] [ 0.647674] musb_init_controller+0xd4c/0xfc0 [musb_hdrc 370cdfbe66e30270facfcb77759aca51da1aa4ea] [ 0.647737] musb_probe+0x10c/0x114 [musb_main 2815e527052e031cd7abea8fc260a5130dff4833] [ 0.647743] platform_probe+0xa0/0xe0 [ 0.647749] really_probe+0x104/0x354 [ 0.647754] __driver_probe_device+0xe4/0x130 [ 0.647758] driver_probe_device+0x3c/0x218 [ 0.647762] __driver_attach+0x10c/0x1e8 [ 0.647766] bus_for_each_dev+0x104/0x160 [ 0.647773] driver_attach+0x24/0x34 [ 0.647777] bus_add_driver+0x140/0x2ac [ 0.647784] driver_register+0x68/0x104 [ 0.647788] __platform_driver_register+0x20/0x30 [ 0.647794] init_module+0x20/0xfe4 [musb_main 2815e527052e031cd7abea8fc260a5130dff4833] [ 0.647800] do_one_initcall+0xdc/0x34c [ 0.647804] do_init_module+0x58/0x224 [ 0.647808] load_module+0x12e0/0x1430 [ 0.647815] __arm64_sys_finit_module+0x264/0x304 [ 0.647822] invoke_syscall+0x58/0x10c [ 0.647829] el0_svc_common+0xa8/0xdc [ 0.647835] do_el0_svc+0x1c/0x28 [ 0.647841] el0_svc+0x38/0x88 [ 0.647846] el0t_64_sync_handler+0x70/0xbc [ 0.647850] el0t_64_sync+0x1a8/0x1ac [ 0.647855] ---[ end trace 0000000000000000 ]--- [ 0.647877] probe of musb-hdrc returned 0 after 18527 usecs call trace怎么解决

资源评论
用户头像
李多田
2025.03.22
MTK6735M_AE模块调试过程中遇到的问题及解决方案,适合技术调试人员阅读。
用户头像
蒋寻
2025.03.21
这份文档详细记录了MTK6735M_AE模块的调试过程,对工程师有很好的参考价值。
用户头像
茶啊冲的小男孩
2025.02.26
machangmiao
  • 粉丝: 0
上传资源 快速赚钱