From e09f72395f431de2c5ef723c67ba90bec9d8f174 Mon Sep 17 00:00:00 2001 From: ffsup2 Date: Wed, 8 Dec 2010 23:45:06 +0100 Subject: [PATCH] PPG demosaicing not used --- rtengine/rawimagesource.cc | 93 -------------------------------------- rtengine/rawimagesource.h | 1 - 2 files changed, 94 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 7ef889652..dc31e81ea 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -2395,99 +2395,6 @@ void RawImageSource::vng4_demosaic () { #define LIM(x,min,max) MAX(min,MIN(x,max)) #define ULIM(x,y,z) ((y) < (z) ? LIM(x,y,z) : LIM(x,z,y)) -/* - Patterned Pixel Grouping Interpolation by Alain Desbiolles -*/ -void RawImageSource::ppg_demosaic() -{ - int width=W, height=H; - int dir[5] = { 1, width, -1, -width, 1 }; - int row, col, diff[2], guess[2], c, d, i; - ushort (*pix)[4]; - - ushort (*image)[4]; - int colors = 3; - - if (plistener) { - plistener->setProgressStr ("Demosaicing..."); - plistener->setProgress (0.0); - } - - image = (ushort (*)[4]) calloc (H*W, sizeof *image); - for (int ii=0; ii 0; i++) { - guess[i] = (pix[-d][1] + pix[0][c] + pix[d][1]) * 2 - - pix[-2*d][c] - pix[2*d][c]; - diff[i] = ( ABS(pix[-2*d][c] - pix[ 0][c]) + - ABS(pix[ 2*d][c] - pix[ 0][c]) + - ABS(pix[ -d][1] - pix[ d][1]) ) * 3 + - ( ABS(pix[ 3*d][1] - pix[ d][1]) + - ABS(pix[-3*d][1] - pix[-d][1]) ) * 2; - } - d = dir[i = diff[0] > diff[1]]; - pix[0][1] = ULIM(guess[i] >> 2, pix[d][1], pix[-d][1]); - } - if(plistener) plistener->setProgress(0.33*row/(height-3)); - } -/* Calculate red and blue for each green pixel: */ - for (row=1; row < height-1; row++) { - for (col=1+(FC(row,2) & 1), c=FC(row,col+1); col < width-1; col+=2) { - pix = image + row*width+col; - for (i=0; (d=dir[i]) > 0; c=2-c, i++) - pix[0][c] = CLIP((pix[-d][c] + pix[d][c] + 2*pix[0][1] - - pix[-d][1] - pix[d][1]) >> 1); - } - if(plistener) plistener->setProgress(0.33 + 0.33*row/(height-1)); - } -/* Calculate blue for red pixels and vice versa: */ - for (row=1; row < height-1; row++) { - for (col=1+(FC(row,1) & 1), c=2-FC(row,col); col < width-1; col+=2) { - pix = image + row*width+col; - for (i=0; (d=dir[i]+dir[i+1]) > 0; i++) { - diff[i] = ABS(pix[-d][c] - pix[d][c]) + - ABS(pix[-d][1] - pix[0][1]) + - ABS(pix[ d][1] - pix[0][1]); - guess[i] = pix[-d][c] + pix[d][c] + 2*pix[0][1] - - pix[-d][1] - pix[d][1]; - } - if (diff[0] != diff[1]) - pix[0][c] = CLIP(guess[diff[0] > diff[1]] >> 1); - else - pix[0][c] = CLIP((guess[0]+guess[1]) >> 2); - } - if(plistener) plistener->setProgress(0.67 + 0.33*row/(height-1)); - } - - red = new unsigned short*[H]; - for (int i=0; i