and Why your monitor flickers



Monitors have been flickering for many years. A CRT monitor basically created its picture with flicker and if you found it uncomfortable to sit in front of a CRT monitor, you were not alone. But it can also happen on modern PC monitors. We are not talking about visible flicker as in a defective monitor, but “invisible” flicker that can affect your experience in front of the monitor.

Modern PC LCD monitors are not flicker-free but in order to understand why we need to include a short introduction. LCD monitors started out by using CCFL (cold cathode fluorescent lamps) as a backlight source but in recent years manufacturers have shifted to LEDs (light emitting diodes). If you have a thin monitor then you have a LCD monitor with LED. If you are unsure check the model number on the backside and Google it.

As you might have noticed you can adjust the backlight on pretty much any monitor today via the buttons on the front. In a brightly lit room a higher monitor brightness level is preferable and in a dimly lit room, for example a cellar or studio, a much dimmer monitor is preferable. Some monitors adjust automatically based on surroundings but often you have to do it manually. Whether it is the one or other is irrelevant. The important aspect here is the actual method used to reduce brightness on a monitor with LED.

Why your monitor flickers?

When a monitor is set to maximum brightness the LEDs are typically glowing at full strength: 100%. If you reduce the brightness setting in the menu to, for example, 50% the LEDs need to omit less light. This is done by inserting small “breaks” – or pauses – in which the LEDs turn off for a very short time. When reducing the brightness setting in the menu further the breaks become longer, basically.

90% duty cycle 50% duty cycle 10% duty cycle

This happens with CCFL based backlight units and LED based backlight units but CCFLs have a much longer afterglow than LEDs that basically turn off instantly. Therefore, the breaks when using CCFLs are much easier on the eyesthan when using LEDs. Thus a greater risk of experiencing eyestrain, tired eyes or in the worst-case scenario headache when working in front of a LED based monitor.

The use of LED obviously has numerous benefits, including much lower power consumption, far fewer toxic substances and some obvious picture quality advantages but here we are only focusing on the potential eyestrain issues as it is a separate issue that can be avoided on new monitors and even reduced on the monitor you own right now.

We need to emphasize that all eyes are different. Those who are affected never see the actual flicker – it is “indirect”. Studies have shown that approximately 10% of people experience discomfort. The rest experience eithermild discomfort or no discomfort at all.

PWM (Pulse Width Modulation)

The method of introducing breaks to reduce the brightness level is called PWM (pulse width modulation). It is a cheap and effective way of controlling the light output of a LCD monitor with LEDs as it gives a huge span of brightness levels. But, as you can see, it also has drawbacks.

PWM is not the actual problem. It is not necessarily a bad thing. The problem occurs if the blinking/flickering is indirectly perceptible by the human eyewhen the PWM is running at too low frequencies. The most common scenario is that you buy a new monitor that is far too bright out-of-the-box and reduce brightness to maybe 20-30%. Brightness is typically measured in cd/m2 and the brightest monitors hit around 450-500 cd/m2 but this is not necessarily anadvantage because no one can sit in front of a monitor this bright. The recommended brightness level is approximately 120 cd/m2 in a bright roomwithout direct sunbeams coming in.

The alternative to the PWM method is to lower/raise the electrical voltage for the LEDs. The method can also be used for CCFLs but they are not nearly asflexible as LEDs. The disadvantage to this method is that it is more expensive and that it can be very hard to control the color temperature of the backlight. There is also a risk of burning out the LEDs very fast.

90% continuous 50% continuous 10% continuous

The number of cycles (on / off periods) used in LEDs can obviously be measuredand as so many other things it is measured in Hz. 100 Hz means that it updates 100 times per second.

