<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[DU_YULIN的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/DU_YULIN</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; DU_YULIN]]></copyright><item><title><![CDATA[Camera HAL 防抖—GME详解]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/166904857</link><guid>https://blog.csdn.net/DU_YULIN/article/details/166904857</guid><author>DU_YULIN</author><pubDate>Sun, 18 Oct 2026 12:40:07 +0800</pubDate><description><![CDATA[GME（网格运动估计）是基于EISv3算法库的专用节点，用于生成陀螺仪驱动的网格运动矢量，服务于MCTF时域对齐与OFE光学流对齐。其核心功能为：通过5个传感器同步（SW fence）对齐帧与IMU数据，输出gyroBasedMCTFTagId和gyroMOFAlignmentTagId，供IPE处理。虽复用EISv3配置段与算法库，但拥有独立vendor tag（org.quic.camera.gme），定位清晰——排查MCTF鬼影/对齐失败问题应优先关注GME。]]></description><category></category></item><item><title><![CDATA[Camera HAL — EIS（电子防抖）概述]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/166830010</link><guid>https://blog.csdn.net/DU_YULIN/article/details/166830010</guid><author>DU_YULIN</author><pubDate>Thu, 01 Oct 2026 00:16:42 +0800</pubDate><description><![CDATA[本文系统梳理Camera HAL中EIS（电子防抖）技术演进，对比EIS 2.0（平移防抖）、EIS 3.0（几何防抖）、OIS及GME的架构差异。核心在于：依托陀螺仪与帧时间戳对齐，通过ISP端数字裁切（EIS 2.0）或Warp网格（EIS 3.0）实现防抖，sensor仅提供时序信息与可裁空间。关键流程包括gyro数据对齐、运动估计、crop/warp生成，并联动OIS与GME协同优化。强调算法库闭源性与跨模块协同，揭示EIS在时序精度、实时性与稳定性上的设计挑战。]]></description><category></category></item><item><title><![CDATA[Camera HAL — Camx Seamless Sensor Mode 切换总结]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/166013483</link><guid>https://blog.csdn.net/DU_YULIN/article/details/166013483</guid><author>DU_YULIN</author><pubDate>Mon, 28 Sep 2026 00:43:53 +0800</pubDate><description><![CDATA[摘要（≤150字）： Seamless Sensor Mode 切换通过检测帧与生效帧解耦，利用 ring buffer 延迟队列实现动态模式切换。核心在 SensorDevice 中判定 Dynamic/Static 类型，依赖 m_dynamicModeSwitchSupported 及 CheckSeamlessTransition。Dynamic 模式支持 VC 重映射，静态模式则固定；寄存器组通过 GroupHold 原子下发，下游节点（如 IFE）基于 CurrentModeTag 重算裁剪。关]]></description><category></category></item><item><title><![CDATA[Camera HAL — CmdBuffer总结]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/166735597</link><guid>https://blog.csdn.net/DU_YULIN/article/details/166735597</guid><author>DU_YULIN</author><pubDate>Sun, 27 Sep 2026 15:36:11 +0800</pubDate><description><![CDATA[Camera HAL 中的 CmdBuffer 体系通过 CmdBufferManager 实现命令内存池化管理，避免频繁分配释放带来的性能抖动。CmdBuffer 提供安全的“预留—提交”写入接口，确保指令填充不越界；Packet 则作为容器，将多个 CmdBuffer 组装成可提交的 CSL 包，支持 fence 同步。三者协同：Manager 切分大块 CSL 内存为固定资源池，CmdBuffer 填充寄存器/参数，Packet 封装后由 CSLSubmit 提交至 KMD 执行。关键设计包括双链表管]]></description><category></category></item><item><title><![CDATA[Camera HAL — Sensor GroupHold 总结]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/166016242</link><guid>https://blog.csdn.net/DU_YULIN/article/details/166016242</guid><author>DU_YULIN</author><pubDate>Sun, 27 Sep 2026 13:02:59 +0800</pubDate><description><![CDATA[Camera HAL 中的 Sensor GroupHold 通过硬件级寄存器锁存与帧边界原子应用，确保多摄切换时分辨率、曝光等参数统一生效，避免半帧撕裂、中间模式帧及预览跳变。其核心机制依赖 sensor 硬件支持的全局锁存（isGlobalGroupHoldEnabled），配合 GetModeSwitchApplyIndex 实现“解耦应用时机”与“原子性生效”，构成 seamless 切换的基石。软件实现上，通过在 I2C 命令包中插入 GroupHoldOn/Off 指令或显式 XML 序列完成封]]></description><category></category></item><item><title><![CDATA[Camera HAL — ResourceManager总结]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/166013765</link><guid>https://blog.csdn.net/DU_YULIN/article/details/166013765</guid><author>DU_YULIN</author><pubDate>Fri, 25 Sep 2026 14:04:21 +0800</pubDate><description><![CDATA[本文总结QCOM Camera HAL中ResourceManager的双层架构：CAMX层为硬件资源账本，负责真实资源的预约、获取与抢占；CHI层则作为策略层，通过函数指针表回调CAMX，实现并发校验、预算折算与平台适配。二者分工明确，CHI不直接操作硬件，而是通过ChiResourceManagerOps桥接至CAMX单例。关键流程包括资源预约（Reserve）、获取（Acquire）、抢占与降级处理，确保多摄并发时资源合理分配。日志与锁机制保障了线程安全与问题定位效率。]]></description><category></category></item><item><title><![CDATA[Camera HAL — 多摄 Zoom 切 Sensor 防卡顿方案介绍]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/166014286</link><guid>https://blog.csdn.net/DU_YULIN/article/details/166014286</guid><author>DU_YULIN</author><pubDate>Sun, 20 Sep 2026 01:13:49 +0800</pubDate><description><![CDATA[本文介绍Camera HAL中多摄Zoom切Sensor防卡顿的三层机制：1）Seamless Sensor Mode Switch通过延迟队列与GroupHold实现流中模式切换，避免预览中断；2）多摄重叠双摄（MFL）让新旧传感器并行输出，以延迟切换和虚拟帧收敛消除黑帧；3）QSAT In-Sensor Zoom通过单传感器数字裁剪实现连续变焦，根本避免物理切换。三者协同将切换耗时移出关键路径，保障预览流畅，仅在必要时触发低延迟切换，显著提升用户体验。]]></description><category></category></item><item><title><![CDATA[Camera HAL PerfLockManager概述]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/165244159</link><guid>https://blog.csdn.net/DU_YULIN/article/details/165244159</guid><author>DU_YULIN</author><pubDate>Sun, 13 Sep 2026 23:09:22 +0800</pubDate><description><![CDATA[PerfLockManager 是相机 HAL 用于在关键操作（如开流、拍照、录视频）时主动提升 CPU 性能的子系统，通过 libqti-perfd-client 向 perfd 守护进程发送性能锁请求，防止因 CPU 降频导致首帧延迟或掉帧。其架构为每摄像头独立实例，共享静态参数表与性能库句柄，支持 14 种场景锁，具备线程安全机制。与被动降配的 PerformanceManager 正交，职责互补，实现“保流畅”目标。]]></description><category></category></item><item><title><![CDATA[Camera HAL Request Flow概述]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/164001891</link><guid>https://blog.csdn.net/DU_YULIN/article/details/164001891</guid><author>DU_YULIN</author><pubDate>Sun, 30 Aug 2026 11:00:37 +0800</pubDate><description><![CDATA[实现了高度参数化的请求执行引擎抽象封装：将复杂的Stage/Sequence/Dependency管理封装为6种清晰的模式灵活适配：从简单的单帧处理到复杂的多帧融合都能高效支持性能意识：内置QLL优化、输出过滤、缓冲区共享等策略可观测性：完善的Dump和日志系统便于调试和调优扩展性：通过pFlowData和Hook函数支持定制化需求掌握此文件的实现细节对于开发高性能、可靠的相机Feature至关重要。]]></description><category></category></item><item><title><![CDATA[Camera HAL - ChiFeature2Base 框架总结]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/164184165</link><guid>https://blog.csdn.net/DU_YULIN/article/details/164184165</guid><author>DU_YULIN</author><pubDate>Sun, 30 Aug 2026 10:22:59 +0800</pubDate><description><![CDATA[ChiFeature2Base作为一个成熟的相机特征框架基类，提供了：✅完整的生命周期管理- 从创建到销毁的全流程控制✅灵活的状态机- 支持复杂的异步处理场景✅高效的资源管理- 统一的缓冲区和元数据处理✅可扩展的架构- 丰富的虚函数接口和钩子✅健壮的错误处理- 多层次的恢复和保护机制✅优秀的性能优化- 异步处理、F重用、Inplace等优化该框架被广泛应用于相机的各种特征实现，包括实时预览、离线计算摄影、多帧融合、AI增强等复杂场景，展现了工业级代码库的设计水准和工程实践。]]></description><category></category></item><item><title><![CDATA[Camera HAL — Sensor Mode相关总结]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/164168013</link><guid>https://blog.csdn.net/DU_YULIN/article/details/164168013</guid><author>DU_YULIN</author><pubDate>Sat, 29 Aug 2026 15:00:24 +0800</pubDate><description><![CDATA[本文讲：机制怎么分层、数据怎么流、边界在哪。主线是「CHI 侧选择 → 传递 → CAMX 侧使用」。]]></description><category></category></item><item><title><![CDATA[Camera HAL — TuningMode相关知识总结]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/163998281</link><guid>https://blog.csdn.net/DU_YULIN/article/details/163998281</guid><author>DU_YULIN</author><pubDate>Mon, 24 Aug 2026 23:38:30 +0800</pubDate><description><![CDATA[同一颗 sensor 在不同的使用场景里，ISP / 3A 需要的 IQ 参数（去噪、锐化、色彩、HDR 融合、畸变校正网格等 chromatix 调参 blob）是完全不同的。例如：如果让每个 Node 自己去翻 Android control 判定"现在是人像还是普通"，代码会散落、耦合、不可维护。所以 Tuning Mode 做的事是：CHI 把"这一帧是什么场景"归纳成一个 7 维元组写进 metadata，CAMX 各 IQ 节点拿这个元组去 chromatix 调参树里查表，取出对应的参数 bl]]></description><category></category></item><item><title><![CDATA[Camera HAL Camx — DRQ总结]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/163994013</link><guid>https://blog.csdn.net/DU_YULIN/article/details/163994013</guid><author>DU_YULIN</author><pubDate>Sun, 23 Aug 2026 16:31:03 +0800</pubDate><description><![CDATA[Camera HAL — DRQ（延迟请求队列）总结 DRQ是CAMX核心层的依赖驱动延迟执行调度器，解决Node处理请求时依赖未就绪的问题。其主要特点包括： 核心功能：当Node处理请求时缺少必要输入（property/metadata/fence），DRQ将其挂起并在依赖满足后重新调度，避免阻塞流水线或丢帧。 系统架构：Session持有主DRQ实例，管理该Session下所有Pipeline Node的依赖；CHI context另有独立DRQ实例专门处理Chi fence同步。 关键数据结构： De]]></description><category></category></item><item><title><![CDATA[Camera HAL 多线程管理详解]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/163574028</link><guid>https://blog.csdn.net/DU_YULIN/article/details/163574028</guid><author>DU_YULIN</author><pubDate>Sat, 22 Aug 2026 21:30:33 +0800</pubDate><description><![CDATA[本文摘要：Camera HAL 采用双线程管理体系（CAMX与CHI-CDK）实现高效并发处理。CAMX ThreadManager负责HAL内部及框架交互，采用线程池+任务调度机制，将节点处理、回调等封装为Job异步执行；CHI ThreadManager专注于OEM定制逻辑，支持异步/同步两种作业模式。两套系统通过函数指针解耦但共享地址空间，共同实现硬件流水线的强实时性。文章详细解析了两者的类层次架构、核心数据结构及典型应用场景，并提供了问题排查的代码切入点，为Camera HAL开发与性能优化提供指导]]></description><category></category></item><item><title><![CDATA[Camera HAL ThreadManager概述]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/163387888</link><guid>https://blog.csdn.net/DU_YULIN/article/details/163387888</guid><author>DU_YULIN</author><pubDate>Sat, 22 Aug 2026 20:53:36 +0800</pubDate><description><![CDATA[所有共享数据访问都有 Mutex 保护状态标志使用原子操作Condition 变量用于线程间通知。]]></description><category></category></item><item><title><![CDATA[Camera HAL PerformanceManager概述]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/163574057</link><guid>https://blog.csdn.net/DU_YULIN/article/details/163574057</guid><author>DU_YULIN</author><pubDate>Tue, 18 Aug 2026 23:44:30 +0800</pubDate><description><![CDATA[本文摘要： Camera HAL中存在两个功能相反的"性能管理器"：PerformanceManager（CPM）负责散热降频缓解，PerfLockManager负责性能锁提频。CPM通过监听热引擎事件，动态调整相机参数（如MCTF模式、MFNR帧数）来降低负载，避免过热关机，是全局单例设计。其架构包括热引擎监听、参数配置解析和性能设置存储等模块，通过XML配置和vendor tag下发调整指令。初始化时加载libthermalclient.so注册回调，构造失败不影响相机基本功能。两者配合实现"一收一放"]]></description><category></category></item><item><title><![CDATA[Camera HAL - FeatureGraph/Feature中Request处理详解]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/163573899</link><guid>https://blog.csdn.net/DU_YULIN/article/details/163573899</guid><author>DU_YULIN</author><pubDate>Mon, 17 Aug 2026 00:09:43 +0800</pubDate><description><![CDATA[本文详细解析了相机HAL中FeatureGraph/Feature的Request处理流程，以realtimemcx→mcreprocrt预览处理为例。主要内容包括： 拓扑结构：预览处理由两个Feature通过internal link连接构成，上游realtimemcx产生Raw数据，下游mcreprocrt进行融合处理后输出预览。 三层对象模型： URO：对应每帧请求的全局上下文 FRO：每个Feature每帧对应的请求对象 Graph：组织Feature节点和连接关系 状态机： URO有5种状态，反映]]></description><category></category></item><item><title><![CDATA[Camera HAL — FeatureGraph 与 GraphManager概述]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/163573885</link><guid>https://blog.csdn.net/DU_YULIN/article/details/163573885</guid><author>DU_YULIN</author><pubDate>Sat, 15 Aug 2026 00:31:08 +0800</pubDate><description><![CDATA[本文概述了Camera HAL中的FeatureGraph图引擎核心组件，重点解析了ChiFeature2GraphManager（图管理器）和ChiFeature2Graph（图实例）的架构与协作机制。GraphManager负责用例级图选择与资源管理，按需创建/复用Graph实例；Graph实例则负责编排feature节点拓扑结构，通过LinkData连接节点端口与框架流。文章详细梳理了二者的层次关系、类结构成员、生命周期管理，以及它们与选图器、feature基类的交互方式，为理解CHI层图引擎的请求处]]></description><category></category></item><item><title><![CDATA[Camera HAL Camx层 ImageBufferManger及内存池概述]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/163574081</link><guid>https://blog.csdn.net/DU_YULIN/article/details/163574081</guid><author>DU_YULIN</author><pubDate>Sun, 09 Aug 2026 16:46:52 +0800</pubDate><description><![CDATA[摘要 CAMX框架采用共享内存池（MemPool）机制统一管理图像缓冲区分配，包含以下核心组件： ImageBufferManager作为客户端接口，管理节点端口的缓冲区对象池（ImageBuffer） MemPoolMgr全局单例通过分组策略（MemPoolGroup）合并相同配置的缓冲区需求 MemPoolBuffer封装真实内存（Gralloc/CSL），实现跨组件共享 该机制通过三级缓冲池（客户端对象池→共享组池→物理内存）实现： 节点通过ImageBufferManager获取缓冲区 底层自动匹配]]></description><category></category></item><item><title><![CDATA[Camera HAL TargetBufferManager(TBM)详解]]></title><link>https://blog.csdn.net/DU_YULIN/article/details/163574062</link><guid>https://blog.csdn.net/DU_YULIN/article/details/163574062</guid><author>DU_YULIN</author><pubDate>Sun, 09 Aug 2026 13:25:10 +0800</pubDate><description><![CDATA[Camera HAL TargetBufferManager（TBM）摘要 TBM是CHI feature2拓扑图中管理多端口buffer按帧聚合流转的核心组件，负责将一帧请求的所有target（Metadata+内外流buffer）打包为ChiTargetBufferInfo记录，通过生产者-消费者链表（Import/Producer/Consumer）管理生命周期。与CHXStreamBufferManager（管理Framework stream buffer）和ImageBufferManager（]]></description><category></category></item></channel></rss>