S3D: No pain IS gain




Сегодня речь пойдет о проблеме, которая почему-то очень редко упоминается, но при этом регулярно встречается в фильмах — примерно в 10 раз чаще перепутанных ракурсов — сдвиге во времени между ракурсами. Искать эту проблему — весьма нетривиальная задача с точки зрения компьютерного зрения. Однако в итоге нами был создан алгоритм, который позволяет обнаружить сдвиг с точностью до 0,1 кадра. В результате было найдено более 500 проблемных сцен в 27 фильмах из 105 проанализированных. Самые большие сдвиги — на 1–2 кадра, наименьшие — на 0,1 кадра. Интересно, что сдвиг во времени — один из самых болезненных артефактов после перепутанных ракурсов. Почему такое происходит, как выглядит, сильно ли заметно и можно ли исправить, будет рассказано дальше.



Откуда в стерео берется сдвиг во времени



В свое время, когда стереограферы жаловались вашему покорному слуге на сдвиг во времени и предлагали заняться разработкой методов автоматического обнаружения проблемы, делать это очень не хотелось. Казалось — ну пройдет год-другой, будут решены детские проблемы синхронизации и о “рассинхроне” можно будет забыть как о страшном сне. Тем более, что алгоритмически его обнаружение — очень нетривиальная задача. Однако годы шли, а проблема оставалась.

Причем рассинхронизация ракурсов встречается у документалистов, очень часто снимающих на дешевые стереориги, что в общем-то ожидаемо. Интерфейсы синхронизации технических параметров съемки в стерео имеют только достаточно дорогие камеры. Но когда на CG-Event рассказывали, что при съемке “Сталинграда” на дорогие арендованные у крупной голливудской студии профессиональные стереориги данные о времени в метаданных кадров различались на 4 кадра, и выравнивание делали вручную по “хлопушке”… и на западе это довольно частая ситуация, о чём регулярно упоминают профессионалы. В общем, стало понятно, что проблемой надо заниматься. Если в студиях все еще выравнивают вручную, это значит, что неизбежны ошибки людей, а значит сдвиг во времени между ракурсами будет попадать в фильмы на экраны кинотеатров.

Наверняка кто-то сейчас воскликнет: “Да что они — одновременно запустить камеры не могут? Там же пару проводков спаять!”. Не думайте, что все так просто. Спаять проводки действительно несложно, но вот дальше выясняется, что камера начинает снимать не сразу после того, как ей сигнал подали. Причем эта задержка может меняться по времени. И в 95–99% случаев все происходит одновременно, но иногда одна из камер “задумывается” чуть дольше (плата за “умность” камеры), и ракурсы расходятся по времени.

Документалисты рассказывают про совсем уж феерические ситуации, когда они одновременно покупают две камеры с одинаковыми аккумуляторами, снимают по горам и лесам и в процессе отсмотров снятого материала уже дома обнаруживают, что камеры иногда (видимо, когда один из аккумуляторов садился сильнее) начинают расходиться по частоте кадров (!). То есть прямо во время дубля одна камера убегает вперед по сравнению со второй. В таких случаях в воздухе густо повисает смог из трехбуквенной английской аббревиатуры (“WTF?!?!”), что приблизительно и с потерей смысла переводится: “Как они это сделали?”

Итак! У нас на руках дорогой профессиональный риг арендованный в голливудской студии стереориг с двумя раздельными камерами. Дальше по загадочным причинам, о которых история умалчивает (у камер нет интерфейса синхронизации, при съемке забыли синхронизировавать часы камер и т.д.), время ракурсов расходится. Что делать? Решение найдется всегда!


Раньше для синхронизации звука и видео, а заодно, чтобы подписать дубль, использовали простую хлопушку

Сегодня на съемочной площадке начали использовать хлопушки с электронным таймером:


Изначально хлопушка позволяла синхронизировать звук и видео, также на ней указывается время и прочая информация для идентификации дублей. Современные хлопушки с показом времени позволяют также синхронизировать ракурсы стерео. Слева вообще-то сувенирные часы :), но на них понятно подписано время

Однако внимательный читатель, думаю, уже готовит вопрос: “А что если расхождение не в целый кадр, а в полкадра? Такое возможно?”. Ответ вас не обрадует — такое не только возможно, но и довольно часто встречается.


Пример сдвига во времени стереопары на хлопушке (для удобства хлопушка сдвинута к уровню экрана). Обратите внимание, что фильм — 48 FPS, то есть 48 кадров в секунду, поэтому временной сдвиг в худшем случае при исправлении будет в два раза меньше. Тем не менее, на руке хорошо видно расхождение в движении по вертикали


Ответ на вопрос: полкадра — это много или мало? Хорошо видно, что “старая” хлопушка на 24 кадра не успевает сменить номер кадра за два кадра 48 fps на одном из ракурсов (в нем номер меняется каждые два кадра)… Мда, для 48 fps пора выпускать новые хлопушки!

Собственно, расхождение ровно в кадр или два кадра хорошо тем, что оно очень просто исправляется. Для непрофессионалов это может прозвучать странно, но разница в одну десятую кадра также исправляется относительно легко. И как раз разница в полкадра исправляется сложнее всего. Впрочем, про исправление — позднее. Запомним только, что если проблему вовремя поймали, оно возможно.

Естественно возникает вопрос: а насколько вообще заметно расхождение во времени? Интуитивно понятно, что при расхождении во времени на любом вертикальном движении мы будем видеть “невозможную” картинку. Но насколько это дискомфортно? Может быть мозг, как любят говорить некоторые практики, “легко это компенсирует”? Ровно в эти недели, когда пишется эта серия статей, нами готовится один из весьма интересных экспериментов — сравнение уровня дискомфорта от отдельных измеряемых нами артефактов стерео:


