webosbrew / hyperion-webos

hyperion.ng video grabber for webOS
MIT License
154 stars 32 forks source link

Pale LED colors via hyperion(piccap) #118

Open phyte22 opened 6 months ago

phyte22 commented 6 months ago

Hi, I've already tried a lot of things and got some help via the openlgtv Discord. Unfortunately without success so far. I hope that my thread here is okay.

My setup: LG C3, RP2040 with HyperSerialPico, SK6812RGBW CW, HyperHDR, PicCap, Apple TV 4K running default settings on HyperHDR and PicCap

Problem: Pale colors when Piccap is set as source in HyperHDR with a static test image via my external source (Apple TV)

Live Video Feed in HyperHDR is very dark compared to real image on TV image

What I have tried so far:

I hope someone here has a tip and can help me. Thanks you!

satgit62 commented 6 months ago
*** static test image not called up via Apple TV but via LG browser**

And that's wrong! You want to calibrate your HDMI player and not your LG browser. You have to download the appropriate file (2,560 × 1,920) from https://de.m.wikipedia.org/wiki/Datei:EBU_Colorbars.svg#file and play it with your player (via Apple TV) as a picture/photo. From a PC/tablet browser, call up HyperHDR web interface and check the colors in LED Visualization with the color pipette.

In PicCap, you have to set the resolution to 320 × 240 and the correct video and UI backend according to your webOS version. For the C3, this should be “libvtcapture” and “libhalgal”. In Advanced Setting you can try with Quirk_DILE_VT_NO_FREEZE_CAPTURE. Or if the image in LED Visualization is too fuzzy then QUIRK_ALTERNATIVE_DUMP_LOCATION “dump loc 1” See: https://github.com/webosbrew/hyperion-webos/pull/107

phyte22 commented 6 months ago

static test image not called up via Apple TV but via LG browser

this was just a one time test, my "normal" procedure is to view the saved "Colorbars" image from Wikipedia in my photo library via the Apple TV. Result can be seen in my posted picture. (left white bar is grayish in my HyperHDR live view.

you probably meant 320x180 and not 320x240 right? I'm running piccap with libvtcapture and libhalgal with Autostart and VSync.

I tried _QUIRK_DILE_VT_NO_FREEZECAPTURE and _QUIRK_DILE_VT_DUMP_LOCATION2 but unfortunately no improvement and the same phenomenon. Is the second setting what you meant? Unfortunately I can't quite figure out from #107 thread how exactly to set dump loc 1

phyte22 commented 6 months ago

Can no one help me?

kornner commented 5 months ago

Hi. Not sure if you have already found a solution to your issue yet. I have the exact same setup as yours, but with a G1. On my TV, using the QUIRK_DILE_VT_DUMP_LOCATION_2 greatly helps with the colors but introduces noticeable latency when playing DV content to the point it becomes too distracting. (I choose this piccap route over external sync box because it's the only way to have ambilight with TV-led DV, so I'm not going to give up DV performance for that.)

What I found by surprise that helped with my situation is that I revert back to the default dump loc option, and adjust on HyperHDR the white channel limit for the SK6812 in the LED hardware setting. Turns out the LED colors appeared muted because the dedicated white channel was overpowering the RGB. Now I have the white channel limit at 70% and the colors look great. I just had to adjust the yellow balance a bit in image processing because it appears too green.

I don't care about the color value accuracy from the preview screen anymore, because in my case, a perfect green, yellow, & cyan value somehow rendered way off by the LEDs when compared to the actual image on my G1. Weirdly enough the original dump loc option may not give the most color accurate preview on HyperHDR, but LED colors match my TV better with way lower latency.

s1mptom commented 4 months ago

Can no one help me?

I have a G3 TV on version 03.31.45 and I also haven’t been able to achieve a bright picture in Dolby Vision. My main source is the Nvidia Shield for watching Dolby Vision. When watching SDR/HDR content from it, everything is fine. When watching HDR from the MacBook, the picture is also fine. I tried the backend built from the master branch myself and also uploaded the ready-made archive from the excellent and very helpful detailed setup instructions by @satgit62 (which was also sent to me on Discord), but for some reason, the picture doesn’t change at all when changing the flag.

The guys simplified the use of PicCap without the need to change it by just replacing the values for the PicCap flag – if it’s present, it should use the new dump loc 1; if the flag is absent, it uses (as I understand it) the default dump loc 2. This might not be entirely accurate, but that’s how it looks in the code (I checked the latest closed merge request). Therefore, when the flag is enabled in the UI, “quirks”:4 should be set in the config, which should activate dump loc 1.

s1mptom commented 4 months ago

HDR vs DV telegram-cloud-photo-size-2-5256070854339584197-y telegram-cloud-photo-size-2-5256070854339584199-y

Dak0r commented 4 months ago

Is your TV in HDR mode & Is global HDR Tone mapping enabled in HyperHDR? Piccap by default disables tone mapping for SDR content, which is why I experienced colors being slightly off in the past. (G3)

The solution for me was to use a LUT for SDR content as well. It needs to be a different one than the one for HDR, though, so I modified hyperion-webos and piccap to switch between the LUTs automatically: PR: https://github.com/webosbrew/hyperion-webos/pull/120

Edit:

I updated my PR to support different LUTs for HDR, DolbyVision and SDR content. This should give you full control to fix the dull colors in Dolby Vision mode