SpecialKO / SpecialK

Lovingly referred to as the Swiss Army Knife of PC gaming, Special K does a bit of everything.
https://www.special-k.info/
GNU General Public License v3.0
940 stars 54 forks source link

Alleviating loss of brightness connected with using BFI #31

Open jan-kleks opened 2 years ago

jan-kleks commented 2 years ago

Maybe this loss of brightness could be alleviated in some way? Gamma correction possibly? I have also noticed that there are devices which are actually inserting red frames instead of black, so maybe the choice of color for inserted frames could be explored as well?

mdrejhon commented 1 year ago

I did some HDR-boost tests with BFI and was able to get my SDR BFI to be up to 2x-2.5x brighter on my 240Hz OLED.

So using HDR colorspace and nit headroom, can do the job of brightening BFI.

It's very handy to have an adjustable grey (not red!) for the BFI, to reduce flicker headaches at low BFI frequencies (48-60Hz flicker). You can test grey frame insertion in TestUFO using the Easter Egg option:

(Test this on 240Hz)

www.testufo.com/blackframes#count=4&bonusufo=1&background=404040&easteregg=1

+Vote to add this feature since it works on doubling SDR BFI brightness on 240Hz OLEDs

jan-kleks commented 1 year ago

@mdrejhon Thank you for testing this! Have you got any idea why the makers of these devices mentioned above would use red frames instead of grey ones then?

mdrejhon commented 1 year ago

I did some HDR-boost tests with BFI and was able to get my SDR BFI to be up to 2x-2.5x brighter on my 240Hz OLED.

So using HDR colorspace and nit headroom, can do the job of brightening BFI.

It's very handy to have an adjustable grey (not red!) for the BFI, to reduce flicker headaches at low BFI frequencies (48-60Hz flicker). You can test grey frame insertion in TestUFO using the Easter Egg option:

(Test this on 240Hz)

www.testufo.com/blackframes#count=4&bonusufo=1&background=404040&easteregg=1

+Vote to add this feature since it works on doubling SDR BFI brightness on 240Hz OLEDs

It's very display specific and content specific.

Some displays with some content behaves better with tinted frame insertion, but best performance was a fairly dark shade (e.g. reddish)

In addition, colored frame insertion is useful for simulating certain tubes, e.g. green glow effects (electron backscatter, slow phosphor, etc). So you may simulate certain tubes more accurately with a slight tint.

I am a big fan of user-configurable electron beam simulators, e.g. https://github.com/libretro/RetroArch/issues/10757

I successfully created math formulas to simulate an CRT electron beam, including phosphor decays. I can even use separate formulas for R/G/B, to create a slower ghosty green (that creates greenish black frames defacto). But it only works well if (A) Your display is at least 240Hz, and (B) Your display is near 0ms GtG.

So the first-ever display that the true software-based CRT beam simulators I'm testing, is on a 240Hz OLED. Long-term, this is The Future of Temporal CRT Simulation. Ultra advanced BFI superior to BFI.

This will be fantastic on tomorrow's 480Hz and 1000Hz HDR OLEDs arriving before the end of this decade. Too bad the MAME people dismissed it as a fairy tale, but I'm already incubating it. I'm good at creating the algorithms, I just require a programmer to implement them. I'm good at providing algorithms -- much like how I provided dScaler/dTV the world's first successful open source 3:2 pulldown deinterlacing algoirthm -- implemented by John Adcock on a Pentium 166MMX to realtime deinterlace 3:2 pulldown to 24p in year 2000 from a Hauppage TV card.

I'm helping Mike of Retrotink 4K add various forms of advanced black frame insertion in a box-in-the-middle approach, so my algorithms is being seriously listened to, by different people.

A TestUFO CRT electron beam simulator will become available -- but only a 240Hz+ display with 0ms-GtG can do it in a way that looks better than not using it at all. So, purchase a 240Hz OLED stat -- #MoreHzTheMerrier for retro CRT tube simulators.

With extra refresh rate, you have more digital refresh cycles to simulate one analog refresh cycle, in an advanced overlapped/shingled fadebehind rolling scan that is gamma-corrected. It's tricky to make sure each pixel emits the same number of photons over multiple digital refresh cycles -- at low refresh rate granularities -- but I successfully came up with formulas that works on a 2.2 gamma OLED desktop monitor. Looks semi-crap on 240Hz LCDs sadly, Tomorrow's 1000Hz OLEDs will be superior 60Hz CRT tube simulators. Especially with HDR-boost.

My advanced BFI algorithms are free for any emulator author who wants to code them.

mdrejhon commented 1 year ago

As you know, I am helping Mike of Retrotink4K add advanced BFI features. So I can confirm the trick works.

BTW, the BFI + HDR nits booster works successfully on Retrotink 4K! Digital Foundry tested it and confirms that we can get BFI brighter than LG TV's builtin BFI:

image

You convert SDR to HDR, then brightness-boost, to get software-based OLED BFI brighter than a TV's builtin OLED BFI.

It works. Software BFI superior to a TV's builtin BFI.

No image retention problem either on OLEDs!

jan-kleks commented 1 year ago

@mdrejhon Great work! Can any of your CRT simulation findings work with projectors or are there just not bright enough?

mdrejhon commented 1 year ago

@mdrejhon Great work! Can any of your CRT simulation findings work with projectors or are there just not bright enough?

It's not recommended for temporal-dithering technologies such as DLP since chopping that up reduces color depth. Monolithic BFI works better on those, at conservative pulse width settings (e.g. 50% pulse width to limit color depth reduction to only 50% loss of color depth).

But if a high-Hz 3-chip LCoS was available, that would be a viable route, though you may have to use a slightly smaller screen size to simulate the CRT.

P.S. For those unfamiliar with custom BFI persistence (pulsewidth=blur relationship), view TestUFO Variable Pulse Width BFI Demo For 240Hz Displays (not for 60Hz displays, it will flicker too much on those but you could decrease the UFO count for educational purposes).