Иллюзия движения. Ч.2
Пикабу не захотел опубликовать все в одном посте, поэтому пришлось разделить его на две части.
Первая часть тут
Pulldown
Преобразовать киноматериал для NTSC, американского телевизионного стандарта, не получится простым ускорением, потому что преобразование 24 FPS в 29,97 FPS соответствует ускорению на 24,875%. Если только вы по-настоящему не любите бурундучков, это будет не лучшим вариантом.
Вместо этого используется процесс под названием 3:2 pulldown (среди прочих), который стал самым популярным методом преобразования. В рамках этого процесса берут 4 оригинальных кадра и преобразуют их в 10 чересстрочных полукадров или 5 полных кадров. Вот иллюстрация, которая описывает процесс.
3:2 Pulldown в действии. Из Википедии.
На чересстрочном дисплее (то есть ЭЛТ) видеополя посредине отображаются в тандеме, каждый в чересстрочном варианте, поэтому они состоят из каждой второй строки пикселей. Оригинальный кадр A разбивается на два полукадра, оба из которых отображаются на экране. Следующий кадр B тоже разбивается, но нечётное видеополе отображается дважды, так что этот кадр распределяется по трём полукадрам. И, в сумме, мы получаем 10 распределённых по видеополям полукадров из 4 оригинальных полных кадров.
Это работает достаточно хорошо при показе на чересстрочном экране (таком как ЭЛТ-телевизор) примерно с 60 видеополями в секунду (практически полукадрами), поскольку полукадры никогда не показываются вместе. Но такой сигнал выглядит ужасно на дисплеях, которые не поддерживают полукадры и должны составить вместе 30 полных кадров, как в самом правом столбце на иллюстрации вверху. Причина провала в том, что каждый третий и четвёртый кадры слепляются из двух разных кадров оригинала, что приводит к тому, что я называю «Франкенфрейм». Это особенно ужасно выглядит на быстром движении, когда имеются значительные отличия между соседними кадрами.
Так что pulldown выглядит изящно, но это тоже не универсальное решение. Тогда что? Неужели нет идеального варианта? Как выясняется, он таки есть, и решение обманчиво простое!
При показе: G-Sync, Freesync и ограничение максимальной частоты кадров
Вместо того, чтобы бороться с фиксированной частотой обновления, конечно, гораздо лучше использовать переменную частоту обновления, которая всегда синхронизирована с фреймрейтом. Это именно то, для чего предназначены технологии Nvidia G-Sync и AMD Freesync. G-Sync — модуль, встроенный в мониторы, он позволяет им синхронизироваться с выдачей GPU вместо того чтобы заставлять GPU синхронизироваться с монитором, а Freesync достигает той же цели без модуля. Это действительно революционные технологии, которые устраняют необходимость в «телекинопроекторе», а весь контент с переменным фреймрейтом, вроде игр и веб-анимаций, выглядит намного более плавным.
К сожалению, и G-Sync, и Freesync — относительно новые технологии и ещё недостаточно широко распространились, так что если вы как веб-разработчик делаете анимации для веб-сайтов или приложений и не можете себе позволить использовать полноценные 60 FPS, то лучше всего будет ограничить максимальный фреймрейт, чтобы он без остатка делился на частоту обновления — практически во всех случаях наилучшим ограничением будет 30 FPS.
Заключение и последующие действия
Так как достичь пристойного баланса с учётом всех желаемых эффектов — минимального размытия в движении, минимального мерцания, постоянной частоты кадров, хорошего отображения движения и хорошей совместимости со всеми дисплеями — без особого обременения GPU и дисплея? Да, сверхбольшие фреймрейты могут снизить размытие в движении, но большой ценой. Ответ ясен и после чтения этой статьи вы должны его знать: 60 FPS.
Теперь, когда вы умнее, приложите все усилия, чтобы запустить весь анимированный контент со скоростью 60 кадров в секунду.
Если вы веб-разработчик
Сходите на jankfree.org, где разработчики Chrome собирают лучшие ресурсы о том, как сделать все ваши приложения и анимации безупречно плавными. Если у вас есть время только для одной статьи, то выберите отличную статью Пола Льюиса The Runtime Performance Checklist.
Если вы Android-разработчик
Сверьтесь с нашими «Лучшими практиками для производительности» в официальном разделе Android Training, где мы собрали для вас список самых важных факторов, узких мест и хитростей оптимизации.
Если вы работаете в киноиндустрии
Записывайте весь контент на 60 FPS или, ещё лучше, на 120 FPS, чтобы можно было свести его к 60 FPS, 30 FPS и 24 FPS в случае необходимости (к сожалению, для добавления поддержки 50 FPS и 25 FPS (PAL) придётся поднять частоту кадров до 600 FPS). Воспроизводите весь контент на 60 FPS и не извиняйтесь за «эффект мыльной оперы». Эта революция потребует времени, но она случится.
Для всех остальных
Требуйте 60 FPS для любых движущихся картинок на экране, а если кто спросит почему, отправьте его к этой статье.
На этом всё! Спасибо за внимание!)
Оригинал статьи тут
Иллюзия движения. Ч.1
Всем привет! Наткнулся давеча на очень интересную статью на тему FPS в целом кинематографе в частности. Мне эта статья показалась чрезвычайно интересной, поэтому спешу поделиться ею с вами) Приятного чтения!)
PS: Пикабу не захотел опубликовать все в одном посте, поэтому пришлось поделить пост на две части. Вторая часть тут
Введение
Вы могли слышать термин кадры в секунду (FPS), и что 60 FPS — действительно хороший ориентир для любой анимации. Но большинство консольных игр идут на 30 FPS, а кинофильмы обычно записывают на 24 FPS, так зачем же нам стремиться к 60 FPS?
Кадры… в секунду?
Ранние времена кинопроизводства
Съёмки голливудского фильма 1950 года «Юлий Цезарь» с Чарлтоном Хестоном
Когда первые кинематографисты начали снимать кино, многие открытия делались не научным методом, а путём проб и ошибок. Первые камеры и проекторы управлялись вручную, а плёнка была очень дорогой — настолько дорогой, что при съёмке старались использовать наименьшую возможную частоту кадров, лишь бы сэкономить плёнку. Этот порог обычно находился между 16 и 24 FPS.
Когда на физическую плёнку наложили звук (аудиотрек) и воспроизводили его одновременно с видео, то управляемое вручную воспроизведение стало проблемой. Выяснилось, что люди нормально воспринимают переменный фреймрейт для видео, но не для звука (когда изменяется и темп, и высота тона), так что кинематографистам пришлось выбрать постоянную скорость для того и другого. Выбрали 24 FPS, и сейчас, спустя почти сто лет, он остаётся стандартом в кино. (В телевидении частоту кадров пришлось слегка изменить из-за того, как ЭЛТ-телевизоры синхронизируются с частотой электросети).
Кадры и человеческий глаз
Но если 24 FPS еле приемлем для кино, то какой оптимальный фреймрейт? Это хитрый вопрос, потому что оптимальной частоты кадров нет.
Восприятие движения — это процесс выведения скорости и направления элементов сцены на основании зрительных, вестибулярных и проприоцептивных ощущений. Хотя процесс кажется простым для большинства наблюдателей, он оказался сложной проблемой с вычислительной точки зрения и чрезвычайно трудно объяснимым с точки зрения нейронной обработки. — Википедия
Глаз — это не камера. Он не воспринимает движение как серию кадров. Он воспринимает непрерывный поток информации, а не набор отдельных картинок. Почему тогда кадры вообще работают?
Два важных феномена объясняют, почему мы видим движение, когда смотрим на быстро сменяющиеся картинки: инерция зрительного восприятия и фи-феномен (стробоскопическая иллюзия непрерывного движения — прим. пер.).
Большинство кинематографистов думают, что единственной причиной является инерция зрительного восприятия, но это не так; хотя и подтверждённая, но не доказанная с научной точки зрения инерция зрительного восприятия является феноменом, согласно которому остаточное изображение, вероятно, сохраняется примерно 40 миллисекунд на сетчатке глаза. Это объясняет, почему мы не видим тёмное мерцание в кинотеатрах или (обычно) на ЭЛТ.
Фи-феномен в действии. Заметили движение на картинке, хотя на ней ничего не двигается?
С другой стороны, многие считают именно фи-феномен истинной причиной того, что нам видится движение за отдельными изображениями. Это оптическая иллюзия восприятия непрерывного движения между отдельными объектами, если их быстро показывают одно за другим. Но даже фи-феномен подвергается сомнению, и учёные не пришли к единому мнению.
Наш мозг очень хорошо помогает подделывать движение — не идеально, но достаточно хорошо. Серия неподвижных кадров, имитирующих движение, создаёт разные перцептивные артефакты в мозге, в зависимости от частоты кадров. Таким образом, частота кадров никогда не будет оптимальной, но мы можем приблизиться к идеалу.
Стандартные фреймрейты, от плохих к идеальным
Чтобы лучше понять абсолютную шкалу качества фреймрейта, предлагаю посмотреть обзорную таблицу. Но помните, что глаз — сложная система и он не распознаёт отдельные кадры, так что это не точная наука, а просто наблюдения разных людей за прошедшее время.
10-12 FPS - Абсолютный минимум для демонстрации движения. Меньшие значения уже распознаются глазом как отдельные изображения.
< 16 FPS - Создаются видимые заминки, у многих такой фреймрейт вызывает головные боли.
24 FPS - Минимальный терпимый фреймрейт для восприятия движения, экономически эффективный
30 FPS - Намного лучше, чем 24 FPS, но не реалистичный. Это стандарт для видео NTSC из-за частоты переменного тока
48 FPS - Хорош, но недостаточен для истинной реалистичности (хотя Томас Эдисон думал иначе). Также см. эту статью.
60 FPS - Зона наилучшего восприятия; большинство людей не воспримут дальнейшего повышения качества выше 60 FPS.
FPS - К настоящему времени наука не смогла доказать или наблюдением обнаружить теоретический лимит человека.
Примечание: Несмотря на то, что 60 FPS считаются хорошим фреймрейтом для плавной анимации, этого ещё недостаточно для отличной картины. Контраст и резкость всё ещё можно улучшить за пределами этого значения. Для изучения, насколько наши глаза чувствительны к изменению яркости, был проведён ряд научных исследований. Они показали, что испытуемые способны распознать белый кадр среди тысячи чёрных кадров. Если хотите копнуть поглубже, вот несколько ресурсов, и ещё.
Демо: как выглядит 24 FPS в сравнении с 60 FPS?
Да, это действительно довольно большая разница, не так ли. Но к чему все эти разговоры киноманов о том, что 24 кадра в секунду — это настоящий Грааль? Чтобы понять, почему в мире кино такое сопротивление высокому фреймрейту, давайте взглянем на «Хоббита».
HFR: перемонтаж мозга с помощью «Хоббита»
«Хоббит» был популярным кинофильмом, снятым на двойном фреймрейте 48 FPS, который называется HFR (high frame rate). К сожалению, не всем понравился новый вид. Этому было несколько причин, главная из них — так называемый «эффект мыльной оперы».
Мозг большинства людей обучен воспринимать 24 полных кадра в секунду как качественное кино, а 50-60 полукадров (чересстрочные телесигналы) напоминают нам телеэфир и разрушают «эффект плёнки». Схожий эффект создаётся, если активировать интерполяцию движения на вашем ТВ для материала 24p (прогрессивная развёртка). Она многим не нравится (несмотря на то, что современные алгоритмы довольно хороши в рендеринге плавных движений без артефактов, что является главной причиной, почему критики отвергают эту функцию).
Хотя HFRзначительно улучшает изображение (делает движения не такими прерывистыми и борется со смазанностью движущихся объектов), непросто найти ответ, как улучшить его восприятие. Это требует переобучения мозга. Некоторые зрители не замечают никаких проблем после десяти минут просмотра «Хоббита», но другие абсолютно не переносят HFR.
Камеры и CGI: история motion blur
Но если 24 FPS называют едва переносимым фрейрейтом, то почему вы никогда не жаловались на прерывистость видео, выходя из кинотеатра? Оказывается, в видеокамерах есть встроенная функция — или баг, если хотите — которой не хватает в CGI (в том числе в анимациях CSS!): это motion blur, то есть размытие движущегося объекта.
После того, как вы видели motion blur, его отсутствие в видеоиграх и в софте становится до боли очевидным.
Motion blur, как определяется в Википедии, это
… видимая тянучка быстро движущихся объектов в неподвижном изображении или последовательности изображений, таких как кинофильм или анимация. Она происходит, если записываемое изображение изменяется во время записи одного кадра либо из-за быстрого движения, либо при длительной экспозиции.
Без motion blur
C motion blur
Motion blur использует хитрость, изображая много движения в одном кадре, жертвуя детализацией. Вот причина, почему кинофильм на 24 FPS выглядит относительно приемлемо, по сравнению с видеоиграми на 24 FPS.
Но как изначально появляется motion blur? Согласно описанию E&S, которая впервые применила 60 FPS для своих мега-купольных экранов:
Когда вы снимаете фильм на 24 FPS, камера видит и записывает только часть движения перед объективом, а затвор закрывается после каждой выдержки, чтобы перемотать плёнку к следующему кадру. Это значит, что выдержка закрыта в течение такого же времени, что и открыта. При быстром движении и действии перед камерой частота кадров недостаточно высока, чтобы успеть за ними, а изображения размываются в каждом кадре (из-за времени экспозиции).
Классические кинокамеры используют обтюратор (вращающийся секционированный диск ) для захвата motion blur. Вращая диск, вы открываете затвор на контролируемый промежуток времени под определённом углом и, в зависимости от этого угла, изменяете время экспозиции. Если выдержка маленькая, то на плёнку запишется меньше движения, то есть motion blur будет слабее; а если выдержка большая, то запишется больше движения и эффект проявится сильнее.
Обтюратор в действии.
Если motion blur — такая полезная вещь, то почему кинематографисты стремятся от него избавиться? Ну, при добавлении motion blur вы теряете детализацию; а избавившись от него — теряете плавность движений. Так что когда режиссёры хотят снять сцену с большим количеством деталей, вроде взрыва с большим количеством вылетающих частиц или сложной сцены с действием, они часто выбирают маленькую выдержку, которая уменьшает размытие и создаёт чёткий эффект кукольной мультипликации.
Визуализация захвата Motion Blur.
Так почему бы его просто не добавить?
Motion blur значительно улучшает анимацию в играх и на веб-сайтах даже на низких фреймрейтах. К сожалению, его внедрение слишком дорого обходится. Для создания идеального motion blur вам понадобилось бы снять в четыре раза больше кадров объекта в движении, а затем осуществить временню фильтрацию или сглаживание (вот отличное объяснение от Хьюго Элиаша). Если для выпуска приемлемого материала на 24 FPS вам нужно делать рендеринг на 96 FPS, то вместо этого вы можете просто поднять фреймрейт, так что зачастую это не вариант для контента, который рендерится в реальном времени. Исключениями являются видеоигры, где заранее известна траектория движения объектов, так что можно рассчитать приблизительный motion blur, а также системы декларативной анимации вроде CSS Animations и, конечно, CGI-фильмы как у Pixar.
60 Гц != 60 FPS: частота обновления и почему она важна
Примечание: герц (Гц) обычно используется, когда говорят о частоте обновления, в то время как показатель кадров в секунду (fps) — устоявшийся термин для покадровой анимации. Чтобы не путать их, мы используем Гц для частоты обновления и FPS для фреймрейта.
Если вы задаётесь вопросом, почему на вашем ноутбуке так некрасиво выглядит воспроизведение дисков Blu-Ray, то часто причина в том, что фреймрейт неравномерно делится на частоту обновления экрана (в противоположность им, DVD конвертируются перед передачей). Да, частота обновления и фреймрейт — не одно и то же. Согласно Википедии, «[..] частота обновления включает в себя повторное рисование идентичных кадров, тогда как фреймрейт измеряет, как часто исходный видеоматериал будет выдавать полный кадр новых данных на дисплей». Так что фреймрейт соответствует количеству отдельных кадров на экране, а частота обновления соответствует числу раз, когда изображение на экране обновляется или перерисовывается.
В идеальном случае частота обновления и фреймрейт полностью синхронизированы, но в определённых ситуациях есть причины использовать частоту обновления в три раза выше фреймрейта, в зависимости от используемой проекционной системы.
Новая проблема у каждого дисплея
Кинопроекторы
Многие думают, что во время работы кинопроекторы прокручивают плёнку перед источником света. Но в таком случае мы бы наблюдали непрерывное размытое изображение. Вместо этого для отделения кадров друг от друга здесь используетсязатвор, как и в случае с кинокамерами. После отображения кадра затвор закрывается и свет не проходит до тех пор, пока затвор не откроется для следующего кадра, и процесс повторяется.
Однако это не полное описание. Конечно, в результате такого процессы вы увидите-таки фильм, но мерцание экрана из-за того, что экран остаётся тёмным 50% времени, сведёт вас с ума. Эти затемнения между кадрами разрушат иллюзию. Для компенсации проекторы на самом деле закрывают затвор два или три раза на каждом кадре.
Конечно, это кажется нелогичным — почему в результате добавления дополнительных мерцаний нам кажется, что их стало меньше? Задача в том, чтобы уменьшить период затемнения, который оказывает непропорциональный эффект на зрительную систему. Порог слияния мерцания (тесно связанный с инерцией зрительного восприятия) описывает эффект от этих затемнений. Примерно на ~45 Гц периоды затемнения должны составлять менее ~60% времени показа кадра, вот почему эффективен метод двойного срабатывания затвора в кино. Более чем на 60 Гц периоды затемнения могут составлять более 90% времени показа кадра (необходимо для дисплеев вроде ЭЛТ). Вся концепция в целом немного сложнее, но на практике вот как можно избежать мерцания:
Использовать иной тип дисплея, где нет затемнения между кадрами, то есть он постоянно отображает кадр на экране.
Применить постоянные, неизменяемые фазы затемнений с продолжительностью менее 16 мс
Мерцающие ЭЛТ
Мониторы и телевизоры ЭЛТ работают, направляя электроны на флуоресцентный экран, где содержится люминофор с низким временем послесвечения. Насколько мало время послесвечения? Настолько мало, что вы никогда не увидите полное изображение! Вместо этого в процессе электронного сканирования люминофор зажигается и теряет свою яркость менее чем за 50 микросекунд — это 0,05 миллискунды! Для сравнения, полный кадр на вашем смартфоне демонстрируется в течение 16,67 мс.
Обновление экрана, снятое с выдержкой 1/3000 секунды. Из Википедии.
Так что единственная причина, почему ЭЛТ вообще работает — это инерция зрительного восприятия. Из-за длительных тёмных промежутков между подсветками ЭЛТ часто кажутся мерцающими — особенно в системе PAL, которая работает на 50 Гц, в отличие от NTSC, работающей на 60 Гц, где уже вступает в действие порог слияния мерцания.
Чтобы ещё более усложнить дело, глаз не воспринимает мерцание одинаково на каждом участке экрана. На самом деле периферийное зрение, хотя и передаёт в мозг более размытое изображение, более чувствительно к яркости и обладает значительно меньшим временем отклика. Вероятно, это было очень полезно в древние времена для обнаружения диких животных, прыгающих сбоку, чтобы вас съесть, но это доставляет неудобства при просмотре фильмов по ЭЛТ с близкого расстояния или под странным углом.
Размытые ЖК-дисплеи
Жидкокристаллические дисплеи (LCD), которые классифицируются как устройства выборки и хранения, на самом деле довольно удивительные, потому что у них вообще нет затемнений между кадрами. Текущее изображение непрерывно демонстрируется на нём, пока не поступит новое изображение.
Позвольте повторить: На ЖК-дисплеях нет мерцания, вызванного обновлением экрана, независимо от частоты обновления.
Но теперь вы думаете: «Погодите, я недавно выбирал телевизор, и каждый производитель рекламировал, чёрт побери, более высокую частоту обновления экрана!» И хотя в основном это чистый маркетинг, но ЖК-дисплеи с более высокой частотой обновления решают проблему — просто не ту, о которой вы думаете.
Зрительное размытие в движении
Производители ЖК-дисплеев всё повышают и повышают частоту обновления из-за экранного или зрительного motion blur. Так и есть; не только камера способна записывать размытие в движении, но ваши глаза тоже могут! Прежде чем объяснить, как это происходит, вот две сносящие крышу демки, которые помогут вам почувствовать эффект.
В первом эксперименте сфокусируйте взгляд на неподвижном летающем инопланетянине вверху — и вы будете чётко видеть белые линии. А если сфокусировать взгляд на движущемся инопланетянине, то белые линии волшебным образом исчезают. С сайта Blur Busters:
«Из-за движения ваших глаз вертикальные линии при каждом обновлении кадра размываются в более толстые линии, заполняя чёрные пустоты. Дисплеи с малым послесвечием (такие как ЭЛТ или LightBoost) устраняют подобный motion blur, так что этот тест выглядит иначе на таких дисплеях».
На самом деле эффект отслеживания взглядом различных объектов никогда невозможно полностью предотвратить, и часто он является такой большой проблемой в кинематографе и продакшне, что есть специальные люди, чья единственная работа — предсказывать, что именно будет отслеживать взгляд зрителя в кадре, и гарантировать, что ничто другое ему не помешает.
Во втором эксперименте ребята из Blur Busters пытаются воссоздать эффект ЖК-дисплея по сравнению с экраном с малым послесвечием, просто вставляя чёрные кадры между кадрами дисплея — удивительно, но это работает.
Как показано ранее, motion blur может стать либо благословением, либо проклятием — он жертвует резкостью ради плавности, а добавляемое вашими глазами размытие всегда нежелательно. Так почему же motion blur — настолько большая проблема для ЖК-дисплеев по сравнению с ЭЛТ, где подобных вопросов не возникает? Вот объяснение того, что происходит, если краткосрочный кадр (полученный за короткое время) задерживается на экране дольше, чем ожидалось.
Следующая цитата — из отличной статьи Дейва Марша на MSDN о временнй передискретизации. Она удивительно точна и актуальна для статьи 15-летней давности:
При адресации пикселя он загружается с определённым значением и остаётся с этим значением светового выхода до следующей адресации. С точки зрения рисования изображения это неправильно. Конкретный экземпляр оригинальной сцены действителен только в конкретное мгновение. После этого мгновения объекты сцены должны быть перемещены в другие места. Некорректно удерживать изображения объектов в неподвижных позициях, пока не придёт следующий образец. Иначе выходит, что объект как будто внезапно перепрыгивает в совершенно другое место.
И его вывод:
Ваш взгляд будет пытаться плавно следовать за передвижениями интересующего объекта, а дисплей будет удерживать его в неподвижном состоянии весь кадр. Результатом неизбежно станет размытое изображение движущегося объекта.
Вот как! Получается, что нам нужно сделать — так это засветить изображение на сетчатку, а затем позволить глазу вместе с мозгом выполнить интерполяцию движения.
Никто не знает точно, но определённо есть много ситуаций, где мозг помогает создать финальное изображение того, что ему показывают. Взять хотя бы для примера этот тест на слепое пятно: оказывается, существует слепое пятно в том месте, где оптический нерв присоединяется к сетчатке. По идее, пятно должно быть чёрным, но на самом деле мозг заполняет его интерполированным изображением с окружающего пространства.
Кадры и обновления экрана не смешиваются и не совпадают!
Как было упомянуто ранее, существуют проблемы, если фреймрейт и частота обновления экрана не синхронизированы, то есть когда частота обновления не делится без остатка на фреймрейт.
Проблема: разрыв экрана
Что происходит, когда ваша игра или приложение начинают рисовать новый кадр на экране, а дисплей находится посередине цикла обновления? Это буквально разрывает кадр на части:
Вот что происходит за сценой. Ваш CPU/GPU выполняет определённые вычисления для составления кадра, затем передаёт его в буфер, который должен ждать, что монитор вызовет обновление через стек драйверов. Затем монитор считывает этот фрейм и начинает его отображать (здесь вам нужна двойная буферизация, чтобы всегда одно изображение отдавалось, а одно составлялось). Разрыв происходит, когда буфер, который в данный момент выводится на экран сверху вниз, заменяется следующим кадром, который выдаёт видеокарта. В результате получается, что верхняя часть вашего экрана получена из одного кадра, а нижняя часть — из другого.
Примечание: если быть точным, разрыв экрана может произойти, даже если частота обновления и фреймрейт совпадают! У них должна совпадать и фаза, и частота.
Разрыв экрана в действии. Из Википедии
Это явно не то, что нам нужно. К счастью, есть решение!
Решение: Vsync
Разрыв экрана можно устранить с помощью Vsync, сокращённо от «вертикальная синхронизация». Это аппаратная или программная функция, которая гарантирует, что разрыва не произойдёт — что ваше программное обеспечение может отрисовать новый кадр только тогда, когда закончено предыдущее обновление экрана. Vsync изменяет частоту изъятия кадров из буфера вышеупомянутого процесса, чтобы изображение никогда не изменялось посередине экрана.
Следовательно, если новый кадр ещё не готов для отрисовки на следующем обновлении экрана, то экран просто возьмёт предыдущий кадр и заново отрисует его. К сожалению, это ведёт к следующей проблеме.
Новая проблема: джиттер
Хотя наши кадры больше не разрываются, воспроизведение всё равно далеко не плавное. На этот раз причина в проблеме, которая настолько серьёзна, что каждая индустрия даёт ей свои названия: джаддер, джиттер, статтер, джанк или хитчинг, дрожание и сцепка. Давайте остановимся на термине «джиттер».
Джиттер происходит, когда анимация воспроизводитеся на другой частоте кадров по сравнению с той, на которой её снимали (или предполагали воспроизводить). Часто это означает, что джиттер появляется, когда частота воспроизведения нестабильная или переменная, а не фиксированная (поскольку бльшая часть контента записывается с фиксированной частотой). К сожалению, именно это происходит при попытке отобразить, например, контент 24 FPS на экране, который обновляется 60 раз в секунду. Время от времени, поскольку 60 не делится на 24 без остатка, приходится один кадр показывать дважды (если не использовать более продвинутые преобразования), что портит плавные эффекты, такие как панорамирование камеры.
В играх и на веб-сайтах с большим количеством анимации это даже более заметно. Многие не могут воспроизводить анимацию на постоянном, делящемся без остатка фреймрейте. Вместо этого частота смены кадров у них сильно изменяется по разным причинам, таким как независимая друг от друга работа отдельных графических слоёв, обработка ввода пользовательских данных и так далее. Вас это может шокировать, но анимация с максимальной частотой 30 FPS выглядит гораздо, гораздо лучше, чем та же анимация с частотой, которая изменяется от 40 до 50 FPS.
Необязательно мне верить на слово; посмотрите своими глазами. Вот эффектная демонстрация микроджиттера (микростаттера).
Борьба с джиттером
При преобразовании: «телекинопроектор»
«Телекинопроектор» — метод преобразования изображения на киноплёнке в видеосигнал. Дорогие профессиональные конвертеры вроде тех, что используются на телевидении, осущестьвляют эту операцию в основном с помощью процесса, который называется управление вектором движения (motion vector steering). Он способен создавать очень убедительные новые кадры для заполнения промежутков. В то же время по-прежнему широко используются два других метода.
Ускорение
При преобразовании 24 FPS в сигнал PAL на 25 FPS (например, ТВ или видео в Великобритании) обычной практикой считается просто ускорить оригинальное видео на 1/25 секунды. Так что если вы когда-нибудь гадали, почему «Охотники за привидениями» в Европе на пару минут короче, то вот ответ. Хотя метод работает на удивление хорошо для видео, он ужасно отражается на звуке. Вы спросите, насколько хуже может быть ускоренный на 1/25 звук без дополнительного изменения высоты тона? Почти на полтона хуже.
Возьмём реальный пример крупного провала. Когда Warner выпустила в Германии расширенную Blu-Ray коллекцию «Властелина колец», они использовали для немецкого дубляжа уже скорректированную PAL-версию звуковой дорожки, которая была предварительно ускорена на 1/25 с последующим понижением тона для исправления изменений. Но поскольку Blu-Ray идёт на 24 FPS, им пришлось выполнять обратное преобразование видео, так что они снова его замедлили. Конечно, с самого начала плохой идеей было выполнять такое двойное преобразование, из-за потерь, но что ещё хуже, после замедления видео для соответствия частоте кадров Blu-Ray они забыли изменить обратно тон на звуковой дорожке, так что все актёры в фильме внезапно стали звучать сверхдепрессивно, разговаривая на полтона ниже. Да, это реальная история и да, она очень оскорбила фанатов, было много слёз, много плохих копий и много потерянных денег после большого отзыва дисков.
Мораль истории: изменение скорости — не самая лучшая идея.
Продолжение следует...
Часть 2 тут
Из IT в стройку: Как айтишники из Москвы открыли современную ремонтную компанию в Москве и сколько это приносит1
В апреле 2023 года мы запустили необычный для нас проект - ремонтный сервис нового формата. Первого клиента нашли только в начале лета, но уже с первого проекта удалось достичь запланированной прибыли. Расскажу, как мы создали современную компанию для поколения "новых денег", которые не готовы к тому, что прораб будет класть половину стоимости ремонта себе в карман, а сроки растягиваются без ограничений и почему это оказалось прибыльным бизнесом.
Как всё начиналось
Конец 2022 года. Я работал менеджером проектов в крупной IT-компании, мой друг Антон - тимлидом в другой известной технологической компании, а Дима занимал позицию backend-разработчика в третьей. У всех стабильные зарплаты, интересные проекты - жизнь шла своим чередом, пока Антон не решил купить квартиру в новостройке.
После долгих поисков он остановился на 85-метровой квартире в ЖК около метро Саларьево - современный комплекс с подземным паркингом и зелёным двором. Как типичный программист, к поиску ремонтников он подошёл педантично: изучил десятки предложений, провёл собеседования с кандидатами. В итоге выбрал бригаду с Авито с "15-летним опытом работы".
За время ремонта у Антона мы с Димой часто приезжали к нему - помочь, посоветовать, и просто поржать над очередными косяками строителей. У нас обоих за плечами был серьёзный опыт управления командами, внедрения процессов, автоматизации и контроля качества. И знаете что? Нам казалось, что главное в ремонтном бизнесе - это грамотный менеджмент и организация процессов. И на самом деле, все примерно так и есть.
День когда мы решились
Если честно, мысли о собственной ремонтной компании появились у нас задолго до этого случая. В IT-тусовке часто шутят, что в России есть три верных пути: вебкам, айти и стройка. И мы, насмотревшись на хаос в ремонтной сфере, не раз обсуждали возможность открытия своей “фирмы”.
Мы выделили основные проблемы, которые должны были исправить с помощью своего сервиса
Первое - это постоянно растущие сметы и "задранная стоимость" на работы. Ну вы серьезно? Почему для меня ремонт в квартире должен чем-то отличаться от заказа носков на Вайлдберриз? Почему-то там нет такого, что цена носков может вырасти в 2 раза за время доставки. А тут начальная смета в 1 миллион превратилась почти в 1,7! И каждый раз это "ой, тут стены кривые", "ой, а тут придется докупить", "ой, а это мы не учли".
Второе - это бесконечно растущие сроки. Это еще хуже. Как люди с опытом в менеджменте, мы прекрасно знали, что растущие сроки – это всегда раздолбайство управления и ленивые рабочие. Но тут было чуть посложнее, об этом чуть позже. У Антона обещали сделать за 4 месяца, а в итоге растянули на 8.
Третье - хитрые прорабы. Это вообще отдельная история. Когда прораб говорит "давайте я сам закуплю материалы, у меня скидки", знайте - он накинет сверху процентов 30-40. А еще есть "срочные работы", которые почему-то не были учтены в смете. И конечно, вечная классика - экономия на материалах: заказываешь одно, а привозят что-то попроще, но по той же цене.
Целевая аудитория
А параллельно с этим мы определили нашу целевую аудиторию. Чтобы выделиться на конкурентном рынке, мы решили ориентироваться на молодых IT-специалистов и представителей “современных” профессий, живущих в Москве в возрасте 30-40 лет. Тех, кто покупает квартиру в новостройке и привыкших к хорошему сервису. Кто не готов, что его будут водить за нос и разводить на деньги.
Что с ценой?
При этом очень важно было держать цены НИЖЕ, чем у других компаний, иначе на рынке просто не выжить. В премиум сегмент нужен "пропуск" в виде большого количества работ для определенного типа клиентов, поэтому нам было понятно, что "брать" много - пока что, непозволительно. Но мы нашли способ: автоматизация процессов, прямые поставки материалов, четкое планирование работ и никаких скрытых накруток. Но несбыточной мечтой это покажется только обывателю: на самом деле сервис и правда должен быть таким, вообще любой.
История первого заказа летом 2023 года
А теперь самое интересное - наш первый заказ. Это была отдельная эпопея. Начало лета 2023, звонок от потенциального клиента.
Первый клиент оказался прямо "в яблочко" - тоже айтишник (пришедший из первой контекстной рекламы в яндексе запущенной на 20 тыс.), работал в крупной компании, купил двушку в панельке 80-х годов. Причем достаточно убитую - стены местами с дырками, старый паркет, трубы помнящие еще Горбачева... Но нам, если честно, даже повезло что первый объект был не новостройкой. На старом фонде учиться легче - там хотя бы есть на что посмотреть, в отличие от новостроек, где все "сюрпризы" спрятаны в голых стенах.
Дырка в стене была ДО демонтажа. Клиент купил квартиру с "убитым" ремонтом подешевле, в надежде сэкономить
Как мы мастеров искали
Начали с поиска бригады. Вот тут был первый холодный душ - оказалось, что найти классных специалистов без своей наработанной базы очень сложно. Мастера хорошего уровня либо уже при деле, либо просят космос. А те, кто сразу соглашается - ну, вы понимаете. За две недели провели больше 10 собеседований (назовем их так😊). Причем процесс собеседования мы сразу сделали "как в айти" - тестовые задания, проверка портфолио, разбор технологий работы. Бригадиры были в шоке - некоторые прямо уходили с собеседований, когда мы начинали распрашивать про технологии укладки плитки и показывали фотографии косяков с объектов с форумов.
В итоге нашли бригаду - два брата, которые до этого работали в крупной ремонтной компании, но ушли потому что устали от "серых" схем – по отношению К НИМ ЖЕ. В основном - задержки з/п и прорабы.
В том же санузле, но уже после демонтажных и некоторых черновых работ. Братья очень помогли нам с первым ремонтом, кроме этого, они дали нам контакты проверенных рабочих, которые впоследствии делали ремонт вместе с ними
Купили первый комплект инструмента - это отдельная история на 100 тысяч рублей. Ещё сразу купили свою тепловую пушку - это из необычного. Большинство компаний привлекают "потолочников" на субподряд. Мы захотели сразу начать формировать свой инструментарий для будущих сотрудников. Зато потом эта закупка очень помогла - не зависели от того, что принесет с собой бригада. Позже, когда начали расширяться купили свою штукатурную станцию. Это, на удивление, было самой выгодной покупкой.
Первые сложности
Начали ремонт. И тут поехало... Первый сюрприз - когда начали снимать старую штукатурку, оказалось что стены буквально рассыпались. Плюс под старым линолеумом в коридоре нашли деревянный пол с насыпью под ним.
Тут был первый серьезный разговор с заказчиком. Объяснили ситуацию, показали все фотки, рассказали что сколько будет стоит в соответствии с прайс-листом. Тут очень помогло то, что мы сразу взяли за правило - фотографировать вообще все. Каждый этап, каждый слой, каждую трубу.
С материалами тоже было весело. Первый месяц я лично объездил все крупные строительные магазины в радиусе 30 км. Искал поставщиков, договаривался о скидках. Помню, как чуть не купили партию плитки по "супер-выгодной" цене, а потом выяснилось что это условно "второй сорт" - брак, который продают через "серые" схемы.
Cделали систему закупок: (Первый заказ полностью сделан из материалов, купленных в Петровиче и на маркетплейсах). Бригада присылает список - мы проверяем цены у 3-4 поставщиков и заказываем где дешевле.
Мы сразу внедрили систему ежедневных фото-отчетов и еженедельных созвонов. Плюс сделали чат в телеграме, куда скидывали все чеки, все накладные, все фотки. Такая прозрачность очень помогла - клиент видел, что мы не химичим с ценами и не пытаемся на нем нажиться.
В итоге сделали.
Братья советовали нам недостающих специалистов по ходу ремонта и постепенно, укладываясь в срок мы сдавали клиенту новый и новый этап. Честно, это было не так сложно как казалось в начале, но нужно понимать, что на самом деле, проблем по ходу ремонта и мелких трудностей было ОЧЕНЬ много, просто мы как люди привыкшие, понимали что сейчас это и есть наша работа , за которую нам платит клиент - взять на себя все заботы по ремонту. Но серьезных форс-мажоров не возникало, максимум понервничали, когда внесли предоплату потолочникам, которых нашли по объявлению, после чего они явно начали задерживать сроки, но в итоге, все обошлось. Нам и до этого было ясно, что чем быстрее мы соберем свой , хотя бы, небольшой штат, тем лучше и выгоднее. Но для этого надо быть уверенным в постоянном потоке заказов, что мы на тот момент, не могли себе позволить.
Главное - мы поняли как надо и как не надо. Все закупки только через нас. Все договоренности - только в письменном виде.
По деньгам первый проект получился условно в ноль - не считая наших вложений в инструмент и рекламу. Но мы получили бесценный опыт, наработали связи с поставщиками (если это можно назвать так пафосно) и главное - поняли, что наша модель рабочая, хотя на тот момент не были в этом до конца уверены. Наши сомнения развеяло лето 2023 года.





