merge with dev
This commit is contained in:
commit
a2095b0ee2
5
.github/workflows/main.yml
vendored
5
.github/workflows/main.yml
vendored
@ -1,5 +1,8 @@
|
|||||||
name: macOS build
|
name: macOS build
|
||||||
on: push
|
on:
|
||||||
|
push:
|
||||||
|
branches-ignore:
|
||||||
|
- '**'
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
|
@ -13,3 +13,7 @@ Build flags: ${CXX_FLAGS}
|
|||||||
Link flags: ${LFLAGS}
|
Link flags: ${LFLAGS}
|
||||||
OpenMP support: ${OPTION_OMP}
|
OpenMP support: ${OPTION_OMP}
|
||||||
MMAP support: ${WITH_MYFILE_MMAP}
|
MMAP support: ${WITH_MYFILE_MMAP}
|
||||||
|
Build OS: ${BUILDINFO_OS}
|
||||||
|
Build date: ${BUILDINFO_DATE} ZULU
|
||||||
|
Build epoch: ${BUILDINFO_EPOCH}
|
||||||
|
Build UUID: ${BUILDINFO_UUID}
|
||||||
|
@ -64,6 +64,11 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND)
|
|||||||
set(GIT_NUMERIC_VERSION_BS "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}")
|
set(GIT_NUMERIC_VERSION_BS "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
execute_process(COMMAND uname -mrs OUTPUT_VARIABLE BUILDINFO_OS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND date -Ru OUTPUT_VARIABLE BUILDINFO_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND date +%s OUTPUT_VARIABLE BUILDINFO_EPOCH OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND uuidgen COMMAND tr "A-Z" "a-z" OUTPUT_VARIABLE BUILDINFO_UUID OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
message(STATUS "Git checkout information:")
|
message(STATUS "Git checkout information:")
|
||||||
message(STATUS " Commit description: ${GIT_DESCRIBE}")
|
message(STATUS " Commit description: ${GIT_DESCRIBE}")
|
||||||
message(STATUS " Branch: ${GIT_BRANCH}")
|
message(STATUS " Branch: ${GIT_BRANCH}")
|
||||||
@ -72,6 +77,11 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND)
|
|||||||
message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}")
|
message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}")
|
||||||
message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}")
|
message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}")
|
||||||
message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}")
|
message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}")
|
||||||
|
message(STATUS "Build information:")
|
||||||
|
message(STATUS " Build OS: ${BUILDINFO_OS}")
|
||||||
|
message(STATUS " Build date: ${BUILDINFO_DATE}")
|
||||||
|
message(STATUS " Epoch: ${BUILDINFO_EPOCH}")
|
||||||
|
message(STATUS " UUID: ${BUILDINFO_UUID}")
|
||||||
|
|
||||||
if(NOT DEFINED CACHE_NAME_SUFFIX)
|
if(NOT DEFINED CACHE_NAME_SUFFIX)
|
||||||
set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}")
|
set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}")
|
||||||
|
@ -1725,6 +1725,13 @@ void Color::Lab2XYZ(float L, float a, float b, float &x, float &y, float &z)
|
|||||||
y = (LL > epskap) ? 65535.0f * fy * fy * fy : 65535.0f * LL / kappa;
|
y = (LL > epskap) ? 65535.0f * fy * fy * fy : 65535.0f * LL / kappa;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float Color::L2Y(float L)
|
||||||
|
{
|
||||||
|
const float LL = L / 327.68f;
|
||||||
|
const float fy = (c1By116 * LL) + c16By116; // (L+16)/116
|
||||||
|
return (LL > epskapf) ? 65535.f * fy * fy * fy : 65535.f * LL / kappaf;
|
||||||
|
}
|
||||||
|
|
||||||
void Color::L2XYZ(float L, float &x, float &y, float &z) // for black & white
|
void Color::L2XYZ(float L, float &x, float &y, float &z) // for black & white
|
||||||
{
|
{
|
||||||
float LL = L / 327.68f;
|
float LL = L / 327.68f;
|
||||||
@ -1767,19 +1774,6 @@ inline float Color::computeXYZ2Lab(float f)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline float Color::computeXYZ2LabY(float f)
|
|
||||||
{
|
|
||||||
if (f < 0.f) {
|
|
||||||
return 327.68 * (kappa * f / MAXVALF);
|
|
||||||
} else if (f > 65535.f) {
|
|
||||||
return 327.68f * (116.f * xcbrtf(f / MAXVALF) - 16.f);
|
|
||||||
} else {
|
|
||||||
return cachefy[f];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Color::RGB2Lab(float *R, float *G, float *B, float *L, float *a, float *b, const float wp[3][3], int width)
|
void Color::RGB2Lab(float *R, float *G, float *B, float *L, float *a, float *b, const float wp[3][3], int width)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -101,7 +101,6 @@ private:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static float computeXYZ2Lab(float f);
|
static float computeXYZ2Lab(float f);
|
||||||
static float computeXYZ2LabY(float f);
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -185,6 +184,16 @@ public:
|
|||||||
static void init ();
|
static void init ();
|
||||||
static void cleanup ();
|
static void cleanup ();
|
||||||
|
|
||||||
|
static inline float computeXYZ2LabY(float f)
|
||||||
|
{
|
||||||
|
if (f < 0.f) {
|
||||||
|
return 327.68f * (kappa * f / MAXVALF);
|
||||||
|
} else if (f > 65535.f) {
|
||||||
|
return 327.68f * (116.f * xcbrtf(f / MAXVALF) - 16.f);
|
||||||
|
} else {
|
||||||
|
return cachefy[f];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Extract luminance "sRGB" from red/green/blue values
|
* @brief Extract luminance "sRGB" from red/green/blue values
|
||||||
@ -610,6 +619,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
static void Lab2XYZ(float L, float a, float b, float &x, float &y, float &z);
|
static void Lab2XYZ(float L, float a, float b, float &x, float &y, float &z);
|
||||||
static void L2XYZ(float L, float &x, float &y, float &z);
|
static void L2XYZ(float L, float &x, float &y, float &z);
|
||||||
|
static float L2Y(float L);
|
||||||
|
|
||||||
#ifdef __SSE2__
|
#ifdef __SSE2__
|
||||||
static void Lab2XYZ(vfloat L, vfloat a, vfloat b, vfloat &x, vfloat &y, vfloat &z);
|
static void Lab2XYZ(vfloat L, vfloat a, vfloat b, vfloat &x, vfloat &y, vfloat &z);
|
||||||
|
@ -200,29 +200,29 @@ public:
|
|||||||
int pitch, int scale, const int luma, const int chroma/*, LUTf & Lcurve, LUTf & abcurve*/);
|
int pitch, int scale, const int luma, const int chroma/*, LUTf & Lcurve, LUTf & abcurve*/);
|
||||||
|
|
||||||
void Tile_calc(int tilesize, int overlap, int kall, int imwidth, int imheight, int &numtiles_W, int &numtiles_H, int &tilewidth, int &tileheight, int &tileWskip, int &tileHskip);
|
void Tile_calc(int tilesize, int overlap, int kall, int imwidth, int imheight, int &numtiles_W, int &numtiles_H, int &tilewidth, int &tileheight, int &tileWskip, int &tileHskip);
|
||||||
void ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, LUTf &wavclCurve, int skip);
|
void ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip);
|
||||||
|
|
||||||
void WaveletcontAllL(LabImage * lab, float **varhue, float **varchrom, wavelet_decomposition &WaveletCoeffs_L,
|
void WaveletcontAllL(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_L,
|
||||||
struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili);
|
struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili);
|
||||||
void WaveletcontAllLfinal(wavelet_decomposition &WaveletCoeffs_L, struct cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL);
|
void WaveletcontAllLfinal(const wavelet_decomposition &WaveletCoeffs_L, const cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL);
|
||||||
void WaveletcontAllAB(LabImage * lab, float **varhue, float **varchrom, wavelet_decomposition &WaveletCoeffs_a, const WavOpacityCurveW & waOpacityCurveW,
|
void WaveletcontAllAB(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_a, const WavOpacityCurveW & waOpacityCurveW,
|
||||||
struct cont_params &cp, const bool useChannelA);
|
struct cont_params &cp, const bool useChannelA);
|
||||||
void WaveletAandBAllAB(wavelet_decomposition &WaveletCoeffs_a, wavelet_decomposition &WaveletCoeffs_b,
|
void WaveletAandBAllAB(const wavelet_decomposition &WaveletCoeffs_a, const wavelet_decomposition &WaveletCoeffs_b,
|
||||||
struct cont_params &cp, FlatCurve* hhcurve, bool hhutili);
|
const cont_params &cp, FlatCurve* hhcurve, bool hhutili);
|
||||||
void ContAllL(float **koeLi, float *maxkoeLi, bool lipschitz, int maxlvl, LabImage * lab, float **varhue, float **varchrom, float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp,
|
void ContAllL(float **koeLi, float *maxkoeLi, bool lipschitz, int maxlvl, LabImage * lab, float **varhue, float **varchrom, float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp,
|
||||||
int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili);
|
int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili);
|
||||||
void finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp,
|
void finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, const cont_params &cp,
|
||||||
int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL);
|
int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL);
|
||||||
void ContAllAB(LabImage * lab, int maxlvl, float **varhue, float **varchrom, float ** WavCoeffs_a, float * WavCoeffs_a0, int level, int dir, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp,
|
void ContAllAB(LabImage * lab, int maxlvl, float **varhue, float **varchrom, float ** WavCoeffs_a, float * WavCoeffs_a0, int level, int dir, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp,
|
||||||
int W_ab, int H_ab, const bool useChannelA);
|
int W_ab, int H_ab, const bool useChannelA);
|
||||||
void Evaluate2(wavelet_decomposition &WaveletCoeffs_L,
|
void Evaluate2(const wavelet_decomposition &WaveletCoeffs_L,
|
||||||
float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN);
|
float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN);
|
||||||
void Eval2(float ** WavCoeffs_L, int level,
|
void Eval2(float ** WavCoeffs_L, int level,
|
||||||
int W_L, int H_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN);
|
int W_L, int H_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN);
|
||||||
|
|
||||||
void Aver(float * HH_Coeffs, int datalen, float &averagePlus, float &averageNeg, float &max, float &min);
|
void Aver(float * HH_Coeffs, int datalen, float &averagePlus, float &averageNeg, float &max, float &min);
|
||||||
void Sigma(float * HH_Coeffs, int datalen, float averagePlus, float averageNeg, float &sigmaPlus, float &sigmaNeg);
|
void Sigma(float * HH_Coeffs, int datalen, float averagePlus, float averageNeg, float &sigmaPlus, float &sigmaNeg);
|
||||||
void calckoe(float ** WavCoeffs_LL, const struct cont_params& cp, float ** koeLi, int level, int dir, int W_L, int H_L, float edd, float *maxkoeLi, float **tmC = nullptr);
|
void calckoe(float ** WavCoeffs_LL, const cont_params& cp, float ** koeLi, int level, int dir, int W_L, int H_L, float edd, float *maxkoeLi, float **tmC = nullptr);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user