More articles in Guides

Dithering & Gamma Correction

Guides
Dithering & Gamma Correction illustrated on LED pixel light string

Introduction

With Advatek’s 3rd generation of pixel control firmware, PixLite® Mk3 devices have the ability to apply gamma correction for pixels of all resolutions including a dithering mode to improve resolution on supported pixels. When working with extremely fast refresh rates, dithering artificially generates higher resolution pixel control, so that gamma correction is more effective on 8-bit pixels. More on dithering below.

Dithering and gamma correction are just two of the many features included as part of our new state-of-the-art Mk3 processor. This means smoother pixels, fast and dynamic effects displayed with higher reliability, and pixels that appear to be higher in resolution (even when they’re not!). Put simply, pixels just look better on a PixLite® Mk3.

How Light is Perceived

The human eye doesn’t perceive light linearly. In the same way that our ears are more sensitive to some frequencies, our eyes are more sensitive to lower levels of light. If a pixel light linearly increases in intensity from 0% to 100%, the human eye will perceive the initial increase in brightness as more dramatic than the end.

How Gamma Correction Works

Gamma Correction is a method of adjusting relative brightness levels to fit a logarithmic curve. The shape of this curve can be adjusted, depending on the LED characteristics. In pixel lighting, gamma correction is used to optimize the quality of how light is perceived by humans, by using gamma values between 1 and 3. These values are graphed and explained below.

A PixLite® controller will receive incoming data from sending software, which can allow the intensity of pixels to be controlled. If gamma correction is enabled, then this incoming data will be scaled onto the specified logarithmic curve that is set for each color. In the example below, the pixels have been programmed to linearly fade up from 0% to 100% in five seconds. The effect of various gamma values can be seen, with which the PixLite® will then map the incoming data to the curve that is used.

Dithering and Gamma Correction Graphic 1 - Advatek Lighting

Dithering and Gamma Correction Graphic 1

Why Gamma Corrected Pixels Look Better

Pixels that have been corrected will display two major perceivable advantages: more linear fades and more realistic, vibrant colors.

As the human eye is more sensitive to lower intensities, gamma correction aims to adjust the intensity of a pixel’s output, such that it matches how a human eye might view the change. This reduces the sudden increase at lower intensities that you might’ve seen when a light is faded up. The curve that your pixel lights follow when they increase in intensity is called a dimming curve. Gamma Corrected pixels will follow a dimming curve that appears much smoother to humans.

Our sensitivity at lower intensities also results in our ability to perceive a higher number of colors at lower intensities. As an example, if a pixel is set to full red, and green is then increased from 5% to 10%, there is a large number of colors within that intensity adjustment that we can perceive. Rich oranges and deep magentas are created by mixing a small amount of one color into a large amount of another. These colors cannot, therefore, be as rich if the increase in intensity at lower levels has not been corrected. This is why gamma corrected pixel lights tend to look more vibrant, and why our new gamma correction built into our new Mk3 processor is so beneficial!

Gamma Correction & Color Resolution

One issue that can arise in this process is a lack of resolution to perform the desired dimming. Lighting software will normally output 8 bits of data for each LED, which allows for 256 different intensity “levels” to be selected. Pixel lights which have 8-bit resolution will map directly to this input data when gamma correction is disabled. This means for every input step in light, there is a single output step. If gamma correction is applied, there will be several input values (at the lower end) which result in the same output value. This creates a compromise – more natural dimming response and more realistic colors, but a decrease in the smoothness of the output.

For this reason, previous generations of PixLite® would only allow gamma correction on pixels higher than 8 bits. With PixLite® Mk3, gamma correction is now available for pixels of all resolutions. The high speed and efficiency of the Mk3 processor allows for lower resolutions to utilize new innovations such as dithering to gain access to the benefits that gamma correction brings.

When higher resolution pixels are used, for example 12-bit and 16-bit pixels are common, the compromise described above becomes negligible. When 16 bits of color resolution are available, the number of possible intensity levels increases to 65,536 – allowing these very subtle intensity adjustments to be made. An 8-bit vs 16-bit example is shown below, with an intensity increase of 0% to 5% in 3 seconds. It’s clear to see why higher resolution pixel lights are more desirable. To find out more about which pixels are right for you, see our list of Supported Pixel Protocols.

Dithering and Gamma Correction Graphic 2

Dithering and Gamma Correction Graphic 2

Dithering

When an 8-bit pixel shifts from one intensity level to another, the difference between the two levels can be very noticeable. Dithering is a technique that creates additional “virtual” levels.

With dithering, the intensity of the pixels will not simply “jump” to the next level when required. Instead, a virtual midpoint between the two levels will be created by jumping back and forth between the two real levels either side very quickly. Similar to how a PWM signal is perceived, if the speed at which this oscillation happens is faster than the human eye can detect, then it will be perceived as an intensity that is halfway between the two levels. This situation is shown below.

Dithering and Gamma Correction Graphic 3

Dithering and Gamma Correction Graphic 3

Dithering and Gamma Correction Graphic 4

Dithering and Gamma Correction Graphic 4

Dithering and Gamma Correction Graphic 5

Dithering and Gamma Correction Graphic 5

When it comes to adjusting pixel lights to a gamma corrected dimming curve, the number of virtual levels that is possible with dithering is at least double what can be achieved without dithering. Using a high resolution pixel will always be superior to the virtualized resolution gained when using dithering, however the most common pixel types are currently all 8-bit resolution. This means that using a PixLite® Mk3 controller with dithering enabled will make your pixel installation look better!

The following example shows what a PixLite® Mk3 can achieve with dithering on an 8 bit pixel that is needing to linearly increase up two levels.

Why Refresh Rates and PWM Rates are Important

For dithering to work, the PixLite® controller must update the intensity of your pixel lights at a faster rate than the incoming data to the controller. This means that the time taken to output the data to the pixels, as well as speed at which the pixels can update their own intensity needs to be relatively fast.

The time taken to output all the data to all the pixels connected to a controller is a limiting constraint which is mainly restricted by the type and number of pixels connected on any output. The more pixels connected or the slower their protocol, the longer it will take to output the data to them. If it takes too long to perform that process and then send a different intensity value, persistence of vision will be degraded, and flicker may be observed. As a rule-of-thumb, the outgoing pixel frame rate should be at least 100FPS to support dithering.

In addition, the outgoing data should ideally be several times faster than the incoming data rate. Since the controller must toggle the pixel intensity multiple times to create the virtual intensity level, enough time to do this should be left before the lighting control software requests the next (potentially new) intensity values for the pixels. For dithering to function correctly, the outgoing pixel frame rate should be more than double the incoming frame rate. This is because when dithering is enabled, at least two output frames must be sent for every incoming frame. Ideally, the outgoing rate should be at least four times the incoming rate, to allow for some margin.

Pixel lights also have a rate at which they output their own PWM, which is a method in which LEDs are switched on and off very quickly, to achieve a perceived intensity. This concept is similar to how dithering works. The PWM Rate should be high enough so that the LED itself can keep up with the rate of dithering. In some extreme cases, the rate the controller is providing new data to the LEDs may be similar to or exceed the rate that the pixels are even turning themselves on and off. This will result in unexpected performance.

Dithering and gamma correction are just two of the many features included as part of our new state-of-the-art Mk3 processor. Discover more about the PixLite® A4-S Mk3 – introduced to our range in September 2021.

A4-S Mk3

PixLite® A4-S Mk3

Driving up to 24 universes of data, and offering easy mounting, sleek design and electrical fault protection — what’s not to love?