camera

mac2024-03-13  28

一、camera介绍 camera组成: FPC:柔性线路板,连接芯片和手机,起到电信号传输作用。 图像传感器:能感受到光学图像信息并转化成可用输出信号的传感器。 原理:由大量的感光二极管组成门阵列,二极管在受到光线的照射,可以将光的能量转换成电流输出,而输出的电流大小会根据不同的光强而不一样。 IR:红外滤波片,用来滤除红外光,调整光线摄入角度为直角,来达到更好的成像效果。 镜头lens:利用透镜的折射原理,景物光线、通过镜头,在聚焦平面上形成清晰的影像,通过感光材料 CMOS 或 CCD 感光器记录景物的影像。 camera工作原理 物体通过镜头(lens)聚集的光,通过 CMOS 或 CCD 集成电路,把光信号转换成电信号,再经过内部图像处理器(ISP)转换成数字图像信号输出到数字信号处理器(DSP)加工处理,转换成标准的 GRB、 YUV 等格式图像信号。通过 IO 接口传输到 CPU 中处理,通过 LCD 就可以看到图像了。

曝光三要素

光圈就是指曝光瞬间开孔多大,当光圈开得越大,背景虚化效果越明显;光圈越小背景虚化效果则越不明显.快门速度就是指快门开启的时间,改变快门速度的同时也意味着改变了运动物体成像的方式(是否叠加)。快门速 度越慢,运动物体越模糊;速度越快,运动物体越清晰。感光度是指图像传感器对光线的敏感程度,ISO越大噪点越明显,画质也就越差;但ISO提高可以使用小光圈或提高快门速度。 图像传感器 图像传感器是将光信号转换为电信号的装置。60年代末期,美国贝尔实脸室发现电荷通过半导体势阱发生转移的现象,提出了固态成像这一新概念和一维CCD(Charge-Coupled Device 电荷耦合器件)模型器件。这可以将光强转化成电信号。 在像素阵列的表面覆盖一层彩色滤波阵列(Color Filter Array,CFA),彩色滤波阵列有多种,现在应用最广泛的是 Bayer格式滤波阵列,满足 GRBG规律,绿色像素数是红色或蓝色像素数的两倍,这是因为人眼对可见光光谱敏感度的峰值位于中波段,这正好对应着绿色光谱成分。

上图就是一个采用 CFA模式的图像传感器,该模式图像数据只用 R、G、B 3个值中的1个值来表示 1个像素点。这样一来每个像素点只能捕获三基色 R,G,B中的一个,而缺失另外两个颜色值,这时候得到的是一幅马赛克图像。为了得到全彩色的图像,需要利用其周围像素点的色彩信息来估计出缺失的另外两种颜色,这种处理叫作色彩插值,也称作彩色插值或去马赛克。 由于 CFA模式所采用的图像颜色滤波阵列结构相对简单,并且所得到的图像数据仅仅是原始图像全部三原色信息的1 / 3的数据,因此成本较低。但是,上图中的CFA模式图像数据与BGR模式的图像据相比,缺少了 2 / 3的图像颜色信息,所以要对 CFA模式图像数据进行显示、压缩等后续处理,就需要事先对其进行插值运算,恢复CFA模式图像数据所缺少的2 / 3颜色信息,从而将 CFA模式图像数据重建为与 BGR模式图像相匹配的图像数据。比较常见的是双线性插值算法:该算法在对一个像素点的某颜色值进行插值运算时,会用该像素相邻像素点对应颜色值通过算数平均来估计。 自动聚焦 自动聚焦目的是获得清晰度更高得图像。常用的聚焦方法分两类,一类是传统的聚焦方法,一种是基于数字图像处理方式的图像聚焦方法。传统的方式中,自动聚焦通过红外线或者超生波测距的方式来实现。这种方式需要安装发射机和接收机,增加了摄像机的成本,而且超声波对于玻璃后面的被摄物体不能很好的自动聚焦。这一类聚焦方式在某些场合受到了限制。因此在日趋集成化、微型化、低成本的应用中,基于数字图像处理的自动聚焦方法更具有优势。 根据镜头成像分析,镜头的光学传递函数可以近似为高斯函数,它的作用等效为一个低通滤波器。离焦量越大,光学传递函数的截止频率越低。从频域上看,离焦量增大,对图像高频能量造成损失,使得图像的细节逐渐模糊。从空域上看,离焦量增大,点光源成像的光强分布函数越分散,可分辨的成像间距越大,图像相邻像素互相重叠,图像细节损失严重。因此图像清晰度评价函数时建立在图像边缘高频能量上的。 数字处理方法中,自动聚焦的关键在于构造图像的清晰度评价函数。己经提出的图像清晰度评价函数苞括灰度方差、梯度能量、嫡函数和一些频域函数法。图像清晰度评价函数必须具有良好的单峰性和尖锐性,而且要计算量适度,从而可以快速的实现精准对焦。 白平衡 要求在不同色温环境下,照白色的物体,屏幕中的图像应也是白色的。色温表示光谱成份,光的颜色。色温低表示长波光成分多。当色温改变时,光源中三基色(红、绿、蓝)的比例会发生变化,需要调节三基色的比例来达到彩色的平衡,这就是白平衡调节。 彩色深度(色彩位数) 反映对色彩的识别能力和成像的色彩表现能力,实际就是 A/D 转换器的量化精度,是指将信号分成多少个等级。常用色彩位数(bit)表示。彩色深度越高,获得的影像色彩就越艳丽动人。现在市场上的摄像头均已达到 24 位,有的甚至是 32位。

