还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
摄像头结构和工作原理、摄像头结构和工作原理.拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过匹匕加工处理,再被送到电脑中进行处理,最终转换成至极屏幕上能够看到的图像数字信号处理芯片功能主要是DSPDIGITAL SIGNALPROCESSING通过一系列复杂的数学算法运算,对数字图像信号参数进行优化处理,并把处理后的信号通过旦殂等接旦传到等设备结构框架PC DSP镜像信号处理器
1.ISPimage signalprocess图像解码器
2.JPEG encoderJPEG设备控制器
3.USB devicecontrollerfUSB常见的摄像头传感器类型主要有两种,一种是传感器即电荷耦合器CCD ChagreCouled Device,层
2.Framework代码位置
2.1android,hardware.Camera这/android/frameworks/base/core/java/android/hardware/Camera.java部分目标是这是是提供给层调用的framework.jaro Androidapp java接口这个类用来连接或断开一个服务,设置拍摄参数,开Camera始、停止预览,拍照等这个类是和中定义的类是一个,有些方法通过的
2.2JNI JNI方式调用本地代码得到,有些方法自己实现的调Camera JAVAnative用部分()JNI/android/frameworks/base/core/jni/android_hardware_Camera.cpp承接代码至代码的桥梁编译生成Camera.java JAVAU C++libandroid库是公用的,其中除了还有runtime.so libandroid runtime.so Camera其他方面的功能框架的部分
2.3Camera client代码位置「下个文件/android/frameworks/base/bs/camera/5Camera.cppCamera Parameters,cppICamera.cppICameraClient.cppI CameraService.cpp它们的头文件在目录下/android/frameworks/base/include/camera这部分的内容编译生成在模块的各libcamera_client.so Camera个库中,位于核心的位置,作为框架的libcamera_client.so CameraClient客户端部分,与另外一部分内容服务端通过进程间libcameraservice.so通讯(即机制)的方式进行通讯Binder框架的部分
2.4Camera service代码位置/android/frameworks/base/services/camera/libcameraserviceo这部分内容被编译成库是libcameraservice.so CameraService服务,框架的中间层,用于链接Camera Camera和部分,它通过调用实际的硬CameraHardwarelnterface ClientCamera件接口来实现功能,即下层层HAL社区Androidin女原handuio创ICamcraClicnt ICumvraiStT%icc Camcr»llairlM»rvlntrrr»crICameraSertke,・InfiKTScnicrPCr amerSmicc::C HeatCamwraU层MICaaeraCaaernServiceClient ServerCameraHardware调试一KernelCamera Driver四.摄像头预览、拍照、录像基本数据流向和处理流程以及驱动■Camera preview:1-2-
3.1-
3.2,■Camera snapshot:1-
24.1-
4.2・■Video recording:12,
5.1-
5.2t
5.
35.4主要分为三个部分,它们分别用一cpp preview,snapshot,videoo个进行处理另外还有功能也是用的方式pthread autofocus pthread处理预览或拍照、视频线程处理得到的数据帧都以的方datacallback式回调到上层中,进行存储或预览等操作以下是CameraService.cpp层部分的代码大概的调用结构流程HALframeworks/base/services/camera/libcameraservice/CameraService.cppCallback/dev/msm__camera/frame%dms m_ca mera_drv_startS5k8aa.c--―,kerne l/drivers/m整个模块主要巡行三个主线程、及control configframe用来执行总的控制,是上层控制接口control主要进行一些配置,这个线程里面主要进行的工作,另config3A外还有一些跟效果有关的设置;线程主要用来做帧的循环获取处理所有事件或状态frame queue的反馈,用回调函数的方式传回QualcommCameraHardware.cppo.驱动部分从设备驱动开始新建平台设备后,执行入2s5k8aa.c口函数时,调用创建摄像头设备功能函数probeint ms m_ca me ra_drv_st art str uct platform_device*dev,int*sensor_probeconst struct msm_camera_sensor_info*,struct msm_sensor_ctrl*并将设备信息结构体和摄像头设备调用入口传入sensor_probe函数在中实现他仓建了msm_camera_drv_start xxxmsm_camera.c提供上层调用的四个终于设备结点/dev/msm_camera/frame%d/dev/msm_camera/control%d/dev/msm_camera/config%d/dev/msm_camera/pic%d实现了上层库对模块,模块,模块和摄像头VFE VPEjpeg_encoder模块驱动的控制调用接口在中的相应函数中分sensor file_operations别实现的是这些设备的新建初始化和功能调用接口IOCTL然后这个函数还创建了四个工作队列struct msm_device_queue event_q;struct msm_device_queue frame_q;struct msm_device_queue pict_q;structmsm_device_queue vpe_q;包括传入的控制信号队列,event_q/dev/msm_camera/control%d用于将上层传下来的控制命令传到中去command configthread用于对图像帧的操作管理,预览或录像时帧将传递给frame_q DSP进行处理包含拍照帧,用于给进行图像编码处理pict_q jpeg_encoder是控制命令队列vpe_q VPE是相应摄像头设备的驱动部分它的功能很简单,主要实s5k8aa.c现模块的创建、初始化和控制主要实现以下三个函数sensors-s_init=ov2685_sensor_init;s-s release=ov2685sensor release;s-s_config=ov2685_sensor_config;函数ov2685_sensor_init主要实现摄像头的上电、时钟控制、设备初始化功能MCLK上电分为、、、、几个部分需要按照DOVDD DVDDAVDD resetPWDN设备要求顺序操作,一般时钟控制顺序也包含在内设备初始化过程是将设备的所有寄透|全部初始化一遍,采用sensor HC方式将初始化寄存器地址和值全部发送到端完成后此时摄像sensor头模组才能正常工作,并将图像通过线路传送到端MIPI CPU函数ov2685_sensor_config主要实现对的各种配置接口,相应的有帧率配置,白平衡sensor效果设置,曝光度设置,特效设置等等相应接口将配置好的寄存器列表通过发送到中IIC sensor摄像头调试中的几个问题点
3.是否正确上电,是否有时钟波形输出检测输出电压的电
3.1压值是否和上电时序以及是否符合的要求这部分可以MCLK sensor用示波器和万用表测量测量电压值和上电时序以及的时钟频MCLK率是否正确读写是否正常调试与间的通信检测
3.2IIC CPUISP12c包括地址是否正确,协议是否匹配这部分也可以用示波器测量IIC IIC的、的峰值、波形逻辑是否正确SDA CLK正确上电并初始化以后模块是否正常工作这部分主
1.3sensor要通过用示波器测量线路的数据和时钟是否正确,它的波形MIPI PIN是否含有数据,是否标准波形,峰值有没有达到要求等如果以上都正确了以后,控制器将接收到中断,并开始处
1.4MIPI理图像信号此时如果出错,可以通过中断信号的出错值查看错误状态除端是否正常初始化工作的问题外,需要关注模组端设置的CPU图像格式和接收的默认图像格式和图像大小是否一致模组CPU SIZE中图片格式和图像大小通过寄存器值查看端接收图片格式和图CPU像大小在部分的中设置,拍照源图像大小和预览源图像大HAL s5k8aa小需要分别设置一种是传感器CMOS ComplementaryMetal-Oxide Semiconductor即互补性金属氧化物半导体的优势在于成像质量好,但是制造工艺复杂,成本高昂,且耗CCD电高在相同分辨率下,价格比便宜,但图像质量相比CMOS CCDCCD来说要低一些影像传感器相对具有耗电低的优势,加上随CMOS CCD着工艺技术的进步,的画质水平也不断地在提高,所以目前市CMOS面上的手机摄像头都采用传感器CMOS手机摄像头的简单结构滤光片有两大功用滤除红外线滤除对可见光有干扰的红外光,使成像效果更清
1.晰.修整进来的光线感光芯片由感光体构成,最好的光线2CELL是直射进来,但为了怕干扰到邻近感光体,就需要对光线加以修整,因此那片滤光片不是玻璃,而是石英片,利用石英的物理偏光特性,把进来的光线,保留直射部份,反射掉斜射部份,避免去影响旁边的感光点.
二、相关参数和名词、常见图像格式1格式LI RGB传统的红绿蓝格式,比如其数据格式为RGB565,RGB888,16-bit多一位,原因是人眼对绿色比较敏感5-bitR+6-bitG+5-bitB G格式
3.2YUV格式是指亮度参量和色度参量分开luma Y+chroma UVYUV表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大是一个比较笼YUV统地说法,针对它的具体排列方式,可以分为很多种具体的格式色度定义了颜色的两个方面一色调与饱和度,分别用和UV CBCR表示其中,反映了输入信号红色部分与信号亮度值之Cr RGBRGB间的差异而反映的是输入信号蓝色部分与信号亮度值Cb RGBRGB之间的差异主要的采样格式有、、和YCbCr40YCbCr42YCbCr41YCbCr44o格式
4.3RAW data图像就是或者图像感应器将捕捉到的光源信号RAW CMOSCCD转化为数字信号的原始数据文件是一种记录了数码相机传感器RAW的原始信息,同时记录了由相机拍摄所产生的一些元数据Metadata,如的设置、快门速度、光圈值、白平衡等的文件ISO是未经处理、也未经压缩的格式,可以把概念化为“原始RAW RAW图像编码数据”或更形象的称为“数字底片的每一像素对应sensor一个彩色滤光片,滤光片按分布将每一个像素的数据Bayer pattern直接输出,即RAW RGBdata经过彩色插值就变成Raw dataRaw RGBRGB.B BG BR[R2KG BG BG By-.aR CJSTGCiBC BC BC BhG RG KG.K GBActivePixel格式图像示例RAW相关技Gil术G rc指fKiC标
2.国涉,ikgjg C图像解析度/分辨率
2.1Resolugon01234567又称万像素SXGAPix1el2r8ea0doxult024130又称万像素XGA1024x76880又称万像素SVGA800x60050又称万像素万是指VGA640x4803035648X488又称万像素CIF352x28810SIF/QVGA320x240QCIF176xl
4476543210.cKGRcg-c-KcRBl6BJCBGRCR.G BCEcRcKcBcBcBeBcRcKGRCH.cc•cBG8cBGB-G--GRGRBGBG()QSIF/QQVGA160xl20彩色深度(色彩位数)
2.2色灰阶,有种灰色(包括黑白)256256或位彩色(高彩色)种颜色151665,536位彩色(真彩色)每种原色都有个层次,它们的组合便24256有种颜色256*256*256位彩色除了位彩色的颜色外,额外的位是储存重叠图32248层的图形资料(频道)alpha光学变焦和数码变焦
2.3光学变焦通过镜头的调整,拉近拉远所要拍摄的对象,保持像素不变和画质基本不变,却可以拍到自己理想的物像数码变焦其实没有什么变焦,只是从原图片中截取出来放大,你从液晶屏幕上看到变大了,实际上画质并没有本质提高,而像素比你相机能拍摄的最大像素降低了画质上说基本是鸡肋把,但是可以提供一些方便图像压缩方式
2.4JPEG/M-JPEGH.261/H.263MPEGH.264图像噪音
2.5指的是图像中的杂点干挠表现为图像中有固定的彩色杂点自动白平衡处理技术
2.6auto WhiteBalance简单来说就是摄像机对白色物体的还原相关概念色温视角:
2.7与人的眼睛成像是相成原理,简单说就是成像范围自动对焦
2.8自动对焦可以分成两大类:一类是基于镜头与被拍摄目标之间距离测量的测距自动对焦,另一类是基于对焦屏上成像清晰的聚焦检测自动对焦清晰度算法注变焦就是把远处的物体拉近对焦是让图像清晰自动曝光和
2.9Gamma就是光圈和快门的组合光圈,快门速度,即人眼对ISOo Gamma亮度的响应曲线
三、高通的部分硬件架构CAMERACamera HardwareArchitectureMIPI interface•Offers2-lane MIPIwith2048Mbps limitand4-1ane MIPIinterface with2128Mbps limit•Camera datafrom eitheris processedby4-iane2-faneinternal MIPIMUX andsent toVFE
3.1corePHY PHYVFEfor processing.•OffetoprtimeVideo preprocessingVPE•Used tozoom,rotate,and stabilizethecamera framesbefore theyget encodedbyvideo encoder_______________部分硬件架构CAMERAInlineencJPEG In-lineVPE VFE3DCD JPEGJPEGDCDmgen2max•iWill offerAhsayrndcware-acceAlesryantced JPEGdecodin视频前端VFE VIDEOfront-end视频预处理VPE Videopreprocessing摄像头模组中自带了(图像信号处理器),所以,和有ISP VFEVPE关图像效果处理的功能都是关闭的的功能
1.VFE通过算法提高图像的质量
1.1提供高分辨率的图像的(自动白平衡)(自动曝
1.2AWB/AE光)(自动对焦)算法处理/AF图像衰减校正
1.3低光下的噪声滤波
1.4图像色彩效果优化
1.5皮肤颜色效果优化
1.6图像抖动计算
1.7亮度适应算法
1.8的功能
2.VPE图像稳定性
2.1数字对焦
2.2图像旋转
2.
32.40verlayoVPE Features■VPE supportsfeatures suchas:•Digital imagestabilization•Digital zoom•Rotation•Overlay
三、系统基本架构android camera应用层
1.的应用层在上表现为直接调用生旦开发的Camera AndroidK A一个应用包代码在下Camera APK/android/packages/apps/Camera主要对(在中)类的调用,并android.hardware.Camera Framework且实现应用的业务逻辑和显示一个应用中若要Camera UIAndroid使用这个类,需要在文件声明的权限,另外还需要Manifest Camera添加一些元素来声明应用中的特性,如自动对焦等具体做法Camera可如下。
个人认证
优秀文档
获得点赞 0