Один из тестовых прогонов. Человек готовится к тому, чтобы в течение часа смотреть специальный фильм, в котором собраны сцены с разным уровнем разных артефактов. На голове у него — электроэнцефалограф, на заднем плане пыточные стулья специальные удобные кресла с веб-камерой, снимающей эмоции лица, трекером движений глаз и полиграфом. Сосредоточенное выражение лица человека вызвано тем, что это его последние минуты без головной боли в этот день. Прогоны выполняются на оборудовании компании “Нейротренд”, за что им огромное спасибо.

Важный момент для понимания важности временных сдвигов: после первого прогона эксперимента нам пришлось переделывать тестовые последовательности, так как временные сдвиги, выбранные на уровне худших примеров из реальных фильмов, оказались намного дискомфортнее для зрителя, чем другие артефакты (!). Отдельно следует в очередной раз отметить мужество, с которым студенты МГУ идут на просмотр. Вот описание эксперимента от человека с фотографии выше, на следующий день: “Ощущения в ходе эксперимента были ожидаемы: сухость в глазах, частое моргание, кратковременная головная боль в лобной части головы, сильная усталость (которая осталась на весь день). Но я знал на что шел :)

Эти эксперименты будут аккуратным и четким ответом людям, которые тренируют свое бинокулярное зрение на собственном плохом стерео, а потом действуют по принципу из второго моего любимого комментария: “если Вы сами пробовали снимать и монтировать стерео кино или хотя бы стерео картинки, то легко заметили бы, что небольшие огрехи вроде разных углов поворота в районе 2–3 градусов, смещения центра или размытость одного из изображений легко компенсируется нашим мозгом”. Проводя эксперименты мы видим, что если человек не привык смотреть плохое стерео, то огрехи в часовом фильме приводят к кратковременной головной боли в лобной части головы, а если их много — сильной усталости на весь день. Собственно это ровно то, что можно часто наблюдать в отзывах людей, разочаровавшихся в 3D. С той разницей, что у нас все отзывы четко зафиксированны, более того — проведен мониторинг всего показа с каждым морганием (регистрируемыми айтрекером и ЭЭГ), измерением усталости с помощью ЭЭГ и регулярными опросами испытуемых.

Итак! По данным опросов, которые мы получили из нашего часового фильма еще до экспериментов на большом количестве людей — сдвиг по времени лидирует по дискомфорту среди всех видов артефактов. При этом, он практически не распознается “на глаз” (дискомфорт есть, но непонятно, из-за чего он), и о нем почти никогда не упоминают в статьях про дискомфорт в стерео.

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

Говоря про сдвиг во времени, отдельно стоит сказать про активные очки. В первой части уже упоминалось замечательное исследование японцев, измеривших усталость при использовании активных очков на 500 добровольцах (T. Morita and H. Ando, “Effects of Viewing Conditions on Fatigue Caused by Watching 3DTV”, Proc. SMPTE 2012 Annual Technical Conference & Exhibition, October 1 2012, vol. 2012, no. 10 1-9, doi: 10.5594/M001472.). Их вердикт звучит практически как приговор: усталость от использования активных очков крайне велика и превышает усталость от артефактов стерео. Одна из проблем обычных активных очков (на 60 Гц) заключается в том, что вы по определению получаете сдвиг на полкадра во времени, который практически не виден на глаз, но дискомфортен. При этом большим плюсом активных очков называют полное разрешение, поскольку пассивные очки часто показывают половину строк в одном ракурсе, а половину — в другом. И это действительно так для многих 3D-телевизоров.

Но, во-первых, для кино это неверно, во-вторых, это неверно для новых 4K-телевизоров. То есть с их распространением, которое сейчас идет весьма активно, проблема будет решена. Поскольку фактически на новых телевизорах проблемы пассивных очков решены, производители активных очков также пытаются уменьшить проблемы своей технологии. В частности, повышается частота экрана вплоть до 200 Гц, в итоге для фильма на 25 FPS один кадр показывается в течении 4-х попеременных открываний очков. Этот прием позволяет практически полностью убрать сдвиг во времени, но если не применяется технология увеличения частоты кадров, то возникает заметная неравномерность движения. Особенно она заметна при панорамировании, когда изображение на всем кадре плавно сдвигается в сторону. Скачки при движении также вызывают дискомфорт, хотя и меньший, чем сдвиг во времени.

Тем не менее, активные очки еще долго будут рекламировать, как, например, в статье про новый “элитный” кинозал, открывшийся в декабре 2014 года в гостинице “Москва”. Не очень понятно, из каких соображений они выбрали активную систему от Xpand, но рекламируют ее так: “Следующая «фишка» — активные 3D-очки. Опять же, в современных кинотеатрах в большинстве своем используют пассивные 3D-системы, но теряют в качестве. А на студиях по всему миру применяют только активные очки, так как это лучшая технология для просмотра 3D. Да, при большом обороте зрителей это неудобно, но здесь к зрителю отношение индивидуальное.” Утверждение “в большинстве своем используют пассивные 3D-системы, но теряют в качестве” голословно. Вам предлагается просто поверить, что в чем-то по качеству идет потеря. И в IMAX, например, проектируя дорогие залы с максимальным качеством (и ценой билетов) на основе пассивных очков просто что-то не понимают в этой жизни. А утверждение “А на студиях по всему миру применяют только активные очки” просто неверно.

Автор общался с большим количеством профессионалов по миру и знает, как они в 2010, когда в основном продавались активные системы (просто потому, что их быстрый выпуск наладить было технологически проще всего), наоборот разыскивали и ставили пассивные системы. Чтобы можно было спокойно смотреть 3D часами. А когда автор в 2011 году смотрел стерео в студии таки с активными очками, то там долго извинялись и предупреждали, что поскольку у них активные очки, то они не рекомендуют в течении 40 минут после просмотра садиться за руль. В такие моменты жалеешь, что у нас не США и иски за разбитые машины не мотивируют владельцев залов вникать в технологические тонкости устанавливаемого оборудования, что оборачивается головной болью для зрителей.

