Shadows/Highlights - High radius causes vertical lines, Issue 1921

This commit is contained in:
Ingo
2013-11-08 18:24:10 +01:00
parent 7c837306e5
commit d67469f3f6

View File

@@ -332,10 +332,12 @@ template<class T> void gaussHorizontalSse (T** src, T** dst, int W, int H, float
template<class T> void gaussHorizontal (T** src, T** dst, AlignedBufferMP<double> &buffer, int W, int H, double sigma) {
#ifdef __SSE__
gaussHorizontalSse<T> (src, dst, W, H, sigma);
return;
#else
#ifdef __SSE__
if(sigma < 70) { // bigger sigma only with double precision
gaussHorizontalSse<T> (src, dst, W, H, sigma);
return;
}
#endif
if (sigma<0.25) {
// dont perform filtering
if (src!=dst)
@@ -411,7 +413,6 @@ template<class T> void gaussHorizontal (T** src, T** dst, AlignedBufferMP<double
buffer.release(pBuf);
}
#endif
}
#ifdef __SSE__
@@ -561,10 +562,12 @@ template<class T> void gaussVerticalSse (T** src, T** dst, int W, int H, float s
template<class T> void gaussVertical (T** src, T** dst, AlignedBufferMP<double> &buffer, int W, int H, double sigma) {
#ifdef __SSE__
gaussVerticalSse<T> (src, dst, W, H, sigma);
return;
#else
#ifdef __SSE__
if(sigma < 70) { // bigger sigma only with double precision
gaussVerticalSse<T> (src, dst, W, H, sigma);
return;
}
#endif
if (sigma<0.25) {
// dont perform filtering
@@ -642,7 +645,6 @@ template<class T> void gaussVertical (T** src, T** dst, AlignedBufferMP<double>
buffer.release(pBuf);
}
#endif
}