二、camera驱动移植

camera驱动工作流程打开 Camera Power LDO,让 Camera 有能量保证。打开 IIC,设置 PDN 引脚,使 Camera 退出 Standby 模式,按照 datasheet要求让 Reset 脚做一个复位动作。读一下 sensor ID,这样可以让你确认是否连接上你想要的 sensor。对 Sensor 进行初始化下载最基本的参数让 Sensor 工作起来,可能包括软复位。下载 preview 的参数,为预览动作准备。下载 Capture 的参数,为拍照动作准备。设置 PDN 引脚,使 Sensor 进入 Standby 模式,或者关掉 LDO 等动作,退出 Camera。 camera移植 高通平台下的camera相关代码分成两部分,一部分放在Kernel下,是驱动通用的。一部分放在Vendor下,把差异化代码脱离出来。 Kernel:在 kernel 中,主要包括 dts 和 driver 部分这个文件就存放本项目camera的基本信息,比如三款摄像头的信息,前后摄、角度、使用的马达、存储校准数据的EEPROM等 vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/configs/sdm660_camera.xml 这个文件是一个总控文件,包含了所有相关的宏控内容。vendor/qcom/proprietary/common/config/device-vemdor.mk 此路径下就存放了很多种camera,我们使用到的三款就可以在这里看到,然后按照上面选择的camera进行相应的修改。vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/sensor/libs 同时修改Android.mk里面的LOCAL_MODULE。vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/sensor/libs/htc_ov16b10_truly_back1_i_lg/Android.mk 此路径就是Kernel下的设备树文件,所有的设备就是挂载在这里,camera的设备配置在这里就可以看到。比如AVDD/DVDD的供电接口等。同时也是这里和驱动相匹配的Camera的名字compatible是可以在对应的xxx_driver.c文件里对应上的,同时也可以看到position的值也是对应的后摄。 kernel/arch/arm64/boot/dts/qcom/sdm660-camera-sensor-mpt.dtsi 这里的compatible可以看到是和设备对应上的。同时在kernel也就只有这一个camera的xxx_driver.c。这就是提取出来的共同的那部分,而不用一个设备写一个xxx_driver.c。kernel/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c 当设备和驱动匹配上时,会进入probe 函数,我就在这里打印一个log作为观察 三、camera测试 完成vendor下修改后,需要编译一下重新刷一下vendor镜像1执行:source zproject/envsetup.h 版本选择与整编时一致,我选择的是0,0 mmm:编译指定路径下的模块mmm ./vendor/qcom/proprietary/mm-camera mm:编译当前路径下模块 …/mm-camera$ mm编译成功时会在out/target/product/sdm660_64/vendor/lib目录下会生成.so动态库文件。如果想使我们修改的内容生效,需要导入到手机vendor/lib目录下。 ***方法一:***首先我们要确认push权限打开,权限在kernel/fs/ext4/balloc.c文件中,将1改为0. 再编译Kernel,将新的boot.img刷进手机里。再adb工具里执行 adb root adb remountadb push 文件路径 手机目录 //adb remount是将system部分至于可写入模式,默认只读只适用于已root设备。 ***方法二:***先放到system目录下,移到vendor/lib目录下。开启抓取camera log的prop项 查看prop项是否修改成功生成camera log 查看camera log
最新回复(0)