Выводы:
  • Из-за отсутствия интерфейсов синхронизации недорогие камеры при съемке нередко дают заметное расхождение во времени между ракурсами.
  • Расхождение более, чем на кадр, может быть поправлено вручную в любом редакторе и быть сведено к расхождению менее чем на кадр. Но для этого нужен контроль за расхождением во времени.
  • Расхождения менее чем на кадр также можно исправлять, и делать это тем легче, чем ближе кадры друг к другу.
  • Нами сейчас ведется работа по сравнению и нормировке “болезненности” разных видов артефактов. По предварительным замерам оказалось, что сдвиг во времени оказался лидером по дискомфорту. При этом в статьях про дискомфорт стерео сдвиг во времени практически никогда даже не упоминается.
  • Весьма неприятный сдвиг во времени на полкадра появляется при использовании большинства активных очков (на 60 Гц и менее). Ниже можно будет оценить более подробно, много это или мало — полкадра.


Сдвиг во времени при вертикальном движении


Если в сцене было вертикальное движение, то при сдвиге во времени мы получаем “невозможное” изображение, весьма дискомфортное для нашего мозга:


На этой сцене зритель будет четко видеть “невозможное” изображение. Интересно, что хотя фильм 1954 года, проблему можно было легко исправить, так как 0,042s — это как раз сдвиг на 1/24 секунды, то есть на один кадр


Пример заметности сдвига на 0,2 кадра при быстром вертикальном движении, специально для тех, кто считает, что и полкадра — это незаметно )


Лицо является так называемым “регионом интереса”, все будут смотреть на него, поэтому данный сдвиг скорее всего будет заметен, причем понять, почему сцена дискомфортна, весьма сложно


Пример, который будет смотреться несколько сюрреалистично из-за сдвига капель на полкадра во времени


Изредка не минует сия участь и достаточно высокобюджетные фильмы, правда сдвиг в таких фильмах обычно минимален — в данном случае порядка 0,1 кадра, что практически незаметно

Сдвиг на горизонтальном движении


При горизонтальном движении сдвиг во времени будет проявляться в первую очередь как странное “проваливание” или “выпячивание” объекта по глубине. Причем от нас или к нам он будет смещаться в зависимости от того, в какую сторону идет сдвиг во времени. К сожалению, хорошо продемонстрировать этот эффект даже с использованием анимации довольно сложно. Тем не менее, приведем такой пример:


Сдвиг на 0,2 кадра, при котором дельфин на переднем плане заметно визуально сдвинется в направлении к зрителю. Сдвиг можно оценить по пузырькам воздуха, которые остаются сравнительно неподвижны относительно воды. Если в сцене есть вращение или неподвижные объекты, то возможна неприятная ситуация, когда из-за сдвига во времени объект, находящийся за чем-то, будет по стерео выглядеть как находящийся ближе — очередная “невозможная” ситуация для бинокулярного зрения человека.

Сдвиг на вращении


Вращение — это движение, которое не так просто аккуратно исправить. Ниже примеры сдвига во времени на вращении объектов:


Довольно интересный пример, когда очень небольшой сдвиг на 0,1 кадра становится заметным благодаря быстрому движению автомобиля


Заметный сдвиг на полкадра при вращении героя на переднем плане


Пример вращения глаз главного героя известного фильма при небольшом сдвиге во времени )

Сдвиг на тенях и другом движении




Интересный пример, когда сдвиг прежде всего хорошо заметен на довольно контрастной тени, то есть мы увидим невозможную картинку, когда в одном глазу тень будет набегать на человека раньше, чем в другом. Исправлять такие сцены весьма нетривиально из-за полупрозрачности тени


Пример, когда сдвиг на 0,2 кадра будет хорошо виден из-за движения рук и шнурка на шее


Пример сдвига примерно на полкадра, который будет достаточно дискомфортен из-за быстрого движения человека


В этом примере вертикальный сдвиг (также доставляющий дискомфорт) несколько маскирует сдвиг во времени на полкадра, однако если присмотреться к движению лица актера в очках на заднем плане, становится очевидно, что сдвиг во времени есть и довольно заметный (полкадра)

Сдвиг по времени на спецэффектах




Неодинаково наложенные титры — однозначно очень дискомфортный кадр. Несмотря на то, что проблема длится недолго, часть зрителей, наиболее чувствительных к проблемам 3D, в этот момент испытает значительный моментальный дискомфорт


Еще один достаточно болезненный пример, когда на анимации был допущен сдвиг в 2 кадра. Очевидно, что компьютерная графика выровнена по времени идеально, но из-за ошибки монтажа получилась довольно болезненная для восприятия сцена

Показана малая часть найденных сцен. В основном те, что проще всего воспринимаются в анимации и наиболее наглядны. В сценах с медленным движением сдвиг во времени менее заметен, однако именно там нередко возникает ситуация, когда стерео выглядит как-то странно, но даже при покадровом анализе не сразу понятно, что в сцене есть сдвиг. Именно такие сцены могут “странно смотреться”, когда чувствительные люди будут ощущать дискомфорт, но не смогут понять его причину.

