Все о Protune(GoPro)

Protune

С октября 2012 года Protune, а также WiFi BacPac (для Hero2) стали поддерживаться новой прошивкой. Эта статья посвящена основам и алгоритмам работы Protune.

Но прежде чем я с пеной у рта начну рассказывать насколько крут Protune, возможно некоторым захочется узнать что такое Protune вообще и зачем он нужен(и может некоторым этого станет достаточно). Protune это набор инструментов, разработанный для достижения еще более профессионального уровня видеосъемки с помощью GoPro, в то же время оставаясь доступным каждому пользователю GoPro. Protune оказывает сильнейшее воздействие на качество изображения, увеличивая поток передачи данных(уменьшая компрессию данных) со средних 15 мб/с до 35 мб/с. Небольшие артефакты, которые могут появляться в сценах, наполненными множеством деталей или экшен сценах, пропадают при 35 Мб/с. Еще одна особенность — добавление 24 кадров в секунду к уже имеющимся режимам, что очень облегчает дальнейшее сведение видеоматериалов записанных с помощью GoPro и других профессиональных камер, работающих в режиме 24 кадров в секунду. И наконец, изображение полученное с помощью Protune идеально подходит для дальнейшей цветокоррекции — так как у него более приглушенные свет и цвета, а на стадии постпродакшн оно открывает широкие возможности для редактирования. C самой последней прошивкой на текущий момент Protune можно включить из меню на GoPro Hero 2 и GoPro Hero 3.

А теперь я отвечу на вопросы «зачем» и «как».

Protune довольно долго разрабатывался и его появление связано с тем, что камеры GoPro широко используются для создания профессионального контента — как мне кажется канал Discovery очень похож на канал GoPro. Protune так же является следствием прямого воздействия на работу камеры группы разработчиков Cineform, чем мы очень гордимся, хотя и основная разработка была выполнена в главном офисе GoPro. Для новичка в Protune, CineForm Studio является отличным набором инструментов для редактирования видеоматериалов отснятых с Protune, так что каждому под силу использовать этот режим. Совместные усилия программных и аппаратных разработчиков позволяют успешно продвигать наш продукт вперед. Раньше, во времена разработки CineForm (когда еще она еще не была связана с GoPro), я возможно писал бы о новой разработке логарифмических кривых (log curve или кривая цвета) для камер, описывал бы плюсы и минусы цветовой коррекции — все это за месяцы до того как мы смогли бы что-нибудь показать, но это было до того как мы стали частью компании по производству электроники. Но некоторые вещи должны оставаться в секрете. Работать в CineForm было очень здорово, но это несравнимо с приключениями в которых я уже побывал работая в GoPro и я в предвкушении новых.

Protune начался для меня с запуска в продажу HERO2. Это была та камера, которую я мог использовать практически где угодно, даже в очень динамичных съемках (я снимал буквально все вокруг, экспериментировал с положением и креплениями камеры), но свойственное камере своеобразное качество изображения часто лишало меня возможности в одном видео использовать видеоматериалы с GoPro и других камер. Чередовать сцены друг с другом, снятые с разных камер жизненно необходимо для профессионала. Однако, есть одна команда профессионалов, которая использует только камеры GoPro Hero (и является нашей собственной) и использует режим Protune. Protune дает больше возможностей для постпродакшена и я был глубоко удивлен, используя этот режим.

Технологии производства сенсоров изображения продолжают развиваться и мы являемся свидетелями высоко динамичных видео, снятых на профессиональные камеры, такие как ARRI Alexa и даже более доступную Blackmagic Cinema Camera, но чем меньше размер сенсора изображения(по-сути размер самих пикселей) тем меньше динамический диапазон у изображения. Меньший размер пикселей часто выливается в меньший динамический диапазон, хотя и очень многое изменилось за последние годы. В 2006 году, компания Cineform было полностью занята разработкой совместно с Silicon Imaging SI-2K видеокамеры, которую высоко оценили и у которой подтвердили наличие 11 динамических уровней — достаточное количество, чтобы использовать как полноценную цифровую камеру в кинематографе и даже получить такие награды как Cinematography Oskar и Best Picture Award. Сенсор у HERO2 меньше, но имеет значительно большее число пикселей(11мп против 2мп у SI-2K, пиксели у HERO2 намного меньше по размеру), хотя динамический диапазон одинаков.

