diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,7 +56,7 @@ SET(KDCRAW_LIB_SO_AGE_VERSION "0") SET(LIBKDCRAW_LIB_VERSION "${KDCRAW_LIB_MAJOR_VERSION}.${KDCRAW_LIB_MINOR_VERSION}.${KDCRAW_LIB_PATCH_VERSION}") -SET(LIBDCRAW_SO_VERSION "${KDCRAW_LIB_SO_CUR_VERSION}.${KDCRAW_LIB_SO_REV_VERSION}.${KDCRAW_LIB_SO_AGE_VERSION}") +SET(LIBKDCRAW_SO_VERSION 6) ############## ECM setup ###################### diff --git a/src/kdcraw_p.cpp b/src/kdcraw_p.cpp --- a/src/kdcraw_p.cpp +++ b/src/kdcraw_p.cpp @@ -371,39 +371,14 @@ raw.imgdata.params.fbdd_noiserd = lround(m_parent->m_rawDecodingSettings.NRThreshold / 100.0); break; } - case RawDecodingSettings::LINENR: - { - // (100 - 1000) => (0.001 - 0.02) conversion. - raw.imgdata.params.linenoise = m_parent->m_rawDecodingSettings.NRThreshold * 2.11E-5 + 0.00111111; - raw.imgdata.params.cfaline = true; - break; - } - - case RawDecodingSettings::IMPULSENR: - { - // (100 - 1000) => (0.005 - 0.05) conversion. - raw.imgdata.params.lclean = m_parent->m_rawDecodingSettings.NRThreshold * 5E-5; - raw.imgdata.params.cclean = m_parent->m_rawDecodingSettings.NRChroThreshold * 5E-5; - raw.imgdata.params.cfa_clean = true; - break; - } default: // No Noise Reduction { raw.imgdata.params.threshold = 0; raw.imgdata.params.fbdd_noiserd = 0; - raw.imgdata.params.linenoise = 0; - raw.imgdata.params.cfaline = false; - raw.imgdata.params.lclean = 0; - raw.imgdata.params.cclean = 0; - raw.imgdata.params.cfa_clean = false; break; } } - // Chromatic aberration correction. - raw.imgdata.params.ca_correc = m_parent->m_rawDecodingSettings.enableCACorrection; - raw.imgdata.params.cared = m_parent->m_rawDecodingSettings.caMultiplier[0]; - raw.imgdata.params.cablue = m_parent->m_rawDecodingSettings.caMultiplier[1]; // Exposure Correction before interpolation. raw.imgdata.params.exp_correc = m_parent->m_rawDecodingSettings.expoCorrection; @@ -457,8 +432,6 @@ raw.imgdata.params.dcb_iterations = m_parent->m_rawDecodingSettings.dcbIterations; raw.imgdata.params.dcb_enhance_fl = m_parent->m_rawDecodingSettings.dcbEnhanceFl; - raw.imgdata.params.eeci_refine = m_parent->m_rawDecodingSettings.eeciRefine; - raw.imgdata.params.es_med_passes = m_parent->m_rawDecodingSettings.esMedPasses; //------------------------------------------------------------------------------------------- diff --git a/src/rawdecodingsettings.h b/src/rawdecodingsettings.h --- a/src/rawdecodingsettings.h +++ b/src/rawdecodingsettings.h @@ -67,37 +67,19 @@ * AHD: use Adaptive Homogeneity-Directed interpolation. * This method selects the direction of interpolation so as to * maximize a homogeneity metric, thus typically minimizing color artifacts. - * - * NOTE: from GPL2 demosaic pack. - * * DCB: DCB interpolation (see http://www.linuxphoto.org/html/dcb.html for details) - * PL_AHD: modified AHD interpolation (see http://sites.google.com/site/demosaicalgorithms/modified-dcraw - * for details). - * AFD: demosaicing through 5 pass median filter from PerfectRaw project. - * VCD: VCD interpolation. - * VCD_AHD: mixed demosaicing between VCD and AHD. - * LMMSE: LMMSE interpolation from PerfectRaw. - * - * NOTE: from GPL3 demosaic pack. - * - * AMAZE: AMaZE interpolation and color aberration removal from RawTherapee project. + * DHT: DHT interpolation. + * AAHD: Enhanced Adaptative AHD interpolation. */ enum DecodingQuality { - // from original dcraw demosaic BILINEAR = 0, VNG = 1, PPG = 2, AHD = 3, - // Extended demosaicing method from GPL2 demosaic pack DCB = 4, - PL_AHD = 5, - AFD = 6, - VCD = 7, - VCD_AHD = 8, - LMMSE = 9, - // Extended demosaicing methods from GPL3 demosaic pack - AMAZE = 10 + DHT = 11, + AAHD = 12 }; /** White balances alternatives @@ -120,16 +102,12 @@ * NONR: No noise reduction. * WAVELETSNR: wavelets correction to erase noise while preserving real detail. It's applied after interpolation. * FBDDNR: Fake Before Demosaicing Denoising noise reduction. It's applied before interpolation. - * LINENR: CFA Line Denoise. It's applied after interpolation. - * IMPULSENR: Impulse Denoise. It's applied after interpolation. */ enum NoiseReduction { NONR = 0, WAVELETSNR, FBDDNR, - LINENR, - IMPULSENR }; /** Input color profile used to decoded image @@ -247,21 +225,9 @@ NoiseReduction NRType; /** Noise reduction threshold value. Null value disable NR. Range is between 100 and 1000. - * For IMPULSENR : set the amount of Luminance impulse denoise. */ int NRThreshold; - /** Turn on chromatic aberrations correction - */ - bool enableCACorrection; - - /** Magnification factor for Red and Blue layers - * - caMultiplier[0] = amount of correction on red-green axis. - * - caMultiplier[1] = amount of correction on blue-yellow axis. - * - Both values set to 0.0 = automatic CA correction. - */ - double caMultiplier[2]; - /** Brightness of output image. */ double brightness; @@ -324,21 +290,6 @@ /// For VCD_AHD interpolation. - /** Turn on the EECI refine for VCD Demosaicing. - */ - bool eeciRefine; - - /** Use edge-sensitive median filtering for artifact supression after VCD demosaicing. - * 0 : disable (default) - * 1-10 : median filter passes. - */ - int esMedPasses; - - /** For IMPULSENR Noise reduction. Set the amount of Chrominance impulse denoise. - Null value disable NR. Range is between 100 and 1000. - */ - int NRChroThreshold; - /** Turn on the Exposure Correction before interpolation. */ bool expoCorrection; diff --git a/src/rawdecodingsettings.cpp b/src/rawdecodingsettings.cpp --- a/src/rawdecodingsettings.cpp +++ b/src/rawdecodingsettings.cpp @@ -60,10 +60,6 @@ NRType = NONR; NRThreshold = 0; - enableCACorrection = false; - caMultiplier[0] = 0.0; - caMultiplier[1] = 0.0; - inputProfile = QString(); outputProfile = QString(); @@ -75,9 +71,6 @@ dcbIterations = -1; dcbEnhanceFl = false; - eeciRefine = false; - esMedPasses = 0; - NRChroThreshold = 0; expoCorrection = false; expoCorrectionShift = 1.0; expoCorrectionHighlight = 0.0; @@ -109,9 +102,6 @@ whitePoint = o.whitePoint; NRType = o.NRType; NRThreshold = o.NRThreshold; - enableCACorrection = o.enableCACorrection; - caMultiplier[0] = o.caMultiplier[0]; - caMultiplier[1] = o.caMultiplier[1]; medianFilterPasses = o.medianFilterPasses; inputProfile = o.inputProfile; outputProfile = o.outputProfile; @@ -122,9 +112,6 @@ dcbIterations = o.dcbIterations; dcbEnhanceFl = o.dcbEnhanceFl; - eeciRefine = o.eeciRefine; - esMedPasses = o.esMedPasses; - NRChroThreshold = o.NRChroThreshold; expoCorrection = o.expoCorrection; expoCorrectionShift = o.expoCorrectionShift; expoCorrectionHighlight = o.expoCorrectionHighlight; @@ -154,9 +141,6 @@ && whitePoint == o.whitePoint && NRType == o.NRType && NRThreshold == o.NRThreshold - && enableCACorrection == o.enableCACorrection - && caMultiplier[0] == o.caMultiplier[0] - && caMultiplier[1] == o.caMultiplier[1] && medianFilterPasses == o.medianFilterPasses && inputProfile == o.inputProfile && outputProfile == o.outputProfile @@ -167,9 +151,6 @@ && dcbIterations == o.dcbIterations && dcbEnhanceFl == o.dcbEnhanceFl - && eeciRefine == o.eeciRefine - && esMedPasses == o.esMedPasses - && NRChroThreshold == o.NRChroThreshold && expoCorrection == o.expoCorrection && expoCorrectionShift == o.expoCorrectionShift && expoCorrectionHighlight == o.expoCorrectionHighlight @@ -203,10 +184,6 @@ NRType = NONR; NRThreshold = 0; - enableCACorrection = false; - caMultiplier[0] = 0.0; - caMultiplier[1] = 0.0; - inputProfile = QString(); outputProfile = QString(); @@ -218,9 +195,6 @@ dcbIterations = -1; dcbEnhanceFl = false; - eeciRefine = false; - esMedPasses = 0; - NRChroThreshold = 0; expoCorrection = false; expoCorrectionShift = 1.0; expoCorrectionHighlight = 0.0; @@ -249,9 +223,6 @@ dbg.nospace() << "-- whitePoint: " << s.whitePoint << endl; dbg.nospace() << "-- NoiseReductionType: " << s.NRType << endl; dbg.nospace() << "-- NoiseReductionThreshold: " << s.NRThreshold << endl; - dbg.nospace() << "-- enableCACorrection: " << s.enableCACorrection << endl; - dbg.nospace() << "-- caMultiplier: " << s.caMultiplier[0] - << ", " << s.caMultiplier[1] << endl; dbg.nospace() << "-- medianFilterPasses: " << s.medianFilterPasses << endl; dbg.nospace() << "-- inputProfile: " << s.inputProfile << endl; dbg.nospace() << "-- outputProfile: " << s.outputProfile << endl; @@ -262,9 +233,6 @@ dbg.nospace() << "-- dcbIterations: " << s.dcbIterations << endl; dbg.nospace() << "-- dcbEnhanceFl: " << s.dcbEnhanceFl << endl; - dbg.nospace() << "-- eeciRefine: " << s.eeciRefine << endl; - dbg.nospace() << "-- esMedPasses: " << s.esMedPasses << endl; - dbg.nospace() << "-- NRChrominanceThreshold: " << s.NRChroThreshold << endl; dbg.nospace() << "-- expoCorrection: " << s.expoCorrection << endl; dbg.nospace() << "-- expoCorrectionShift: " << s.expoCorrectionShift << endl; dbg.nospace() << "-- expoCorrectionHighlight: " << s.expoCorrectionHighlight << endl;