Выводы:
  • Из найденных 27 фильмов 8 фильмов: “Dark Country”, “The Hole 3D”, “Silent Hill 2”, “Shark Night”, “Bait”, “Piranha 3DD”, “Child’s Eye”, “Piranha” относятся к жанру фильмов ужасов. Их низкое качество во многом связано с тем, что у них, как правило, довольно низкий бюджет. В целом фильмы ужасов в ключе низкого технического качества, как вы заметили, упоминаются достаточно регулярно.
  • При быстром вертикальном движении или вращении сдвиг во времени воспринимается как “невозможная” сцена. При горизонтальном движении и сдвиге во времени отдельные объекты сдвигаются вперед или назад в зависимости от направления сдвига и направления движения, что также может вызывать дискомфорт и приводить к “невозможным” сценам.


Статистика по фильмам


Всего при проверке 105 фильмов было найдено 27 фильмов с 515 сценами, содержащими сдвиг во времени (Temporal Shift или TS). В таблице ниже приведена полная статистика по ним:

Movie title Release date Budget $M Duration Scenes with TS Max shift Average shift Total TS duration % of movie Total score
Creature from the Black Lagoon 3/5/1954 $0.00 4745 218 0.042 0.008 2,056.77 43.35% 17.04
The Child's Eye 10/14/2010 $4.50 5822 78 0.061 0.009 510.55 8.77% 3.52
3-D Sex and Zen: Extreme Ecstasy 4/14/2011 $2.58 6775 37 0.022 0.010 240.24 3.55% 2.40
Dolphins and Whales 3D: Tribes of the Ocean 6/10/2009 $6.00 2546 9 0.023 0.012 153.45 6.03% 1.93
Dark Country 10/9/2009 $4.00 5287 12 0.086 0.037 56.89 1.08% 1.62
Dial M for Murder 5/29/1954 $1.40 6315 40 0.042 0.004 444.40 7.04% 1.30
Spy Kids 3-D: Game Over 7/25/2003 $39.00 5063 4 0.083 0.034 19.23 0.38% 0.61
Shark Night 3D 9/2/2011 $25.00 5419 12 0.010 0.006 96.39 1.78% 0.50
My Bloody Valentine 1/16/2009 $15.00 6061 16 0.008 0.005 85.79 1.42% 0.47
Drive Angry 2/25/2011 $50.00 6271 30 0.011 0.004 99.60 1.59% 0.36
Dredd 9/21/2012 $50.00 5751 1 0.042 0.042 8.55 0.15% 0.36
Silent Hill: Revelation 3D 10/26/2012 $20.00 5670 4 0.014 0.006 32.74 0.58% 0.35
The Hole 6/11/2010 $12.00 5558 7 0.007 0.004 54.47 0.98% 0.21
Bait 9/20/2012 $28.00 5587 18 0.010 0.004 53.47 0.96% 0.20
The Ultimate Wave Tahiti 7/5/2010 $3.00 2753 1 0.042 0.042 4.50 0.16% 0.19
Resident Evil: Afterlife 9/2/2010 $60.00 5812 5 0.019 0.007 12.89 0.22% 0.17
Pina 2/13/2011 $4.20 6236 1 0.038 0.038 4.25 0.07% 0.16
Journey 2: The Mysterious Island 2/10/2012 $79.00 5650 2 0.042 0.023 12.05 0.21% 0.13
Piranha 3D 8/20/2010 $24.00 5301 1 0.042 0.042 2.29 0.04% 0.10
Piranha 3DD 5/11/2012 $5.00 4961 6 0.013 0.009 9.63 0.19% 0.09
The Legend of Hercules 1/10/2014 $70.00 5918 2 0.018 0.015 5.67 0.10% 0.08
Step Up 3D 8/4/2010 $30.00 6431 2 0.039 0.029 2.59 0.04% 0.07
Step Up Revolution 7/26/2012 $33.00 5919 2 0.023 0.014 5.09 0.09% 0.05
Flying Swords of Dragon Gate 12/15/2011 $35.00 7339 2 0.005 0.004 11.18 0.15% 0.05
Pirates of the Caribbean: On Stranger Tides 5/20/2011 $250.00 8183 2 0.003 0.003 16.43 0.20% 0.05
Hugo 11/23/2011 $170.00 7581 2 0.005 0.004 8.17 0.11% 0.03
A Very Harold & Kumar 3D Christmas 11/4/2011 $19.00 5379 1 0.005 0.005 1.58 0.03% 0.01

Таблица отсортирована по сводной величине, пропорциональной размеру сдвига во времени и длительности содержащей его сцены.

Какие можно сделать выводы по таблице:
  • Лидирует фильм “Creature from the Black Lagoon” 1954 года, содержащий 218 сцен со сдвигом во времени. Суммарно сцены с заметным сдвигом во времени составляют 43% от длительности этого фильма, что для того времени относительно простительно.
  • На втором месте весьма неаккуратный азиатский фильм ужасов “The Child's Eye” с 78 сценами, который, если помните, занимает первое место по длительности сцен с перепутанными ракурсами. В Азии в принципе принят более короткий, чем в Европе цикл подготовки фильмов. По результатам анализа данного фильма создается ощущение, что даже авторы его толком не успели посмотреть.
  • На третьем месте азиатский же “3-D Sex and Zen” который, если помните, был на третьем месте в рейтинге фильмов по перепутанным ракурсам.
  • Из высокобюджетных фильмов в список попали только “Pirates of the Caribbean...” и “Hugo”, но находятся они в самом конце списка с очень короткими сценами.
  • Из 27 фильмов у 10 максимальный сдвиг более, чем на один кадр, что означает, что они содержат сцены, которые можно было легко поправить в любом редакторе, вопрос был только в том, чтобы этот сдвиг заметить, то есть в наличии соответствующего инструментального контроля.


Интересно посмотреть статистику распределения числа сцен с разным сдвигом по времени (в кадрах):

Хорошо видно, что довольно много сцен имеют весьма небольшой сдвиг порядка 0,2 кадра, однако есть пик в районе 1 кадра и в районе 2 кадров. Причем если вычесть 218 сцен фильма “Creature from the Black Lagoon” (на который приходится почти половина сцен), получается такая картина:


