Facebook has launched a new unit of time called Flicks. A flick is “the smallest time unit which is larger than a nanosecond” according to the GitHub page. The word "flick" itself a portmanteau of the phrase "frame-tick" with frame referring to video frame rates. Flicks were invented to measure frame duration more accurately using whole numbers instead of floating point numbers (decimals). Of course, you may be asking yourself, why not just use the well-established units of time?
We've launched Flicks, a unit of time, slightly larger than a nanosecond that exactly subdivides media frame rates and sampling frequencies. https://t.co/w9SDBznXRE— Facebook Open Source (@fbOpenSource) January 22, 2018
The GitHub page goes on to explain:
When working creating visual effects for film, television, and other media, it is common to run simulations or other time-integrating processes which subdivide a single frame of time into a fixed, integer number of subdivisions. It is handy to be able to accumulate these subdivisions to create exact 1-frame and 1-second intervals, for a variety of reasons.
Knowing that you should never, ever use floating point representations for accumulated, simulated time (lest your temporal accuracy degrade over time), the std::chrono time tools in C++ are ideal. However, the highest usable resolution, nanoseconds, doesn't evenly divide common film & media framerates. This was the genesis of this unit.
In layman's terms, since C++ uses nanoseconds, developers run into the problem of video frames not dividing evenly.
The decision to invent a new unit of time was first opined by developer Christopher Horvath in early 2017. The concept was further refined by other developers until the official GitHub release this week which not only supports video frame rates but audio sampling as well.
"In order to accomodate media playback, we also support some common audio sample rates as well. This list is not exhaustive, but covers the majority of digital audio formats. They are 8kHz, 16kHz, 22.05kHz, 24kHz, 32kHz, 44.1kHz, 48kHz, 88.2kHz, 96kHz, and 192kHz. While humans can't hear higher than 48kHz, the higher sample rates are used for working audio files which might later be resampled or retimed."
It will be interesting to see if flicks gets mainstream support among software developers, video editors and special effects developers. For those interested, the C++ header file is available on GitHub as well as a few sample C++ files.