文档详情

调试camera总结1500字

ji****81
实名认证
店铺
DOCX
29.15KB
约9页
文档ID:300273586
调试camera总结1500字_第1页
1/9

    调试camera总结1500字    调试camera经验总结一个好的camera效果,需要多方面保证,1.senor,镜头,马达要好,这是源,如果源头不好,后面怎么优化都没有用2.ISP要好,ISP是否有硬件滤波器?3A算法是否先进,iphone好也是其3A的算法很厉害 对于我们来说,首先是争取选择更好的物理,是否是背照式是sensor?如果需要夜景好是否是大pixel的sensor 或者是否是RGBW的sensor?镜头的光圈是否足够大,是5P,还是6P的,是否带有蓝光玻璃等? 选定好了一款sensor,怎么开始我们调试工作1. 找模组厂要到golden模组,如AWB,shading和AF的golden,后续我们的调试都是基于这个模组,只有使用这种模组调试的才能cover尽可能多的模组如果有条件的话,可以向厂家要到一些corner模组,用来验证我们后续调试的效果怎么样?2. 点亮我们的sensor,检查出图是否正常?如色彩是否正常,power noise是否很明显?马达是否能正常工作,闪光灯是否能正常工作?3. Sensor是否烧入了OTP,如果烧入了OTP,需要导入OTP,验证OTP工作是否正常?4. 以上都准备好了的话,我们就可以进入camera的调试。

对于调试一个camera的模组,我们首先要评估这个模组的能力怎么样?确定我们帧率和gain策略,特别是对于帧率一旦修改,理论上整个效果都需要重新开始调试确定好了曝光表之后,我们就可以用golden模组拍raw图了,拍好raw图,按照高通的文档一步步进行调试调试完成之后,测一下客观指标,分辨率,AWB,饱和度,色彩误差,灰阶,亮度均匀性,色彩均匀性,noise等,需要保证各个客观指标不能有大问题,每一项由问题,都说明我们的那一方面调试或者是我们raw图片拍出问题,需要分析原因解决问题满足客观指标之后,再去测试各个主观测试场景,如室内人物,室内花草,室内文字,夜景照片,室外人物,室外花草,室外建筑物,室外汽车等各个场景,根据各个场景的问题再解决其中我们调试最多的就是清晰度和噪点,这也是我们花最多时间调试的,需要反复调试,在不同的光源下,都需要调试,最好配合我们的客观标准测试,要不能有可能会出大问题1. 曝光表一个合适的曝光表,是整个项目调试的基础,否则后面可能出现非常多的问题,如帧率过低,客户在低亮情况下,很容易拍出模糊的照片,帧率过高,低亮情况下,拍出照片过暗,这个对于过往经验要求比较高,我个人比较喜欢把前置摄像头的帧率限定在7.5,后置摄像头10,特殊摄像头再特殊处理。

2. AWB由于高通默认AWB不但和我们实际的场景的颜色有关,其实还和我们的亮度有关,在参数里面有一项outdoor index,indoor index如果这个没有设置好,AWB就有可能出现问题强烈建议不要手动修改AWB point否则后续有可能出现很多奇怪的问题3. Luma target这是调节我们画面的整体亮度的值,不能出现过爆也不能出现过暗4. color_luma_decrease_ratio如果不调试这个值就有可能出现拍一些彩色物体时出现画面过暗5. gamma一组好的gamma,可以让画面更通透,更清晰,我个人比较喜欢在夜晚时把夜晚的gamma拉的对比度更大6. 清晰度和噪点由于这里需要拍摄不同亮度下的raw照片,首先要确保raw照片拍摄Camera调试比较需要实际项目的经验,不能简单从文档和资料中学到,做的多遇到的问题多,相对就经验丰富一些7.调试饱和度 第一版参数时,我们一般不修改这里,使用默认参数,只是最后调试完了,测试一下我们的对比度的高低,根据对比度的高低,适当调整ACE第二篇:Keypad调试总结 3500字KEYPAD调试总结一、原理.......................................................................................................... 1二、实现.......................................................................................................... 2三、Keypad驱动调试时遇到的问题 ............................................................. 4四、总结.......................................................................................................... 4一、原理本次调试机台为C55, 6020平台。

