我与相机
文章平均质量分 89
主要讲述我近年相机相关研发的一些思考和展望
星空梦想plus
上九天揽月,下五洋捉鳖
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Camera performance analysis
性能优化在设计软件设计中具有重要意义,对产品的UE至关重要,我们的目标就是打造优秀的相机使用体验,如系统相机软件,以及三方软件使用相机接口,调用系统相机等使用场景都需要尽可能覆盖到。此外需要提一下的是,功耗优化有些相似之处,有些方向是可以借鉴的,这篇文章就先这样,作为一个引子进行记录。原创 2025-08-23 20:07:59 · 1014 阅读 · 0 评论 -
Camera open failed
由前面的几篇博客可以知道,openCamera,createCaptureSession,setRepeatingRequest,capture是非常重要的过程,如果其中一个环节出了问题时该如何分析呢,首先我们从打开相机流程时,打开相机失败了的情况进行讲述说明。注:以下是需要说明的系统源码(源码皆来自谷歌Android12源码,如需要下载对应源码,可根据我之前的博客进行下载。浅谈Android12系统源码下载。原创 2025-08-11 23:46:26 · 1057 阅读 · 0 评论 -
Android Camera capture
整个过程中,Framework 层负责元数据的序列化和跨进程传递,HAL 层通过解析元数据中的具体值(1 对应 PREVIEW)来区分请求类型,最终路由到对应的处理逻辑,本章就说这么多了,其他的如驱动控制,数据编码,数据回传等后面有空再搞了,困了。想了下还是挤挤时间,把相机这基础流程写完吧,前面每篇写的都还是挺耗时的(就是累了,想偷偷懒,哈哈哈哈),那接着前面的几篇文章,给这一些列写上一个中规中矩的结局吧~→ 驱动层(传输数据)→ HAL层(写入缓冲区)→ 框架层(通知应用)→ 应用层(读取/保存数据)原创 2025-07-29 00:15:25 · 589 阅读 · 0 评论 -
小谈相机的学习过程
摘要: 本文分享了博主五年来在Android系统相机开发领域的成长历程。从最初对相机功能的探索(LV1),到深入理解相机服务、3A算法及问题调试(LV2),再到独立完成横屏相机适配和深度定制化开发(LV3)。随后转向硬件结构研究,投入专业摄影学习并探索手机相机发展方向(LV4)。目前已能熟练排查各类相机异常,进行性能优化(LV5),并开始研究未来Android相机的创新方向,包括模组优化、算法丰富等(LV6)。文章展现了从软件层到硬件层的完整认知发展路径,体现了持续学习和技术探索的精神。原创 2025-07-19 17:50:06 · 820 阅读 · 0 评论 -
Android Camera setRepeatingRequest
终于算是告一段落了,后面有时间再优化一下,目前先这样,此文仅仅是了解起预览的过程,再后面就是拍照和录制视频流程了,看了前面的几章,我们基本了解相机子系统了。原创 2025-07-25 22:41:35 · 1307 阅读 · 0 评论 -
Android Camera createCaptureSession
前面openCamera的时候带了一个很重要的参数,也就是mStateCallback,他的作用是用来监听camera open成功失败的一个回调的,当open成功的时候就可以在onOpened()回调里面实现创建捕获会话了,当然如果失败了也会在onError()回调里面实现提示打开相机失败相关提示给用户。正常我们相机肯定不仅仅作为预览的,肯定默认是带了拍照功能的,除此之外还有另一种情况的,比如既有预览,也有录像功能的,一般录像还会存在快照功能的,也就是所谓拍照的功能。原创 2025-07-24 19:41:40 · 1493 阅读 · 0 评论 -
Android Camera openCamera
HAL端也就是从这里进入内核,调用驱动来处理的,这里的逻辑是通过do/while循环来处理的,有一个重试机制,重试次数n_try不断的减小,当它等于0时,相机设备还未正常打开,就退出do/while循环了,它的初值为MM_CAMERA_DEV_OPEN_TRIES,该宏定义的值为20, (my_obj->ctrl_fd >= 0)的意思是就camera打开成功,返回的FD有效;(n_try <= 0 )意思是重试次数已用完,打开成功后,还要进行一些其他初始化的操作。原创 2025-07-23 21:38:33 · 1390 阅读 · 0 评论
分享