Android O Camera深度研究

目录

Adnroid O之前的Android camera软件框架

Adnroid O camera软件框架

Passthrough Mode 

Binderized mode

Wrapper shim for libhardware HALs

Wrapper shim for libhardware HALs

Customized Treble Camera HAL/framework

Camera HAL transition and removal plan

Camera HAL transition and removal plan

Other camera framework changes

Android O metata生成方式

FrameWork HAL1 HAL3

Vendor tag及Flash相关

What is Camera ITS?

Camera framework plans  for future releases​​​​​​​


Adnroid O之前的Android camera软件框架

Adnroid O camera软件框架

Passthrough Mode 

Binderized mode

Wrapper shim for libhardware HALs

1.  Google will provide a wrapper shim layer to adapt libhardware camera HAL implementations to the new HIDL interface.

2.  Google will provide wrapper shim for both HAL1.0 and HAL3.2~HAL3.4

        2.1 HIDL ICameraDevice@1.0 maps to libhardware HAL1.0

        2.2 HIDL ICameraDevice@3.2 maps to libhardware HAL3.2 ~ 3.4

        2.3 HIDL ICameraProvider@2.4 maps to libhardware module 1.0 and 2.4

3.  Partners can use the wrapper shim if you do not have customized HAL API in your code

4.  For partners who do have customized HAL APIs, they must implement customized HIDL HAL to add these APIs back. Some parts of wrapper shim source code might still be relevant. Feel free to reuse  them.

Wrapper shim for libhardware HALs

Customized Treble Camera HAL/framework

Camera HAL transition and removal plan

1.  Android O

        1.1 Newly launched devices can still implement HAL1.0, but have to be running binderized mode

        1.2 Upgraded device can be HAL1.0 and run passthrough mode

2.  Android P and Q

        2.1 Newly launched device must implement HAL3 in binderized mode

        2.2 Upgraded devices can still be HAL1.0(and run in whichever mode in launch)

3.  Android R

        3.1 HAL1.0 support will be removed entirely

Camera HAL transition and removal plan

Other camera framework changes

1.  Libhardware modules/device API version no longer supported

        1.1  Module 2.0 ~ 2.3

                It should be fairly easy to upgrade from 2.0 ~ 2.4

                The only required API addition in 2.4 is torch API, which saves significant power in flashlight use  case.

        1.2  Device 3.0 ~ 3.1

                No one should be using these version as far as we know.

        1.3 ZSL feature in API1 <-> HAL3 shim Was implemented via deprecated “bidirectional” stream tyep, which will be removed in HIDL HAL.  

                Switch to PRIVATE_REPROCESSING interface in Android O if you want to keep this feature working

Android O metata生成方式

Overview:

        The camera.metadata interface is used by the Android camera service, camera provider and camera device to retrieve static camera information and issue camera capture controls.

File path:

        android/hardware/interface/camera/metadata/3.2/types.hal

生成文件

        android/hardware/camera/metadata/3.2/types.h

Docs:

        The docs.html for each version for the detailed description of each metadata Android/system/media/camera/docs/docs.html

FrameWork HAL1 HAL3

FrameWork对HAL1/HAL3的接口控制下移到interface层进行配置定义。

文件路径:

        Android/hardware/interface/camera/device/1.0 or 3.2

        其中目录下的type.hal定义接口会使用到的类型定义

生成文件路径:

        Android/hardware/camera/device/3.2/type.cpp,CameraDeviceAll.cpp,CameraDeviceCallbacAll.cpp,CameraDeviceSessionAll.cpp     

        Android/hardware/camera/devcie/3.2/ICameraDevice.h, BnCameraDevice.h,BpCameraDevice.h …

PS:编译器加载libhwbinder.so生成各文件,之后Framework通过hwbinder与生成的中间文件进行交互。

Vendor tag及Flash相关

Vendor tag及Flash接口定义文件:

        Android/hardware/interface/camera/provider/2.4 (API Version)

Overview:

        The camera.provider HAL is used by the Android Camera service to discover,query, and open individual camera devices.

        It also allows for direct control of the flash unit of camera device tha have one, for turning on/off  torch mode.

File

        ICameraProvider.hal    ICameraProviderCallback.hal

API

        setCallback    getVendorTags    cameraDeviceStatusChange       torchModeStatusChange …

@2.4

        First HIDL version of the camera provider HAL.

What is Camera ITS?

1.  CameraITS(ITS) is part of Android Compatibility Test suite (CTS)

        Includes all tests the require verifying image content

        Required for all Android partners

2.  Running ITS currently a very manual and time-consuming process

3.  List of parts provided to partners

        White photo box,tripod,charts,LED lamp

4.  Multiple manual scenes

        scenes[0, 1, 2, 3, 4, 5]

5.  Function tests, not performance metrics

        Timestamps, exp/gain, crop/rotation, 3A, etc.

Camera framework plans  for future releases

 1.  Continue delivring new features and optimization for Camera2 and HAL3 in upcoming Android releases.

2.  Onging test coverage and infrastructure improvements.

3.  API1(deprecated) will continue to exist, working with HAL3 shim.

4.  Middleware/SuperHAL layer remains on our future roadmap to better isolate OEM and SoC logics.

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

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

相关文章

Android精通值Fragment的使用 —— 不含底层逻辑(五)

1. Fragment 使用Fragment的目标&#xff1a;根据列表动态显示内容&#xff0c;更简洁显示界面、查找界面 eg. 使用新闻列表动态显示新闻 1.1 Fragment的特性 具备生命周期 —— 可以动态地移除一些Fragment必须委托在Activity中使用可以在Activity中进行复用 1.2 Fragmen…

新鲜速递:图解新颖LLM的CoPE位置编码

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调重新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提供了大模型领域最新技…

基于docker的oracle12.2.0.1部署及oracle使用与docker镜像容器制作迁移方法

基于docker的oracle12.2.0.1部署及oracle使用与docker镜像容器制作迁移方法 本文介绍了基于docker的oracle12.2.0.1部署&#xff0c;包含了oracle基本配置、监听器和实例启动方法、PDB和CDB操作方法、表空间建立和用户数据库建立、常见启动问题解决等&#xff0c;并介绍了镜像制…

二、go微服务项目“商城项目实战开发”第二步grpc和gin的直连调用

文章目录 商城项目实战开发-GRPC和GIN的直连调用01、本次课程微服务的技术栈02、用户服务接口定义和实现登录1、密码问题01、MD5的方式02、加盐的方式03、动态盐04、使用加盐框架passwordEncoder2、用户服务接口的暴露3、Grpc的实现步骤1.定义暴露接口2.编写user的调用文件3.编…

YOLOv8_obb预测流程-原理解析[旋转目标检测理论篇]

YOLOv8_obb的预测流程,主要分预处理模块、推理模块和后处理模块。这里面有很多内容是和目标检测预测流程是重合的,主要区别在于Angle分支、NMS后处理以及regularize_rboxes部分。本文也主要介绍一下这三个模块,其他模块可以结合YOLOv8预测流程-原理解析[目标检测理论篇]一起…

【TensorFlow深度学习】卷积层变种与深度残差网络原理

卷积层变种与深度残差网络原理 卷积层变种与深度残差网络&#xff1a;探究卷积神经网络的进化与优化策略卷积层&#xff1a;深度学习的基石变种与卷积层变种深差网络&#xff1a;深度网络的优化策略实战代码示例&#xff1a;ResNet模块实现结语 卷积层变种与深度残差网络&#…

vue.config.js中,devServer对象用于配置开发服务器的行为

devServer: {hot: true, // 启用模块热替换&#xff08;Hot Module Replacement&#xff0c;HMR&#xff09;。liveReload: true, // 启用页面自动刷新。当热更新失败时&#xff0c;将回退到页面自动刷新。open: true, // 启动服务器后自动打开浏览器。port: 8080, // 设置开发…

linux内核splice方式实现零拷贝

splice() splice函数是linux系统提供的高级I/O函数&#xff0c;同sendfile系统调用函数一样&#xff0c;也是零拷贝操作函数。splice函数用于在两个文件描述符之间的移动数据。 函数原型: #include <fcntl.h> ssize_t splice(int fd_in, loff_t *off_in, int fd_out, …

免费SSL证书的安全性与获取指南

SSL证书是一种数字凭证&#xff0c;用于加密用户与网站之间的信息交换&#xff0c;以确保传输的数据不被第三方窃取。它像是一个数字版的密封印章&#xff0c;为数据的传输过程提供了一层保护膜。 免费的SSL证书通常由CA机构提供&#xff0c;它们同样可以提供基础数据的加密服…

16.Redis之Redis事务

1.MySQL 事务 原子性: 把多个操作,打包成一个整体了 一致性: 事务执行之前,和之后,数据都不能离谱~ 持久性: 事务中做出的修改都会存硬盘 隔离性: 事务并发执行,涉及到的一些问题~~ 2.Redis事务 2.1 认识Redis事务 • 弱化的原⼦性: redis 没有 "回滚机制". …

14、matlab中矩阵的赋值、调用、运算、范数和距离计算

1、矩阵赋值 1&#xff09;直接输入参数 代码&#xff1a; A[1 2 3 4 5;2 3 4 5 6]%矩阵赋值A 1 2 3 4 52 3 4 5 6 2)全一矩阵 代码&#xff1a; Cones(3:3)%全1矩阵C 1 1 11 1 11 1 1 3&#xff09;全零矩阵 …

.NET最新漏洞 | 某SLMS系统存在SQL注入

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

翻译《The Old New Thing》- How do I force the ECHO command to echo?

How do I force the ECHO command to echo? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20080403-00/?p22883 Raymond Chen 2008年04月03日 如何强制执行ECHO命令以进行回显&#xff1f; 简要 ECHO命令用于在命令行打印文本&#xff0…

统一预订,YonSuite商旅费控助力成长型企业“消灭报销”

在成长型企业快速发展的道路上&#xff0c;商旅管理作为连接企业内外的重要纽带&#xff0c;其效率与成本直接影响着企业的整体运营。面对日益增长的商旅需求&#xff0c;如何简化预订流程、降低管理成本、提高运营效率成为了成长型企业亟待解决的问题。用友YonSuite商旅费控以…

【权威出版】2024年新媒体、网络与电子商务国际会议(NMNE 2024)

2024年新媒体、网络与电子商务国际会议 2024 International Conference on New Media, Networking, and E-commerce 【1】会议简介 2024年新媒体、网络与电子商务国际会议即将召开&#xff0c;这是一次集结全球新媒体、网络与电子商务领域精英的学术盛会。 本次会议将深…

DPDK基础组件一(mbuf、ring、pktmbuf_pool)

一、rte_mbuf 此部分转自:https://zhuanlan.zhihu.com/p/616314276 1.mbuf结构 mbuf是报文中的描素的结构体,是整个转发过程中最核心的数据结构之一。主要针对于mbuf的常用API与基本原理做一个简单的介绍。 mbuf:报文内存存储结构,存储在mempool中mempool:使用环形缓冲…

Latex中论文常用的符号、公式、引用格式

内容符号 波浪号 ~&#xff1a;$ \sim $加减号 &#xff1a;$ \pm$点 &#xff1a;$ \cdot $乘号 ∗&#xff1a;$ \ast $约等于 ≈&#xff1a;$ \approx $≤ : $ \le $≥ : $ \ge $ 数学表示 下箭头 ↓ \downarrow ↓ &#xff1a;$ \downarrow $上箭头 ↑ \uparrow ↑: $…

Web安全:软件开发的安全问题与解决方案

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…

第三站:Java红——异常处理的热情与挑战

### 第三站&#xff1a;Java红——异常处理的热情与挑战 在Java编程的征途中&#xff0c;异常处理是无法绕过的“红色地带”&#xff0c;它充满了挑战&#xff0c;也饱含解决问题的热情。通过合理地使用异常处理机制&#xff0c;我们可以编写出更加健壮、容错性强的代码。本节…

jni调用so或dll区别

在Java中通过JNI&#xff08;Java Native Interface&#xff09;调用本地代码时&#xff0c;所使用的动态库文件扩展名&#xff08;如 .dll 对于Windows或 .so 对于Unix-like系统&#xff09;取决于你的操作系统和目标平台。 DLL&#xff08;Dynamic Link Library&#xff09;…