Improve burst-level HDR bracketing with flicker-safe capture - #183
Open
matthew777777 wants to merge 4 commits into
Open
Improve burst-level HDR bracketing with flicker-safe capture#183matthew777777 wants to merge 4 commits into
matthew777777 wants to merge 4 commits into
Conversation
- Introduce new bracketing profiles: HDR (1x, 4x), Deep Shadows (1x, 8x), and Motion-safe shadows (1x, 4x, 4x). - Refactor bracketing strategy to capture long-exposure frames at the end of a burst, preserving base frames for alignment. - Implement flicker-safe exposure logic that aligns shutter speeds with detected 50Hz/60Hz mains frequency while compensating with ISO. - Update `HdrxProcessor` to ensure shadow frames are preserved during burst filtering and deghosting. - Enable automatic AE antibanding in the preview request builder. - Add `updatePreviewFlicker` to track scene flicker statistics from the camera HAL. - Update UI labels and settings entries for the new bracketing modes.
HdrxProcessor now:
- Finds the measured 0 EV frame from the requested bracket.
- Classifies exposures relative to that frame:
- Below base → Low
- Approximately base → Normal
- Above base → High
- Uses a 5% tolerance for camera HAL exposure rounding.
- Preserves at least one frame from every exposure class during motion-based pruning.
- Continues normalizing GPU exposure multipliers against the darkest frame, as required by the current shaders.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR replaces the repeating three-frame bracketing pattern with a capture plan built once per burst.
Changes
Uses the existing Bracketing dropdown as the user control.
Captures base-exposure reference frames first, then adds shadow frames according to the selected mode:
Preserves at least one base reference and one shadow frame when removing shaky frames before merge.
Implements flicker-safe exposure logic that aligns shutter speeds with detected 50Hz/60Hz mains frequency while compensating with ISO.
Enables automatic AE antibanding in the preview request builder.
Add's
updatePreviewFlickerto track scene flicker statistics from the camera HAL.Keeps the actual exposure ratio metadata-driven in HDRX processing.
Renames the dropdown from “Exposure Bracketing” to “Bracketing.”
Validation
Follow-up
Preview-histogram-based automatic bracketing are intentionally out of scope for this PR.