【Camera】手机Camera开发相关岗位简介及学习小目标

安卓相机系统架构与对应岗位

================================================================================================

1.camera开发涉及岗位:

  • 安卓相机应用开发:camera application (camera UI)          ====》安卓应用层与应用框架层
  • 相机系统开发(算法集成):camera system                      ====》安卓HAL层与整个系统框架
  • 相机效果调试:camera tuning (camera ISP/3A 调试)         ====》安卓HAL层
  • 相机驱动:camera driver                                                      ====》安卓kernal层

岗位之间的区别:camera驱动工程师与camera tuning工程师的区别在哪,职位核心价值又是什么

================================================================================================

2.大概的任职要求:

(1)熟练掌握C/C++、Java等编程语言以及Linux的使用

(2)负责联发科或高通平台手机项目Camera HAL及frameworks的开发和维护、

(3)负责三方算法的导入、集成及性能优化,例如美颜、暗光、HDR、Bokeh(虚化)、AI等

(4)负责处理相机平台相关bug、能够与组员、领导、算法提供厂商的进行良好沟通

(5)熟悉Camera数据/控制Pipeline,能够独立解决Camera功能适配移植等问题

(6)熟悉常用三方算法的基本原理,如美颜,Bokeh(虚化),多帧降噪等

(7)对camera 3A知识有基本的了解

(8)撰写相应的开发文档 

3.Camera根据Android 架构从上至下可分为:

    1)Applications: 最上层的应用,编译后生成Camera  APK;(Android UI)

    2)Application Framework: 主要为Applications提供API;   (Java)

    3)JNI(Java Native Interface: 使Application Framework和Libraries可交互;  (C/C++与Java交互)

    4)Libraries: 包括Camera Framework和Camera Service.(C/C++)

    5)HAL (Hardware Abstraction)硬件抽象层, 用来链接driver和 Camera Service; (C/C++)

    6) 驱动层:含linux内核(C)


4.学习camera的小目标:

  • 通过高通或者联发科(MTK)官网上的文档,进行相机架构与HAL层的学习。
  • 初步了解算法集成的基本思路
  • 学习MTK平台下,camera open的基本工程
  • 单帧算法集成的学习
  • metadata参数的学习
  • 独立集成一个预览算法
  • 独立集成一个多帧拍照算法
  • 学习MTK平台Plugin算法流程
  • 尝试进行美颜、暗光算法的流程