Наша первая работа, которую нам помогли закончить "братья", советуя недостающих мастеров на каждый этап работ. Цена работ для заказчика вышла 750 000 рублей. Летом 2023 года, за аналогичный объём работ авитовские бригады просили до миллиона(!)
Сайт и маркетинг или как мы общаемся с клиентами ещё до первого звонка
Кстати, про сайт. Первую версию мы сделали за пару вечеров на Тильде - максимально простую: фотки, цены, контакты. Знаете что? Он у нас до сих пор такой – но с значительно изменённым UI/UX. Я иногда ловлю себя на мысли - вот мы же, можем сделать что-то крутое, с личным кабинетом, онлайн-сметами... Но потом смотрю вордстат, статистику и думаю - а зачем? Клиенты находят нас, звонят, все работает. Иногда лучшее решение - самое простое.


На главной странице "в лоб" о том кто мы, наши конкурентные преимущества, специализация и примеры работ


Сразу "ярко" заявляем о действующих скидках. Кроме этого, простым текстом пытаемся общаться с клиентом и убедить его в нашем сервисе, пока что, не общаясь с ним лично - конверсия в лиды увеличилась значительно, но важно, чтобы все предложения были реальны
А вот ворд стат. За последний месяц нас искали 680 раз не считая статистики переходов по прямой ссылке. Доказательство того, что дорогой сайт не нужен. Наш стоит 6 000 рублей в год, а сделан за 20 часов
Примеры лучших работ как маркетинговый инструмент




