Facebook Announces That It Has Invented a New Unit of Time (theverge.com) 188
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.
Why? (Score:5, Insightful)
Isn't a Hz effectively a measurement of time? (1/60'th of a second for example?)
Why not measure them in their fractions of a second? Programmatically, simple.
Re:Why? (Score:5, Funny)
Because Facebook wants the press for "inventing" something, duh.
Re: Why? (Score:1)
Nonsense. A flick is obviously the amount of time that Intel CPUs take to execute a nanosecond's worth of code, after their meltdown patch.
Re: Why does BeauHD keep posting fake news? (Score:1)
Nonsense.
We already have two terms, frequency and period. Period is the time interval of one cycle at a given frequency. The refresh period for a display with a refresh rate of 60 Hz is a little over 16 ms.
Period is the reciprocal (not inverse) of time. Time is the reciprocal of period.
This is nothing more than a news anchor standing on the streets live on camera with a Facebook walking behind waving and making faces like a spoiled 14-year-old brat until someone clocks him in the fac
GODDAMMIT FACEBOOK! (Score:2)
Re: (Score:2)
Time it takes light to travel 42 centimeters (Score:3)
Light travels about 42 cm in one flick.
Re: (Score:2, Funny)
42 is the answer to everything. There you go.
Re: (Score:2)
Cool, let's make some. [youtube.com]
Re: (Score:2)
Re: (Score:1)
We do not care what facebook bullshit they gonna find today or tomorrow.... fucking kill facebook please! Enough is enough !!
Re: (Score:2)
Re: (Score:3)
Re: (Score:3)
Well its in C++, which is basically invented yesterday. What a fad -- I guess just a big ol' bunch of script kiddies doing typical WEB STACK bullshit, amirite???
Re: (Score:2)
Re: (Score:2)
No, fractions of a second don't end up as floats. They end up as some number of smaller units of time unless you're doing it wrong. Typically you'll measure in units of milliseconds, microseconds, nanoseconds, picoseconds, depending on the accuracy of the underlying hardware clock and the number of bits you can easily work with, but measuring time as number of frames also works fine - you just convert time by multiplying and dividing.
If you use 64 bits (either as a single nanosecond value, or as a pair of
Re:Why? (Score:5, 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.
Re: (Score:2)
Are you overclocking? You got me beat by about 10%
Re: (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).
Re:Why? (Score:5, Interesting)
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). To calculate that duration at present you take the quotient (e.g. 25/60 * 1000 (or 1000000000)) given you a floating point approximation of the actual frame duration. Now in reality that approximation is pretty good; at least if you do the calculation properly to avoid exaggerating early rounding error.
What this proposal does is ensure that the number you get is a whole number of flicks, so no approximations are necessary. Unfortunately it only helps if you have a flick timer that you can time against, so it needs OS and hardware support to be useful.
Re:Why? (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.
Re:Why? (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?
Re: (Score:2)
Re: (Score:2, Insightful)
No, you will be off by at most 0.333 ns per frame. Because you store the origin and number of frames that you have processed to calculate the next time to deliver a frame. The error will not accumulate.
Re: (Score:2)
Re: (Score:2)
But a frame is not on/of per frame. It is per pixel on a line.
Double buffering means that you do not display each pixel as it is calculated, you calculate them all and then switch the display to the that frame. Each frame is a complete set of pixels.
Becsue if you take two pixels next to each other, the framerate will be the same. Just one lights up a bit sooner than the other one.
That depends on the display, not the framerate nor the means of calculating when the next frame should be displayed.
Becsue if you take two pixels next to each other, the framerate will be the same.
Of course,
Just one lights up a bit sooner than the other one.
Irrelevant to knowing what that frame rate is or determining when the next frame of your video needs to be displayed.
Re:Why? (Score:4, Interesting)
We need "Flicks" exactly why, again?
Because although the error is small, it increases as you do things like frame rate conversion and synchronization to audio. It's also prone to programming errors, because people like to do things like use floats and division to calculate values and then add them up repeatedly, which as we know is a really bad idea.
Also, being a nerd I like precision, and being able to use precise integer values to represent these time intervals.
Granted, none of this is essential, but it's neat that someone figured out a nice common denominator for all the common and uncommon audio/video frequencies in use. Well, except NTSC, which as they point out is just broken and can't be fixed.
Re: (Score:2)
They were wrong about NTSC, though. Because they chose a multiple of 120000 as the denominator, NTSC frame durations are representable with integer flick counts. That inaccuracy seems par for the course of their documentation, sadly.
Re: (Score:2)
Since neither my video card, nor my sound card, are of the integrated variety, they sync to whatever I tell them to. 192 kHz audio, 4K@60Hz video, even if the source material is nowhere near that.
Re: (Score:2)
Just more messing with politics by people who want to impose their own revolutionary "change".
Re: (Score:2)
Isn't a Hz effectively a measurement of time?
No.
Re: Why? (Score:2)
You can always represent rational numbers as integers. Just multiply all numbers by 10 until you have no more floating point. But these days the compilers handle all this fancy footwork for you.
Re: (Score:2)
You can always represent rational numbers as integers. Just multiply all numbers by 10 until you have no more floating point.
What is the final result of this algorithm for the rational number 1/3? Go ahead and try it; I'll wait.
Re: (Score:2)
It's not technically correct to say that Hz is a measure of frequency, any more than it's technically correct to say that ohms are a measure of conductance
Yes. Yes, it is. The herz is a unit of frequency; the ohm is not a unit of conductance (it measures resistance). Also, the word "technically" is superfluous in your post. Something is either correct, or it isn't.
That's not a proper portmanteau (Score:5, Insightful)
There's no 'l' in either Frame or Tick. The name should be Frick or Frack,
Re: (Score:2)
Tell that to the people who think it's funny to order "flied lice" at a Chinese or Japanese restaurant (and who apparently work at Facebook).
Re:That's not a proper portmanteau (Score:5, Funny)
I shudder at the notion that anyone thinks that it is clever to take the mickey out of someone serving them food.
Re: (Score:1, Redundant)
I believe the expression is 'take the piss'. Literally in this case.
Re:That's not a proper portmanteau (Score:5, Funny)
It's a Facebook portmanteau. A Fartmanteau.
Re: (Score:3)
Pretty sure there is an I in TlCK.
Re: (Score:2)
Pretty sure there is an I in TlCK.
He meant lowercase "L", not capital "i".
Because programmers are bad at math? (Score:2)
Or, why is a technique programmers have used since computers were born news again?
Wow, what a terrible summary (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.
Re:Wow, what a terrible summary (Score:5, Interesting)
Except that all of those frame rates are also integer divisors of 3600 Hz, so 1/3600 Hz would naturally support all of those frame rates also. They have an extra factor of 196,000 beyond what is needed. Even if you want margin for more (weirder) frame rates, and to be conveniently close to a power-of-10 of a second, they could go for 1/864,000 of a second (864,000 = 3600 * 16 * 3 * 5) and have more manageable counts.
Re: (Score:1)
Also, unlike many existing standards (SMPTE, QuickTime CoreVideo using rationals with flexible denominator in CMTime), this FaceFriend thing doesn’t exactly support common frame rates like NTSC 59.94i, 29.97p and NTSC conformed film at 23.976 for 3:2 pulldown.
The exact ratios needed for these are 60000/1001 Hz, 30000/1001 Hz and 24000/1001 Hz. To exactly support this, their arbitrary constant should have been a multiple of 1001.
Oh well.
Re:Wow, what a terrible summary (Score:5, Interesting)
For legacy reasons, some (but not all) videos that are nominally 24Hz are actually 23.97Hz, some that are 30Hz are actually 29.97Hz, some that are 48Hz are actually 47.95Hz, some that are 60Hz are actually 59.94Hz, and some that are 120Hz are actually 119.88Hz. I suspect this new "unit" is the greatest common denominator between all those.
Re: (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.
Re: (Score:3, Insightful)
Except it is. You messed up.
705600000 / NTSC_FREQ_EXACT is integral.
It's exactly 11771760.
Hint: x / (a / b) = x / a * b. NOT x / a / b.
Re: (Score:2)
Except it is. You messed up.
705600000 / NTSC_FREQ_EXACT is integral.
It's exactly 11771760.
Hint: x / (a / b) = x / a * b. NOT x / a / b.
Actually it is x * b / a
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
No. As an AC or two has pointed out, NTSC-based frame rates would need a factor of 1001 also.
Re:Wow, what a terrible summary (Score:4, Interesting)
Correction: The NTSC frame rates can be represented exactly as flicks, but also with any other multiple of 3,600,000 (which also reflects their desire to exactly support 1000 times the 24, 25, 30, 48, 50, 60, 90, 100 and 120 Hz rates).
The way they got to 705,600,000 is by also including 44100 Hz and 192000 Hz for audio purposes. 705,600,000 is the least common multiple of 88,200, 90,000, 100,000, 120,000 and 192,000 (along with the other numbers they cite, which are all divisors of those).
Re: (Score:3)
For legacy reasons,
The legacy reason has to do with the AC line frequency introducing hum bars in the video, and the thought was that it was better for the hum bar to roll through the image than to be stuck in one place, which might happen to be the vertical sync period (thus screwing up the sync).
The result of this was something called 'drop frame' so that video timing would match clock time. Time code for old B/W video at 30Hz would run from 0 through 29 frames and then roll over the second counter. From here [apple.com]:
Drop frame timecode was invented to compensate for the discrepancy between 29.97 and 30 fps. Every minute except each tenth minute, two timecode numbers are dropped from the timecode count. This drop frame mode of 30 fps timecode remains accurate compared to the actual time passed, with a strange side effect that two numbers each minute vanish from the count.
If you ever w
Re: (Score:3)
Correct.
https://www.youtube.com/watch?... [youtube.com]
https://www.youtube.com/watch?... [youtube.com]
https://www.youtube.com/watch?... [youtube.com]
I love this guy's videos.
Re: (Score:2)
I suspect they were also trying to cover NTSC's 29.97 Hz and maybe even 44.1/48 kHz audio.
Re: Wow, what a terrible summary (Score:2)
Not that not reading the article is uncommon in Slashdot either, but it appears that almost every single poster complaining about it didnâ(TM)t bother to read even the intro page cited in the article. Even the ones who thought they were being clever brining up 29.97fps. Seriously, this seems like a nice solution to a niche problem, and if you donâ(TM)t see the point, itâ(TM)s probably not for you anyway.
Re: (Score:2)
In this case, reading the intro page without careful double-checking would be a bad idea. The "Basics" section of the project's README.md makes two simply wrong claims in three short paragraphs: that a "flick" is the smallest unit of time larger than a nanosecond that can represent 1/24000 s, ..., 1/120000 s as integers (there are many time units between a nanosecond and a flick that evenly divide all of those durations); and that NTSC times are inherently inexact (NTSC frame durations can be exactly repres
I gotta say... (Score:2)
Re: (Score:2)
It's a pretty common thing I've frequently seen in the past. The difference is normally it's only done between two framerates. This seems like its being done between many more.
this is dumb, and gay (Score:1)
Pretty much what I expect out of idiot millenials
Re: (Score:2)
It's not stupid, it's practical. Like the historical kilobyte, equivalent to 1024 bytes: it's nonstandard, but it gives a good idea of "something close to 1000 bytes" that's easy to work with in powers of two.
Re: (Score:2)
It's practical, but it sure the hell isn't "the the smallest time unit which is LARGER than a nanosecond".
(The smallest "1 over" time unit larger than a ns would be 1/999,999,999.)
Portmanteau of "Frame-tick"? (Score:3)
Shouldn't that be "frick"? Nah, I guess that would be too confusing...
Re: (Score:2, Funny)
There would be way too many opportunities to complain about Facebook and/or Oculus being fricking stupid.
Re: (Score:2)
We should hit the "thumbs-down" button on this concep... oh wait there isn't one. #democracy
New GPU/Video Hardware clocking rate? (Score:2)
I'm a little surprised that this came from FB and not Google/YouTube but I can definitely see its value.
Does it make sense to clock hardware and GPUs at this rate? A 3GHz GPU would run at 2,822,400,000 Hz and would synchronize to any video (incoming or outgoing) refresh rate allowing for no missed pixels, pixels that are sampled at transitions or maybe some FLICKer.
Depending on the application, media and its refresh rate, this may not offer a lot of tangible advantages. For instance, in gaming, I don't se
graphics driver developer here (Score:2)
I measure frames in clocks. A frame is always an integer number of clocks.
If you want to deal with just refresh rates, the LCM of 144, 120, 100, 90, 60, 50, 48, 30, 25, 24 is 3600.
If you want to deal with lines for common video modes (480, 720, 768, 1080, 1200, 1440, 2160) at those frequencies. LCM = 207360000
$ for a in 480 720 768 1080 1200 1440 2160 ; do for b in 144 120 100 90 60 50 48 30 25 24 ; do echo $[$a*$b] ; done ; done | sort | uniq | tr '\n' ' ' ; echo
103680 108000 110592 11520 12000 120000 1296
Storage in integer is precise while floats are not (Score:2)
Portmanteaus? (Score:2, Redundant)
The name (flick) itself is a portmanteau of the phase "frame-tick," ...
No it isn't as there's no "l" (ell) in either word.
Apparently, they rejected the following (from :Portmanteaur [portmanteaur.com]):
and "steve".
Personally, I would have chosen one of: frack, frak, frick, or time - but not sage or rosemary.
Re: (Score:3)
Smallest unit of time required for video. A quantum of video. A video quantum. A viq.
Wrong (Score:2, Redundant)
The name itself is a portmanteau of the phase "frame-tick," which is also why you might want to use them.
No it's not! It's a word chosen to sound cool and look *roughly* like those words smooshed together, but where did the 'L' come from?
It's an engineered one. The portmanteau equivalent of a backronym.
Also, I don't want to use them, even if they do change the name to "Frick".
But thanks for asking.
Wibbly-wobbly timey-wimey... stuff (Score:3)
Did Zuckerberg just invent time travel?
Stupid title (Score:5, Interesting)
Re: (Score:2)
Are you splitting hairs between "invent" and "defined something that didn't exist prior" on something intangible? It's not just the title of this article that is stupid...
Re: (Score:2)
So when you develop software, do you invent variables or do you declare them?
Re: (Score:2)
Declare them obviously. Unless it is you declare the variable of a type that never existed before, in that case you invent them.
Time quantization? (Score:1)
the smallest time unit which is LARGER than a nanosecond ... For comparison, a nanosecond is 1/1,000,000,000 of a second, making a Flick roughly 1.41723356 nanoseconds long
I'm confused - why is a flick 1.41723356 ns and not 1.3 ns or 1.41723354 ns? Does this have to do with time being quantized and Planck time? I thought planck time was on a scale much smaller than nanoseconds, but I'm possibly remembering wrong.
The start of the downfall of a company... (Score:5, Insightful)
Re: (Score:1)
You have been banned from Facebook for 2,540,160.00016257 flicks for going over your Fakenewspoints threshold with this comment
Re: (Score:2)
And they're not even being original [wikipedia.org].
Can they use it to not show me shit (Score:1)
that someone posted 5 days ago, just becuase some dumbarse 'liked' it today?
The Flick is already a unit (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.
Re: (Score:2)
For decades a 'Flick' was one page of a flip book. So if you wanted to have so many pages per second you counted the number of Flicks.
What about... (Score:5, Insightful)
23.976Hz or 29.97Hz?
They're both industry standard frame rates.
Re: (Score:3)
23.976Hz or 29.97Hz?
They're both industry standard frame rates.
I think you mean 24000/1001 and 30000/1001.
Of course, you'll also have to handle 23.976 and 29.97 and (multiples thereof) since so much has been built around those approximations.
Re:What about... (Score:4, Funny)
We should create a new standard [xkcd.com] that covers 23.976, 29.97, and Flicks.
TFTFY. :-)
Ignores the most common framerates. (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?
Re: (Score:2)
Somebody actually looks up the standard and gets it right. Who would do that on Slashdot :-)? 1001 can actually be factored (13 * 11 * 7) and the factors combined with other ratios to get a common tick rate that is about what they came up with (caveat, I did not check if they did the math right). I did this about 15 years ago and reported a bug to Apple that they should use that magic number in quicktime (or more precisely, document that was the appropriate magic number to use, because Quicktime already
History (Score:1)
Until a hardware vendor starts talking in flicks and designing circuits to match, this is meaningless.
The French, when inventing the metric system, created a decimal circle, calendar, clock: The clock and calendar soon disappeared. People talk about decimal circles (Gradians) but no-one uses them.
There was Swatch Internet Time (1 beat = 86.4 seconds, 1 Kbeat = 1 day) but nobody else measured time with it, so it's dead.
They are lying (Score:1)
A femto-fortnight is larger than a nanosecond and less than the flick. It is 1.2096 ns.
In other news... (Score:2)
Pickles the kitten learned an important lesson today, find out what after the break.
Least Common Multiple of Silliness (Score:2)
Dammit, I'm still trying to get used to Swatch "beat time"...
Not a portmanteau (Score:2)
There is no fucking "L" in either of the originating words.
Basic English fail. Get this shit off Slashdot.
Meaning of Flick (Score:2)
Flick is what I do with my middle finger. In this case, in the direction of Facebooks claim to having invented a unit of time.
ha, fucking malamanteau (Score:2)
Portmanteau? Frame Tick = Flick? Uh, no. Where the fuck is the L coming in from?
Facebook are welcome to their stupid, ad-hoc names for subdivisions of seconds. The unit of time is a second, and facebook won't ever change that.
Re: (Score:2)
It is a solution (Score:2)
That's not a portmanteau... (Score:2)
That would be "Frick" or Frack" There is no "L" in either "Frame" or "Tick".
Summary doesn't understand precision (Score:2)
Of course you can get more precise than a nanosecond in C++ (as well as in any other turing-complete language). Double precision is roughly down to 10^-16, so a 1-second video could be processed with a precision of femtoseconds. Storing time as a fixed point value in a long long would get you 19 digits of precision, so you could do femtoseconds for an hour-long video. If that's not good enough, grab an arbitrary precision math library and store it down