@Grumpy_Mike: Why a high framerate matters

Hi Mike,

I don´t find the thread anymore but a while ago we had a discussion about high framerates. I said something like "the more the better, it improves the animation quality" your point was like "it makes no sense to have more than 25(? 50? 100?) fps, because you can´t see the single frames".

I agreed with this but still argued, that it "feels" different. Now I can (hopefully) explain and show clearly why it indeed matters a lot.

Basic problems: In an 8 bit color space there is an inherent problem with all color tables / palettes. At the low brightness end there are visible color steps. With all the basic r, g, & b colors or combinations of that. The main gap is between brightness 0 and 1, but also the range up to +-10 (from 255) shows visible steps. With other colors there are more problems. Let´s take orange - there are 2 color steps at the end: When fading the color down to black green fades out first (causing a visible colorstep from orange to pure red) and then red fades out (visible colorstep from red to black).

With any kind of log gamma correction this low brightness area is exponentially expanded.

If dimming of the global brightness is performed it causes an even more limited color space.

In case a palette contains several sequences of a black entry followed by a gradient to a non-plain color (r, g, b, r+g, g+b, r+g+b) there are several problematic areas within the palette - everywhere where colors go very but not completely dark.

When performing further image processing like blending layers together or filtering them the problem becomes worse caused by the limited resolution of 8 bit math. We lose precision with every single calculation (except everything would be done in a 16 or 32 bit space and just mapped down to 8 bit at the very end).

Long story short, here I have recorded an animation which I limited to 17fps in order to make the problem clearly visible. Please note the color flickering at the edges when the brightness of a color is close to black.

This is visible, because its slow enough. At 35 or 70 fps it looks slightly better, but still far away from perfect. The animation still appears slighly unsteady at edges to black. We are still limited to the 3x8 bit color space and there the lowest brightness steps of every single basic color is distinguishable from its neighbor brightness step.

Now a video where I increased the fps rate to 280. Recorded at 60 fps video framerate.
What happens? An error diffusion! The colors are still flickering but that fast that it appears (because of the slow perception of the eye / camera sensor) like more color steps than there basically are. Kind of a temporal dithering happens by itself caused by the pure speed of changes - softening the look of the darkest areas. The result looks pretty good, but still not perfectly smooth. It happens that there is here and there "a rythm" in the very fast flicking causing a slighly visible flicker again. But way less compared to a lower framerate.

And here again I say "the more fps - the better". There is (with 3x8 bit leds) still a visible difference between 280 fps and 560 fps. Obviously it makes no sense to try to record that by a standard DSLR. But in the human perception the animation appearance becomes more and more soft and smooth. It comes close to perfect where I would see under no circumstances and never any part that shows the slightest unsteadieness. But it never is perfect, at least I didn´t reach this point yet.

That is the reson why I claim that you can never have enough fps when doing led animations especially when aiming for very slow and soft changing effects.



That is the reson why I claim that you can never have enough fps when doing led animations especially when aiming for very slow and soft changing effects.

You are just covering up the poor PWM resolution with dithering. A very expensive way of going about things.

True. Do you know any other method to cover up the poor PWM resolution while preserving maximum contrast / dynamic range?

If there is a cheaper way to create animations which look smooth as silk on limited hardware I´m more than happy to learn about it.