A look at terminal emulators, part 2
A look at terminal emulators, part 2
Posted Apr 16, 2018 9:08 UTC (Mon) by farnz (subscriber, #17727)In reply to: A look at terminal emulators, part 2 by jhoblitt
Parent article: A look at terminal emulators, part 2
Visual perception is a deep and complex field; it's a long time since I studied this, so please excuse the lack of references. Underlying this is that there is an in-brain model of what you "expect" to see; your visual input is used to update that model, and things about the model that are either unexpected or an area of focus then bubble up to conscious perception. There are three numbers of interest for terminal use cases:
- The minimum display time needed to trigger object recognition.
- The acceptable time lag between action and response - e.g. between pressing a key, and seeing the screen update with the consequences of that keypress.
- The maximum time for animation to count as "smooth" to the eye; i.e. the fusion threshold.
These numbers are all separately measurable with the right equipment, and when I studied this (around 2002), the first was single digit milliseconds in skilled object recognisers (the paper I recall, but cannot find, said that military pilots could accurately identify aircraft that appeared in their field of view for under 4ms; going lower was not possible with the equipment available to the experimenters). The second is around 100ms, but note that you have to allow for input latency, processing latency and output latency in this number, so with 4ms lag on keypresses, and 1ms processing time, you're down to 95ms for display time. The final one is also around 100ms, but is an inter-frame delay; as long as you can output a frame every 100ms or less, you can trick the visual system into seeing smooth movement.
Note, too, that there is a resolution/frame rate tradeoff available with the last one - if you have very high resolution, and use that resolution to accurately simulate the "expected" motion effects (blur etc), then you can get away with the full 100ms. If you have lower resolution, you need a lower frame time to compensate.
So, even a 16ms delay could be noticeable, if what's going on is object recognition rather than animation.
