Oculus Invents a New Unit of Time called 'Flicks' to Measure Frame Rates
Image courtesy of: Oculus
Earlier this week, Facebook-owned Oculus introduced something new and unexpected. And no, it’s not an upgraded version of the Oculus Rift, it’s actually a new unit of time referred to as ‘Flicks’, which is designed to make it easier for visual effects creators to sync up digital video and audio frames.
Facebook Open Source shared the announcement of Flicks on its Twitter account on Monday, pointing to an Oculus VR Github repository recently published for its brand new unit 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— Meta Open Source (@MetaOpenSource) January 22, 2018
According to the GitHub project page, a single flick is equivalent to 1/705,600,000 of a second, or the smallest unit of time which is larger than a nanosecond. For comparison, a nanosecond represents 1/1000000000 of a second, making a flick roughly 1.41723356 nanoseconds long. As a result, it eliminates the common inconvenience and complexity that using nanoseconds can create when measuring single frame duration for various frame rates.
Flick can be used to represent a single frame duration for 24hz, 25hz, 30hz, 48hz, 50hz, 60hz, 90hz, 100hz, 120hz, and also 1/1000 divisions of each, as whole numbers instead of floating points, which use decimals. In other words, a flick (1/705,600,000) allows to easily divide into frame rates evenly and helps to ensure that everything is properly in sync with more precise timing, as well as offers less room for error that is caused by rounded decimals or fractions.
The Github documentation for Flicks 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.”
“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.”
The idea behind this new unit of time was created by Christopher Horvath, a former architect at Oculus’ Story Studio, in late 2016. Since then, the concept was further refined with the help of a number of other people over time as it made its way through Facebook’s Open Source process and was officially released on the Oculus Github repository.
Flicks is completely open-source and available free for other developers to use in their projects however they see fit. Facebook and Oculus both hope to see if this new unit of time becomes popular enough amongst those in the field to make flicks an industry standard, but only time will tell if it catches on.