That's great info, thanks!
Gear used by NotebookCheck.com
That is a good point. The folks at NotebookCheck did a video at 240fps which showed dithering on one device.
I am going to speculate with the following statement. The 240fps may or may not show dithering on all devices. I would think to capture dithering there would need to be a slight difference in frame rates including possible overlays. In other words it might be difficult to capture a 60fps screen with a device that captures at a multiple of 60fps (30, 60, 120, 240, etc…).
- Edited
If dithering takes place in software (drivers, bios or os) it cannot be faster than refresh rate. If it occurs in the panel, we might need something else.
And one more thing: some newer cameras have flicker sync, which should be disabled.
This was filmed with the Carson Microflip and an iPod Touch at 120fps. A Macbook Pro 2019 15". Very obvious flicker.
https://www.youtube.com/watch?v=b9fJc0zY5eQ
This was also with SwitchResX installed. SwitchResX can set color depth down to millions of colors, but it does not know about temporal dithering. I emailed the developer, he did not seem to know about temporal dithering at first. After explaining it to him he said something to the effect he can set color depth on Intel macs. M1 does not have anything other than 10-bit, so he can't set it. And he only knows what he gets from the driver. (Which seems to have nothing about dithering available.)
caboy Could you please redo the test after entering the command line nvram boot-args="dither=0"
in recovery mode? It would be interesting to see if this method remove this flicker.
- Edited
This is a work laptop, so unfortunately I cannot downgrade it. Otherwise I would have.
[Edit to add]
My issue did not start with this laptop until Monterey. With Big Sur and previous, I had no eye strain / pain.
I will try that on the weekend.
The setting had no effect. Here is the video test after setting the setting. Still very visible flicker.
https://www.youtube.com/watch?v=DF2eftkQT6Q
I did verify the setting was set by checking the output of “log show --predicate "processID == 0" | grep Dither”.
2022-11-06 16:49:56.484598-0600 0x379 Default 0x0 0 0 kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][LOG ][DISPLAY ] [Modeset] Dither is disabled with bpc 1 2022-11-06 16:55:11.119809-0600 0x379 Default 0x0 0 0 kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][LOG ][DISPLAY ] [Modeset] Dither is disabled with bpc 1 2022-11-06 16:58:09.940410-0600 0x9c5 Default 0x0 0 0 kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][LOG ][DISPLAY ] [Modeset] Dither is disabled with bpc 0
- Edited
caboy thanks, the flicker is strange
- Edited
caboy This is really interesting! I wonder what camera app NotebookCheck uses? If it’s the normal Apple Camera app, there could be an issue because at some point Apple changed the slo-mo software so “240 fps” is no longer actually 240 fps, but the frame capture is dynamically varied and the average fps tends to be a different number each time and significantly less than 240, often around 185ish (listed on video info). I suspect they did this to minimize the flashing due to LED lights on playback. My old 2016 iPhone SE recorded at exactly 240 fps. My new 2022 iPhone SE uses the variable rate capture in the Apple Camera app. I’ve asked Apple support and they say there’s now no way to make their camera app record at exactly 240 fps. I’ve had to switch to a 3rd party app, Moment, to record at exactly 240 fps when I check ambient LED lights for flicker, but then have to play back in the Apple Photos app because Moment doesn’t play back slo mo properly. I’ve noticed that the Apple camera “240” fps videos can definitely hide flicker that is obvious when recording at exactly 240 fps with Moment.
- Edited
I bought the microscope. It has an AA battery slot and an LED light, which makes it tempting to look at not only self-lit screens but also other surfaces by activating the LED light. However, for me the LED light caused symptoms and a small headache within seconds. An oscilloscope measurement reveals 125 kHz flicker. Why the manufacturer decided to make a lamp that is driven by a direct current battery flicker is beyond me. But be aware of this if you're sensitive.
Fortunately, a battery or the LED light is not needed to look at pixels.
Here is an important development shown from testing. Not a good one though.
From these two videos below, the flicker looks almost the same to me. One is okay, the other causes eye strain / pain. They are on the same external monitor. I don't know if this monitor has an LED backlight which is responsible for the flicker or not.
As JTL and others have suggested, it seems the camera does not nessesarily pick up the effects that cause eye strain / pain. And it seems we need better testing tools.
Fedora external monitor, no eye strain / pain:
https://www.youtube.com/watch?v=6UlIrp3UgtE
Macbook Pro external monitor, bad eye strain / pain:
That is really amazing that there could be a source of eyestrain when there is no PWM and no temporal dithering type of flicker, but still eye strain, whereas in the other there clearly seems to be temporal dithering or some other flicker and no eye strain.
Why it is so impossible to find out the reason for the eyestrain.
This goes without saying but this is such a frustrating problem.
Like with my Lenovo x280 - tried another speciment of the sam x280, but it had a different panel without PWM, but still produced massive eye strain, whereas the lower quality panel does not.
Though, teams video does produced eyestain and I suspect any video, but I have not really tested. I have not tested because it would require some 4 hours of e.g. Netflix watching and then if it produces eyestrain, my eyes would be screwed for 2 days.
Maxx That is really amazing that there could be a source of eyestrain when there is no PWM and no temporal dithering
I'm not convinced these attempts at detecting temporal dithering are entirely accurate. (i.e, if it's "bad" enough to flicker, it flickers, but absence in these tests don't mean everything is fine)
Maxx Though, teams video does produced eyestain and I suspect any video, but I have not really tested
You mean on the "good" laptop? Well, that's certainly a different problem than everything being unusable with the "bad" laptop.
Yes, that is a different problem but in a way I think it is related. Those of us who are sensitive to temporal ditering or even the lowest amount of flickering could be sensitive to the "noise" of a video as well.
Interestingly, when my problem changed from PWM sensitivity to sensitivity to almost anything (except the x280) I also need to view TV with a tape on my other lens.
So it seems that any video might be causing a problem.
caboy Thanks for checking with NotebookCheck. Which camera app did you use to record your own videos?
It wouldn’t surprise me if it’s hard to detect monitor flicker with the iPhone camera since it’s hard to detect ambient light flicker below around 10% with the iPhone. Additionally, the light sensor seems to get maxed out sometimes, hiding the flicker - making the shutter speed faster or focusing on a wall a little distance from the light can sometimes help. I’m not quite sure how to do something analogous for the monitor testing. There have been many LED lights that cause my symptoms for which I can’t detect flicker with the iPhone. However, lighting consultants with flicker meters have detected flicker in the 0.7%-3% range for some of these.
caboy I wonder if choosing an area of the screen likely to have dramatic dithering might be a good first test of your setup? Maybe try focusing on an area of text that you highlight. I’d try focusing on a letter with a thin vertical line, such as maybe “l” since font smoothing might add some dithering. Also highlight the text (temporarily selecting it, not permanently coloring the background). The dithering of highlighted areas is very obvious if I use an eInk monitor with my Mac - I’ve tested highlighting text in a desktop version of Excel. It seems like the Mac flickers the colors to create the highlighting. How websites, videos, or particular color spaces add dithering are other variables.
Would the type of monitors you’re testing use pixel inversion? Being able to focus well enough to detect that could also add some insight.
Thanks so much for sharing your work on this!
I was using the Apple built in photo app. On Slow-Mo mode. My device (iPod Touch) only records at 120fps. I have ordered a new device (iPhone SE) that will record at 240fps for more testing, but do not have that yet.
The image I used was just a grey image. That is what notebookcheck.com used. I did experiment with a purple (ff44ff) at the suggestion of my dad. The grey seems to be a better color for showing the flicker.
The letter font thing is an interesting idea. I will try to capture that this weekend.
I don't know how to check for pixel inversion on the monitors. Any chance you can tell me or point me to a doc that says how?
Thank you also!
caboy You’ll probably need to use a third party camera app to get exactly 240 fps slo-mo since the current Apple app won’t do it when set to 240 fps- you can check the actual fps in the info for the video after recording.
I’m not sure what the pixel inversion would look like when zoomed with a microscope, but if I record an iPhone 240 fps video of an LCD monitor if I get the phone as close as I can while keeping the pixels in focus and keep the phone motionless (not handheld), then if the exposure conditions are right (I think fast shutter speed), I’ll get a video where I see something that might be pixel inversion - I’m not sure. On playback, when I zoom in as much as possible to see the pixels better, I’ll see some kind of gray/black movement within white pixels - basically the screen seems to be shimmering. I’m not completely sure what this is. Sometimes I can see colors shifting a bit too - with white parts looking like a mottled rainbow, but the colors shifting position. I’m not really sure what might be temporal dithering, what might be pixel inversion, and whether the matte screen coating is itself creating the mottled color effect.
Pixel inversion is the flip-flipping of voltage across the pixel each frame that is supposed to not always create the same illumination in each polarity. I’m not an expert on screens, but collected some info on this and other issues here: https://www.flickersense.org/background/led-screens