Detection of temporal dithering using high-speed camera and magnification
- Edited
I also do not see anything when playing the video, it appears to be a still image on my screen
I am using a t440 with a 768p (720p?) TN screen, it has a HD4600 graphics. This screen is very poor but works for me, interestingly though if I fit an IPS 1080 to this same laptop = migraines.
edit: it may be the color accuracy / contrast on my screen is too poor to see the effect? This screen doesnt show all the contrast (Etc) testing on varios sites like the langom lcd test website. Very poor black levels etc (maybe why it is suitable for me to use)
In addition and somewhat unrelated though, fit this screen to another laptop and solve all the problems? No, still get migraines on other laptops with this TN screen.
- Edited
Here's a playlist I made of various recorded subpixel arrangements (of my lenovo p24h-10 monitor). I slowed it down to 30fps (cause that's all windows video editor supports lol) so the dithering should be more visible since there's (hopefully) no frame loss.
https://www.youtube.com/watch?v=WOoHUYY7ohk&list=PLp7N7CrCDtFz0VK5iZ-3-8YOQ4tcPw31m
A preliminary recording of my 1st gen iphone SE screen does seem to show dithering. I'll upload a video once I do a proper recording.
edit: Here are the slow motion videos of my iphone SE 1st gen and iphone 6s. Both show dithering. Youtube compression seems to reduce the dithering visibility a bit.
I can see fluctuation in the video, but it's hard to say the source. Since all of the pixels seem to be affected, could it simply be the frame rate? I have wanted to test for dithering this way as well but didn't know how effective it would be. You may have already determined the color to test, but just have to ask, did you pick a color that is outside of the sRGB spectrum? This is assuming this is an 8-bit panel. I use this site to check if I am outside of sRGB and to no surprise, my 2016-2017 MBP is definitely using FRC.
https://webkit.org/blog-files/color-gamut/
Check the webkit logo (if your device can display it). Maybe use those pixels for your test. I'd be curious to see!
John615 since apple claims the SE has "wide P3" color, it would have to dither. That's one issue with all of apples products. I can withstand Apples "Retina Display" which the SE uses along with my old iPad Pro, but none of their other LCDs such as the "Liquid Retina:. I have no idea why. The Retina display most definitely is not 100% symptom free for me. It's just the only current usable display I can "use" that Apple still makes.
chahahc Here's a playlist I made of various recorded subpixel arrangements (of my lenovo p24h-10 monitor). I slowed it down to 30fps (cause that's all windows video editor supports lol) so the dithering should be more visible since there's (hopefully) no frame loss.
Thanks! I see the flicker now. I also see it on your first vid (in your first post in this thread) - last time I was watching it on my phone where it's not visible, but on my desktop monitor it is very visible indeed.
What model is your recording device (smartphone)?
- Edited
chahahc Hi again,
I had a 1st gen iphone SE laying around, and I bought the same microscope as yours. So I have the exact same setup as you.
Here's a vid of my Dell 2408WFP monitor (I made it show 128,128,128 gray fullscreen). (click the "Download" link).
For some reason, the video came out really noisy (looked similar to high-ISO noise). I wonder if I can do something to get a video as clear as yours. Any idea?
Edit: I now made more several attempts to get a clear video:
- Tried shooting with very low ambient light
- Tried looking at the resulting video on another device (LG G5 phone), instead of on my PC
To no avail.
Edit: Apparently the video quality is dependant on the screen that you're shooting. I now shot my built-in laptop screen (Lenovo laptop) and got a very clearly TD'ing video!
I don't know If the colors I chose were within sRGB or not. I'm not really versed in color spaces. I just inputted various RGB numbers into ms paint to make the images. The site you linked does display image differences on my p24h-10 monitor and iphone se. The darker colors seem to have more prominent dithering than the lighter colors. Like the dithering at 100,100,100 for the iphone SE and 6s is very prominent.
I recorded at maximum screen brightness settings with all ambient lights turned off. It does take a bit of fiddling with the microscope focus to get a clear image.
- Edited
This is a great video of your iPhone SE 2020. Many thanks and congrats for capturing this.
It may be worth sharing on other forums like this MacRumors thread.
Note -- I needed to change the YouTube video to "720p60" to see the flicker (dither). The default of 420p (which I guess is based upon my bandwidth) showed no flickering at all.
Are we sure this is dithering? Could it just be LED inversion or LED light flicker (the same as an LED bulb would flicker, unless flicker-free)? Curious about @Seagull hypothesis on what we are seeing?
Any chance you can test it using ditherig
?
Just looking at it makes me sick.
It looks like the microscope is only about $20 USD, that sounds a great price to investigate this, is that about what you paid?
- Edited
I updated my post with links to better videos that I recorded. The recordings are done with a 1st gen iphone SE not the 2020 version. All the tests were done with ditherig running on an intel g4560 using the IGP so the flickering shouldn't be from the OS.
The lagom and blurbuster pixel inversion tests do show pixel inversion issues at certain settings on my monitor. But at the setting that I recorded the updated videos at, I could not see any pixel inversion with the naked eye.
Here's a microscope video I recorded of two patterns at one monitor setting that showed visible pixel inversion and one setting that didn't.
https://www.youtube.com/watch?v=-8gyeFWmAOE
I don't know what to make of it. I don't really see much difference between the visible and non visible tests. The subpixel flickering in all the videos seems to be occurring at 30hz, half of the 60hz display frequency of the monitor and the phones. The iphone SE first gen did not show any pixel inversion issues to the naked eye when using both the blurbusters and lagom test.
I paid about $20 for the microscope on amazon.
edit: It actually seems that there is indeed very minor pixel inversion issues with the p24h-10 monitor. They were only visible when I went full screen and carefully cycled through each pixel inversion setting. It wasn't visible when only viewing the initial image with all 12 examples shown at once. It seems to cycle around 2a, 2b, 4b and 7a when changing monitor settings. The 7a being subtle enough that is only visible when viewed full screen. I tried full screen with the iphone SE 1st gen and wasn't able to see anything with the naked eye.
edit 2: Interestingly the pixel walk goes away at maximum setting, which are the setting that I recorded the original microscope dithering videos. the screen is too bright at max setting but I guess I'll just try compensating by wearing my maui jim sunglasses since they also help increase the contrast and reduce ips glow.
Results from my tests: (slo-mo camera and @chahahc's microscope model)
All my screens have a pixel flicker (exactly like the one in the original post in this thread). Nothing that I tried reduced it.
Setups that I tested:
- Dell 2408 WFP (external monitor). Both in Windows 10 and latest Ubuntu Linux. Tried YCbCr option on and off. Tried "Text content" option on and off.
- Lenovo IdeaPad 320 laptop (built-in display). Tried restarting ditherig.exe, tried a lower-than-native and higher-than-native res.
- iPhone SE (1st gen)
- Samsung Syncmaster 710N (very old external monitor). Tried at native res. Also tried at max res (provided by my HDMI-VGA adapter), which actually increased the pixel flicker.
The only setup in this list that had a less strong pixel flicker was the Dell 2408 WFP external monitor. Which makes sense, as this is the monitor that gives me least eye strain.
At this point I think I'm seeing "LCD inversion" artefacts and not TD. This probably means I won't find any software solution, and I should just look for a higher-quality (and/or pricier) display.
It could be interesting to boot an OS/GPU driver combination that lets you reliably activate and deactivate GPU-side temporal dithering to see if switching it on and off causes any observable change in the pixel flicker.
For example, Nvidia has an official Unix application, NVIDIA X Server settings, that lets you do this with Nvidia GPUs.
KM It could be interesting to boot an OS/GPU driver combination that lets you reliably activate and deactivate GPU-side temporal dithering to see if switching it on and off causes any observable change in the pixel flicker.
Indeed. I did that now.
ditherig.exe set to "Dithering off": https://share.icloud.com/photos/056qVnI9n2n3S-uiHrjCGCrpg
ditherig.exe set to "Spatio-temporal 1": https://share.icloud.com/photos/041v9WasX11htkpGqO9zFMM-A
I don't see any difference between these 2 videos.
And I know ditherig.exe is working because, when it's set to "Dithering off", I see banding in my wallpaper.
KM For example, Nvidia has an official Unix application, NVIDIA X Server settings, that lets you do this with Nvidia GPUs.
Yes, I tried that, but that app barely had any options. And certainly none related to dithering. I think the reason is because I'm on a laptop (i.e. "switchable graphics" between intel and nvidia).
KM It could be interesting to boot an OS/GPU driver combination that lets you reliably activate and deactivate GPU-side temporal dithering to see if switching it on and off causes any observable change in the pixel flicker.
I know certain AMD GPUs under Linux allow you to easily toggle dithering (verified with my lossless capture setup). Unfortunatly I'm not @logixoul and don't have the same high-speed camera setup.
I don't think ditherig does anything to help anymore in Win10/11; it doesn't help that much nor in 8.1 in versions past 1.7
Just load up a greyscale gradient from 0 to 255 at 100% zoom. If you have banding on a non-8-bit panel with dithering off, then the app works.