Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HDR tone mapping for external grabbers #46

Closed
ClassicGOD opened this issue Mar 11, 2021 · 7 comments
Closed

HDR tone mapping for external grabbers #46

ClassicGOD opened this issue Mar 11, 2021 · 7 comments

Comments

@ClassicGOD
Copy link

Feature request

HDR Tone mapping like for USB grabber but for network sources.

What problem does this feature solve?

AFAIK no PC grabbers handle HDR on PC correctly leading to washed out colors in the captured image sent to HyperHDR.

How should this be implemented in your opinion?

If possible by applying HDR Tone mapping already present for USB grabbers to network sources.

@awawa-dev
Copy link
Owner

What network protocol for that connection to external USB grabber? Do you mean HDR tone mapping for input protobuf stream from other instance of application on another PC/machine?

@ClassicGOD
Copy link
Author

Not a USB grabber but a software one. Right now I'm using Flat Buffers form an PC application.

@awawa-dev
Copy link
Owner

Could you provide more details? What kind of software source is generating that video stream using flatbuffers? If it's a video player then it should be capable to do tone mapping on his own so it's something else?

@ClassicGOD
Copy link
Author

I'm using Hyperion Screen Capture - https://sabaatworld.github.io/HyperionScreenCap/ It uses DirectX to capture the screen and while you can tone map this image I'm not familiar with DX enough to contribute.

@awawa-dev
Copy link
Owner

awawa-dev commented Mar 11, 2021

Ah, OK. Tone mapping implemented in HyperHDR is meant to work with USB grabbers because they strip and don't apply certain HDR metadata transmitted via HDMI. But it should not be the case with Hyperion Screen Capture as it captures the video content at the source (as screen grabber): HDMI is not even touched. Also the video/demo at that projects's homepage shows proper colors I think.

@ClassicGOD
Copy link
Author

I think the video it not titled correctly as many people report HDR issues on this project.
The grabber definitely sends a washed out image to Hyperion. The image looks very similar to "before" images on HyperHDR project homepage and while it does not touch HDMI the source of the issue is similar - casting HDR data into SDR without tone mapping.
I tested multiple grabbers, even ones communicating directly with LED controllers without Hyperion and all of them have this issue in HDR. I started researching the root cause of this and even found potential solution that I even already mentioned on Hyperion Screen Capture Github but that project is much less active.

So not knowing how HyperHDR tone mapping operates I was hoping it will be simple to implement and decided to ask.

awawa-dev added a commit that referenced this issue Aug 18, 2021
- upgrade Bootstrap from version 3 to 5
- replace and update most of UI components
- software screen grabbers (Windows:DirectX11 / Linux:X11 / macOS:CoreGraphics) #46
- HDR available as a global component
- automatic signal detection with learning capability
- reimplemented backup import / export function for all instances' settings
- current video stream information in the 'overview' tab
- support for my new HyperSPI project (https://github.com/awawa-dev/HyperSPI) with awa_spi LED driver
- new video stream crop method in JSON API
- JSON API documentation in a form of live playground in 'Advanced' tab
- LED grouping aka PC mode aka gradient mode
- add timeout for the anti-flickering filter
- translation resources are updated
- new panel for easy video resolution & refresh mode selection
- add release for AARCH64 architecture #68
- fix for WLED new network protocol #90
- fix missing Linux taskbar icon
- support for libCEC 6.0.2 to turn on/off video & system grabber
- support for libCEC to turn on/off HDR tone mapping with remote buttons
- compatibility with QT6.2 (tested with the preview version/Vulkan/Windows)
- lower CPU usage when automatic signal detection triggers 'nosignal' ('save resources' for software framerate decimation) #93
- standardize libJPEG-turbo library (where it's necessary)
- fix values premature clipping in the LUT generator & SDR preview rendering fix, access available now from the menu ('Advanced' tab)
- suppress most of external components' warning while building
- faster image to LED colors transformation
- import 'sparks' and 'system shutdown' effects to the new effect API #75
- better logging with instances' indexes
- fix power saving issue with macOS port
- fix memory leaks in SPI drivers
@awawa-dev
Copy link
Owner

DirectX11 software grabber is now implemented in version 17 (beta for testing) with an option for tone mapping so no need to use external software here.
If you have some time, please test it. Reopen the issue if needed.
https://github.com/awawa-dev/HyperHDR/releases/tag/v17.0.0.0beta

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants