Facebook ввёл новую единицу времени — flick Facebook ввёл новую единицу времени — flick

Facebook ввёл новую единицу времени — flick

Автор: / Технологии и наука / Вторник, 23 января 2018 19:30

Американский проект Facebook Open Source разработал библиотеку для языка программирования C++, с помощью которой в код можно добавить новую единицу измерения времени — флик. Библотека и описание новой единицы доступны на странице проекта на GitHub. Разработчики утверждают, что новая единица времени позволяет идеально синхронизировать видео и аудио кроме неудачного стандарта NTSC.

В большинстве существующих сегодня языков программирования отсчет времени ведется в миллисекундах (одна тысячная секунды). При этом в C++ для работы с видео и аудио и их синхронизации программистам приходится оперировать с десятичными долями секунды, высчитывая такие интервалы, которые бы привязывали определенное место аудиозаписи к определенному кадру.

Из-за того, что видео и аудио используют разные скорости смены данных, иначе называемые частотами обновления, добиться идеальной синхронизации звука и картинки удается не всегда. Именно по этой причине Facebook Open Source и предложил использовать в C++ новую единицу времени, которую еще в октябре 2016 года придумалсотрудник проекта Кристофер Хорват.

Новая единица измерения времени в C++ получила название флик, которое образовано от двух слов — frame (кадр) и tick (счет, пометка). С разговорного английского слово flick можно перевести как фильм. Один флик равен 1/705600000 секунды, или 1,417 наносекунды. Именно такая единица времени, уверяют в Facebook, позволяет идеально синхронизировать любые существующие частоты видео и аудио.

Например, распространенные для распространенных частот 24 и 25 кадров в секунду длительность каждого кадра можно измерить в понятных и целых 29400000 и 28224000 фликов. Для рапида с частотой 192000 кадров в секунду временная продолжительность одного кадра составит 3675 фликов. Эти флики можно точно синхронизировать с фликами, рассчитанными для «кадров» аудио популярных частот от 8 до 192 килогерц.

При использовании стандартных подходов к делению времени при синхронизации аудио и видео в C++ длительность показа одного кадра при частоте 24 кадра в секунду составила бы 41,666666 миллисекунды. Производить математические вычисления с такими числами неудобно, а попытки их округлить при большой продолжительности видео будут давать нарастающую рассинхронизацию с аудио.

В октябре 2015 года физики из университетов Варшавы и Ноттингема выяснили, что существование идеальных часов, способных сколь угодно точно измерять промежутки времени в любой системе отсчета, противоречит законам физики. Нарушения начинают проявляться при больших ускорениях, которые могли наблюдаться, например, в момент Большого Взрыва.

Ключевые слова

Автор

Френсис Дрейк

Френсис Дрейк

Please publish modules in offcanvas position.