Оставляли подобные фото с примерами работ и вотермаркой в отзывах к жилым комплексам. Отличный маркетинговый инструмент - сразу определяем нужную ЦА и бесплатно заявляем о себе. Точно знаем, что минимум один клиент был из отзывов яндекс - поэтому работает
Как мы масштабировались и разбирались в проблемах ремонта
Теперь про то, как мы начали разбираться в проблемах ремонта и потихоньку расти. Знаете, за этот год мы много думали - почему вообще ремонтные компании задерживают сроки и не могут сделать работу по первоначальной цене? И нашли несколько интересных моментов.
Первое - сроки. Тут даже копать глубоко не пришлось - сам рынок сформирован так, что клиенты просто привыкли к задержкам. "А, ну это ремонт, тут всегда так" - классическая фраза. Благо тут нам помог опыт организации процессов из айти. Четкие спринты, ежедневные отчеты, календарный план. Работает как часы, если не филонить.
Второе - вечно растущая цена. Вот это было сложнее. В новостройках еще можно точно посчитать, а во вторичке... Но благодаря наработкам этот вопрос стал гораздо яснее. При правильно организации процессов, непредвиденные работы лучше оплатить из своих средств, чем терять клиента. Только так и делается сервис.
Третье - больная тема - воровство на материалах. Тут мы конкретно закрутили гайки. Завели строгий учет, до последнего мешка штукатурки. Прорабам сразу сказали - любая жалоба от клиента на нечестность - это конец сотрудничества. Знаете что самое смешное? Когда начали работать честно, оказалось что маржа все равно хорошая. Просто многие привыкли что надо обязательно накручивать еще и еще.
Неприятные особенности прозрачного сервиса
Большинство компаний, которые начинают работать честно, быстро сдуваются. Потому что сам потребитель привык к плохому сервису. Приходишь к клиенту, говоришь "мы все сделаем четко по смете и в срок", а он смотрит с недоверием - "да ладно, так не бывает". Сейчас в 2024-м ситуация получше, но рынок все еще очень консервативный.
Продвижение или как мы брали “Новую Москву”
Наш любимый Прокшино в Новой Москве - в 2024 году, это самый перспективный район в котором покупатели - наши потенциальные клиенты
Расти начали потихоньку. Сначала сделали специальные цены для новой Москвы - там как раз много новостроек, где мы хорошо научились работать. Потом пошли заказы по рекомендациям. Когда я говорю “пошли” заказы нужно понимать, что это 1-3 заказа в месяц стабильно, что на самом деле, тогда казалось не мало. С рекламой экспериментировали забавно - оставляли визитки в подъездах (да, просто старые добрые визитки!), ставили рекламные ящики у офисов продаж в дни выдачи ключей.
Был случай, когда на одном ЖК поставили такую стойку, а через неделю риелтор оттуда сам позвонил и предложил взять себе процент, если клиент пойдет к нам.
Сейчас берем 2-5 заказов в месяц, (летом было 5 в месяц, если разделить). Большинство клиентов приходят по рекомендациям. Штат за год работы постепенно собрали свой. Трудоустроено 14 сотрудников. Если их не хватало (как летом), привлекали мастеров с которым уже работали раньше, по договору ГПХ. Просили всех регистрировать самозанятость или ИП – это было тяжело, но зато честно платим налоги по Доходы – расходы.
Как устроен процесс
Знаете, что самое сложное в ремонтном бизнесе? Нет, не поиск клиентов и не работа с материалами. Самое сложное - это выстроить систему, которая будет удовлетворять запросы клиента и при этом позволит компании зарабатывать. Мы долго думали над этим и придумали несколько интересных решений.
Начнем с оплаты. Если посмотреть на московский рынок, там забавная система - вроде бы без предоплаты, но это только за первый, самый дешевый этап. А потом - бац, и клиент должен внести 50% от всей суммы. И попробуй не внеси - бригада уйдет на другой объект. Мы сделали иначе: разбили весь ремонт на этапы (их получилось 12 для капитального ремонта), и берем предоплату только за текущий этап. То есть клиент всегда понимает, за что именно платит, и может контролировать процесс.
С договорами тоже интересно получилось. Сначала делали один стандартный, а потом поняли - люди разные, запросы разные. Сейчас у нас три варианта: просто на работы (для тех, кто сам хочет закупать материалы), на работы плюс материалы (самый популярный), и полный пакет с дизайн-проектом. Кстати, про дизайн - мы не держим штатных дизайнеров, работаем с фрилансерами. Так получается и дешевле для клиента, и качество выше - каждый дизайнер специализируется на своем стиле.
Расчёт стоимости
Расчет стоимости работ - отдельная история. Когда начинали, было очень сложно. На рынке нет четких цен - один мастер берет 3 тысячи за квадрат стяжки, другой - тысячу, третий вообще говорит "ну давайте посмотрим по факту". Сначала работали по среднему прайсу, но часто уходили в минус по отдельным этапам - то бригада дороже встанет, то материала больше уйдет. Сейчас, когда появились постоянные сотрудники, стало проще - мы точно знаем их расценки и можем давать фиксированную цену.
Материалы
Выяснилось, что в крупных магазинах часто дешевле в сравнении с рынками стройматериалов, особенно если ловить акции. Плюс появились маркетплейсы - там вообще красота по ценам. И главное - полная прозрачность, клиент сам видит все позиции. Если находим материал дешевле - возвращаем разницу. Был случай, когда на керамограните сэкономили клиенту почти 30 тысяч - просто потому что, нашли ту же плитку в другом магазине по акции.
Как работаем сейчас
Сейчас берем 2-5 заказов в месяц, зависит от сезона и сложности объектов.
Процесс обкатан до мелочей: сначала выезд на замер, потом предварительная смета. Если клиента все устраивает - детальный расчет и договор. Дальше начинается самое интересное - согласование материалов, закупки, работа.
Особенности продвижения и подводные камни
С продвижением интересно получилось. Сначала, как все, полезли на Авито. И знаете что? Не зашло. Там своя специфическая аудитория и конкретно у нас, с Авито “ не пошло”.
Свежий пример страницы с авито в категории "Ремонт квартир". Как клиенты определяются с подрядчиком среди тысяч однотипных объявлений - хороший маркетинговый вопрос, который мы решаем, после чего полноценно "зайдём" на авито
Пробовали контекстную рекламу яндекс - тоже так себе результат. Клики дорогие, конверсия низкая. Зато отлично зашла таргетированная реклама в Instagram* (*запрещен в РФ) и реклама в районных пабликах ВКонтакте. Особенно в группах новостроек в ТГ - там как раз наша целевая аудитория.
Но главный канал - сарафанное радио. Причем работает оно интересно. Всегда знаешь , от кого пришли заказчики и проще выстраивать коммуникацию. Есть клиент - он доволен, рассказал коллегам - и понеслось. За три месяца получили еще два заказа от сотрудников той же компании. Выходит такой “корпоративный ремонт”)))
Были, конечно, и провалы в продвижении. Пытались работать с риелторами - предлагали им комиссию за клиентов. Не пошло - у них свои схемы, свои бригады. Пробовали давать рекламу в лифтах, входных группах - тоже мимо, ни одного обращения, но тут скорее из-за того что эта реклама буквально на день.
ИТОГ
Сейчас мы существуем уже чуть больше года и в целом смотрим на ремонтный рынок не так, как раньше. За это время мы сделали несколько важных заметок для себя:
Оказывается, большинство проблем в ремонте - это не технические сложности, а банальная организация процессов. Когда все четко спланировано и каждый знает что делать - даже самый сложный ремонт идет как по маслу.
Мы поняли, почему многие компании "химичат" с ценами и сроками - просто потому что не умеют нормально считать и планировать. Когда все процессы выстроены правильно, можно работать честно и все равно оставаться в плюсе.
Самое сложное - это не найти клиентов или научиться делать ремонт. Самое сложное - это переломить привычку рынка работать "по-серому". И заказчики, и исполнители настолько привыкли к непрозрачным схемам, что честный подход вызывает удивление.
Мы до сих пор учимся. Каждый объект - это новый опыт и новые вызовы (особенно по части коммуникаций с клиентами). Но главное - мы видим, что наша модель работает и пока что, нам удается держать ценник немного ниже рыночного, за счёт того что до сих пор не имеем в найме маркетологов, IT, отдела продаж и менеджеров по продажам. Стараемся нанимать именно рабочих, все остальное можно отдать на аутсорс.
Уважаемые пикабушники, были рады составить для вас эту статью! С любовью, СК Комната


















