Skip to content

v2.0.0: Auto Exposure, AE statistics & Saturation Enhancement - #44

Merged
marianadeem-10xe merged 4 commits into
mainfrom
upgraded_AE_SE
Oct 30, 2026
Merged

marianadeem-10xe merged 4 commits into
mainfrom
upgraded_AE_SE

Conversation

@marianadeem-10xe

Copy link
Copy Markdown
Collaborator

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 cap
    reworked (max_iterations = 2 * len(gain_array)); AWB→WB gain gate corrected to
    key 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-law ae_result;
    new save_ae_statistics() per-grid CSV writer.
  • config/configs.yml and the five in_frames/normal/data/*-configs.yml — new AE,
    AE-stats and saturation parameters.

Tests

  • New: tests/test_auto_exposure.py, tests/test_auto_exposure_stats.py,
    tests/test_saturation_enhancement.py; pipeline-output test updated.

Documentation & assets

  • Algorithm Description Document and docs/UserGuide.md updated to v2.0.0.
  • README and pipeline-result assets (5 scenes) regenerated; IQ-metrics report updated.

Linked issues

bakhtawar-10xe and others added 4 commits October 8, 2026 12:41
…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
@marianadeem-10xe
marianadeem-10xe merged commit 28962d7 into main Oct 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants