Android相机-HAL-Rockchip-hal3

引言:

对于Android相机的 HAL层而言对上实现一套Framework的API接口,对下通过V4L2框架实现与kernel的交互。不同的平台会有不同的实现方案。主要是对Android HAL3的接口的实现。看看rockchip是怎么支持hal3的?

代码目录:

hardware/rockchip/camera/

hardware/rockchip/camera_engine_rkisp/

基本架构:

3A控制则是通过control loop接口与camera_engine_isp交互。

其他的一些组件或功能的实现也会调用到其他一些第三方库:

cameraBuffer相关,调用到Gralloc

jpeg编码,调用到Hwjpeg

基本组件:

Camera hal3 中的模块主要包括 AAL 与 PSL。

AAL:

主要负责与 framework 交互,camera_module 与 API 接口实例 camera3_device_ops 在此模块定义。该模块对此 API 加以封装,并将请求发往 PSL, 并等待接收 PSL 返回相应数据流与控制参数。

PSL:

是物理层的具体实现,基中 gcss、GraphConifg、MediaController 主要负责配置文件 xml 的解析,底层 pipeline 的配置, ControlUnit 主要负责与 camera_engine_isp 的交互,以实现 3a 的控制, 并中转一些请求以及 Metadata 的处理收集上报。ImgUnit、OutputFrameWork、postProcessPipeline 则主要负责获取数据帧并做相应处理以及上报。 V4l2device、V4l2Subdevice 则是负责与 v4l2 驱动交互,实现具体的 io 操作

tunning xml

tunning 文件是效果参数文件

文件的命名方式 :<sensor_name><module_name><lens_name>.xml, 并将该文件 push 到板子的 /vendor/etc/camera/rkisp1 目录下。最终 3a 库会从该目录中读取符合规则的 tuning 文件。

调试 Raw sensor 数据通路时,也可先 bypass isp。。只需要将 sensor 类型设置为 SOC 即可,此时, tuning 文件可暂不配置。

camera3_profiles.xml

camera3_profiles.xml 中包含了多个 Profiles 节点,Profiles 节点包含一个 camera 完整属性列表。 开发 板上接了几个 sensor,即需要配置几个 Profiles 节点。

通过如下命令获取到相关的信息:

$ adb shell dumpsys media.camera

编译后生成库:

  1. Hal3 库: /vendor/lib/hw/camera.rk30board.so

  2. librkisp : /vendor/lib/librkisp.so

  3. 3a lib : /vendor/lib/rkisp//

  4. 配置文件: /vendor/etc/camera/

上述配置文件是通过预编译将/etc/camera 中的文件 copy 到 android out 目录。 当修改源码编译后, 只需 push camera.rk30board.so 即可, 如修改配置文件, 也只需要 push 相应配置文件

相关推荐
fellow9915 小时前
DSH Desktop - Android Edition
android·agent·deepseek·harness·dsh
Carson带你学Android15 小时前
Android Studio Rabbit 2 发布:除了Gemini,40+ AI Agent 正式入驻!
android·ai编程
三少爷的鞋1 天前
Java 线程自上而下,Kotlin 协程自下而上
android
好的佩奇1 天前
Dart 之增强枚举
android·flutter·dart
梦影_1 天前
MySQL进阶教程(五)—— SQL调优(下)
android·大数据·数据库·后端·sql·mysql·database
好的佩奇1 天前
蓝牙之无线电与通信距离
android·flutter·蓝牙
vilya1 天前
我把一套完整的 Python Agent 运行时塞进手机 APK:依赖闭包、Rust 轮子和三个真机坑
android
呆呆敲代码的小Y1 天前
【实战精选面试题】C# 面试题详细解答,按难易程度排序
android·java·游戏·c#·游戏开发·unity面试题·c#面试题
思想觉悟1 天前
SEAndroid实战
android·linux·c++
思想觉悟2 天前
Aosp开发磨刀石之ADB速查
android·c++