发布时间:2026/8/21 14:47:34
高通学习6--Camx (TODO) TODOhttps://github.com/quic/sample-apps-for-robotics-platforms/tree/master/RB1RB2/peripheral-devices/camera-hal3-sample高通处理器的相机系统尤其是从骁龙845/865、RB5 到 RB1/RB2 开始用的架构是极为复杂的整体链路从上到下可以分为 4 层第 1 层ROS 2 / 应用层你的业务代码比如调用 Camera 读取图像并发送 ROS2 话题。第 2 层Camera HAL3 Sample就是这个 GitHub 链接 这是一个应用层的 Demo或者是camera_server的简化替代品。它直接去调用 Android 标准的hardware/libhardware/include/hardware/camera3.h接口。它的角色是“消费者”通过发起processCaptureRequest()、配置流Streams强行向底层的硬件索要图像数据。第 3 层CamX高通的硬核核心真正的商业机密这才是真正的CamX / Chi 架构。它作为高通的底层大 So二进制动态库如camera.qcom.so实现了 Android 的 HAL3 标准接口。当上面的 Sample 发出请求时CamX 内部的代码会去调度高通内部的 ISP图像信号处理器、控制 Sensor 上电、配置时钟。注CamX 的源码是绝对闭源的。非高通授权的 Tier-1 客户或没签高额 NDA 的开发者是根本看不到 CamX 源码的里面全是高通极致调优的 ISP 算法和寄存器配置。第 4 层Chi-CDK / Kernel 驱动负责在 Linux 内核层通过v4l2或者是高通专属的msm_cam节点跟摄像头芯片如 IMX577, OV9284进行物理的 I2C 通信和 MIPI 数据接收。可以学而且如果你的目标是在高通平台上真正把 Camera bring-up / debug 做起来我不建议从“CamX 全部源码”开始啃。CamX 太大最有效的方法是沿着一帧 Preview 的 request 和 buffer 到底怎么走来学。Android 官方的 Camera HAL 本质上位于 Camera2/framework 和底层 driver/hardware 之间HAL3 的核心模型就是 framework 下发 capture requestHAL 处理 request、buffer 和 metadata再异步返回 result。(Android Open Source Project)第一阶段先把 HAL3 搞懂先不要碰 CamX 细节。你至少要能解释Camera App ↓ Camera2 API ↓ CameraService ↓ Camera Provider / HAL3 ↓ Camera Driver ↓ Sensor / CSIPHY / ISP尤其搞懂这几个东西camera3_stream_t camera3_stream_configuration_t camera3_capture_request_t camera3_capture_result_t camera3_stream_buffer_t camera_metadata_t最终脑子里要形成这个模型configure_streams() ↓ process_capture_request() │ ├── settings / metadata ├── input buffer └── output buffers ↓ Camera ↓ process_capture_result()如果 HAL3 不熟直接看 CamXSession/Pipeline/Node/Usecase/Feature很容易全部混在一起。Android 官方的 Camera HAL 文档 可以作为这一阶段的基准资料。第二阶段只学 CamX 的五个核心概念CamX 第一轮我建议你只记Usecase → Session → Pipeline → Node外加一个Feature。CamX/CHI 的公开资料也基本围绕这套抽象Pipeline 是一条 topologyNode 是 pipeline 中的逻辑处理单元而 Usecase、Session、Feature 再组织这些 pipeline。(GitHub)例如先粗略理解成Usecase: Preview │ └── Session │ └── Realtime Pipeline │ ▼ Sensor │ ▼ IFE │ ▼ IPE │ ▼ Preview Buffer第一遍不要研究每个 class 的成员变量。你只需要看到代码时能马上判断Usecase ↓ 这是一个 Camera 使用场景 Session ↓ 管理一组 Pipeline 的执行 Pipeline ↓ 描述数据处理路径 / topology Node ↓ 具体处理节点 Feature ↓ HDR / MFNR / Bokeh 等复杂功能组织这一步完成CamX 就从“一坨代码”变成了一张图。第三阶段沿一个 Preview request 追代码这是最重要的一步。假设 AppcameraDevice.createCaptureRequest(...)最后进入 HAL3Framework process_capture_request() ↓ CamX HAL ↓ CHI ↓ Usecase ↓ Session ↓ Pipeline ↓ NodeCamX 常见源码布局中HAL3 入口位于camx/src/core/hal一带核心的 Session、Pipeline、Node 位于camx/src/coreCHI/CDK 则承担大量 usecase/OEM 定制逻辑。不同 Qualcomm baseline/产品代码会有差异所以以你项目里的代码为准。(GitHub)第一轮建议重点搜索这些camxhal3entry.cpp camxhaldevice.cpp camxsession.cpp camxpipeline.cpp camxnode.cpp然后拿纸/笔记自己画process_capture_request │ ▼ XXXXX() │ ▼ XXXXX() │ ▼ Session │ ▼ Pipeline │ ▼ Node不要一进去就研究 IFE 里面几千行代码。先把 request 主干追通。第四阶段第二次追踪不要追 request追 Buffer这个和我们刚才聊的 DMA-BUF / IOMMU 会直接连接起来。问自己Preview 的一块 Buffer 到底哪里来的沿着Framework │ │ output buffer ▼ CamX │ ▼ Buffer Manager │ ▼ DMA-BUF / native buffer │ ▼ DMA mapping │ ▼ SMMU │ │ IOVA ▼ IFE / IPE然后再回来Sensor ↓ CSI ↓ IFE ↓ DDR Buffer ↓ IPE ↓ Preview Buffer ↓ Framework ↓ Surface如果你能回答“一帧 NV12 preview buffer 从哪里申请、谁持有、谁 DMA、什么时候完成、什么时候返回 framework”你的 CamX 理解就已经开始进入工程层面了。第五阶段再追 KernelCamX 里面有一个你应该特别关注的层CSL — Camera Support Layer常见架构资料把 CSL 描述为 CamX 与 Camera kernel driver 之间的统一控制接口。(博客园)于是整个架构开始连起来Android Framework │ ▼ HAL3 │ ▼ CHI │ ▼ CamX │ ├── Session ├── Pipeline ├── Node │ ▼ CSL │ ▼ ioctl() │ ▼ Kernel Camera Driver │ ├── Sensor ├── CSIPHY ├── CSID ├── IFE └── ...这时候你再去看camx/src/csl/才有意义。第六阶段专门攻 Sensor Bring-up如果目标不是“研究 Camera 算法”而是项目中把 Camera 点亮我会把重点明显偏向这一条Sensor Probe ↓ I2C ↓ Power Sequence ↓ MCLK ↓ Sensor ID ↓ Sensor Init ↓ Sensor Mode ↓ MIPI CSI ↓ CSIPHY ↓ CSID ↓ IFE ↓ DDR ↓ Preview你真正应该练的是黑屏以后我怎么判断断在哪一层例如Sensor probe 都没成功 ↓ 先别看 CamX Pipeline Sensor stream on 成功 但 CSIPHY 没数据 ↓ 查 MIPI / lane / clock CSID 有数据 IFE error ↓ 查 format / VC / DT / configuration IFE 正常 Preview 黑 ↓ 再往 Buffer / IPE / HAL / Framework 查这种能力比“我看过 CamX 20 万行源码”值钱得多。结合你前面学的东西其实已经能串起来了你刚才连续问的 DMA、DMA-BUF、IOMMU/SMMU 并不是旁枝Camera │ ▼ CamX │ ┌────────┴────────┐ │ │ Control Data │ │ CSL DMA-BUF │ │ ioctl SMMU │ │ ▼ ▼ Kernel Driver ←────→ Buffer │ ▼ Sensor / CSI / ISP这也是为什么我比较建议你现在开始 Camera而不是继续无限扩展底层概念遇到 DMA-BUF、SMMU、V4L2、media、fence、cache 时再针对性补会快很多。如果按8 周左右来做我会安排成HAL3 → CamX 架构 → Preview Request → Buffer → CSL/Kernel → Sensor/CSI → 实际 log/debug → 独立分析一次 bring-up 问题。另外Qualcomm 现在公开的camera-service仓库也明确展示了 HAL3/CamX backend 与 camera driver 的关系可以作为没有完整商业 CamX 文档时的辅助材料。(GitHub) Qualcomm camera-service如果你手里已经有项目的vendor/qcom/proprietary/camx和chi-cdk源码那就更好下一步最适合直接做一次“从process_capture_request()开始带你逐函数追一帧 Preview”。这会比继续看泛泛的 CamX 教程有效很多。

