camerad: garbage collect CL files (#36046)
parent
ef2bb7f2fc
commit
7ed8abb66c
3 changed files with 0 additions and 139 deletions
@ -1,34 +0,0 @@ |
|||||||
#if SENSOR_ID == 1 |
|
||||||
|
|
||||||
#define VIGNETTE_PROFILE_8DT0MM |
|
||||||
|
|
||||||
#define BIT_DEPTH 12 |
|
||||||
#define PV_MAX 4096 |
|
||||||
#define BLACK_LVL 168 |
|
||||||
|
|
||||||
float4 normalize_pv(int4 parsed, float vignette_factor) { |
|
||||||
float4 pv = (convert_float4(parsed) - BLACK_LVL) / (PV_MAX - BLACK_LVL); |
|
||||||
return clamp(pv*vignette_factor, 0.0, 1.0); |
|
||||||
} |
|
||||||
|
|
||||||
float3 color_correct(float3 rgb) { |
|
||||||
float3 corrected = rgb.x * (float3)(1.82717181, -0.31231438, 0.07307673); |
|
||||||
corrected += rgb.y * (float3)(-0.5743977, 1.36858544, -0.53183455); |
|
||||||
corrected += rgb.z * (float3)(-0.25277411, -0.05627105, 1.45875782); |
|
||||||
return corrected; |
|
||||||
} |
|
||||||
|
|
||||||
float3 apply_gamma(float3 rgb, int expo_time) { |
|
||||||
// tone mapping params
|
|
||||||
const float gamma_k = 0.75; |
|
||||||
const float gamma_b = 0.125; |
|
||||||
const float mp = 0.01; // ideally midpoint should be adaptive
|
|
||||||
const float rk = 9 - 100*mp; |
|
||||||
|
|
||||||
// poly approximation for s curve
|
|
||||||
return (rgb > mp) ? |
|
||||||
((rk * (rgb-mp) * (1-(gamma_k*mp+gamma_b)) * (1+1/(rk*(1-mp))) / (1+rk*(rgb-mp))) + gamma_k*mp + gamma_b) : |
|
||||||
((rk * (rgb-mp) * (gamma_k*mp+gamma_b) * (1+1/(rk*mp)) / (1-rk*(rgb-mp))) + gamma_k*mp + gamma_b); |
|
||||||
} |
|
||||||
|
|
||||||
#endif |
|
@ -1,58 +0,0 @@ |
|||||||
#if SENSOR_ID == 3 |
|
||||||
|
|
||||||
#define BGGR |
|
||||||
#define VIGNETTE_PROFILE_4DT6MM |
|
||||||
|
|
||||||
#define BIT_DEPTH 12 |
|
||||||
#define PV_MAX10 1023 |
|
||||||
#define PV_MAX12 4095 |
|
||||||
#define PV_MAX16 65536 // gamma curve is calibrated to 16bit
|
|
||||||
#define BLACK_LVL 48 |
|
||||||
|
|
||||||
float combine_dual_pvs(float lv, float sv, int expo_time) { |
|
||||||
float svc = fmax(sv * expo_time, (float)(64 * (PV_MAX10 - BLACK_LVL))); |
|
||||||
float svd = sv * fmin(expo_time, 8.0) / 8; |
|
||||||
|
|
||||||
if (expo_time > 64) { |
|
||||||
if (lv < PV_MAX10 - BLACK_LVL) { |
|
||||||
return lv / (PV_MAX16 - BLACK_LVL); |
|
||||||
} else { |
|
||||||
return (svc / 64) / (PV_MAX16 - BLACK_LVL); |
|
||||||
} |
|
||||||
} else { |
|
||||||
if (lv > 32) { |
|
||||||
return (lv * 64 / fmax(expo_time, 8.0)) / (PV_MAX16 - BLACK_LVL); |
|
||||||
} else { |
|
||||||
return svd / (PV_MAX16 - BLACK_LVL); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
float4 normalize_pv_hdr(int4 parsed, int4 short_parsed, float vignette_factor, int expo_time) { |
|
||||||
float4 pl = convert_float4(parsed - BLACK_LVL); |
|
||||||
float4 ps = convert_float4(short_parsed - BLACK_LVL); |
|
||||||
float4 pv; |
|
||||||
pv.s0 = combine_dual_pvs(pl.s0, ps.s0, expo_time); |
|
||||||
pv.s1 = combine_dual_pvs(pl.s1, ps.s1, expo_time); |
|
||||||
pv.s2 = combine_dual_pvs(pl.s2, ps.s2, expo_time); |
|
||||||
pv.s3 = combine_dual_pvs(pl.s3, ps.s3, expo_time); |
|
||||||
return clamp(pv*vignette_factor, 0.0, 1.0); |
|
||||||
} |
|
||||||
|
|
||||||
float4 normalize_pv(int4 parsed, float vignette_factor) { |
|
||||||
float4 pv = (convert_float4(parsed) - BLACK_LVL) / (PV_MAX12 - BLACK_LVL); |
|
||||||
return clamp(pv*vignette_factor, 0.0, 1.0); |
|
||||||
} |
|
||||||
|
|
||||||
float3 color_correct(float3 rgb) { |
|
||||||
float3 corrected = rgb.x * (float3)(1.55361989, -0.268894615, -0.000593219); |
|
||||||
corrected += rgb.y * (float3)(-0.421217301, 1.51883144, -0.69760146); |
|
||||||
corrected += rgb.z * (float3)(-0.132402589, -0.249936825, 1.69819468); |
|
||||||
return corrected; |
|
||||||
} |
|
||||||
|
|
||||||
float3 apply_gamma(float3 rgb, int expo_time) { |
|
||||||
return (10 * rgb) / (1 + 9 * rgb); |
|
||||||
} |
|
||||||
|
|
||||||
#endif |
|
@ -1,47 +0,0 @@ |
|||||||
#if SENSOR_ID == 2 |
|
||||||
|
|
||||||
#define VIGNETTE_PROFILE_8DT0MM |
|
||||||
|
|
||||||
#define BIT_DEPTH 12 |
|
||||||
#define BLACK_LVL 64 |
|
||||||
|
|
||||||
float ox_lut_func(int x) { |
|
||||||
if (x < 512) { |
|
||||||
return x * 5.94873e-8; |
|
||||||
} else if (512 <= x && x < 768) { |
|
||||||
return 3.0458e-05 + (x-512) * 1.19913e-7; |
|
||||||
} else if (768 <= x && x < 1536) { |
|
||||||
return 6.1154e-05 + (x-768) * 2.38493e-7; |
|
||||||
} else if (1536 <= x && x < 1792) { |
|
||||||
return 0.0002448 + (x-1536) * 9.56930e-7; |
|
||||||
} else if (1792 <= x && x < 2048) { |
|
||||||
return 0.00048977 + (x-1792) * 1.91441e-6; |
|
||||||
} else if (2048 <= x && x < 2304) { |
|
||||||
return 0.00097984 + (x-2048) * 3.82937e-6; |
|
||||||
} else if (2304 <= x && x < 2560) { |
|
||||||
return 0.0019601 + (x-2304) * 7.659055e-6; |
|
||||||
} else if (2560 <= x && x < 2816) { |
|
||||||
return 0.0039207 + (x-2560) * 1.525e-5; |
|
||||||
} else { |
|
||||||
return 0.0078421 + (exp((x-2816)/273.0) - 1) * 0.0092421; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
float4 normalize_pv(int4 parsed, float vignette_factor) { |
|
||||||
// PWL
|
|
||||||
float4 pv = {ox_lut_func(parsed.s0), ox_lut_func(parsed.s1), ox_lut_func(parsed.s2), ox_lut_func(parsed.s3)}; |
|
||||||
return clamp(pv*vignette_factor*256.0, 0.0, 1.0); |
|
||||||
} |
|
||||||
|
|
||||||
float3 color_correct(float3 rgb) { |
|
||||||
float3 corrected = rgb.x * (float3)(1.5664815, -0.29808738, -0.03973474); |
|
||||||
corrected += rgb.y * (float3)(-0.48672447, 1.41914433, -0.40295248); |
|
||||||
corrected += rgb.z * (float3)(-0.07975703, -0.12105695, 1.44268722); |
|
||||||
return corrected; |
|
||||||
} |
|
||||||
|
|
||||||
float3 apply_gamma(float3 rgb, int expo_time) { |
|
||||||
return -0.507089*exp(-12.54124638*rgb) + 0.9655*powr(rgb, 0.5) - 0.472597*rgb + 0.507089; |
|
||||||
} |
|
||||||
|
|
||||||
#endif |
|
Loading…
Reference in new issue