프로젝트 소개
HyperHDR은 TV, 모니터, 음악 환경을 위한 오픈소스 앰비언트 라이팅(바이어스 라이팅) 시스템이다. 비디오와 오디오 스트림을 실시간으로 분석해 그 결과를 LED 스트립과 조명에 매핑하여 화면 콘텐츠를 따라가는 조명을 만들어낸다.
플랫폼 및 아키텍처
- Windows, macOS(x64 및 arm64), Linux(x64 및 ARM, Raspberry Pi 포함)에서 실행된다.
- 주로 C++20과 CMake로 작성되었으며, macOS UI는 Objective-C++를, 웹 인터페이스는 JavaScript/HTML과 Bootstrap 5를 사용한다.
- Python이나 Java 같은 무거운 런타임 의존성 없이 가볍게 설계되었으며, Raspberry Pi나 Intel N100 같은 SoC에서 낮은 CPU 사용량에 최적화되어 있다.
색상 파이프라인
- "Infinite Color Engine"은 부동소수점 및 선형 sRGB 공간에서 색상 연산을 수행하여 24비트 정수 파이프라인에 비해 반올림 아티팩트와 밴딩을 줄이는 것을 목표로 한다.
- Philips Hue, LIFX, HD108 LED 등 호환 기기용 딥 컬러 출력을 지원한다.
- 에너지 인식 전력 밸런싱을 갖춘 RGB-to-RGBW 변환, 화이트 포인트 온도 캘리브레이션, 시간적 디더링, 안티 플리커 히스테리시스를 포함한다.
- 관성 물리, 지수, 지각적으로 균일한 YUV/RGB 보간기를 비롯한 여러 스무딩 방식을 제공한다.
캡처 및 비디오 처리
- Linux, Windows 10/11, macOS에서 P010, NV12, YUYV, MJPEG, UYVY, I420, RGB 포맷을 위한 USB 그래버를 지원한다.
- Linux/Wayland의 PipeWire/Portal 및 Windows 10/11의 DirectX를 통한 하드웨어 가속 캡처를 지원한다.
- DXGI_FORMAT_R16G16B16A16_FLOAT를 사용하는 HDR 지원 DirectX 화면 캡처와 다중 모니터 지원을 제공한다.
- 하드웨어가 지원하는 경우 SDR, HDR, LLDV(Low Latency Dolby Vision) 콘텐츠를 처리한다.
- SDR/HDR 콘텐츠용 자동 톤 매핑과 함께 MP4 테스트 파일을 사용한 자동 LUT 캘리브레이션, USB 그래버용 지연 시간 벤치마킹을 제공한다.
- USB 그래버 대신 PC에서의 소프트웨어 화면 캡처를 사용할 수 있다.
오디오 및 통합
- 스펙트럼 분석 기반의 내장 오디오 시각화로 소리 반응형 조명을 구현한다.
- IoT 통합을 위한 MQTT 지원과 Home Assistant 및 zigbee2mqtt 연동을 제공한다.
- JSON API와 mDNS/Zeroconf 검색을 지원한다.
LED 출력 및 도구
- WS281x, APA102, HD107, SK9822, SK6812 등 일반적인 LED 유형을 지원한다.
- 동반 프로젝트에서 빠른 컨트롤러를 제공한다: ESP8266/ESP32/RP2040용 HyperSPI, USB 시리얼을 통한 HyperSerialEsp8266/ESP32/Pico, ESP8266/ESP32 변형 및 Raspberry Pi Pico W(RP2040/RP2350)용 무선 컨트롤러 Hyperk.
- 마우스와 컨텍스트 메뉴를 통한 자동 또는 수동 지오메트리 편집이 가능한 LED 스트립 편집기를 포함한다.
- 시스템 진단은 실시간 CPU/RAM 사용량, CPU 온도, 저전압 감지, USB 그래버 및 LED 성능을 보여준다.
배포 및 문서
- 공식 릴리스는 GitHub에 게시되며, Windows 설치 프로그램은 SignPath Foundation의 코드 서명을 받는다.
- 공식 Linux 저장소와 일일 개발 빌드를 사용할 수 있다.
- 문서는 프로젝트 위키에 있으며, 커뮤니티 지원은 GitHub Discussions를 통해 제공된다.
- MIT 라이선스로 배포된다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.