Как видно, кардинального изменения характера сдвигов в остальных 26 фильмах не происходит, то есть после 1954 года больших изменений в характере сдвигов не произошло

Также напомню, что самый “неприятный” в плане исправления сдвиг — это сдвиг на полкадра. По гистограмме видно, что таких сдвигов относительно немного. Соответственно, имея средства проверки, относительно легко можно улучшить ситуацию для довольно большого количества сцен.

Тенденции для сдвига во времени


Традиционно посмотрим, как изменяется ситуация по годам:

Хорошо видно, что если в 50-х года прошлого века, когда все снималось на механические камеры, точно попасть по времени было проблемой и оба проанализированных фильма не очень хороши. Правда если один (“Creature from the Black Lagoon”) ставит абсолютный антирекорд, то второй (“Dial M for Murder”) выглядит весьма неплохо и даже лучше некоторых фильмов 2010–2011 годов. Правда известно, что “Dial M for Murder” исправляли перед записью на Blu-ray. Похоже, что они вручную нашли и поправили почти все сдвиги на кадр и больше. Если так — то хорошая работа!

По бюджету ситуация также весьма ожидаема:


Львиная доля проблем приходится на фильмы с бюджетом менее $500 за минуту фильма. У высокобюджетных фильмов, использующих дорогие качественные камеры, проблем рассинхронизации фактически нет.

Обычно ранее всегда все показывалось относительно “Аватара”. На графиках выше видно, что в данном случае “Аватар” относится к высокобюджетным фильмам, у которых по данному параметру все или идеально или практически идеально.

Исправление сдвига во времени


Уже традиционно приведем примеры исправления проблемы. Про исправление рассинхронизации можно написать отдельную серию статей. В основе исправления — алгоритм сдвига кадра во времени, при этом возникает масса проблем, особенно с полупрозрачными областями. Впрочем, начнем с простых случаев:


Крайне дискомфортная сцена с рендерингом из фильма “Дети Шпионов 3D” — сдвиг на 2 кадра


Как видно, из него довольно легко можно получить совершенно комфортное стерео


Пример явно дискомфортного сдвига на один кадр из азиатского фильма


Исправляется также легко и почти идеально. Видно, что легкий поворот остается из-за нескомпенсированного небольшого сдвига. Также в этом примере поправлены цвета (хорошо видно по дальней руке и полу над столом) и небольшой вертикальный сдвиг (виден по локтю в углу). К сожалению полностью исправить блики в этом случае довольно сложно (почему они появляются и про их исправление см. шестую часть цикла)


Более сложный пример, при котором использовалась компенсация сдвига во времени, то есть сдвиг временного ряда кадров


Исправленный кадр — практически идеален по времени, также исправлен вертикальный сдвиг и заметная разница по цвету


Пример, который будет заведомо дискомфортен, из-за того, что собака поворачивается


В данном примере исправлены сдвиг по времени, геометрические искажения (поворот кадра) и искажения цвета. Для удобства оценки кадр смещен к уровню экрана. Интересно, что после исправления кадр стал практически плоским и только блики выдают съемку в стерео. То есть, используя конвертацию, они могли получить результат намного лучше. В фильмах с большим бюджетом для таких сцен используют бим-сплиттер (см. пятую часть) или конвертацию (будет в девятой части :) Тем не менее дискомфорт серьезно снижен.


Сдвиг на полтора кадра. Также имеет место быть заметная разница по цветам между ракурсами


Специально для тех, кому интересно “заглянуть под капот” — исправление просто сдвигом на один кадр, с правкой цвета и геометрии. Т.е. остался сдвиг на полкадра. Стало существенно лучше (футболка и крыша машины не так сильно меняются по цветам), но еще не идеально (видно вращение сцены, оставшееся от движения камеры). В частности даже на уменьшенном кадре хорошо видно, как меняется по масштабу молодой человек справа. На большом экране кинотеатра это “небольшое изменение” будет “бить по глазам”.


И, наконец, на последнем примере исправлен и сдвиг во времени на полкадра. Хорошо видно, что теперь все трое молодых людей находятся на положенной глубине без искажений из-за движения камеры — молодой человек и девушка — ближе всех, человек справа — подальше. Блики частично остались и мешают, но это уже вопрос к оператору. Сравните этот кадр с оригинальным и почувствуйте разницу.

Понятно, что всегда будут люди, в том числе профессионально выпускающие фильмы, которые сравнят последние примеры и вынесут безапелляционный вердикт — разница слишком мала, чтобы тратить на нее драгоценное время. Причем также понятно, что большинство продюсеров (в том числе русских, к сожалению), имеют очень общее представление о проблемах стерео и, бывает, не только не требуют исправления таких проблем, но еще и выражают конкретное недовольство, когда студии post-production тратят на такое исправление время (увы, мне про такое рассказывали не раз). И также понятно, что если студия никогда не делала таких исправлений — она будет делать их долго и не очень хорошо. Если студия уже делала и какие-то процессы на коленке создали — они сделают все в разы быстрее. И, наконец, если у студии куплен софт и есть люди, которые являются специалистами в этом, они сделают все очень быстро и весьма качественно.

По опыту общения со студиями время на исправление проблем у тех, кто этим раньше не занимался и тех, у кого это налажено, может отличаться на два порядка(!). Как следствие исправление у тех, у кого оно, например, в 200 раз дороже, получается на самом деле драгоценным. То есть они говорят правду, когда высоко оценивают свое время. Именно так на экраны кинотеатров попадают заведомо болезненные сцены, после просмотра которых возникают “сухость в глазах, частое моргание, кратковременная головная боль в лобной части головы, сильная усталость” (см. описание экспериментов выше). К счастью число подготовленных студий растет, качество софта и техпроцессов исправления — также улучшается, улучшается и контроль за исходным и финальным материалов. Именно поэтому качество стерео будет расти. Хотя, надо полагать, не у всех.