But what frequency do LEDs run at then? Well, most monitors use PWM with a frequency around 90 to over 400 Hz. Those with 90 Hz PWM are worst, obviously. PC monitors with CCFL backlights all run at 175 Hz (but as mentioned, the afterglow is very different). For comparison, ceiling fluorescent lamps found in many offices used to operate at around 100-120 Hz and they have been proven to cause headache many times in the past. Newer installations are better but we need to reach much higher frequencies for a perfect result. Again, it depends on the individual and some will experience problems where others do not. We probably have to surpass 2000-3000 Hz before we can call it a safe zone.

If manufacturers want to use the PWM method in LCDs with LED there are two ways to eliminate the issues. The first option is to run the LEDs as a much higher frequency (combined with a decent brightness level). The second option is to use a combination of PWM and modulation of the electrical voltage.

But you can also help yourself. When you are looking to buy a new one you can often leave out the cheapest PC monitors (the same is true for displays in smart phones and tablets) as these have proven to be most affected by the issues. Many of us work in front a monitor for many many hours daily, so it is really worth saving a few bucks?

Look at the maximum brightness (the cd/m2 number). It is around 400-500 cd/m2 then you can be sure that you need to lower the brightness level considerably – and then you risk increasing flicker. Many graphics monitors run at much lower brightness levels – and it can actually be an advantage. Higher is – ironically – not always better.

How Iris is fixing PWM issues?

You now understand why PWM is bad for your eyes and a little of the science behind LCD monitors. We thought a lot how not to experience eye problems while still decreasing monitor brightness. Today with Iris you can decrease your brightness without flicker on every monitor out there. “How exactly this works?” you ask.

At the end of the graphics pipeline, just where the image leaves the computer to make its journey along the monitor cable, there is a small piece of hardware that can transform pixel values on the fly. This hardware typically uses a lookup table to transform the pixels. Iris controls this hardware and uses it to decrease your brightness. You get flicker free low brightness. Set your hardware brightness to the MAX and control it with Iris. WIN WIN.

Let’s see how you can actually do this. Open Iris by double clicking your tray icon.

You can control brightness either from Simple and from Advanced view.

You can also use automatic brightness feature, which will use sun positioning and your location and gradually decrease brightness when night is coming.

What brightness value to use?

The rule for brightness value is to match your indoor lighting, which means that the monitor should not look like light source in the room. My advice is just to set it whatever you like and feels good to your eyes.

Iris does not use PWM to control the screen brightness, so set it as low as you like.