Но за 5 лет не только улучшилась технология сенсора изображения, но и добавилась технология использования логарифмических кривых(log curve) вместо добавления контраста Rec709 с 2.2 гаммой — проще говоря калибровка камеры, для того чтобы изначально(с настройками по умолчанию) видео хорошо смотрелось. Настраивать камеру, чтобы она «прямо из коробки» записывала такое видео было хорошей идеей. Используя HDMI можно посмотреть отснятый материал прямо на телевизоре — и это здорово(эта опция есть у GoPro). Однако пока у телевизоров нет 11 уровней динамического диапазона, может в лучшем случае 9 на самых навороченных моделях и то, только после того как вы выключите все эти безумные «улучшайзеры»(которые обычно сужают динамичесикй диапазон).

Так зачем же стараться снимать в более широком динамическом диапазоне, когда просматриваться видеоматериал будет на телевизоре, мониторе или смартфоне(перечислены в порядке уменьшения уровней динамического диапазона)? Для профессионалов ответ достаточно очевиден — цветокоррекция является частью производства кино. Цветокоррекция сама по себе лучше работает, когда материал содержит больше информации (о свете, цвете и т.д.). Даже для среднестатистического человека сегодня более доступна цветокоррекция(например инстарам с его фильтрами). Чем больше уровней динамического диапазона изначально доступно в видеоматериале, тем более точно можно откорректировать видео. Наша медиа-комманда не использовала даже такие великолепные инструменты как Red Giant’s Magic Bullet Looks до того как начала снимать с Protune, что сделало видеоматериал полученный с помощью GoPro более гибким для дальнейшего редактирования.

Немного из основ формирования цифрового изображения: свет попадает на сенсор и реакция сенсора на свет является линейной. В качестве примера, 12 бит глубины цветности преобразуются в диапазон возможных яркостей 0-4096. Предполагая, что каждое значение на выходе АЦП пропорционально актуальной яркости изображения (то есть, удвоение значения пикселя означает удвоение яркости), в идеале 12-битная разрядность может обеспечить контрастность не более 4096. Т.е. теоретически идеальный 12-битный сенсор имеет 12 уровней контрастности. Если бы сохраняли эту 12-битную информацию без сжатия(хотя это является самой гибкой информацией для цветокоррекции), то поребовалась бы передача на скорости 1000Мб/с. Сравните с режимом 1080р30, где скорость передачи 15Мб/с! Подумайте, какую быструю SD-карту нужно было бы иметь. Т.е. если закодировать цвета линейно, это будет не очень эффективно, и нам потребуется бОльшая разрядность, чтобы передать все детали, но человеческое зрение устроено таким образом, что мы лучше различаем тёмные тона, чем светлые. Хитрые математики придумали такой изящный способ, чтобы не раздувая количество информации, увеличить детализацию в тёмных тонах за счёт потери её в светлых, где она нам совершенно ни к чему:

Protune

На картинке верхние оттенки – это применение гамма кривой, а нижние – линейное отображение без всяких ухищрений. При одинаковом количестве информации (бит), чтобы описать детализацию, совершенно очевидно, что на верхней полоске более плавный переход в тёмной области, чем в нижней. При этом в светлой области разница едва заметна. Вот так хитро устроено наше зрение. Производители камер делают так, что их 12, 14 и 16-битные сенсоры преобразовывают изображения в 8, 10 или 12 битные с кривой цветности. Даже новая видеокамера Blackmagic в режиме без сжатия изображения преобразовывает записанное 16-битное изображение в 12-битное с кривой цветности(ведь человеческий глаз не чувствует разницы).

