前言
相机这里和后面都讲的是Android相机哈,后面不在赘述!
相机架构的发展
Android相机版本更迭主要表现为
1.相机子系统框架:
ap层以及fw层:Camera API版本更新(Camera API1 -> Camera API2)
hal层:Camera HAL版本更新(HAL1 -> HAL2 -> HAL3), 并且 8.0 新增了HIDL调用
drv层:增加更多的功能并且丰富相机算法
2.相机软件UI的变更,这边不关注Android 9前面的UI,Android9,10为一个UI版本,Android11,12的UI为一个版本,UI的更新可以发现与各大厂商的更新基本一致,这个更新可以参考谷歌相机。
特别注意:谷歌相机和Android原生相机不是一样的,前者是谷歌手机一大卖点,不开源的哈,内地厂家会为了秀自家的技术会更新相机软件的功能,性能,效果等。
相机方案的发展
相机应用camera1 一般对应着api1,camera2对应api2,发展过程中由于各家厂家支持力度可能出现下面各种现象
1.API1 调用 HAL1
2.API1 调用 HAL3
3.API2 调用 HAL1
4.API2 调用 HAL3
1是camera刚开始最主流的使用方案,2,3是在兼容hal3过程的发展方案
4是目前的主流方案
hal的小结
相机hal的官方解释:
https://source.android.google.cn/devices/camera/camera3
这边小结了下:
Camera HAL1
相机子系统的第 1 个版本被设计为三种运行模式的黑盒子,三种模式具有略有不同又相互重叠的功能。这样就难以实现介于其中两种运行模式之间的新功能,例如连拍模式。
Camera HAL3
大幅提高应用对于 Android 设备上的相机子系统的控制能力,版本 3 相机子系统将多个运行模式整合为一个统一的视图,您可以使用这种视图实现之前的任何模式以及一些其他模式,例如连拍模式,并且这种简化的视图还能够使应用开发者更轻松地使用相机的各种功能。
其他
由于每个厂家的hal层,底层驱动和算法实现大不相同,但也规范于Android原生设计,相机是真的有趣!
本文介绍了Android相机从API1到API2的发展,以及HAL1到HAL3的升级,详细阐述了不同API调用HAL的情况。重点讨论了CameraHAL1的局限性和CameraHAL3的增强功能,如统一视图和连拍模式。同时指出,各厂家在HAL层的实现差异导致了功能和性能的不一致性。

687

被折叠的 条评论
为什么被折叠?



