当前位置: 首页 > web >正文

小谈相机的学习过程

前言
博主本人并非专职相机开发,还涉及系统的其他几个模块,虽然都属于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.xdnf.cn/news/15852.html

相关文章:

  • Linux_基础指令(一)
  • windows docker-02-docker 最常用的命令汇总
  • JMeter 元件使用详解
  • 统计学习方法的三要素
  • 深入了解 find_element 方法:Web 自动化定位元素的核心​
  • Codeforces Round 1037 (Div. 3)(补题)
  • 前端面试专栏-工程化:27.工程化实践(CI/CD、代码规范)
  • 六种经典排序算法:从原理到 Java 实现
  • Linux系统之kbdrate 命令详解
  • Linux:多线程---深入生产消费模型环形队列生产消费模型
  • STM32
  • 泛型机制详解
  • Linux系统日志管理入门:journalctl命令完全指南
  • Go语言实战案例-判断一个数是否为质数
  • 路由器的Serial 串口理解
  • 【安卓笔记】RxJava的Hook机制,整体拦截器
  • AWS Partner: Sales Accreditation (Business)
  • 从零构建监控系统:先“完美设计”还是先“敏捷迭代”?
  • 智能点餐推荐网站,解决选择困难
  • AE PDW2200电源射频手侧使用安装说明含电路图
  • 谷歌地球与ArcGIS Pro查看三维地形
  • 深入解析Linux文件描述符:原理、机制与应用实践
  • 使用 C# 实现移动加权平均(Weighted Moving Average)算法
  • js中 new Set()实例的各个api使用
  • Java学习------ConcurrentHashMap
  • Honeywell霍尼韦尔DV-10 变速器放大器 输入 15-28 VDC,输出 +/- 10VDC 060-6881-02
  • 【53】MFC入门到精通——MFC串口助手(二)---通信版(发送数据 、发送文件、数据转换、清空发送区、打开/关闭文件),附源码
  • 软件维护全维度解析:从修复到进化的生命周期管理
  • mave手动下载某个依赖,到本地库
  • IP协议深入理解