В качестве бонуса для дочитавших до этого места. Ниже пара загадок для тех, кто верит написанному на ценниках.

Внимательный читатель наверняка детально изучает технические характеристики разных устройств. В том числе видел ценники, типа этого (фото не новое):


Слева, как можно видеть, черным по белому написано: “Частота обновления: Чем больше Гц (Герц), тем больше кадров в секунду будет отображаться”, а справа красуются гордые “3000 Гц”

Возникает вопрос: в чем проблема подвинуть во времени поток, если даже телевизоры уже умеют показывать 3000 кадров в секунду. Берем такой телевизор и его преобразование 30 кадров в 3000, выбираем нужные кадры и вуаля — получаем сдвиг с точностью до 1/100 кадра! А теперь, внимание, первая загадка: что же на самом деле отображает этот телевизор 3000 раз в секунду? На ценнике указано, что кадры и подразумевается, что чем их больше, тем телевизор явно лучше. Ведь так?

Опять же — даже не самые продвинутые телевизоры сегодня дают 100 Гц, то есть сдвигают на упоминавшийся самый сложный сдвиг — на полкадра. Сдвигают ли они самом деле? Ответы пишите в комментарии!

В качестве подсказки и второй загадки: парой строчек ниже написано, что этот телевизор также умеет автоматически конвертировать 2D в 3D. То есть Джеймс Кэмерон, который заплатил 18 миллионов долларов за конвертацию “Титаника” в 3D мог, как вы уже догадались, просто купить такой телевизор и прогнать фильм через него? Или не мог? Может, модель вышла слишком поздно? Ваши версии в комментариях помогут нам понять ситуацию. Что же на самом деле покупают те, кто верит указанному на ценниках?

Выводы:
  • Исправление сдвига во времени еще долго будет весьма нетривиальной задачей из-за сложностей с полупрозрачными областями, заполнением областей открытия и, наконец, с построением аккуратного поля векторов движения. Однако уже сегодняшние результаты позволяют поправить часть сцен весьма неплохо.
  • Пожалуй главный результат — создание весьма точной и практичной по скорости метрики измерения сдвига по времени между ракурсами нашей группой, что дает возможность в перспективе полностью исправить даже снятый ранее материал. Мы декларируем, что достигли практического результата первыми. Если найдете что-то подобное точно рабочее — дайте знать.
  • Если для фильмов 50-х сдвиг во времени был нормой, для 90-х, 2000-х — регулярно встречался, то в последние пару лет он становится редкостью. При этом все шансы полностью исправить и старые релизы. И это не может не радовать.


Продолжение следует. Stay tuned!

Всем поменьше головной боли вообще и от 3D в частности!

Благодарности


Хотелось бы сердечно поблагодарить:
  • моих коллег Владимира Янушковского, проделавшего львиную долю работы, представленной выше, Юрия Гитмана, весьма способствовавшего появлению удачных решений, Сергея Гришина, чей метод интерполяции видео во времени использован для компенсации временного сдвига, а также других членов видеогруппы, благодаря которым представленные выше алгоритмы были созданы, а результаты посчитаны,
  • вице-президента по технологиям и Senior Scientist компании RealD Джона Карафина за веру в наши силы и воодушевляющую поддержку,
  • компании Intel, Cisco, Verizon и YUVsoft за серьезную поддержку проекта и то, что им не безразлично качество стереофильмов,
  • Лабораторию Компьютерной Графики ВМК МГУ им М.В.Ломоносова за вычислительные мощности и не только,
  • также автор выражает горячую признательность британскому стереограферу Россу Коплэнду (Ross Copeland) и независимому американскому специалисту Борису Старосте (Boris Starosta) за мотивацию заняться тестированием сдвигов во времени и предоставленные в свое время примеры,
  • отдельная благодарность Айдару Хатиулину, который изображен на фото выше с электроэнцефалографом на голове, и который уже трижды принимал участие в жестоких пытках плохим стерео в тестовых прогонах,
  • и, наконец, очень благодарим Артема Казакова, Анастасию Анциферову, Владимира Янушковского, Алексея Шалпегина, Виталия Людвиченко, Александра Жиркова, Александра Воронова и Алексея Федорова за большое количество дельных замечаний и правок, сделавших этот текст намного лучше!


Смотрите также:

