File tree Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -4674,11 +4674,17 @@ class BilateralFilter_8u_Invoker :
4674
4674
color_weight[buf[2 ]],
4675
4675
color_weight[buf[3 ]]);
4676
4676
v_float32x4 _sw = v_load (space_weight+k);
4677
+ #if defined(_MSC_VER) && _MSC_VER == 1700/* MSVS 2012 */ && CV_AVX
4678
+ // details: https://github.com/opencv/opencv/issues/11004
4679
+ vsumw += _cw * _sw;
4680
+ vsumc += _cw * _sw * _valF;
4681
+ #else
4677
4682
v_float32x4 _w = _cw * _sw;
4678
4683
_cw = _w * _valF;
4679
4684
4680
4685
vsumw += _w;
4681
4686
vsumc += _cw;
4687
+ #endif
4682
4688
}
4683
4689
float *bufFloat = (float *)buf;
4684
4690
v_float32x4 sum4 = v_reduce_sum4 (vsumw, vsumc, vsumw, vsumc);
@@ -4743,6 +4749,13 @@ class BilateralFilter_8u_Invoker :
4743
4749
color_weight[buf[2 ]],color_weight[buf[3 ]]);
4744
4750
v_float32x4 _sw = v_load (space_weight+k);
4745
4751
4752
+ #if defined(_MSC_VER) && _MSC_VER == 1700/* MSVS 2012 */ && CV_AVX
4753
+ // details: https://github.com/opencv/opencv/issues/11004
4754
+ vsumw += _w * _sw;
4755
+ vsumb += _w * _sw * _b;
4756
+ vsumg += _w * _sw * _g;
4757
+ vsumr += _w * _sw * _r;
4758
+ #else
4746
4759
_w *= _sw;
4747
4760
_b *= _w;
4748
4761
_g *= _w;
@@ -4752,6 +4765,7 @@ class BilateralFilter_8u_Invoker :
4752
4765
vsumb += _b;
4753
4766
vsumg += _g;
4754
4767
vsumr += _r;
4768
+ #endif
4755
4769
}
4756
4770
float *bufFloat = (float *)buf;
4757
4771
v_float32x4 sum4 = v_reduce_sum4 (vsumw, vsumb, vsumg, vsumr);
You can’t perform that action at this time.
0 commit comments