Skip to content

架构概览

Mini-OpenCV 采用三层架构设计,追求性能、模块化和易用性。

三层设计

层级职责

1. 应用层

用户交互的顶层 API:

组件用途
ImageProcessor图像操作的主入口
PipelineProcessor链式多操作异步执行

2. 算子层

实现图像处理算法的 CUDA 内核:

类别操作CUDA 技术
像素反转、灰度、亮度逐像素并行
卷积高斯模糊、Sobel、自定义核共享内存分块
直方图计算、均衡化原子操作 + 归约
几何缩放、旋转、翻转、仿射双线性插值
形态学腐蚀、膨胀、开闭运算自定义结构元素
阈值全局、自适应、Otsu直方图驱动
色彩空间RGB/HSV/YUV 转换矩阵运算
滤波中值、双边、锐化边缘保持滤波

3. 基础设施层

GPU 计算的核心工具:

组件用途
DeviceBufferRAII GPU 内存管理
GpuImage带 GPU 内存的图像容器
CudaError错误处理和检查
ImageIO图像文件 I/O (JPEG, PNG, BMP)
StreamManager异步执行的 CUDA 流池

数据流

内存模型

零拷贝优化

关键优化:

  1. 延迟分配: 首次使用时分配内存
  2. 缓冲区复用: 临时缓冲区的内存池
  3. 异步传输: 使用 CUDA 流重叠计算和传输

CUDA 流水线

多流执行实现操作重叠:

支持的 GPU 架构

架构计算能力示例 GPU
TuringSM 75RTX 20 系列, T4
AmpereSM 80/86A100, RTX 30 系列
Ada LovelaceSM 89RTX 40 系列, L4
HopperSM 90H100

下一步

Released under the MIT License.