经验分享
文章平均质量分 86
塞北山巅
大四在读,技术内容分享(包括牛客算法题、C++技术栈、八股精解、技术前沿)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Camera Tuning实战:HM模块调试全攻略(从原理到落地)
摘要:本文详细介绍了CameraTuning中HM模块的调试方法。HM模块通过分析图像直方图实现分区域亮度控制,包含7个核心参数模块。调试时应按"亮区→暗区→过曝→限制→权重"顺序进行:先通过Bright_Tone确定整体亮度基调,再用Dark_Tone优化暗区细节,然后处理过曝问题,最后设置亮度限制和权重分配。调试核心在于理解直方图分析逻辑,注意各模块参数协同作用,并针对不同场景调整参数。文章提供了具体的调试流程和参数调整技巧,帮助开发者高效完成HM模块优化。原创 2025-12-23 11:08:36 · 852 阅读 · 0 评论 -
Android ——Binder机制
Linux系统中,每个进程都有独立的虚拟地址空间,用户空间数据不能直接相互访问,必须通过内核空间中转,这就需要IPC机制。Binder机制采用经典的C/S(客户端/服务端)架构,整个通信体系由四大核心组件支撑,同时在系统层面分为三层实现,咱们先理清组件角色,再看层级关系。:发起通信请求的进程,比如咱们的App调用系统服务时,App就是客户端。:整个机制的核心枢纽,运行在内核态。关键逻辑:服务端的用户空间与内核空间共享同一块物理内存,客户端仅需将数据拷贝到内核空间,服务端就能直接访问,从而减少一次拷贝。原创 2025-12-02 15:28:51 · 1165 阅读 · 0 评论 -
C++实现消息队列(内核态)
本文分享了大四学生在课程设计中实现内核态消息队列的完整思路。文章围绕"为什么选内核态"、"关键技术点"和"效果验证"三个核心问题展开:首先分析了内核态消息队列在进程崩溃保护和同步机制上的优势;然后详细拆解了消息结构体定义、队列创建与管理、消息收发等关键模块的实现方法;最后提供了从环境配置到性能测试的完整实践流程。文章特别针对学生群体,强调了"最小可用"原则,分享了实际开发中的避坑经验,并提出了持久化、动态扩容等优化方向。通过这一原创 2025-11-28 18:25:18 · 687 阅读 · 0 评论 -
搞懂malloc、free源码
本文深入剖析glibc ptmalloc2内存分配器的设计原理与实现细节。文章从架构师视角分析内存分配的核心矛盾,揭示malloc/free作为中间层如何解决系统调用开销、内存碎片和通用接口优化等问题。重点解读内存控制块(Chunk)的精巧设计和分层空闲链表的分治策略,详细跟踪malloc/free的执行流程,包括大小修正、空闲查找、系统补仓和碎片合并等关键环节。通过线上案例复盘内存泄漏、碎片治理和多核性能等实际问题,总结出分治思想、延迟策略、硬件感知和权衡艺术等内存分配器的设计哲学。全文强调在约束中寻找最原创 2025-11-27 17:41:22 · 1072 阅读 · 0 评论 -
C++进阶:观察者模式与异步框架
本文深入探讨了C++回调函数的进阶应用,重点介绍了观察者模式和异步框架两种高级技术。观察者模式通过维护回调列表实现了"一对多"的批量通知功能,文中对比了传统抽象类实现、现代std::function简化版以及Boost.Signals2工业级方案。异步框架部分解析了标准库的future/promise机制和Boost.Asio事件驱动模型,展示了如何体系化管理异步任务。文章提供了从基础回调到架构设计的完整进化路径,并针对不同场景给出了技术选型建议,为C++异步编程提供了全面的解决方案。原创 2025-11-26 21:11:28 · 1066 阅读 · 0 评论 -
回调函数——C++
摘要:回调函数是C++开发中的核心概念,通过"函数地址传递+延迟调用"实现控制反转。文章详细解析了四种实现方式:函数指针(兼容C)、静态成员函数(适配类场景)、函数对象(携带状态)和现代C++推荐的Lambda+std::function组合。通过5个典型应用场景(排序规则、GUI事件、异步IO、信号处理和插件系统)的代码示例,展示了回调在解耦代码、异步处理和事件驱动中的关键作用。文章强调回调的核心价值在于解决代码耦合和执行时机不确定问题,并建议根据场景选择合适实现方式,同时注意生命周期原创 2025-11-26 15:13:30 · 714 阅读 · 0 评论 -
C++ invoke与function的区别
摘要:本文深入解析C++中std::function和std::invoke的核心区别。std::function是可调用对象的"万能容器",通过类型擦除技术存储签名匹配的函数、Lambda或函数对象;std::invoke则是"万能调用器",统一各类可调用对象的调用语法。二者各司其职:前者解决"如何存储"问题,后者解决"如何调用"问题。典型应用场景包括回调函数设计、策略模式实现和泛型编程等。掌握二者的本质区别能帮助开发者编写更原创 2025-11-25 18:57:51 · 1027 阅读 · 0 评论 -
C++岗位核心技术准备
本文摘要总结了7个高性能编程核心技术点: 线程安全智能指针 原子计数保证线程安全,内存序选用memory_order_acq_rel 循环引用解决方案:shared_ptr强引用+weak_ptr弱引用 类比:原子计数=食堂窗口排队,内存序=交通信号灯 单生产者-单消费者无锁队列 环形缓冲区+双原子索引实现无锁竞争 内存屏障防止CPU重排序,ABA问题通过指针+版本号解决 性能优势:比mutex队列吞吐量高3倍 10万+并发TCP服务 主从Reactor+线程池架构,Epoll ET模式+非阻塞IO 惊群解原创 2025-11-24 21:15:57 · 799 阅读 · 0 评论 -
C++开发面试难点(十关)
本文摘要:探讨C++高性能开发中的10个核心技术问题:1)线程安全智能指针实现及循环引用解决方案;2)无锁队列设计中的ABA问题处理;3)基于Reactor模型的10万+并发TCP服务优化;4)内存泄漏检测的三种自动化方案;5)动态扩容哈希表的高效实现;6)百万级定时器的时间轮管理;7)跨平台序列化的字节序处理;8)CPU中断分析中的火焰图应用;9)RAII数据库连接池的异常安全机制;10)基于RDMA的零拷贝RPC实现。涵盖并发控制、内存管理、网络编程等核心领域。原创 2025-11-24 17:44:16 · 330 阅读 · 0 评论 -
camera hal层(AF)
本文深入解析自动曝光(AE)系统的核心算法设计与工程实现。系统采用模块化架构,包含三个核心模块:AEBasicConfig实现"曝光优先、增益补偿"的智能调节策略,平衡亮度与噪声;AECalibration通过多项式拟合解决传感器非线性问题;TargetLumaTest采用多因素加权融合计算目标亮度,支持人脸、触摸等特殊场景。文章详细阐述了各模块的算法原理、工程优化(如防抖协同、参数平滑)及系统闭环流程,并提供了完整的C++实现代码,展示了AE算法从理论到工程落地的完整过程。原创 2025-11-21 22:26:42 · 1131 阅读 · 0 评论 -
相机自动曝光(AE)核心算法——从参数调节到亮度标定
本文深入解析了相机自动曝光(AE)系统的核心算法设计与C++实现。系统采用模块化架构,包含三个核心模块:1)AEBasicConfig实现"曝光优先、增益补偿"策略,平衡亮度与噪声;2)AECalibration通过二次多项式拟合解决ISO-亮度的非线性问题;3)TargetLumaTest采用多因素加权融合计算目标亮度。文章详细阐述了各模块的算法原理、工程实现及参数调节策略,并提供了完整的C++代码示例,展示了AE系统从理论到工程落地的完整过程。该系统通过闭环反馈机制,有效解决了不同场原创 2025-11-21 22:17:43 · 1380 阅读 · 0 评论 -
C++多态实战:从原理到项目落地,这篇讲透了!
本文通过一个在线预约管理系统项目,深入讲解了C++多态机制的应用。文章首先解析了多态的核心三要素(继承、虚函数、父类指针/引用指向子类对象)和关键概念(虚函数表、虚指针)。然后通过项目重构案例,展示了不使用多态导致的代码冗余和维护困难,以及采用多态设计后的优势:通过抽象父类Reservation抽离共性,子类实现差异化逻辑,管理类利用父类指针统一调度。多态显著降低了代码重复(减少60%),提高了扩展性(新增类型不修改旧代码),并支持批量处理等复杂业务场景。文章还深入剖析了多态的底层机制(虚函数表和虚指针),原创 2025-11-20 10:23:29 · 487 阅读 · 0 评论 -
AF(自动对焦)HAL层Native(C++)实现方案
本文基于Android Camera HAL 3.0规范实现自动对焦(AF)模块的C++原生代码,通过硬件抽象层衔接上层框架与底层硬件。设计采用模块化架构,包含标准化HAL接口、对比度对焦算法核心、硬件适配层三部分,支持单区域自动对焦、手动对焦等功能。通过虚基类实现硬件解耦,兼容不同厂商的步进电机和图像传感器,并采用互斥锁保证线程安全。测试表明该方案在1080P分辨率下对焦时间≤300ms,精度≤2μm,满足嵌入式相机需求。工程支持配置文件参数调整,便于适配不同硬件平台。原创 2025-11-19 22:06:14 · 906 阅读 · 0 评论 -
Camera ISP核心算法解析与C++ OpenCV实现
本文聚焦CameraISP核心处理链路,详细解析了从RAW数据到RGB图像的关键算法流程。通过C++和OpenCV实现了坏点修复、黑电平校正、白平衡、去马赛克等核心环节,重点关注工程落地细节与算法优化。提出采用"校准表匹配+动态检测"混合方案修复坏点、基于灰度世界法的自适应白平衡、边缘辅助的双线性插值等优化方法。实验表明,完整流程输出图像PSNR达38dB,边缘保留指数0.89,满足实时性要求(单帧处理<10ms)。文章还探讨了AI模型和硬件加速等前沿优化方向,为开发者提供了实用的原创 2025-11-19 21:31:48 · 1011 阅读 · 0 评论 -
opencv笔记01(计算机视觉)
OpenCV技术发展趋势与应用实践综述 摘要:OpenCV作为计算机视觉领域的核心开源库,在深度学习集成、移动端优化和云计算服务三大方向取得显著进展。最新4.9+版本强化了DNN模块,支持Transformer架构和多种模型格式,推理性能提升31倍;移动端通过opencv-mobile实现94%体积压缩;云服务采用容器化部署提升40%吞吐量。本文系统分析了OpenCV的技术生态、竞争格局及未来趋势,提出深度学习架构优化、移动端算法轻量化等研究方向建议,并给出跨平台开发实践方案。OpenCV持续的技术演进为计原创 2025-11-04 17:46:57 · 794 阅读 · 0 评论 -
进程/线程、IPC(Linux)
摘要:Linux系统中进程与线程的本质区别在于资源分配方式,进程拥有独立地址空间而线程共享进程资源。进程创建开销大但健壮性强,线程则更轻量但需要同步机制。进程间通信(IPC)方式包括管道、信号、共享内存等,各具特点和适用场景。多线程编程必须使用互斥锁、条件变量等同步机制确保数据安全。选择进程或线程模型需权衡稳定性与性能需求,而IPC方式的选择应考虑通信关系、数据量及同步要求。共享内存虽性能最高但必须配合同步机制使用。原创 2025-11-03 10:18:33 · 593 阅读 · 0 评论 -
在分布式系统中如何尽可能减少需要重新映射的数据量?
本文介绍了一致性哈希算法在分布式系统中的应用,重点阐述其核心原理与C++实现。该算法通过哈希环和虚拟节点技术,在节点变动时仅影响相邻数据,大幅减少数据迁移量。虚拟节点机制(每个物理节点对应多个虚拟节点)可有效解决数据倾斜问题。文中给出了基于红黑树(std::map)的C++实现方案,利用lower_bound实现高效查询,并采用FNV-1a哈希函数确保均匀分布。该方案具有O(logn)时间复杂度,在保持单调性的同时,显著提升了系统伸缩性和负载均衡能力。原创 2025-11-02 18:00:41 · 895 阅读 · 0 评论 -
STL算法库模版应用: find_if(找出字符串 牛客:CM55)
摘要:该算法解决在含空字符串的有序字符串数组中高效查找目标字符串的问题。核心思路是:1)预处理确定非空范围:使用find_if跳过首尾空字符串,缩小查找区间;2)标准二分查找:在有效区间内通过lower_bound实现O(log n)查找。处理空串时,通过正向和反向迭代器结合Lambda表达式定位有效边界,确保二分查找的正确性。若找到目标则返回索引,否则返回-1。该方法将复杂度控制在O(log n),是处理含干扰项有序查找的高效方案。原创 2025-10-31 19:16:37 · 310 阅读 · 0 评论
分享