Комментарии (28)


  1. EndUser
    25.05.2015 10:30

    3000 раз в секунду аппарат будет показывать те же 24 или 48 кадров, каждый по 125 или 62.5 раза.


    1. 3Dvideo Автор
      25.05.2015 10:39

      Хорошо! ) Еще (более точные) версии?


      1. Stalker_RED
        25.05.2015 12:23

        Может верхняя граница ШИМ на светодиодах? Их яркость вроде так регулируют?


        1. 3Dvideo Автор
          25.05.2015 13:09

          Версия принимается. ) Еще варианты (уточнения того что выше)?

          Интересно — сколько разных кадров в секунду мы реально видим по такому телевизору и как следует понимать такие цифры в технических характеристиках? )


    1. SHVV
      25.05.2015 12:04
      +1

      Ну почему же? В современных телевизорах на 100-200 Гц есть процессоры, которые анализируют движение в кадре и достраивают промежуточные кадры на основе этого анализа. Но качество этого «дорисовывания» зачастую оставляет желать лучшего и приводит к диким «призракам» вокруг объектов. Хотя на параномировании выглядит весьма комфортно.
      Но вот 3000 Гц для LCD это что-то за гранью. Так что я голосую за то, что это частота мерцания светодиодной подсветки.


      1. EndUser
        25.05.2015 12:12

        Я думал, что подсветка должна давать 0Гц мерцания.


        1. SHVV
          25.05.2015 12:47

          Когда подсветка была CFL лампами, так и было. Но сейчас используют светодиоды, и грех не воспользоваться возможностью их быстро включать-выключать.
          Во-первых, для регулировки яркости используют ШИМ, то есть включают-выключают подсветку на разные промежутки времени.
          Во-вторых, в некоторых телевизорах вернули «винтажное» мерцание CRT и обозвали модным маркетинговым «Backlight Scan», которое «уменьшает Motion blur» и «увеличивает кажущуюся частоту кадров».


      1. 3Dvideo Автор
        25.05.2015 13:12

        В современных телевизорах на 100-200 Гц есть процессоры, которые анализируют движение в кадре и достраивают промежуточные кадры на основе этого анализа. Но качество этого «дорисовывания» зачастую оставляет желать лучшего и приводит к диким «призракам» вокруг объектов. Хотя на параномировании выглядит весьма комфортно.
        Есть такое. А сколько кадров они достраивают? И от чего зависит количество достраиваемых кадров?
        Но вот 3000 Гц для LCD это что-то за гранью. Так что я голосую за то, что это частота мерцания светодиодной подсветки.

        Сложно спорить, что за гранью. ) Как в этом случае надо воспринимать слова про «тем больше кадров в секунду будет отображаться»?

        И голос принят! )


        1. SHVV
          25.05.2015 13:36

          Тут неплохая табличка по соотношению маркетинговых Герц и реальных. Полагаю, что количество достраиваемых кадров зависит от производительности процессора. И судя по таблице количество кадров увеличивают реально раза в 2-4 не больше.


          1. 3Dvideo Автор
            25.05.2015 13:46

            Тут неплохая табличка по соотношению маркетинговых Герц и реальных
            Да, абсолютно правильный ответ о том, что они на самом деле показывают. Вы первый! )

            Полагаю, что количество достраиваемых кадров зависит от производительности процессора. И судя по таблице количество кадров увеличивают реально раза в 2-4 не больше.
            Абсолютно так. Если быть еще более точным — то там есть поправка, связанная с деинтерлейсингом. ) А так — совершенно верно — они больше бы и рады, но, во-первых, этого уже становится не видно, во-вторых, все упирается в производительность, и есть еще, в-третьих — это качество результата, о чем вы же совершенно правильно писали выше. Единственное — стоит указать, что первым делом от поднятия частоты в алгоритмах реального времени страдает резкость.


  1. valemak
    25.05.2015 11:36
    +1

    А чья это безумная косоглазость на КДПВ? Похож на Уолтера Бишопа из сериала «За гранью».


    1. 3Dvideo Автор
      25.05.2015 13:14
      +1

      Увы, не в курсе. Если кто-то подскажет — будет здорово.


  1. 0serg
    25.05.2015 11:44
    +1

    Возникает вопрос: в чем проблема подвинуть во времени поток, если даже телевизоры уже умеют показывать 3000 кадров в секунду. Берем такой телевизор и его преобразование 30 кадров в 3000, выбираем нужные кадры и вуаля — получаем сдвиг с точностью до 1/100 кадра! :)


    А смысла нет, сколько бы герц не было :). При сдвиге на полкадра мы всегда будем видеть что один ракурс сдвинут на полкадра относительно другого, просто половину времени он будет сдвинут «назад», а половину — «вперед». Голова от такого заболит, сдается мне, еще больше.


    1. 3Dvideo Автор
      25.05.2015 13:18

      Подсказка: сегодня очень многие телевизоры действительно умеют интерполировать поток во времени. ) Причем чаще всего достраивают поток именно на полкадра. Другое дело — кто и зачем это делает и к чему это приводит? В этом и пытаемся разобраться. ;)


  1. 3Dvideo Автор
    25.05.2015 13:15

    Коллеги! И что со второй загадкой? Что же все-таки показывает телевизор в режиме автоконвертации из 2D в 3D? Ваши версии? )


    1. Zava
      25.05.2015 13:37
      +1

      Возможно телевизор показывает текущий и следующий (предыдущий) кадры для разных глаз, тем самым грубо создавая параллакс и стерео картинку (можно еще их раздвинуть для усиления эффекта)?


      1. 3Dvideo Автор
        25.05.2015 13:49

        Возможно телевизор показывает текущий и следующий (предыдущий) кадры для разных глаз, тем самым грубо создавая параллакс и стерео картинку?
        И создавая тем самым сдвиг во времени??? Как они могли!!! )))

        Впрочем вы отчасти правы, это один из простых приемов. Можете указать, когда его можно применять? И он там не единственный.


        1. Zava
          25.05.2015 14:02

          Думаю идеальное применение такого подхода более-менее допустимо в ситуациях когда есть смещение камеры относительно неподвижной сцены влево/вправо. Тогда будет получаться приемлемый параллакс без вертикальных смещений и незаметным сдвигом во времени. Но это крайне редкий случай — обычно в кадре все таки что-то происходит. Думаю это может быть допустимо (хотя уже с заметным сдвигом во времени) для некоторых спортивных трансляций — как правило камера там либо статична, и тогда стереоэффект будет мало заметен, либо движется равномерно и прямолинейно вдоль например беговой дорожки или бассейна или футбольного поля, и хотя спортивные мероприятия штука динамичная, именно хорошо предсказуемое поведение камеры + интерполяция для увеличения частоты кадров могут при таком подходе выдать заметное стерео, хотя и болезненное, но тут ведь стерео-эффект важнее для продаж?


          1. 3Dvideo Автор
            25.05.2015 16:27

            Думаю идеальное применение такого подхода более-менее допустимо в ситуациях когда есть смещение камеры относительно неподвижной сцены влево/вправо. Тогда будет получаться приемлемый параллакс без вертикальных смещений и незаметным сдвигом во времени. Но это крайне редкий случай — обычно в кадре все таки что-то происходит.
            Да, совершенно правильный ответ. Получается разновидность Эффекта Пульфриха. И именно, что проблема в том, что в сцене все время что-то происходит, да и строго горизонтально мягко говоря не всегда сдвигают.
            Думаю это может быть допустимо (хотя уже с заметным сдвигом во времени) для некоторых спортивных трансляций — как правило камера там либо статична, и тогда стереоэффект будет мало заметен, либо движется равномерно и прямолинейно вдоль например беговой дорожки или бассейна или футбольного поля, и хотя спортивные мероприятия штука динамичная, именно хорошо предсказуемое поведение камеры + интерполяция для увеличения частоты кадров могут при таком подходе выдать заметное стерео,
            В спорте таки много вертикального движения — это будет ад даже при небольшом сдвиге. Но ход мысли совершенно правильный.
            хотя и болезненное, но тут ведь стерео-эффект важнее для продаж?
            Ровно так, обычно эффект для продаж важнее болезненности )


      1. artoym
        25.05.2015 15:11

        Думаю для левого глаза показывают правую часть картинки, а для правого — левую.

        P.S. Немного ошибся веткой.


        1. 3Dvideo Автор
          25.05.2015 16:36

          Это будет полный ад. К счастью так все-таки не делают. )


    1. SHVV
      25.05.2015 13:38

      Ни разу не доводилось видеть. Полагаю, просто задвигают картинку за плоскость экрана, добавляя небольшой параллакс.


      1. 3Dvideo Автор
        25.05.2015 13:52

        Ни разу не доводилось видеть.
        Вы счастливый человек. )
        Полагаю, просто задвигают картинку за плоскость экрана, добавляя небольшой параллакс.
        Да, это задвигание за плоскость безусловно делается. Про это в 4-й части было. Но это часть эффекта, чисто психологическая, причем. А как они параллакс добавляют?


        1. SHVV
          25.05.2015 14:12

          Возможно делят сцену на несколько планов (передний, задний, средний) на основе данных о движущихся объектах и разбрасывают их по глубине.
          Вообще, надо будет на выходных пройтись по магазинам и глянуть живьём.


          1. 3Dvideo Автор
            25.05.2015 16:34
            +1

            Возможно делят сцену на несколько планов (передний, задний, средний) на основе данных о движущихся объектах и разбрасывают их по глубине.
            В продвинутом варианте это называется сегментация и depth ordering. Но сразу скажу — сделать такое в реальном времени практически нереально. Есть более простые методы «обмануть» зрителя ) (а у них другого варианта нет — все-таки полный автомат и реальное время).
            Вообще, надо будет на выходных пройтись по магазинам и глянуть живьём.
            Хорошо. Только помните — минздрав предупреждает. Долго смотреть крайне не рекомендуется )))


  1. leshabirukov
    29.05.2015 20:51

    Я бы добавил в камеры возможность писать отдельной дорожкой точное время (от GPS), чтобы расхождение каналов легко находилось. Как вариант ещё синхронизировать время взятия кадров с глобальным временем, чтобы расхождение составляло целое число кадров.


    1. 3Dvideo Автор
      30.05.2015 13:24
      +1

      Я еще в 2012 году думал, что они это сделают и о проблеме можно будет забыть. Но она до сих пор актуальна даже при «дорогой» съемке.

      При этом для той же документалистики, где часто снимают «из того, что было, то и полюбила» проблема будет актуальна еще долго.

      Про любительскую съемку тактично промолчим. ))) Причем чем «умнее» камеры, тем сложнее их синхронизовать, поскольку они разное время думают после нажатия на кнопку. А любители часто снимают на массовые потребительские (т.е. умные) камеры ;).


  1. OCTAGRAM
    31.05.2015 23:45

    Извиняюсь, что не в тему, но мне кажется, лучше всего узнавать у вас. Прошу ответить отдельным постом или дать ссылки.

    Я знаю, что есть куча разных технологий для отображения 3D. У NVidia свой стереодрайвер, у AMD раньше был iZ3D (на моей Win8 он вешает систему), и ещё там в комплекте к какому–нибудь монитору со встроенной поддержкой 3D может быть вообще что–то неведомое, не связанное с производителями видеокарт. Мониторы с линзовым растром представляют особый интерес, так как у них количество одновременных ракурсов может быть больше двух. И у разных производителей разное SDK. Вот мне бы больше понравилось, если бы я средствами OS мог управлять картинками для разных ракурсов (например, я хочу получить HDC окна для левого и правого глаза отдельно, но не вижу этого в WinAPI), но разработчики OS, видимо, не на одной со мной волне, и пихают в OS что–то другое, а стерео оставляют на откуп куче разных производителей, каждый со своим SDK. Что их объединяет — так это то, что Direct3D или OpenGL графика делаются 3D автоматически.

    А если я не хочу эту автоматику, я не знаю, как быть. Может быть, я рейтрейсингом картинку генерю? Или, может быть, у меня игра–платформер с несколькими слоями, и я не хочу слои уровня делать текстурами, а хочу обойтись инструментами 2D графики. Или вот, захотелось мне DOSBox улучшить, чтобы режим Crystal Eyes в Duke Nukem 3D средствами DOSBox форвардился на современное 3D оборудование. А оно там может быть и с чередованием по строкам, по столбцам, шахматкой, а может быть с видеокарты два видеовыхода, а как на линзовом растре, я вообще не знаю.

    Вот как мне, не имея всего зоопарка оборудования и зоопарка коммерческих драйверов для 3D, всё же сделать, чтобы у того, у кого есть 3D, моя программа работала хорошо?