Если бы мы при конвертировании из 12-бит в 8-бит используя линейность, то нижние 4 уровня детализация теней была бы нарушена и мы заметили бы это. Поэтому используется традиционная кривая гаммы 2.2 и вот что она делает(показаны 5 верхних слоев):

Protune

Так что кривые гаммы полностью не охватывают то как видит человек, по данным таблицы видно что в ярком намного больше оттенков чем в темном. Идеально если бы 256 цветов разделились бы на используемые уровни, т.е. 11 уровней имели бы по 23 цвета на каждый. Но это в идеале — с сенсором в без шумов(чего не может быть). 5 верхних слоев в режиме Protune:

Protune

Хотя самый темный используемый уровень имеет столько же кодировок цветов как и в кривой гаммы, Protune раскидывает кодировки более ровно по уровням: больше кодировок остается для темного и светлого уровня.

А теперь давайте еще раз вернемся к вопросу, почему не иметь по 23 кодировки на уровень? Это из-за компрессии и шумов. Шум нельзя сжать, во всяком случае так, чтобы компрессия на выходе была не заметна. Кодек Cineform, H.264 или любой другой по-просту не понимает сигнала от шумов. Поэтому, если слишком много кодировок цветов представляют из себя шумы, качество или количество передаваемой информации снизится. Режим Protune(как показано выше) делает меньшие файлы и в общем предоставляет больше возможностей для цветокоррекции чем фиксированные уровни гаммы. Мы вычислили лучшую кривую, для того чтобы хранить меньше шума и шире динамический диапазон.

Стоит упомянуть о стандартом режиме без сжатия у камер (RAW): мы развили свои знания о динамическом диапазоне, полученные при разработке Protune и рассчитали кривую цветности для лучшего отображения для определенной динамической кривой. Эта опция сейчас добавлена в коммерческую версию CineForm Studio, так что те кто снимает в RAW(например камерами от Canon CR-2 до Blackmagic) могли оптимизировать кривую кодирования, чтобы привести весь отснятый материал к одному значению. Конечно же перекодировка в CineForm RAW в 12-битном режиме помогает больше чем при 8-битном(больше информации), однако на каждом уровне количество кодировок цветов выравнивается и в итоге мы получаем кривую гаммы похожую на видео режим Protune у Hero2 и Hero3.

Но Protune существует не просто как донастройка кривой гаммы, необходимо было также увеличить битрейт, ведь количество передаваемой информации увеличивается(динамический диапазон становится шире). Но мы решили не останавливаться и на этом. Мы также выключили шумоподавление и резкость, чтобы видеоматериал имел более естественную запись и сохранил больше деталей. Чтобы автоматически отделить шумы нужен очень сложный алгоритм(процессор не всегда делает правильное разделение), так что лучше отложить удаление шумов и величину резкости на постпродакшн. Лично я вообще даже на стадии постпродакшн не использую шумоподавляющие фильтры, так как меня полностью устраивает качество камеры в режиме Protune. Единственное, могу добавить резкости.

Связь с CineForm: 35Мб/с Н.264 Н262 тяжело декодировать, намного тяжелее чем 15 Мб/с. Поэтом конвертация в более быстрый для редактирования формат очень помогает, и эта возможность имеется в бесплатной версии GoPro CineForm Studio. Еще видеоматериалы GoPro в режиме Protune сдержат метаданные, которые CineForm распознает и автоматически подстраивает настройки, чтобы видео больше выглядело в стиле GoPro. Все эти изменения хранятся как активные метаданные CineForm, не удаляемые и не отменяемые, с возможностью редактирования через бесплатную версию CineForm. GoPro старается предоставить профессиональные инструменты для обработки видео обычным пользователям и программа CineForm вместе помогает в этом.