Facebook redefines time (sort of) to help sync video frame rates
Minutes, seconds and milliseconds aren’t quite enough for Facebook – at least when it comes to synchronising video, anyway. The social giant has announced the launch of Flicks, a unit of time which can more easily subdivide media frame rates and sampling frequencies.
The unit – named Flick as a semi-portmanteau of ‘frame tick – is defined in C++ and represents 1/705600000 of a second. A flick is the smallest unit of time which can successfully represent a single frame duration for 24hz, 25hz, 30hz, 48hz, 50hz, 60hz, 90hz, 100hz and 120hz whilst being larger than a nanosecond.
As an announcement on GitHub explains: “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 and media frame rates. This was the genesis of this unit.”
Take films as an example. Despite various technological advances, the standard remains 24 frames per second. Put as a decimal, however, 1/24 is 0.041667 – or rather, 0.0416666… recurring. As a result, as 1/705600000 can divide into 24, 25, 30, 48 and so on, it is a more exact process. A 1/24 frame per second frame amounts to 29,400,000 flicks.
The idea came about after a public post on Facebook by Christopher Horvath, a former architect with Facebook’s Story Studio – which was shut down in May last year. The project is under the Oculus arm.
The unit can be placed wherever C++ header files are installed. They are not able to be placed in the std:: namespace, instead being placed in the ‘util’ namespace ‘for lack of a clear alternative.’
You can read the full GitHub documentation here.