Slashdot Mirror


Facebook Announces That It Has Invented a New Unit of Time (theverge.com)

Facebook has announced a new unit of time, called Flicks. "According to the GitHub page documenting Flicks, a Flick is 'the smallest time unit which is LARGER than a nanosecond,' defined as 1/705,600,000 of a second," reports The Verge. (For comparison, a nanosecond is 1/1,000,000,000 of a second, making a Flick roughly 1.41723356 nanoseconds long.) From the report: Now, you may be sitting there wondering what was wrong with regular seconds that Facebook had to go and invent its own unit, especially since the second is one of the few units that is universal across SI and imperial units. The name itself is a portmanteau of the phase "frame-tick," which is also why you might want to use them. Flicks are designed to help measure individual frame duration for video frame rates. So whether your video is 24hz, 25hz, 30hz, 48hz, 50hz, 60hz, 90hz, 100hz, or 120hz, you'll be able to use Flicks to ensure that everything is in sync while still using whole integers (instead of decimals). Programmers already use built in tools in C++ to manage these sorts of exact frame syncing, especially when it comes to designing visual effects in CGI, but the most exact timing possible in C++ is nanoseconds, which doesn't divide evenly into most frame rates. The idea to create a new unit of time to solve this problem dates back to last year, when developer Christopher Horvath posted about it on Facebook.

9 of 188 comments (clear)

  1. Wow, what a terrible summary by ClickOnThis · · Score: 5, Informative

    Not that terrible summaries are anything new on Slashdot, but really. "Smallest unit of time greater than a nanosecond?"

    Too lazy to do the math right now, but it appears what they have defined is the largest unit of time that divides the frame-periods they're talking about by integral amounts, so you can synchronize video in these different rates with an integral number of "flicks" for each of the different frame-periods.

    --
    If it weren't for deadlines, nothing would be late.
    1. Re:Wow, what a terrible summary by Anonymous Coward · · Score: 2, Informative

      Except it isn’t. They messed up.

      Neither of these is integral:

      705600000 / NTSC_FREQ_APPROX
      705600000 / NTSC_FREQ_EXACT

      Where
      NTSC_FREQ_APPROX = 59940/1000 = 59.94000000...
      NTSC_FREQ_EXACT = 60000/1001 = 59.94005994005994...

      So they don’t support those frequencies exactly anyway.

  2. Re:Why? by Rosco+P.+Coltrane · · Score: 4, Informative

    No, a Hertz is a measurement of frequency - that is, the number of times something repeats itself per second. For instance, the thought "Facebook is really crap" springs to my mind at 1/86400 Hz on average.

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
  3. The Flick is already a unit by Anonymous Coward · · Score: 5, Informative

    Guess they didn't care that the Flick was already a unit of measurement used in radiometry?

    1 Flick = 1 Watt per steradian cm^2 micron.

  4. Re:Why? by Anonymous Coward · · Score: 5, Informative

    QuickTime (CoreVideo) has been doing this for decades. For example, CMTime and file data uses rational time (precise ratio of integers) supporting exact time calculations, including fir NTSC 59.94H for framerate, timecodes, etc. Other video standards and applications also do this.

    This Facebook standard doesn't even exactly support 59.94.

  5. Ignores the most common framerates. by Anonymous Coward · · Score: 2, Informative

    Based on feedback from Simon Eves, who pointed out that the NTSC variations are all actually approximations of 24 * 1000/1001, and 30 * 1000/1001, I dropped support for those variations.

    A unit that claims to make measuring video frame time easier and then goes on to ignore the most common framerates?

  6. Re:Why? by Obfuscant · · Score: 5, Informative

    What this proposal does is ensure that the number you get is a whole number of flicks, so no approximations are necessary.

    If you are working at 30Hz (not "30hz") and count in nanoseconds, you will be off by 0.333... ns per frame. That means 10ns per second. It would take 111,111,111.1 frames to be off by one frame. That's 3703703.7 seconds of video, or 42.8 continuous days of video. After 42.8 days of video, you will be off by one frame.

    If you blink once during that 42.8 days, you will miss the one additional frame that has been inserted into your 30Hz video stream.

    Given the extremely small errors for any frame rate if you use nanoseconds as the timebase, a simple stretch or compress of the rate for that tiny amount will be completely undetectable. The error in any "Flick" clock will vastly outweigh the error of using a simple nanosecond clock and "approximating".

    We need "Flicks" exactly why, again?

  7. Re:Why? by Anonymous Coward · · Score: 0, Informative

    Because when you display a frame in a video player you hold that frame for a certain duration against the computers clock which is measured in nanoseconds (or milliseconds).

    Not exactly. The only sane way to play recorded video is to synchronize it (directly or indirectly) with the sound card's clock, which is typically 48 kHz or a multiple thereof. That's because a discrepancy of even a single audio sample is clearly audible, whereas dropping an entire video frame is often barely perceptible.

    On the other hand, if you're playing a live video stream in real time, you're ultimately dependent on an external clock - which means the frame rate will never be an integer multiple of your local clock, no matter what units you choose.

  8. Re:Why? by Anonymous Coward · · Score: 3, Informative

    No, a Hertz is a measurement of frequency - that is, the number of times something repeats itself per second. For instance, the thought "Facebook is really crap" springs to my mind at 1/86400 Hz on average.

    Not to be pedantic, but the unit of frequency is "hertz" (with a symbol "Hz"). "Hertz" is the guy it was named after. Units named after people are spelled in lowercase (volt, ampere, bohr, etc).