25 thoughts on “Brightness and Why your monitor flickers

  1. Доста интересен проект Дани! Функционално решение, разрешаващо реален проблем. Трябва да се видим някой път да ми обясниш малко в детайл, бих помогал за такава кауза 🙂

  2. OK. So PWM of the LED backlight is one aspect of the problem which lately was acknowledged by monitor manufacturers and has been addressed by dimming the backlight without PWM. TFTCentral is a vey good source of information on this ( The website includes PWM measurements on reviewed monitor models (look up any model they reviewed and search for “PWM” on the page)

    But there’s another less known aspect about the “invisible” flicker in LCD monitors. The subpixels themselves flicker because of how they produce the brightness level. The liquid crystal in the subpixels acts as a filter for the backlight. According to the degree of rotation of the liquid crystal, it allows more or less light to pass through. The degree of rotation is controlled by the voltage applied to it. But because of the nature of the liquid crystal, it would disintegrate if the same constant voltage would be applied. Interestingly though, the same degree of rotation can be obtained by inverting the polarity. So the polarization of every single subpixel is switched at half the frequency of the refresh rate (30 times per second in a regular 60Hz refresh rate monitor), making it flicker at that rate. 30 Hz is below the flicker fusion threshold for humans, so we should see it. The reason we don’t is because the polarity inversion is designed in a spatially anti–phasic manner for neighboring pixels (what is also called “pixel inversion” See this: The oscillations cancel out, so we don’t perceive them consciously. (More details here: Recent research though indicates that flicker above flicker fusion thresold (which is not perceived consciously) nevertheless activates cortical neurons (see for example this article: So even though we don’t see the flicker doesn’t mean it doesn’t affect the the cognitive processes. The problem is deeper than just eye strain or the usual symptoms of Computer Vision Syndrome.

      1. By all means, think about the problems and see what you can do with software. But I doubt the issues I mentioned can be addressed at the software level. Software would only affect the final stage of the process. It can only change the “what”, not the “how”. The process would still rely on pixel inversion, which happens at the hardware level. And if the hardware is already the best it can be (pixel inversion as the only way to avoid liquid crystal disintegration), any reverse engineering at the hardware level would be futile. Just as an idea, I did think about well, what if instead of inverting the polarity, so having the liquid crystal rotating through all the brightness levels and producing the flicker, the voltage would only be slightly changed and only a small variation in brightness level would be obtained? Wouldn’t that be enough to avoid liquid crystal disintegration? Or instead of inverting the polarity as fast as it can, having it happen as slow as it can, something like once every minute? I presume these possibilities have long been considered. But still, would love to know if it was possible.

        In the meantime, there are new display technologies emerging that use different mechanisms and processes to obtain sub-pixel brightness modulation. Mirasol looks like the most promising. Brightness modulation is obtained by moving a red, green or blue tinted membrane. The closer it is to the light reflecting mirror, the less light is reflected, making the sub-pixel darker. There is no problem in maintaining the membrane at a certain position, so sub-pixel brightness levels that are truly static can be obtained. At the same time, the same refresh rates as LCD can be obtained when needed. (Watch this to see how it works: If only a few pixels need to change (for example the pixels showing the cursor move), they would change and then return to their stable state. You don’t need to refresh 6 million subpixels 30 times every second just to be able to show a cursor move across the screen. Apple has recently acquired this technology (, so let’s hope we will see it brought to fruition soon.

        1. Well,
          Think about it
          they are able to show to flicker with a image

          and this is quote from this article

          When natural images or standard desktop elements are displayed on a monitor the occurence of such a pixel pattern is quite unlikely. However, in applications with artificial stimuli the display image may exactly match the inversion scheme. If a displayed pattern happens to switch off all antiphasic dots, clearly noticeable and undesirable low frequency flicker (half the refresh rate, therefore in most cases 30 Hz) would be perceived

          I have access to the video card and the output image, if I know which image caused the pixel-walk flicker effect, I can make some pixels that are white black and some pixels that are black white. This will reduce the visible flicker as in the pixel-walk examples. It will not be perfect, but it will be better solution

          So from what I saw the Mirasol is like color kindle, but with fast refresh rate. Nice this will be really good for the eyes and maybe will make Iris obsolute.

          Be aware that what I do in the moment makes all monitors a little bit better, which is nice. All innovations of Iris should happen in order of incremental innovations.

          It’s a little bit hard now for me to explain to ordinary people how Iris works imagine if I start to talk to them about Subpixel inversion. There will be blank looks everywhere 😀

  3. I have to rectify something. Subpixel inversion happens at 60 Hz in a regular LCD monitor with 60 Hz refresh rate, not at 30 Hz.

    Let’s consider a subpixel displaying perfect white, by having the liquid crystal rotated at 90 degrees. The voltage has positive polarity. In frame 2, the liquid crystal will be at the 270 degrees rotation. The voltage is at negative polarity. Even though the 90 degree white is the same as the 270 degree white, it has passed through the 180 degree black. Flicker happened.

  4. The two sources discussing pixel inversion that I mentioned ( and talk about pixel inversion as creating a problem because of an aspect of subpixel inversion mechanism other than the one I discussed in my last reply. For the sake of clarity, I would like to explain this difference.

    The informations on subpixel inversion from the second article ( are based on the article “The Cause of Flicker in LCD Screens” (, that I’ve seen referenced often, in which the mechanisms and necessity for subpixel inversion are very thoroughly and accessibly explained. The flicker issue, the author explains, arises from voltage misalignment causing a difference in the two voltages applied when polarity is alternated. So positive polarity white will be different from negative polarity white, and this difference is the flicker they are referring to, and it is indeed at half the refresh rate of the display.

    The flicker I was referring to occurs during the polarity switching, causing a transition through the entire brightness spectrum. No matter the brightness level the subpixel has to display, it passes through the highest and lowest brightness to do that. If you look in Figure 5 in the article “The Cause of Flicker in LCD Screens” (, which is a very precise measurement of the subpixel brightness as it switches polarity, you’ll see the gradual passing through the whole brightness spectrum.

    The flicker at half refresh rate of display is invoked because for a 60Hz monitor, it indeed happens at 30Hz, a rate which is below CFF (critical fusion frequency). The flicker at full display refresh rate that I was referring to wasn’t considered in these studies because flicker above fusion threshold was until recently believed to have no impact on the viewer.

    Here are a few quotes from studies which show that flicker above CFF nevertheless activates cortical neurons, thus affecting cognitive processes:

    “The view that rapid contrast modulations – too fast to be seen – do not affect the cortex is erroneous. As such modulations are common in our environment, the potential for adverse effects should be explored”
    >> “Imperceptibly rapid contrast modulations processed in cortex: Evidence from psychophysics” by Michael Falconbridge et al (2010) (

    “One may suppose that a long-term cortical synchronisation to monitor flicker rate in the projection areas of the brain might lead to generalisation of this process on extended structures and areas involving the autonomous nervous system, which might be a trigger for further neurophysiological alterations and pathological symptoms typical for computer users, e.g. fatigue, loss of concentration, headache and dizziness”
    >> “Steady-state visual evoked potentials to computer monitor flicker”, by Lyskov, E. et al. (1998)

    In this study it was found that flicker above CFF results in “attentional orientation to that location in the absence of conscious detection of the flicker”.
    >> “Gamma flicker triggers attentional selection without awareness”, by Bauer et al (2009)

    “[…] the CFF is generally around 60 Hz (explaining why the refresh rate of consumer displays is set at 60 Hz or higher). On the other hand, some studies have reported neural entrainment to above-CFF stimuli. For example steady-state visually evoked potentials have been observed for above-CFF stimuli.”
    >> “Transient twinkle perception is induced by sequential presentation of stimuli that flicker at frequencies above critical fusion frequency”, by Yutaka Nakajima et al (2015) (

    Other studies:

    >> “Human EEG responses to 1-100 Hz flicker: resonance phenomena in visual cortex and their potential correlation to cognitive phenomena”, by Herrmann, C. S. et al (2001)

    >> “Experimental evidences for visual evoked potentials with stimuli beyond the conscious perception threshold” by Ramos-Júnior, S. G., et al, (2011) (

    >> “Gamma flicker triggers attentional selection without awareness” by Bauer et al. (2009), (

    >> “Subliminal gamma flicker draws attention even in the absence of transition-flash cues” by Cheadle et al. (2011)

  5. Considering that the force of flicker is higher when it involves big areas of the same color (the white background of this webpage for example) and unitary areas of contrast (anywhere there is an edge of any kind, or simply a high enough number of pixels of the same color), one simple thing you could try is implementing an option in the program that allows to load an image which contains random pixel-level noise. I’ll send you an e-mail with one I generated in Photoshop, where all the pixels are different levels of gray, completely random, not forming any pattern. You would then have this image covering the display (you probably need to make sure it will work for all resolutions), at a certain very low level of semi-transparency (around 5-10%, maybe give the option for the user to set this to best suit their level of comfort). It would sit on top of everything, without impending the user interaction with the OS. It’s only purpose is to make it so that the resulting pixel color is slightly shifted from its original, either making it a bit darker or a bit lighter. This would make the flickering triggering to be jumbled. Any compact area of the same color would not flicker in unison.

    The hope would be that the unsynchronized flicker would make it so that the overall effect is of an attenuation/melting/cancelling out of the flicker, making the display more relaxing – closer to natural light. But before releasing something like this, it should be properly tested. It is possible that this would actually make things worse. In any case, I’m not assuming any responsibility for any headaches anyone would get from exposure to this…

    1. I will just finish with the Linux version of Iris mini and installer for Windows of Iris mini and I will make this to Iris.
      Let’s call this feature
      Subpixel flicker filter
      And it will have
      – Slider with values for opacity from 1 to 10
      – Enable filter/Disable filter button which will be disabled by default
      And I will work with it for a couple of weeks to see how it feels.
      Anyway it will be a little strange.

      Do you have any more ideas how we can make the monitors better for the eyes. I think you have more knowledge than me in this area. I can make almost anything. Crazy things are ok 🙂

      I should probably open discussion forum on the site, so we don’t spam the comment section and should make this article a little less technical.

      I want regular people to be able to benefit from the knowledge too.

  6. At the moment this is the only idea I have of what could be tried at the software level. With time, as I get to read and decipher new aspects of the problem, maybe new ideas will come. But it’s nice to know you’re willing to try out crazy ideas.

    One thought I had about this “subpixel flicker filter” feature (another name could be “inversion scrambler”) was to use a colored noise image instead of a grayscale one. When generating grayscale values using the three subpixels (Red, Green and Blue), all three subpixels always have the same value. Therefore they must change polarity at the same time, and thus flicker in unison as a whole pixel. They are, after all, identical, except for the difference in color the filter on top of each. Using color would make sure that the “scrambling” always happens at the subpixel level.

  7. Daniel great product. I discovered it from Ben’s podcast. Two questions: 1. does Iris Mini (free version) support DC dimming? 2. When is the above subpixel feature going to be released? It sounds awesome! Keep up the great work, I do plan on donating if you can confirm #1

    PS – I would love to see a feature comparison to Iris and Flux

    1. Yes it’s it my todo to make comparrision this days.
      Nechifor tried this thing, but it was actually whorse for the Eyes.
      The thing that we realized is that Iris Grayscale mode is actually the solution for this problem.

      Right Alex Nechifor?

      It’s available under Screen effects page

      Why do you need DC dimming when you can do this from the buttons on your Laptop, PC?
      Iris mini supports PWM free birghtness, but no AC/DC dimming(this causes flicker)

  8. Got it. I just wanted to make sure that any version of Iris supports “PWM free brightness control.” That is my main reason for switching over from flux

    Thanks man!

  9. Страхотен проект! Влияe ли положително на трептенето при амолед екраните на телефоните? Особено при телефоните като Samsung galaxy s7, при който е доста агресивно? 🙂

  10. Ok, Thank u Daniel. tHe project is really awesome and help ppl heatlh, like in my situation Amoled display of my galaxy s7 make me big headache, and with your app things is changing. THANK YOU 🙂

  11. Wow, I was so excited to read all this page, about how Iris work and the comments suggested!
    Of course, I understood half of the comments from Alex Nechifor and Daniel Georgiev!
    Awesome and I’ll try Iris!

  12. Here’s one of the better made videos explaining how subpixels work (liquid crystals rotating to change the polarization of light and so acting as light modulators; how varying the voltage to control the degree of rotation changes the light intensity and thus, in combination with the other 2 of the RGB subpixels, optically mix to create millions of colors):

    No mention about subpixel inversion though. If I find a good quality one, I’ll post it here.

  13. When I waved my hand in front of a MacBook’s display, I was surprised that the characteristic flickering effect was not visible. Maybe it has something to do with the “IPS technology”? It’s known for “ghosting” which is something opposite to flickering.

  14. So for those of us that don’t want to learn the technicalities, what is the best way to view a computer monitor? With IRIS on any monitor? Is there a monitor you would recommend or are waiting for Apple to release Marisol technology?

    Thanks so much.

Leave a Reply

Your email address will not be published. Required fields are marked *