没有用全键盘芯片,keypad matrix通过GPIO pin来实现上图为5*5的matrix,C55采用的5*10的matrix正常情况下(未按下任何键),drive pin全为low,sense pin全为high通过上图知道,这些sense pin 先非,然后通过或非门输出KEYSENSE_INT,此时为high当一个button按下,一个sense pin和drive pin导通,变为low,通过或非门,KEYSENSE_PIN为low,触发KEYSENSE中断QSC interrupt controller 接收到中段以后,enable polling,开始扫描keypad扫描动作开始,先将所有的drive pin设置为high,然后将drive pin逐个设置为low在每个drive pin 设置为low时,检测sense pin的状态,如果为low,表明当前drive pin和sense pin组合的button被按下扫描期间,记录每个按键有否被按下扫描结束以后,将所有的drive pin 设置为low然后查询每个按键的是否被按下的记录,如果有按键被按下的记录,则不允许sleep。

隔断时间又开始扫描keypad只有检测到没有任何按键按下,允许sleep,disable polling,不再扫描Disable polling要设置KEYPRESS ISRKEYPRESS ISR调用enable polling这样下次有按键按下,KEYSENSE中断触发,又开始扫描keypad如此循环二、实现主要通过以下几个函数来实现:1.Keypad_init:将所有的matrix按键状态初始化为KS_KEY_UP,即没有按下如果此点没有键值,设置为KS_NO_KEY)将Power键初始化为KS_KEY_UP将key buffer 的read index和write index初始化为0通过pm_pwr_key_init安装pm_pwr_key_pressed_isr.此ISR会调用keypad_enable_polling()将keypad_polling 标志初始化为true设置定时器时钟,让keypad_scan_keypad周期性地被调用初始化keysense line,让其可以产生中断设置keypad背光2. keypad_enable_polling通过rex_clr_sigs函数告诉sleep task,当前不可以sleep如果keypad_polling为true,没有动作。

如果为false:清除keypress detection ISR:tramp_set_isr( TRAMP_KEY_SENSE_ISR, NULL )将keypad_polling 标志初始化为true设置定时器时钟,让keypad_scan_keypad周期性地被调用3. keypad_disable_polling通过rex_set_sigs函数告诉sleep task,当前可以sleep如果keypad_polling为false,没有动作如果为true:取消键盘扫描定时器时钟,keypad_scan_keypad不会周期性地被调用将keypad_polling 标志初始化为false设置Keypress ISR :tramp_set_isr( TRAMP_KEY_SENSE_ISR, keypad_keypress_isr )4. keypad_scan_keypad设置sleep_allowed初值为true(此标志决定是否执行keypad_disable_polling) 设置power_key_pressed初值为false调用keypad_enable_polling()(个人觉得这一步骤没有必要。

因为keypad_scan_keypad是通过keypad_enable_polling()来注册的,此时keypad_polling为true,再次调用keypad_enable_polling()虽然不会重复注册keypad_scan_keypad本身,但也只是通过rex_clr_sigs函数告诉sleep task当前不可以sleep)将键盘matrix的每个键按下状态初始设为false,即当前没有按下将drive pin 全部pull up,并拉high将drive pin逐个拉low,每个drive pin拉low时检测sense pin,如果为low,将其按下状态设置为true,表明当前被按下扫描结束后将所有的drive pin pull down根据每个matrix按键之前的状态来决定通过KEYPAD_PASS_KEY_CODE发往key buffer的keycode如果当前有按键被按下,不管其之前的状态时up还是wait_up,将sleep_allowed设置为false根据power按键之前的状态来决定通过KEYPAD_PASS_KEY_CODE发往key buffer的keycode。

如果当前power键被按下,不管其之前的状态时up还是wait_up,将sleep_allowed设置为false通过判断key buffer的read index和write index是否相等来设置sleep_allowed标志如果二者不等,sleep_allowed=falsewrite index是通过pass keycode来累加的,read index是UI通过get keycode来累加的通过看log发现二者一直相等)如果没有任何matrix、power按键被按下,且read index=write index,则调用keypad_disable_polling()终止polling5. keypad_keypress_isr当中断到来,通过clk_unexpected_enable();来重新开启定时器时钟通过keypad_enable_polling()开始周期性扫描keypad(通过注册keypad_scan_keypad实现)三、keypad 驱动调试时遇到的问题之前支持全键盘芯片,send key是通过GPIO pin接入的关闭宏FEATURE_USE_QWERTY_KEYPAD,修改key code ,修改bit mask。

Build之后发现只有send 键有反应,其他的没反应查找code,发现是没有关闭宏GPIO_AS_KEY关闭之后,发现只有power键有反应,其他按键还是没有反应在code里加入MSG信息,通过QXDM查看发现只有power key按。

下载提示
相似文档
正为您匹配相似的精品文档