I disabled dithering on Apple silicon + Introducing Stillcolor macOS M1/M2/M3
- Edited
If what I read is correct, color accuracy, power consumption, reliability, and probably more would suffer. So much marketing and competition with everything else as we all know is focused towards colors and more "accurate" colors and to satisfy that greed of making the screen look like "reality". I echo Jordan's view. I just want a basic usable display!
- Edited
photon78s Yep, this is where my username comes from, I care about displays that allow me to work and be productive. I really wish all digital displays in laptops, phones etc. would also be benchmarked by how well they display text and user interface elements, not just how realistic they display colors, photos, games, and videos.
Not every display should be built and benchmarked in the same way that a TV is. I might care about those things when buying a TV, but when I'm looking for a monitor, laptop, or even a phone, I'm looking first and foremost for something that can display documents, emails, and text correctly, and does not move when the screen is supposed to be still. And most modern displays and operating systems totally fail at that.
I would say the biggest group of people modern displays impact is actually college students. I've talked about before how this is a very real problem for Gen Z too, not just older people.
I was literally failing classes when all I had was an M1 Max XDR MacBook Pro and iPhone 12 at default settings. I couldn't study for more than an hour without feeling like I wanted to fall asleep.
The moment I stopped using those devices and switched to better displays (such as an ancient 2012 Windows laptop, and reading PDFs on my old iPad mini 2), I became so much more successful in school and was able to read textbooks on my devices again without feeling like I had, like, a severe reading disability. But for the most part, all of that is tied directly to which screens I use.
In addition to this, more recently, I've felt like my cognitive ability has noticeably increased even more by swapping out the flashing 120hz LEDs I lived under for years with just a few Waveform bulbs — and also choosing to study outside when I can, instead of in campus buildings filled with probably hundreds of different types of cheap LEDs & flourescents all flashing at different rates.
It's so surprising how many of my reading and processing issues either become much more tolerable, or even literally vanish, the moment I stop looking at devices with temporal dithering, PWM, or HDR capabilities.
Tested this app from my side. It doesn't work for me.
What I tried:
- Regular usage of Macbook Air 15'' M3 without Stillcolor app: giving me slight nausea and weird effect at the back of my head, like tiredness after 15-20 minutes of usage.
- Installed Stillcolor app on MBA 15'' M3. Tried. Nothing really changed. Same effect. Even on next day with fresh head, same results.
- Connected MBP 14'' M3 to my external display 8bit monitor ASUS VG27AQ with Stillcolor app. Having almost the same effect.
Do you guys think that something can be different with M2 ? I'm pretty much sure it will not. Don't know what I can do else.
- Edited
DisplaysShouldNotBeTVs I am right with ya on how processing issues and all arise from bad devices. When I use a bad device I get bad brain fog, can't retain info have to keep reading the same thing over a few times, my iq feels like it drops significantly like I'm a zombie but I also get anxiety, depression, OCD/adhd like too. There's many more symptoms too but those are the bigger symptoms. all those symptoms go away completely when I go screenless. I'm sure many others are suffering with these symptoms too with it being screen related but no one would really even connect it to their devices/lights
I'm still on the hunt for good devices
- Edited
DisplaysShouldNotBeTVs can you try measuring the display with both Stillcolor enabled and BetterDisplay dummy/virtual display mirrored to the physical display? BetterDisplay dummies try to render 8-bit
I did try this, but didn't have noticeable reduction in flicker under the microscope. Though, I am still trying to track down the exact source of this flicker.
jordan My go to solution is ubuntu 22.04. It gets better quite quite quickly. Recommend getting some old crappy thinkpad or elitebook for 200-400 usd and have linux machine always standing by if needed. You can even tweak wifi transmit power and many other settings. This is a total savior for me, gets me grounded very quickly. But of course quality of software and apple silicon optimization is incomparable to it. I guess that is why people keep pushing so hard to get a solution.
madmozg I have a MBA 15" M2 with macos 13.5 and disabling dithering doesn't fix the migraine problem. But for others is working so i am glad that this app existed.
Maybe we are sensitive to other display quality enhancer and we need to disable something else like @DisplaysShouldNotBeTVs is trying to do.
Keep going guys
- Edited
Donux Recommend getting some old crappy thinkpad or elitebook
Yeah even though I'm trying to mess with my M1 device my old Lenovo laptop is still my current solution for my main portable device.
(However, surprisingly enough, my M1 MBP now produces the best output on my external monitor, compared to all my other devices, after installing Stillcolor. The monitor still has built-in FRC unfortunately, but is actually pretty comfortable now for certain tasks when using it with Stillcolor and the M1 Mac. Also using USB-C to the monitor's DisplayPort input, not HDMI.)
However I run Windows 8 on it, running Ubuntu 22.04 on the Lenovo I actually notice a very significant temporal dithering effect but can totally fix this running ditherig.exe on Windows. And to remain connected to the software of macOS, I simply remote desktop into my Mac from the Lenovo
Also for me wifi settings are not relevant, not sensitive at all to whatever you're referring to here. My productivity is tied directly to display/GPU/rendering, nothing changes for me messing with things that aren't related to the screen. It's the moment I'm on a good screen that stuff immediately improves for me.
- Edited
aiaf Transform your video input.mov in Terminal with this command:
Could you please describe the idea of this method as I didn't get it?
…we use the time blend filter in the grainextract mode. According to ffmpeg specification the grainextract mode "Display differences between the current and the previous frame".
The main thing which is not clear for me is how the input file (input.mov) being processed reveals temporal dithering? Each frame is processed programmatically and ffmpeg does diffs between the consecutive frames. The video frame is not even placed in the video buffer of the graphics card
aiaf Dithering happens at the refresh rate
And how did you figure out this?
- Edited
Lauda89 sorry to hear.
Well, I guess the best would be to have a reliable and easy to perform testing procedure. So we are sure that the changes are based on facts rather than feelings or even placebo.
Having said that I want to share some of my nonscientific experiences.
Before using StillColor I noticed that OS/software-wise not only OSX's dithering is the problem. Running some apps make the pixel flickering worse.
- I cannot use Firefox or Chrome. Both are hard to read and I result to using Safari now
- Blender 4.0.0 is better than 4.0.1 ( both Apple Silicon )
- VisualStudio Code is good until I install the vim-Plugin. That makes the screen flicker even more, not sure why. Using the vim-Plugin with nvim as a backend works however. ( the problem with the vim-plugin is even true on Linux )
- When using tmux ( terminal multiplexer ) the screen seems to be more straining than without. So I need to work with multiple terminal windows or use the one within vscode.
- being on a video call in Zoom made it worse ( true on Windows, need to retest on OSX )
- some background tasks seemed to make it worse also
- and even having some apps from the appstore installed ( but this might just be a feeling, not sure if this is true )
So, my suggestion would be to turn off any background tasks ( also auto updaters ), and remove any apps from the AppStore that you do not need.
Hope that helps.
It was a long process for me and I think I found something now that I can use for work. Cheers
NewDwarf The main thing which is not clear for me is how the input file (input.mov) being processed reveals temporal dithering? Each frame is processed programmatically and ffmpeg does diffs between the consecutive frames. The video frame is not even placed in the video buffer of the graphics card
input.mov is a capture of an HDMI frame buffer. An UltraStudio Recorder 3G was used to capture that buffer.
You can tell the frequency of dithering by counting the frames between changes. The time blend is the isolated temporal dithering signal. So if every frame has a different pattern, we know the dithering occurs in sync with the refresh rate.
NewDwarf What will be on the diff.mov in the case of temporal dithering?
It will show the difference in sub-pixel brightnesses between the dithering noise from this frame, and the previous frame, where middle gray is the zero value. So to be more accurate, this is not the actual dither signal per frame, it is the difference between the past two dithering signals. We are assuming that this noise pattern is an FRC color dithering pattern intended to increase the panel bits per color.
To get into the weeds a bit, I think it is unlikely that Apple is using an accurate color dither across pairs of frames. My guess is they would use a simpler approach that applies a standard spatial dither, but re-randomized per frame. Over time, this would approximate an accurate per frame color dither.
The diff.mov shows each sub pixel rise, or fall in brightness, or do nothing. All by a single 8 bit integer value. To be fair, I haven't looked closely at those files yet. But this should be the case. Whether the output rises or falls is determined by a standard color dithering algorithm.
A good algorithm would be to first convert the 10 bit color value to 0-1, then multiply that by the number of brightness steps available native to that display. So if we are converting to an 8 bit native display, that is 255 steps. Then, you add to this value a random number from 0-1. Then convert that sum to 8 bits. The 8 bit conversion chops off the remainder. What you are left with is a seemingly randomized 8 bit brightness value, that amazingly still can contribute to a 10 bit signal. We can extract and display the exact 10 bit value by repeating and displaying the output of this algorithm over time (temporary). If the frame rate is fast enough, you can achieve the 10 bit precision again. The other extraction works spatially across pixels, but that is not the focus of Stillcolor.
- Edited
deepflame I too have noticed this phenomenon. My current Machine, a 2017 13 inch Macbook Pro (no touch bar) was pretty much fine with all versions of Mac OS through Catalina. Starting with Big Sur, I had issues with different OS versions and versions of browsers and apps. I couldn't use Big Sur or Monterrey on this machine at all. I am now on Mac OS Ventura and as long as I set a black wallpaper, disable wallpaper tinting of windows, and also use the "green" accent and highlight color that is default on the green M1 iMac I do OK with the OS and most apps.
The main sticking point has been browsers. I pretty much exclusively used Safari through version 13, but versions 14, 15, and 16 on Mac OS caused migraine aura like symptoms. 17 is somewhat better. But I migrated to using Firefox with dark mode, dark theme, and gfx.color_management.mode = 2. I also use the ESR version because I've noticed on the main branch they tend to add and break stuff that sometimes effects the graphics rendering. ESR is more stable - I've rarely had an issue with it.
The only explanation I can come up with for all of this is that sometime around the Big Sur OS release and Safari 14, they started making use of wide color in web rendering and also in some OS and app graphics. This caused my previously good mbp to dither more using certain colors and start to cause issues - unless I use certain settings? But I don't really know.
I am fine with the M1 iMac (even on default settings, even in Safari - except I still use green accent color) and also the M2 Mac Mini and studio display (even with Safari and use the default accent color). All of the Apple Silicon laptops so far have bothered me in one way or another.