Skip to content

Lossless compression and adaptive gamma correction - #431

Open
sblantipodi wants to merge 99 commits into
masterfrom
rle-map_tofix
Open

Lossless compression and adaptive gamma correction#431
sblantipodi wants to merge 99 commits into
masterfrom
rle-map_tofix

Conversation

@sblantipodi

@sblantipodi sblantipodi commented Jun 15, 2026

Copy link
Copy Markdown
Owner
  • Update Requirement: This release requires Glow Worm Luciferin firmware v5.28.2.
  • Luciferin can now be controlled by your preferred AI agent using MCP (Model Context Protocol) using natural language.
  • Adaptive gamma automatically adjusts color brightness based on how dark or bright the scene is, making dark areas clearer without washing out bright ones and significantly improving color accuracy in low light scenes.
    HDR content benefits even more, thanks to a stronger adaptive profile that enhances color accuracy across wide dynamic ranges.
    • Gamma smoothly transitions between adaptive (dark scenes) and classic (bright scenes) modes using a smoothstep function, avoiding abrupt changes
    • HDR mode uses a more aggressive adaptive profile, greatly improving color rendering on HDR content with wide dynamic range
    • Added per-frame average brightness tracking with dead zone filtering to prevent flickering on static or borderline scenes
    • Added a sensor.luciferin_adaptive_gamma entity to monitor the current gamma via Home Assistant.
  • Upgraded internal color processing and frame interpolation pipeline from 8 bit integers to high precision 32 bit floating point math. Prevents intermediate rounding loss, delivering flawlessly smooth color fades, rich dark scene contrast, and artifact free LED rendering.
  • Lossless RLE compression. Introduced run length encoding for LED frames, reducing bandwidth usage and significantly improving latency, especially on high LED count setups.
  • LED grouping compression. LED grouping now transmits only the minimal set of color values (e.g., 100 LEDs with group size 2 send only 50 values). The microcontroller expands the grouped data locally for optimal efficiency/latency.
  • Improved grouping accuracy. Enhanced LED grouping logic ensures correct handling of uneven or odd/even boundary regions, producing more consistent color distribution across the strip.
  • Through the Test Image feature you can now enable an overlay that shows, in real time on screen, exactly what is being sent to the LEDs. It also provides information about the lossless compression in use, the capture framerate, and the dynamic‑range handling.
  • Automatic SIMD micro‑benchmark. Added a transparent mini‑benchmark that evaluates both SIMD strategies and selects the fastest one with a runtime CPU‑specific calibration, ensuring optimal frame processing performance.
  • Web Installer improvements: (Thanks to @balloob for #PR10):
    • Added a network scan with a picker for selecting a Wi-Fi network.
    • Web installer now support ESP32-C5.
    • Firefox browser is now supported.
  • Traffic Class compatibility. Adjusted UDP traffic class to avoid routers that block or mishandle Expedited Forwarding, improving reliability on problematic networks.
  • Linux improvements:
    • Linux Flatpak updated NVIDIA CUDA toolkit to 13.3.
    • NVIDIA/AMD/Intel optimizations direct GPU buffer processing without downloading to CPU memory.
  • Fixed tile resize (TAB / SHIFT+TAB) and drag & drop behaving incorrectly when grouped LEDs are selected.
  • Fixed an issue where Flatpak failed to correctly launch Luciferin instances in multi‑monitor setups. Thanks to @mhetzi for #PR428.
  • Arduino Bootstrapper updated to v1.20.1.

Users running a previous version of Luciferin can upgrade using the automatic update feature, available for both the PC software and the firmware.

@sblantipodi sblantipodi changed the title Rle map tofix Lossless compression Jun 19, 2026
- getDevice
- getInfo
- setEffect
…ritance, optimize SIMD hot path with allocation reuse
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant