小谈相机的学习过程

前言
博主本人并非专职相机开发,还涉及系统的其他几个模块,虽然都属于owner,但是都还在学习探索的一个过程,自认为掌握还不够细致,此篇文章仅梳理,总结,印证自己近五年相机模块的一个学习过程,以及对后续相机学习的一个方向,讲的也是比较宽泛,后续有空的话会考虑挑几个实用且常见的一些应用流程详细讲一下,但也希望能挤出时间来,博主实在太忙了~

1.Camera LV1
我最早接触的相机肯定是高通Android系统相机,刚接触的时候我便对它产生了浓厚的兴趣,为啥可以有这么多有趣的功能,轻轻点一下按钮,怎么就能将空间时间都定格放到了图片,视频里了呢,这也太神奇了吧,这是怎么做到的啊,我开始了解相机是由什么组成的,当然是从软件层开始了解它,软件层的相机是由什么组成的呢,慢慢的我把他大致分成拍照和录像两大模块,按照功能区分,拍照是怎么拍照的呢,录像是怎么录像的呢,但这些都离不开相机的openCamera,startPreview的过程,不断去细扣源码,从上层到底层,并将所能接触到的平台所有相关的知识进行疯狂汲取,对所有能认识的同学积极请教,学习和分享,这大概是我最初时间里快速成长的原因之一,再后来从A8到A15系统升级,相机不同平台和硬件兼容适配,逐渐加深对系统相机的认识。

2.Camera LV2
这个时候非常熟悉的了解软件层的相机启动的过程,慢慢了解到相机软件与相机服务的联系,相机3A,NR,EE等算法原理,还有美颜这些常见算法,开始熟悉相机效果调试,了解主观测试,客观测试;实现相机服务定制相关需求;开始熟悉相机debug的一些方式,相机遇到的一些问题的定位,例如灰屏,红屏,闪屏,花屏,相机无法连接,相机崩溃,以及各类三方应用调用提供support以及fix方案;为业务相机组件以及测试相机调试提供技术支撑,解决所遇到的各种Camera技术屏障。

3.Camera LV3
这个阶段我开始研究并设计系统相机横屏方案,因为原生平台相机是基于竖屏开发的,最终独立完成将竖屏相机适配成横屏相机,大幅优化用户使用体验;又或者将谷歌原生的相机深度定制化,实现基于产品需求客制化系统相机应用落地,这两个成熟系统相机设计方案目前都以上线,上线多年目前看市场反应良好,几乎没有相关的用户反馈和投诉,获得了市场和用户的广泛认可。

4.Camera LV4
这个阶段得我非常痴迷相机的硬件结构,也就是相机硬件的组成部分,相机成像的原理,这个时候也是斥巨资买了专业数码相机,在图书馆花了近一年半的时间学习并实践各种专业摄影技术,省图书馆相关的书籍也是被我几乎翻了个遍,在此期间,也是开始探索手机相机硬件,软件未来的发展方向。

5.Camera LV5
这个时候我能熟练的排查相机的各种问题了,从上至下,定位相机本身的各种异常,以及三方应用调用相机时候出现的各种异常问题快速分析定位并解决,开始着手相机性能优化,以及功耗优化的探索,在此期间通过探索上述优化,不断提升用户使用体验。

6.Camera LV6
这个阶段开始潜心钻研未来Android相机的发展,例如聚焦后续相机的模组的优化方向,相机sensor的硬件提升方向,更丰富的相机算法,相机软件提供更多实用且便捷的创新功能等。相机一直在旗舰手机里面作为一个关键的核心卖点,所以摸清相机的发展方向是很重要的,最重要的还是创新能力,探索精神,我也是很期待未来手机相机出色表现,科技带来的不一样的风景,所见即所得,所想即所得~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915213.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915213.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS7 内网服务器yum修改

1、首先确定的内网服务器是有yum源代理服务器的2、修改 /etc/yum.conf 配置文件,增加代理ip和端口号proxyhttp://ip.ip.ip.ip:port3、备份源是文件sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak4、修改配置文件 vi CentOS-Base…

基于单片机自行车自动防盗报警系统设计

摘 要 本文阐述了自行车防盗报警系统原理,介绍如何用stc89c52单片机实现防盗报警,分析各个部分的工作原理,并给出了原理图和源程序。此设计电路由震动传感器、单片机、无线超再生发射/接收电路、LED显示器和蜂鸣器组成。由于超再生接收是一种…

【深度学习】神经网络反向传播算法-part4

七、反向传播算法反向传播Back Propagation 简称 BP 。 训练神经网络的核心算法之一,通过计算损失函数,相对于每个权重参数的梯度,来优化神经网络的权重1. 前向传播前向传播是把数据经过各层神经元的运算并逐层向前传输,知道输出层…

CTF之服务器端模板注入(SSTI)与赛题

概念定义服务器端模板注入(Server-Side Template Injection)服务端接受攻击者的输入,将其作为Web应用内容的一部分,在进行代码编译渲染的过程中,进行了语句的拼接,执行了所插入的恶意内容,从而导致信息泄露、代码执行、…

除了某信,就是这款软件来替代了!

引言 哈喽,我是小索奇。有时候会有一个普遍的需求,想在几个设备之间传个文件或者发个消息,除了微信,想一想你还能用什么软件? 今天就是为了解决这个问题,给大家介绍一款软件 Localsend 来解决。 内容模块…

Vue2.x封装预览PDF组件

一、为什么用PDFObject插件? PDFObject 是一个轻量级的 JavaScript 库,主要用于在网页中嵌入和预览 PDF 文件。它通过简单的 API 调用,可以在浏览器中实现 PDF 文件的显示,而无需依赖任何插件。以下将详细介绍 PDFObject 的特点、…

undefined reference to ‘end‘

相关问题: 一、undefined reference to _exit undefined reference to ‘end‘ warning: _close is not implemented and will always fail 一、环境: ubuntu24.04实体机、 arm-none-eabi-gcc gcc version 13.2.1 20231009 (15:13.2.rel1-2) 二…

nginx定制http头信息

修改http响应头信息,相关Nginx模块:ngx_http_headers_moduleexpires语法:expires [modified] time;expires [modified] time;默认值:expires off;作用域:http, server, location, if in location用途:控制缓…

主机安全---开源wazuh安装

Wazuh 简介 Wazuh 是一款免费开源的终端安全监控平台,支持威胁检测、完整性监控、事件响应和合规性管理,适用于企业级安全运维场景。其核心组件包括: Wazuh Indexer:基于 OpenSearch 的日志存储与检索组件。Wazuh Server&#x…

GaussDB 数据库架构师修炼(四) 备份容量估算

1 影响备份容量关键要素业务总数据量备份数据保留周期备份周期备份数据的压缩比平均每天的新增数据量平均每天新增日志数据量2 备份容量的估算方法公式备份容量C = 自动全量备份容量C1 + 自动差量备份容量C2 + 自动日志归档 容量C3 &#xff…

《R for Data Science (2e)》免费中文翻译 (第0章) --- Introduction

写在前面 本系列推文为《R for Data Science (2e)》的中文翻译版本。所有内容都通过开源免费的方式上传至Github,欢迎大家参与贡献,详细信息见: Books-zh-cn 项目介绍: Books-zh-cn:开源免费的中文书籍社区 r4ds-zh-cn…

如何 ASP.NET Core 中使用 WebSocket

如何在 ASP.NET Core 中使用 WebSocket在现代 Web 应用程序中,WebSocket 连接非常流行且使用率极高。它可以帮助企业满足数字环境需求,并处理来自最终用户的实时数据。它还能提升生产力、输出率和用户体验。如果您还没有使用 WebSocket,那么您…

Python之--元组

定义是 Python 中内置的不可变序列。在 Python 中使用()定义元组,元素与元素之间使用英文的逗号分隔。元组中只有一个元素的时候,逗号也不能省略。元组的创建方式(1)使用()直接创建元…

工业相机GigE数据接口的优势及应用

工业相机不同的数据接口适用的应用场景也不同,选择合适的数据额接口,可大大提高效率。今天我们来看看常见的GigE接口的优势及应用。基于GigE Vision标准的千兆以太网(GigE)相机通过提供快速、灵活且成本效益高的成像解决方案&…

【53】MFC入门到精通——MFC串口助手(二)---通信版(发送数据 、发送文件、数据转换、清空发送区、打开/关闭文件),附源码

文章目录1 完整 功能展示2 添加控件变量及声明2.1 添加控件及变量2.2 SerialPortDlg.h: 头文件3 函数实现3.1 数据发送3.1.2 写数据、字符串转3.2 发送文件3.2.1 打开文件3.2.2 发送文件3.3 清空发送区4 完整MFC项目项下载1 完整 功能展示 串口通信助手 页面展示,功…

算法学习笔记:27.堆排序(生日限定版)——从原理到实战,涵盖 LeetCode 与考研 408 例题

堆排序(Heap Sort)是一种基于二叉堆数据结构的高效排序算法,由计算机科学家 J. W. J. Williams 于 1964 年提出。它结合了选择排序的思想和二叉堆的特性,具有时间复杂度稳定(O (nlogn))、原地排序&#xff…

I/O 多路复用select,poll

目录 I/O多路复用的介绍 多进程/多线程模型的弊端 网络多路复用如何解决问题? 网络多路复用的常见实现方式 常见的开源网络库 select详细介绍 select函数介绍 套接字可读事件,可写事件,异常事件 fd_set类型介绍 select的两次拷贝,两次遍历 se…

最终分配算法【论文材料】

文章目录一、最终分配算法1.1 平衡的情况1.2 不平衡的情况1.3 TDM 约束一、最终分配算法 上一步合法化后,group 的 TDM 情况大致分为两类,一类是平衡的,最大的一些 group 的 TDM 比较接近。另外一种情况就是不平衡的,最大的 group…

《大数据技术原理与应用》实验报告七 熟悉 Spark 初级编程实践

目 录 一、实验目的 二、实验环境 三、实验内容与完成情况 3.1 Spark读取文件系统的数据。 3.2 编写独立应用程序实现数据去重。 3.3 编写独立应用程序实现求平局值问题。 四、问题和解决方法 五、心得体会 一、实验目的 1. 掌握使用 Spark 访问本地文件和 HDFS 文件的…

机器学习漫画小抄 - 彩图版

斯坦福机器学习漫画小抄,中文版来啦! 下载地址: 通过网盘分享的文件:机器学习知识点彩图版.pdf 链接: https://pan.baidu.com/s/1-fH9OpC_u_OrTqWy6gVUCA 提取码: 246r