/HyperHDR

Highly optimized open source ambient lighting implementation based on modern digital video and audio stream analysis for Windows, macOS and Linux (x86 and Raspberry Pi / ARM).

Primary LanguageC++OtherNOASSERTION

About

Open source ambient lighting implementation for television and music sets based on the video and audio streams analysis. Focused on stability while ensuring performance and quality, especially for USB grabbers. Single and multi-threaded video processing optimization for Windows, macOS and Linux x64 & ARM (Raspberry Pi and others).

v20

Main features of HyperHDR

  • Really low CPU usage on SoCs like Raspberry Pi
  • Lightweight, we don't use bindings to heavy components like Python or Java
  • Low latency video processing as color source for LED strip and lamps
  • Support for multithreading that makes Raspberry Pi capable of processing HQ video stream
  • High portability on various ARM embedded platforms
  • Video post-processing filter to eliminate LED flickering
  • Modern interface using Bootstrap 5 and SVG icons
  • Support for USB grabbers under Linux, Windows 10, macOS (x64/M1)
  • Provides vital informations about your OS condition: CPU & RAM usage, CPU temperature, undervoltage detection, internal components performance including USB grabber and LED devices
  • Dynamic video cache buffers. Now Rpi can process even 1080p120 NV12 stream without any size decimation
  • Built-in audio visualization effects using spectrum analysis
  • MQTT support for IoT
  • Entertainment API v2: per-channel support for Philips Gradient Strip and others
  • Automatic LUT calibration detects grabber model specific properties for the best quality of HDR/SDR
  • Optimized multi-instances. You can use for example your TV LED strip and multiple WLED or Philips Hue light sources.
  • Built-in latency benchmark for USB grabbers
  • Software screen grabbers: DirectX11 (Windows), CoreGraphics (macOS), Pipewire/Wayland/x11 (Linux), frame buffer (Linux)
  • easy LED strip geometry editing process, automatic or manual with mouse and context menu per single LED
  • Automatic signal detection with smart learning capability for USB grabbers
  • SK6812 RGBW: advanced calibration of the white color channel for HyperSerialEsp8266, HyperSerialESP32, HyperSPI, HyperSerialPico
  • Tone mapping for external flatbuffers/protobuf sources
  • Built-in LUT table generator and LUT import tool
  • Support for 48bits HD108 LED strip
  • Support WS281x, APA102, HD107, SK9822 and SK6812 RGBW LED strips using the fastest possible cable solution for generic ESP8266/ESP32/rp2040 external LED drivers: HyperSPI. Alternatively, there is a simple solution using a high-speed connection via a standard USB serial port for ESP8266/ESP32/Pico with data integrity check and white channel calibration: HyperSerialEsp8266 and HyperSerialESP32 and for Raspberry Pi Pico HyperSerialPico. You can also use our WLED fork for ESP8266 and ESP32 using 2Mb baud speed (or higher): HyperSerialWLED

Our advanced video processing can improve the source for the LEDs, making the ambient lighting even more enjoyable and colorful. example

Download packages & sources

Official releases:
https://github.com/awawa-dev/HyperHDR/releases

Official Linux repo:
https://awawa-dev.github.io/

The latest installers for testing can usually be found as artifact archives in the Github Action tab (must be logged in):
https://github.com/awawa-dev/HyperHDR/actions

Manuals

Installation manual

Official Wiki

Example of how to build SK6812 RGBW based ambient lighting system - updated 2023

Forum

HyperHDR's support section

How to compile

Building HyperHDR from sources

Press mentions

Make: Magazine #84 (2023)
MagPi #117 (2022)
Comparison of several modern ambient lighting systems (2023)
The tutorial on raspberrypi.com
Building a 4K Capable HDMI TV Backlight (2021)




License

The source is released under MIT-License (see http://opensource.org/licenses/MIT)
GitHub license