diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index 975fb3892..5bb08d3e7 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -205,6 +205,7 @@ namespace rtengine { //now we have tile dimensions, overlaps //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +//adding omp here slows it down for (int tiletop=0; tiletop totwt(width,height,ARRAY2D_CLEAR_DATA);//weight for combining DCT blocks -// OMP candidate? +//#ifdef _OPENMP +//#pragma omp parallel for +//#endif +//TODO: implement using AlignedBufferMP //fill tile from image; convert RGB to "luma/chroma" - for (int i=tiletop, i1=0; ir[i][j];//xyz_prophoto[0][0]*src->r[i][j] + xyz_prophoto[0][1]*src->g[i][j] + xyz_prophoto[0][2]*src->b[i][j]; float Y = gain*src->g[i][j];//xyz_prophoto[1][0]*src->r[i][j] + xyz_prophoto[1][1]*src->g[i][j] + xyz_prophoto[1][2]*src->b[i][j]; @@ -243,6 +249,7 @@ namespace rtengine { Lin[i1][j1] = Y; totwt[i1][j1] = 0; } + } //initial impulse denoise if (dnparams.luma>0.01) { @@ -318,7 +325,8 @@ namespace rtengine { //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // Main detail recovery algorithm: Block loop -//OpenMP here +//OpenMP here +//adding omp here leads to artifacts for (int vblk=0; vblkL[i1][j1]; X = (labdn->a[i1][j1]) + Y; @@ -501,9 +516,10 @@ namespace rtengine { boxabsblur(fLblox+blkstart, nbrwt, 3, 3, TS, TS);//blur neighbor weights for more robust estimation //for DCT -#ifdef _OPENMP -#pragma omp parallel for -#endif +//#ifdef _OPENMP +//#pragma omp parallel for +//#endif +//TODO: implement using AlignedBufferMP for (int n=0; n