相关新闻

2026/8/21 14:47:34

机器学习-关联规则算法Apriori及编码实现

一、前置知识在了解关联规则之前首先了解一些相关概念,包含项集、频繁项集、支持度、置信度、提升度等基础概念。假如我们在经营一家商品超市,顾客进行购买商品的订单信息如下:TID ItemsT1 {耳机,背包}T2{背包,手机&…

2026/8/21 14:47:34

请解释一下PHP中的垃圾回收机制。

首先,我们要明白什么是“垃圾”。在这里,“垃圾”指的是程序中不再需要使用的数据。这些数据占用了计算机的内存空间,但是如果我们不去清理它们,它们就会一直待在那里,浪费宝贵的内存资源。那么,PHP中的垃圾…

2026/8/21 16:12:48

ncmdumpGUI:3 步跑完 NCM 转 MP3,封面自动带上

ncmdumpGUI:3 步跑完 NCM 转 MP3,封面自动带上 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 想把一堆网易云下载下来的 NCM 文件拿到…

2026/8/21 16:12:48

如何用 Listen1 免费听上 7 个平台的歌

如何用 Listen1 免费听上 7 个平台的歌 【免费下载链接】listen1_chrome_extension one for all free music in china (chrome extension, also works for firefox) 项目地址: https://gitcode.com/gh_mirrors/li/listen1_chrome_extension 想找的歌在网易云无法播放&am…

2026/8/21 13:13:49

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/20 20:11:18

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 0:03:13

Linux命令-uucico(UUCP传输程序)

Linux命令-uucico(UUCP传输程序) 🔰简介UUCP 体系简介 📖语法⚙️选项配置文件 💡示例示例 1:基本传输操作示例 2:主模式与从模式示例 3:调试与故障排查示例 4:UUCP 配置…

2026/8/21 0:03:13

Linux命令-uupick(UUCP文件接收工具)

Linux命令-uupick(UUCP文件接收工具)🔰简介uupick 在 UUCP 传输链中的位置📖语法⚙️选项交互命令💡示例示例 1:基本接收操作示例 2:仅处理来自特定系统的文件示例 3:完整 UUCP 文件…

2026/8/21 15:40:01

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/21 15:40:01

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/21 0:31:27

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…