版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
言前编的围1.2.言前编的围1.2.1.3.TS员-4Copyright©2013AllwinnerTechnology.AllRights2.块介绍绍2.1.绍2.2.FileVCMOSeCSIS2.块介绍绍2.1.绍2.2.FileVCMOSeCSIS2.3.对型物理横80x80) 800x1如分扫描方向扫描方向:-5Copyright©2013AllwinnerTechnology.AllRightsMENLCMENLC800x128LCD扫描 扫描方向正确的配对方式为横屏时应选择摄像头成像角度扫描方向扫 向+=竖屏竖屏时应选择摄像头成像角度为90度或扫描 扫描方向正确的配对方式为横屏时应选择摄像头成像角度扫描方向扫 向+=竖屏竖屏时应选择摄像头成像角度为90度或扫描 扫 向+= mera.cg正确选为摄像角度,这样系统就可以正确识别摄像头的成像角度-6Copyright©2013AllwinnerTechnology.AllRightsMENMENLC480X80MENMENLC800X48源码结构介驱动路源码结构介驱动路径位-7Copyright©2013AllwinnerTechnology.AllRights ;v4l2驱动实现主 │ ;v4l2驱动实现主 │ ;具体sensor驱 ;具体sensor驱 ;具体sensor驱 ;具体sensor驱 │ ;sensor自适应主 ;sensor支持列表检 ;打印开 │ ;数据结构定 ││3.2.Capabilityofcsidriver(structv4l2_capability*capability)structv4l2_capability{/*i.e."bttv"3.2.Capabilityofcsidriver(structv4l2_capability*capability)structv4l2_capability{/*i.e."bttv"/*i.e."HauppaugeWinTV"/*"PCI:"+pci_name(pci_dev)/*shoulduseKERNEL_VERSION()capabilities;/*Devicecapabilities*/Fail:Failure等structv4l2_input{u32WhichinputLabelTypeofinput Associatedaudios(bitfield) Associatedtuner-8Copyright©2013AllwinnerTechnology.AllRights Fail:Failureinputindexinputindex0Fail:Failureinputindexinputindex0indexIndex=0primarycsideviceIndex1secondarycsideviceindextypeCSI输入设备来说,typeinput(structv4l2_inputThesameasFail:Failure通过inp.index设置当前要访问的csideviceprimarydevice还是secondarydevice备,则index固定为0)Index1(双摄像头配置中,一般对应前置摄像头input(structv4l2_inputThesameasFail:Failure获取inp.index,判断当前设置的csidevice为primarydevice还是secondary-9Copyright©2013AllwinnerTechnology.AllRights备,则index固定为0)Index1(双摄像头配置中,一般对应前置摄像头structv4l2_streamparm{union{structv4l2_outputparm备,则index固定为0)Index1(双摄像头配置中,一般对应前置摄像头structv4l2_streamparm{union{structv4l2_outputparm/*user-defined}structv4l2_captureparmstructSupportedmodes*/Currentmode*/ Timeperframein.1usunits*/Driver-specificextensions*/#ofbuffersforreadFail:Failure应用使用时,parms.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;42_M_MAParameter(structv4l2_streamparmThesameas-10Copyright©2013AllwinnerTechnology.AllRightsFail:Failure应用使用时,parms.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;V4L2format(structv4l2_fmtdesc*fmtdesc)structv4l2_fmtdesc{/*Fail:Failure应用使用时,parms.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;V4L2format(structv4l2_fmtdesc*fmtdesc)structv4l2_fmtdesc{/*Format/*bufferenum/*Descriptionstring/*FormatFail:FailurepixelformatCSI来说,typeV4L2_BUF_TYPE_VIDEO_CAPTUREVideotype,formatandsize(structv4l2_format*fmt)structv4l2_format{union{structstructstructv4l2_window-11Copyright©2013AllwinnerTechnology.AllRightsstructv4l2_sliced_vbi_format}structv4l2_pix_formatenumstructv4l2_sliced_vbi_format}structv4l2_pix_formatenumenumFail:Failure根据捕捉视频的类型,格式和大小,判断模式,格式是否被驱动支持。CSI输入设备,typeV4L2_BUF_TYPE_VIDEO_CAPTURE。使用structv4l2_pix_format进行参数传递。应用程序输入structv4l2_pix_format结构体里面的widthheight,pixelformat,field等参数,驱动返回最接近的width,height;若pixelformat,field不支持,则默认选择驱动支持的第一种格式。Videotype,formatandsize(structv4l2_format*fmt)ThesameasVIDIOC_TRY_FMTFail:FailureCSI输入设备,typeV4L2_BUF_TYPE_VIDEO_CAPTURE。使structv4l2_pix_format应用程序输入width,height,pixelformat,field等,驱动返回最接近的width,heightpixelformat,field不支持,则默认选择驱动支持的第一种-12Copyright©2013AllwinnerTechnology.AllRights应用程序应该以驱动返回的width,height,pixelformat,field等作为后Videotype,formatandsize(structv4l2_format应用程序应该以驱动返回的width,height,pixelformat,field等作为后Videotype,formatandsize(structv4l2_format*fmt)ThesameasVIDIOC_TRY_FMTFail:FailureBuffertype,countandmemorymaptype(structv4l2_requestbuffers*enumenumFail:FailureFIFObuffer通过内核申请,申请后需要通过mmap方法,映射到User空间。Memory:目前支持V4L2_MEMORY_MMAP方式 -13Copyright©2013AllwinnerTechnology.AllRightsBuffertype,indexandmemorymaptype(structv4l2_bufferstructv4l2_bufferenumBuffertype,indexandmemorymaptype(structv4l2_bufferstructv4l2_bufferenumstructtimevalstructv4l2_timecodeenumv4l2_memoryunion{unsignedstructv4l2_plane}Fail:FailureBuffertype(enumv4l2_buf_type-14Copyright©2013AllwinnerTechnology.AllRightsFail:FailurebuffertypeV4L2_BUF_TYPE_VIDEO_CAPTUREFail:FailurebuffertypeV4L2_BUF_TYPE_VIDEO_CAPTURE成一帧buffer数据的填入。Buffertype,indexandmemorymaptype(structv4l2_buffer*buf)structv4l2_bufferisthesameasVIDIOC_QUERYBUFFail:Failure应用程序根据index来识别buffer,此时m.offset表示bufferBuffertype,indexandmemorymaptype(structv4l2_bufferFail:FailureBuffertype(enumv4l2_buf_type-15Copyright©2013AllwinnerTechnology.AllRightsFail:FailureControlFail:FailureControlidandvalue(structv4l2_queryctrlstructv4l2_queryctrlenumname[32];/*Whatever*/minimum;/*Notesignedness*/Fail:Failuredefault_value以及步进step。Controlidandvalue(structv4l2_queryctrl*qc)ThesameasVIDIOC_QUERYCTRLFail:Failure-16Copyright©2013AllwinnerTechnology.AllRightsmaximum之间。Controlidandvalue(structv4l2_queryctrl*qc)ThesameasVIDIOC_QUERYCTRLFail:Failure-17Copyright©2013AllwinnerTechnology.AllRightsAndroid层模块介4.2.Android层模块介4.2.,要想CameraHAL的具体实现,只要正确的CameraHAL的代码能够兼容各种不同的摄像头模组,我们将一些camera.cfg文件来配置CameraHAL代码中通过读取camera.cfg来使用不同的模组.camera.cfg中定义分号开头为注释;基本格式为:key=value-18Copyright©2013AllwinnerTechnology.AllRights制造商和型号信息,exif告诉当前系统有几个摄像头,1,对在预们 么别两接头像的的开结备剩下的几项基本上都是基于模式为used_xxx:0表示系统不支持,1表示系统支持;如果系统支持,那么:key_default_xxx后的值表明默认的模式;在对在预们 么别两接头像的的开结备剩下的几项基本上都是基于模式为used_xxx:0表示系统不支持,1表示系统支持;如果系统支持,那么:key_default_xxx后的值表明默认的模式;在camera.cfg是必须配置的,其它都是可选项;;;;;;-19Copyright©2013AllwinnerTechnology.AllRights2Android系统中的摄像id号,id0如果有两个摄像头则后置摄像头id0,前置摄像头id为1 诉系统这个摄像头是前置还是,ndroid ,前头置 于ISP ( 头,通成常像在方0,向 90 头,驱 头.如 CSI上,时分 ;如备果结两点个 I接,口 ,此device_iddevice_id是对于两个摄像头共用 CSI接口时用于 ,device_id为0是头默用认的打头;device_id为1则 头;;;;;;;;;;;;;;;-20Copyright©2013AllwinnerTechnology.AllRights;;;;;;;;;;;;;;;-20Copyright©2013AllwinnerTechnology.AllRights; ; =; 续nion将这两个去==-21Copyright©2013AllwinnerTechnology.AllRights;;;;;;;;;;;;-22Copyright©2013Allwinner;;;;;;;;;;;;-22Copyright©2013AllwinnerTechnology.AllRights ==-23Copyright©2013AllwinnerTechnology.AllRightsmedia_profiles.xml用于配置录像参数拿到一个模板后,只需要修改几处地方即可典型的对于双摄像头如下分了两段分别配置后置摄像头cameraId="0"和前置摄像头这里需要根据实际摄像头参数修改下面例子中高亮标注的地方media_profiles.xml用于配置录像参数拿到一个模板后,只需要修改几处地方即可典型的对于双摄像头如下分了两段分别配置后置摄像头cameraId="0"和前置摄像头这里需要根据实际摄像头参数修改下面例子中高亮标注的地方-24Copyright©2013AllwinnerTechnology.AllRightsEncoderProfile录像质量,在Android2.3中必须要配置两项”low””highAndroid4.0”1080p”,”720p”,“480p”,我们为了兼容以前的配置,扩展了支持”low”和”high”,此外Android4.0中支持了延时录制模式,其关键字分别是在正常模式前加上”timelapse”,例如”编码格式,这里为”h264”通常说的视频文件的码率,码率越高,(视频)越清晰,音质(音频)越高,width,录像文件的分辨率,视频文件的帧率,实际的帧率需要与摄像头采集帧率声音的采样率,采样率越高,音质越好;声音的通道数,ImageEncoding是指拍照的质量,分别对于及精细,-25Copyright©2013AllwinnerTechnology.AllRights-26Copyright©2013AllwinnerTechnology.AllRights-27Copyright©2013AllwinnerTechnology.AllRights-----28Copyright©2013AllwinnerTechnology.AllRights-29Copyright©2013AllwinnerTechnology.AllRights5.模块体系结构描JavAndroidListener决定callback对BindBind帧两个去向:调用显示接口进行通过回调函数传给Linu5.1Camera模块的基本结对于系统开发人员来说,只需要实现上图中右下角的部分,我们称为在Android中,CameraHAL层的框图如下:CameraHAL层5.模块体系结构描JavAndroidListener决定callback对BindBind帧两个去向:调用显示接口进行通过回调函数传给Linu5.1Camera模块的基本结对于系统开发人员来说,只需要实现上图中右下角的部分,我们称为在Android中,CameraHAL层的框图如下:CameraHAL层camera_modullecamera_deviicecamera_deviice_op-hw_device_tcommon-camera_device_ops_t*ops-hw_module_tcommon-camera_module_t*mModule+get_number_of_cameras(+get_camera_info(+onFirstRef(+connect(-void*privHALCameraF-CameraHardware**mHardwareCameras-hw_module_methods_tmCameraModuleMethods-camera_device_t*mDevice-camera_preview_windowmHalPreviewWindow-sp<ANativeWindow>mPreviewWindow-sp<CameraHardwareInterface>mHardware-sp<CameraService>mCameraService-sp<ICameraClient>mCameraClient-staticcamera_device_ops_t+intget_number_of_cameras(+intget_camera_info(+intdevice_open(+status_tinitializehw_module_t*module)(camera_previiiew_wiiindpreviiiew_stream_op-preview_stream_opsnw-void*user5.2CameraHAL层的框-30Copyright©2013AllwinnerTechnology.AllRightshw_modulle_methods+open chw_deviice-hw_module_t*m+close(hw_modulle-hw_module_methods_t*methods-constchar*name-constcharidhardwhw_get_module(hw_get_moduleby_class(+load(V4L2CedarXHWPrevieCameraTakeClient频Camer根NativeNativeAPICameraJAVACameraService中创建CameraHardwareInterface实例;CameraHardwareInterface对象调用camera_module_t的接口open,获取hw_device_t对象,赋值所有的camera_device_ops_t中的函数指针;Android4.1中CameraHAL实现的结构图CameraService中创建CameraHardwareInterface实例;CameraHardwareInterface对象调用camera_module_t的接口open,获取hw_device_t对象,赋值所有的camera_device_ops_t中的函数指针;Android4.1中CameraHAL实现的结构图如下:LCam造函数中实例化mer对a象HardwarneCameraHardwareDeice-camera_device_ops_tmDeviceOps-CameraParameters-PreviewWindowmPreviewWindow-V4L2CameraDevice*mVPreviewW-preview_stream_ops*mPreviewWindowOp操mHardwcaarm_iee]dCrc-aao>mnenre(adcset[v)Ci;acmeer-CameraHardware*mCameraHAL-PreviewWindow*mPreviewW-CallbackNotifier*ev=i&ccoen5.3CameraHAL实现的结构-31Copyright©2013AllwinnerTechnology.AllRightscemn-CameraHardware**-hw_module_methods_tmCameraModuleMethods+intget_number_of_cameras(+intget_camera_info(+intdevice_open(H的Chw_module_m+open(camera_devic-hw_device_tcommon-camera_device_ops_t*ops-void*privraFactor6.块调试 开摄“ 错信 如打6.块调试 开摄“ 错信 如打adb工具进行查看,一些简单的adb的命令如下所示:看ls不cat或者是使用串口查看内配查载原因sys_config1.fex置-32Copyright©2013AllwinnerTechnology.AllRights7.This(A20Camera块istheoriginalworknd7.This(A20Camera块istheoriginalworkndcopyrightedpropertyofTechnology(“Allwinner”).ReproductioninwholeorinpartmustobtainthewrittenapprovalofAllwinnerandgiveclearacknowledgementtothecopyrightowner.TheinformationfurnishedbyAllwinnerisbelievedtobeaccurateandreliable.Allwinnerreservestherighttomakechangesincircuitdesignand/orspecificationsatanytimewithoutnotice.Allwinnerdoesnotassumeanyresponsibilityandliabilityfo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年人工智能技术应用及发展趋势测验题
- 2026年人工智能算法与模型构建练习题
- 2026年教育学考研题目解析教育心理学与实践
- 职业性眼病监护与视觉功能评估
- e级教练员课件
- 全国质量工作部际联系会议制度
- 2026年ESG信息披露与透明度考试题集
- 2026年厨师职业技能鉴定考试题库及答案参考
- 儿童游乐场运营合同2025年
- 2026年国际汉语教师资格考试题库汉语教学理论与实践
- 民法典与生活同行宣传手册
- 财务调账管理办法
- 老年医学科老年综合评估表
- 销售内勤年终总结
- 妊娠合并梅毒治疗指南
- 共线清洁验证方案
- 亚马逊运营广告培训
- 北方工业集团 笔试题目
- 环境监测机构质量保证制度
- 酒店消杀方案
- 当前消费者权益保护工作中出现的新情况新问题与对策建议百度文剖析
评论
0/150
提交评论