Jump to content

Black Frame Insertion (BFI) to reduce motion blur


dustobub

Recommended Posts

dustobub

Motion blur is a surprisingly deep topic, so I'll try to keep this post as narrow in scope as possible. For additional background reading, here is a good place to start - https://blurbusters.com/faq/oled-motion-blurhttps://www.testufo.com/blackframes#easteregg=1 for a demo of software-based BFI, and https://blurbusters.com generally for all things "blur".

Quick background - Most of today's display technology exhibit significant motion blur (even at 120hz+ refresh rates), and this is particularly exacerbated on lower framerate content (24/30fps) due to the "sample-and-hold" nature of OLED technology. Many newer TV's and gaming monitors now come with some form of hardware-based technology (BFI or backlight strobing) to combat motion blur, but phones and tablets (and their operating systems) have yet to adopt these technologies. However, it is possible to implement BFI via software (see here for a MAME source-code modification that enables BFI on 120hz+ displays).

Here's an example of the effect of the motion blur of 23.976fps content on the main OLED display of a Galaxy Fold 4 (note you can actually see 3 frames blurred together):

image.thumb.png.72333f4acaf4abfc4c9b8819a7e90909.png

And here is what that those 3 original frames are supposed to look like:

image.thumb.png.633f1ce6eb2cfad61802868f9f668fec.png

image.thumb.png.0abda8e2616d161cc759418b0969dfec.png

image.thumb.png.2cd8e070242849b25906a8cc32506c4c.png

 

It would be great to see Emby implement a software-based BFI solution for folks looking to mitigate this ugly hardware effect on today's phones / tablets and TVs / monitors that don't offer a hardware-based solution. Ideally it would offer some level of customization so that the user could define the number of blank frames to insert (see the "strobe" dropdown here).

 

What do you all think?

Link to comment
Share on other sites

Hi, yes that's an interesting idea and something that could be explored. It would only be possible when the server is transcoding though.

  • Agree 1
Link to comment
Share on other sites

dustobub
1 hour ago, Luke said:

Hi, yes that's an interesting idea and something that could be explored. It would only be possible when the server is transcoding though.

Nice! Yeah, server-side transcoding would probably work well enough and is most definitely the best / quickest way to test the effect in the real world (especially for Emby as it already has the server-side implementation).

But for the sake of discussion, and just throwing ideas around, I'd also be curious if it could be done on the client-side (ex. with a realtime transcoder + decoder). This would definitely be a lot more complex, more difficult to handle across Android/iOS ecosystems, and would (w/ today's device performance) necessitate a large resolution penalty to transcode + decode at realtime playback speeds. But I would definitely consider paying that penalty under certain viewing / content conditions (ex. scale from 4k/1080p to 720p for 24fps animated content). A smarter method, compared to my ridiculous "tricoder" idea above, would be what is described here by the founder of Blur Busters - https://forums.blurbusters.com/viewtopic.php?t=7496#p57119 - Though I'm not sure how feasible either of those ideas would be for Emby with its HW decoder integration. 

A display refresh-based solution (vs. frame-based) is the ideal solution (see here for some good notes on the topic), but that requires display driver-level control which just isn't possible on Android / iOS. Though maybe for recorded content + decoders / renderers, which operate with strict timing control, a frame-based solution could end up working reasonably well. Decoding errors (ie. frame drops / repeats, and maybe even vsync presentation issues) will create visible glitches, but maybe it's a price worth paying... I'm not entirely sure, but it's something that I'd definitely like to see in real life to evaluate. Thanks for taking the time!

  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...