speed_histogram_algorithm_framework
局部直方图加速框架,内部使用了一些近似计算及指令集加速(SSE),可以快速处理中值滤波、最大值滤波、最小值滤波、表面模糊等算法。
测试CPU型号:Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
分辨率
优化
循环次数
速度
4032x3024
原始实现
1000
12.139ms
4032x3024
第一版优化(float->INT)
1000
7.629ms
4032x3024
OpenCV 自带函数
1000
4.287ms
4032x3024
第二版优化(手动4路并行)
1000
10.528ms
4032x3024
第三版优化(OpenMP4线程)
1000
7.632ms
4032x3024
第四版优化(SSE优化,一次处理12个像素)
1000
5.579ms
4032x3024
第五版优化(SSE优化,一次处理15个像素)
1000
5.843ms
4032x3024
第六版优化(AVX2优化,一次处理10个像素)
1000
3.576ms
4032x3024
第七版优化(AVX2优化+std::async)
1000
2.626ms
分辨率
优化
循环次数
速度
4032x3024
原始实现
100
115.36ms
4032x3024
第一版优化
100
62.43ms
4032x3024
第二版优化(4线程)
100
28.89ms
4032x3024
第三版优化(SSE)
100
12.69ms
分辨率
算法优化
循环次数
速度
4032x3024
普通实现
1000
126.54 ms
4032x3024
Float->INT+查表法
1000
81.62 ms
4032x3024
SSE优化版本1
1000
34.95 ms
4032x3024
SSE优化版本2
1000
28.87 ms
4032x3024
AVX2优化版本1
1000
15.42 ms
4032x3024
AVX2优化+std::async
1000
5.69 ms
优化方式
图像分辨率
速度
C语言普通实现+单线程
4032*3024
290.43ms
SSE优化+单线程
4032*3024
265.96ms
优化方式
图像分辨率
速度
C语言实现+单线程
4032*3024
66.66ms
C语言实现+4线程
4032*3024
65.34ms
SSE优化+单线程
4032*3024
66.10ms
SSE优化+4线程
4032*3024
66.20ms
优化方式
图像分辨率
速度
C语言实现+单线程
4272*2848
20.19ms
SSE优化+单线程
4272*2848
4.22ms
优化方式
图像分辨率
半径
速度
C语言实现+单线程
4272*2848
7
9445.90ms
SSE优化+单线程
4272*2848
7
2234.55ms
C语言实现+单线程
4272*2848
9
14468.76ms
SSE优化+单线程
4272*2848
9
2221.68ms
C语言实现+单线程
4272*2848
11
23069.10ms
SSE优化+单线程
4272*2848
11
2180.95ms
优化方式
图像分辨率
半径
速度
C语言实现+单线程
4272*2848
11
163.16ms
SSE优化+单线程
4272*2848
11
123.83ms
C语言实现+单线程
4272*2848
21
167.81ms
SSE优化+单线程
4272*2848
21
126.98ms
C语言实现+单线程
4272*2848
31
168.62ms
SSE优化+单线程
4272*2848
31
126.17ms
speed_multi_scale_detail_boosting_see.cpp 在speed_box_filter_sse.cpp提供的盒子滤波sse优化的基础上,进一步使用指令集实现了对论文《DARK IMAGE ENHANCEMENT BASED ON PAIRWISE TARGET CONTRAST AND MULTI-SCALE DETAIL BOOSTING》的算法优化。算法原理请看:https://blog.csdn.net/just_sort/article/details/98485746 。在CoreI7-3770速度测试结果如下:
优化方式
图像分辨率
半径
速度
C语言实现+单线程
4272*2848
7
206.00ms
SSE优化+单线程
4272*2848
7
57.12ms
优化方式
图像分辨率
半径
速度
C语言实现
4272*2848
3
5103.22ms
C语言实现+优化排序
4272*2848
3
749.43ms
SSE优化
4272*2848
3
10.26ms
OpenCV3.1.0自带的函数
4272*2848
3
100.09ms
优化方式
图像分辨率
速度
RGB2YUV C语言实现
4272*2848
45.57ms
RGB2YUV SSE初级优化
4272*2848
17.06ms
RGB2YUV SSE高级优化
4272*2848
13.52ms
YUV2RGB C语言实现
4272*2848
81.05ms
YUV2RGB SSE初级优化
4272*2848
14.95ms
优化方式
图像分辨率
插值后大小
速度
C语言原始算法实现
4272*2848
长宽均为原始1.5倍
1856.29ms
C语言实现+查表优化+边界优化
4272*2848
长宽均为原始1.5倍
839.10ms
SSE优化+边界优化
4272*2848
长宽均为原始1.5倍
315.70ms
OpenCV3.1.0自带的函数
4272*2848
长宽均为原始1.5倍
118.77ms
维护了一个微信公众号,分享论文,算法,比赛,生活,欢迎加入。
图片要是没加载出来直接搜GiantPandaCV 就好。