Repository navigation
v2.0.0: Auto Exposure, AE statistics & Saturation Enhancement - #44
Merged
Merged
Conversation
…ancement - auto_exposure_stats (new): bit-exact model of HDR-ISP RTL axis_ae_stat (3x3 grid on the raw after digital gain; 32-bit counters, 32-bit saturating green sum). - auto_exposure (rewritten): HDR-ISP AE control law (EV law) as the specification of an RTL block - once per frame, one shared divider (at most 17 divisions), Q8 log2 unit, register ranges and internal bit widths checked; chooses digital_gain.current_gain for the next frame, with a gain-ladder bracket hold. Replaces the skewness AE after gamma. - saturation_enhancement (new): bit-exact model of HDR-ISP RTL axis_sat after 2D noise reduction (12-bit Q4.8 SAT_GAIN, pedestal 128); global only. - digital_gain: ae_feedback stepping removed. - configs + test data: new blocks (10-bit values), old auto_exposure removed; tests/test_data/default_configs.yml re-synced with config/configs.yml and the missing sharpen block added to the test Indoor1 config (both tests failed on main). - tests: unit tests for the three modules; README and UserGuide updated. Verified: statistics and saturation bit-exact against the HDR-ISP RTL in Vivado simulation; control identical to the HDR-ISP firmware mirror; 146 tests pass; with saturation off the output equals main bit for bit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace mentions of the private product name and internal RTL/firmware file paths (ae_ctrl.c, axis_ae_stat.v, axis_sat.v, hdr_isp_sat.v, ae_loop_sim.py, tb_axis_sat.sv) with generic, source-agnostic descriptions across module docstrings, config comments, README, UserGuide.md and test docstrings. No functional changes. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
# Conflicts: # infinite_isp.py # tests/test_data/Indoor1_2592x1536_10bit_GRBG-configs.yml # tests/test_pipleine_output.py
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.
Summary
Release v2.0.0 of the Infinite-ISP Reference Model.
Changes
New / reworked modules
Auto Exposure (EV based) : Replaces the skewness-based AE with a grid-metered,
EV-based control logic. modules/auto_exposure/
Auto Exposure statistics: New 3×3 grid statistics block feeding the AE control. modules/auto_exposure_stats/
Saturation Enhancement: Implemented as a standalone module.
modules/saturation_enhancement/
Digital Gain: ae_feedback index-stepping removed; AE now selects
current_gain directly. modules/digital_gain/
Pipeline
infinite_isp.py— AE-stats → AE → digital-gain wiring; 3A-loop iteration capreworked (
max_iterations = 2 * len(gain_array)); AWB→WB gain gate corrected tokey off
white_balance.is_auto(see AWB gain updation gated on digital_gain.is_auto instead of a white_balance.is_auto flag #42).util/utils.py—display_ae_statistics()rewritten for the EV-lawae_result;new
save_ae_statistics()per-grid CSV writer.config/configs.ymland the fivein_frames/normal/data/*-configs.yml— new AE,AE-stats and saturation parameters.
Tests
tests/test_auto_exposure.py,tests/test_auto_exposure_stats.py,tests/test_saturation_enhancement.py; pipeline-output test updated.Documentation & assets
docs/UserGuide.mdupdated to v2.0.0.Linked issues
digital_gain.is_autoinstead ofwhite_balance.is_auto) — fixed inload_3a_statistics()