Issue 2594: My kingdom for more wavelets - various speedups, memory reductions, GUI changes and level numbering PP3 change.

This commit is contained in:
DrSlony
2015-02-22 01:35:30 +01:00
parent 32dae1856a
commit 43db722ece
22 changed files with 1316 additions and 908 deletions

View File

@@ -258,13 +258,13 @@ void Crop::update (int todo) {
int W = origCrop->getWidth();
int H = origCrop->getHeight();
Imagefloat *provicalc = new Imagefloat ((W+1)/2, (H+1)/2);//for denoise curves
for(int ii=0;ii<H;ii+=2){
for(int ii=0;ii<H;ii+=2){
for(int jj=0;jj<W;jj+=2){
provicalc->r(ii>>1,jj>>1) = origCrop->r(ii,jj);
provicalc->g(ii>>1,jj>>1) = origCrop->g(ii,jj);
provicalc->b(ii>>1,jj>>1) = origCrop->b(ii,jj);
}
}
}
parent->imgsrc->convertColorSpace(provicalc, params.icm, parent->currWB, params.raw);//for denoise luminance curve
float maxr=0.f;
@@ -352,13 +352,13 @@ void Crop::update (int todo) {
parent->imgsrc->getImage (parent->currWB, tr, origCropPart, ppP, params.toneCurve, params.icm, params.raw );
// we only need image reduced to 1/4 here
for(int ii=0;ii<crH;ii+=2){
for(int ii=0;ii<crH;ii+=2){
for(int jj=0;jj<crW;jj+=2){
provicalc->r(ii>>1,jj>>1) = origCropPart->r(ii,jj);
provicalc->g(ii>>1,jj>>1) = origCropPart->g(ii,jj);
provicalc->b(ii>>1,jj>>1) = origCropPart->b(ii,jj);
}
}
}
parent->imgsrc->convertColorSpace(provicalc, params.icm, parent->currWB, params.raw);//for denoise luminance curve
float pondcorrec=1.0f;
@@ -497,13 +497,13 @@ void Crop::update (int todo) {
int W = origCrop->getWidth();
int H = origCrop->getHeight();
calclum = new Imagefloat ((W+1)/2, (H+1)/2);//for denoise curves
for(int ii=0;ii<H;ii+=2){
for(int ii=0;ii<H;ii+=2){
for(int jj=0;jj<W;jj+=2){
calclum->r(ii>>1,jj>>1) = origCrop->r(ii,jj);
calclum->g(ii>>1,jj>>1) = origCrop->g(ii,jj);
calclum->b(ii>>1,jj>>1) = origCrop->b(ii,jj);
}
}
}
parent->imgsrc->convertColorSpace(calclum, params.icm, parent->currWB, params.raw);//for denoise luminance curve
}
@@ -688,11 +688,16 @@ void Crop::update (int todo) {
if(minwin*skip < 256) maxlevelcrop = 7;//sampling 128
if(minwin*skip < 128) maxlevelcrop = 6;
if(minwin < 64) maxlevelcrop = 5;
int realtile;
if(params.wavelet.Tilesmethod=="big") realtile=22;
if(params.wavelet.Tilesmethod=="lit") realtile=12;
int tilesize;
int overlap;
tilesize = 1024;
overlap = 128;
tilesize=128*params.wavelet.tiles;
tilesize=128*realtile;
//overlap=(int) tilesize*params->wavelet.overl;
overlap=(int) tilesize*0.125f;
// printf("overl=%d\n",overlap);