Skip to content

Update LTM and fusion exposure pipelines - #163

Draft
RealJohnGalt wants to merge 1 commit into
eszdman:devfrom
RealJohnGalt:newltm6
Draft

Update LTM and fusion exposure pipelines#163
RealJohnGalt wants to merge 1 commit into
eszdman:devfrom
RealJohnGalt:newltm6

Conversation

@RealJohnGalt

Copy link
Copy Markdown
Contributor

More Wronski inspired, with tweaks along the way:

  • Redesign the low-res LTM gain map in fusionmap with range gates over the clena base brightness and notch spatial kernel, eliminating upsampling artifacts while keeping gain edges on one side of transitions across synthetic exposures.

  • Apply fused/base gain at full res via guided filter, with a luminance range gate and dark/bright gain caps to remove halos around high contrast edges and avoid lifting/exacerbating shadow noise.

  • Normalize bayer planes before expo weighting and clamp expo channels to improve stability and prevent overly bright expo weights.

  • Make Laplacian contrast measures and expo fusion detail reads robust to phase patterns by clamping texel positions and pre-filtering detail with a 3x3 kernel (slightly modified after starting with Nyquist). Also restrict fine scale dehaze boosts to limit LTM strengthening dehaze-induced transition artifacts.

  • Improve texture leak protection with simple ownership tracking. Additionally, ensure we close all GLTexture resources if processing fails midway.

  • Ensure AE skips cleanly when imputs are ever incorrect, to not replace the working WorkingTexture.

  • If using PyramidMerging, release frame buffers once uploaded, to keep the footprint n+1 rather than holding all frames for entire range.

  • Fix shadow curve interpolation and expo fusion tuning by using dedicated shadow splines, improve with additional fusion tuning capabilities, and introduce scale-dependent dehazing factors. Also attempt to minimize upscaling unit differences.

TODO in the future:

  • Attempt using four or five synthetic exposures opposed to three as reference.
  • Further improve edge and halo mitigations (I have tried to avoid severe smoothing). However, it is better than untouched upstream state currently as far as haloing goes.

Assisted-by: Deepseek V4 Pro
Assisted-by: Deepseek V4 Flash
Assisted-by: Kimi K3

More Wronski inspired, with tweaks along the way:
 - Redesign the low-res LTM gain map in fusionmap with range gates over the clena
   base brightness and notch spatial kernel, eliminating upsampling artifacts while
   keeping gain edges on one side of transitions across synthetic exposures.

 - Apply fused/base gain at full res via guided filter, with a luminance range gate
   and dark/bright gain caps to remove halos around high contrast edges and avoid
   lifting/exacerbating shadow noise.

 - Normalize bayer planes before expo weighting and clamp expo channels to improve
   stability and prevent overly bright expo weights.

 - Make Laplacian contrast measures and expo fusion detail reads robust to phase patterns
   by clamping texel positions and pre-filtering detail with a 3x3 kernel (slightly
   modified after starting with Nyquist). Also restrict fine scale dehaze boosts to
   limit LTM strengthening dehaze-induced transition artifacts.

 - Improve texture leak protection with simple ownership tracking. Additionally,
   ensure we close all GLTexture resources if processing fails midway.

 - Ensure AE skips cleanly when imputs are ever incorrect, to not replace the working
   WorkingTexture.

 - If using PyramidMerging, release frame buffers once uploaded, to keep the footprint
   n+1 rather than holding all frames for entire range.

 - Fix shadow curve interpolation and expo fusion tuning by using dedicated shadow splines,
   improve with additional fusion tuning capabilities, and introduce scale-dependent
   dehazing factors. Also attempt to minimize upscaling unit differences.

TODO in the future:
 - Attempt using four or five synthetic exposures opposed to three as
   reference.
 - Further improve edge and halo mitigations (I have tried to avoid
   severe smoothing). However, it is better than untouched upstream
   state currently as far as haloing goes.

Assisted-by: Deepseek V4 Pro
Assisted-by: Deepseek V4 Flash
Assisted-by: Kimi K3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant