Каждый, кто хоть чуть-чуть интересуется технологиями, не раз слышал о поддержке технологии HDR смартфонами, мониторами или телевизорами. В этой статье мы попытаемся разобраться, что это за технология, для чего она нужна и насколько хорошо с ней дружат смартфоны. Вы читаете умную статью. А с вами умный чел, разработчик Android-приложения для видеосъемки mcpro24fps, Александр Трофимов. Поехали! (Где-то я подобное уже слышал). HDR-видео - это не то, к чему привыкли любители приложения Google Camera. Нет здесь никакой склейки, никакого усреднения пикселей и попытки сжать широкий динамический диапазон (далее ДД) сцены в узкий ДД дисплея. Здесь сделаю акцент, что не формата файла, а именно дисплея. HDR-видео в первую очередь касается доставщика изображения, а, проще говоря, матрицы монитора, экрана смартфона или телевизора. Раньше параметром яркости и контрастности чаще интересовались профессионалы, работающие с изображением. Сегодня мимо параметра яркости, указываемого в описании современных дисплеев в нитах (единица измерения, также 1кд/м², кандела на квадратный метр), не проходит ни один уважающий себя пользователь. Каждое устройство с экраном имеет эту характеристику. А те, что поддерживают HDR, целых две: максимальную яркость и пиковую яркость.Максимальная яркость — яркость в нитах, какую способна выдать матрица по всей своей площади.Пиковая яркость — яркость в нитах, которую способна выдать матрица на ограниченном участке на короткий промежуток времени. Например, чтобы получить сертификацию VESA DisplayHDR1000, надо, чтобы пиковая яркость работала на минимум 10% от всей площади в течение 30 минут. Но это уже достаточно высокий стандарт. Узнать подробней о VESA DisplayHDR. Сегодня не так много производителей стремятся владеть этой сертификацией. Поэтому требование 10% и 30 минут могут запросто не соблюдаться. Но мысль остается той же. Пиковая яркость должна работать хоть на какой-то площади и хоть какое-то время. В этом случае производитель сможет заявить о поддержке HDR. Что можно сказать о HDR-видео точно и без прикрас — это самое настоящее HDR, которое существует сегодня. Потому что именно здесь речь идет о широком ДД, который будет передавать дисплей, который в будущем сможет даже ослепить (такой прием был применен в сериале «Очень странные дела»). В отличие от того HDR, к которому привыкли фотографы, где настоящий широкий ДД сцены сжимается до мизерного ДД, который предполагает формат JPG (создан он был для изображений в 6-7 стопов, адекватного контраста). Производители предлагали 10-битный HEIF, производители предлагали 10-битный HEIC, но что-то пошло не так, и в результате фотография отстает от видео на несколько шагов. Мне кажется уже пришло время, когда фотография должна стать 10-битной с по-настоящему широким ДД. Пора заканчивать с этими малоконтрастными плоскими фотографиями, создаваемыми приложениями типа Google Camera. И предлагаю прекратить сопровождать такие фотографии аббревиатурой HDR. В чем был смысл придумывать такие сложности? В большинстве своем обычную яркость предметов может отобразить вполне реально любой более-менее современный экран яркостью 300 нит. Большая часть окружающих нас предметов, не освещенных каким-то особенно ярким светом, вмещаются в 200 нит. Но учитывая наше животное происхождение, природное любопытство и любовь ко всему яркому, создатели контента столкнулись с тем, что имеют проблемы с подачей более ярких поверхностей и бликов. Вы наверняка хоть раз в жизни наблюдали отражение солнечных бликов в журчащем ручейке, ярких солнечных зайчиков на стенах вашей комнаты. И они нас привлекают своей яркостью, они нам нравятся.  Взглянем на HDR-видео, снятое Sony. Если ваше устройство поддерживает отображение HDR, то вы обязательно обратите внимание на то, насколько сильно преображается восприятие картинки от естественной передачи ярких бликов. Создатели контента хотели передавать нам все эти чувства через экран. Но одновременно с этой мыслью приходило понимание, что с актуальной максимальной яркостью бытовых мониторов и телевизоров ничего подобного не сделать. В результате было найдено компромиссное решение, чтобы матрицы не перегревались — дать возможность выдавать предельную яркость на небольших участках и на короткий срок. Этого стало достаточно, чтобы основную часть сцены уместить в 300 нит, а за пределами отображать красивые, яркие вспышки. Еще одно интересное направление HDR — это попытка перенести яркость и контрастность реального мира в мир кино и телевидения (больше касается второго). Вот пример изображения, на котором отмечены яркости в нитах в реальной жизни. Это то, к чему стремится HDR-видео. По указанным значениям понятно, что нам еще очень далеко до них. Тем не менее яркость дисплеев постоянно растет. А это значит, что HDR все ближе и ближе к свой цели.  Крайне полезный ресурс для понимания яркостей и других аспектов мира HDR. К уже сказанному, каждый отдельный стандарт преследует свои цели, о которых я напишу ниже. Современная поддержка HDR-видео включает в себя три самых популярных стандарта: HLG, DolbyVision и HDR10. Перед тем, как начнем рассматривать стандарты, я хочу обратить внимание на цветовой охват Rec.2020 и битовую глубину цвета. Цветовой охват в большей степени ориентируется на дисплеи, чем на сенсоры камер. Именно у первых в потребительском сегменте есть ограничения в возможностях. Сенсоры уже давно ушли вперед. У сенсоров нет проблем, чтобы запечатлеть весь спектр видимых человеческому глазу световых волн. Глаз видит 380-700 нм, сенсор видит 400-1100 нм. Поэтому и проблем с цветовым охватом нет.Этим я хочу закрыть тему постоянного вопроса: «а умеет ли сенсор такой широкий охват». Умеет и больше. Давайте рассмотрим эту диаграмму.Rec.709 (он же sRGB) - это то, что нам способны отобразить мониторы уже продолжительное время, и то не всегда на 100%.Rec.2020 - это то, что закладывают разработчики стандартов HDR на будущее. Сегодня ни один монитор на 100% отобразить весь Rec.2020 не способен. Загогулина, раскрашенная в разные цвета,- это то, что видит человеческий взгляд. Мысленно продолжите фигуру за 700 до 1100 и чуть-чуть сократите с 380 до 400, и вы получите то, что умеет сенсор современной камеры. И это много больше, чем Rec.2020. C ДД чуть поскромнее. “Взрослые” камеры умеют в 14 стопов и выше (в случае необходимости мы можем взять камеру RED с параллельной записью разной экспозиции в два отдельных файла и получить сверх широкий ДД).Говоря простым языком, стоп определяет диапазон яркости, ярче в 2 раза, чем предыдущая яркость. Так, если х - исходная яркость, то 1 стоп = х*2 (600 нит по отношению к 300 нит = +1 стоп). Сенсоры камер смартфонов — в 10-11 стопов. С дисплеями чуть по-другому: обычные HDR дисплеи умеют отобразить 10-11 стопов, премиальные 13-14, профессиональные до 24 стопов (Например, Eizo ColorEdge Prominence CG3146). Здесь я хотел бы еще раз обратить внимание на то, что, когда речь идет о сенсоре камеры - речь идет о всей площади сенсора, а когда мы говорим о потребительском сегменте дисплеев, то есть шанс, что пиковая яркость работает одновременно всего лишь на 10% площади дисплея. В этом случае можно считать, что сенсор в 11 стопов может запечатлеть больший ДД, чем монитор отобразить. Принято считать, что именно Rec.2020 используется в HDR-видеоконтенте. На самом деле, чтобы отобразить Rec.2020, монитор должен буквально светить лазером прямо в глаза. Как я уже писал выше, на сегодня нет ни одного монитора, способного отобразить весь Rec.2020. Rec.2020 остается контейнером с надеждой на будущее развитие, но в реальности сам контент стараются поставлять в цветовом пространстве P3. Колористы, которые красят HDR-контент, красят его в пределах P3, но помещают его в контейнеры с метаданными Rec.2020. В контексте HDR-видео битовая глубина 8 бит устарела. Учитывая то, что разработчики стандарта вкладывают в него требования на будущее, было сразу понятно, что такой широкий цветовой охват и такая высокая контрастность не будут дружить с такой низкой битовой глубиной цвета. Чем выше контрастность, чем шире цветовое пространство, тем больше заметны проблемы постеризации при низкой глубине цвета. Поэтому было принято решение использовать в стандартах минимальное значение в 10 бит. Здесь стоит сделать оговорку о стандарте HLG, который телевизоры Sony поддерживают с глубиной цвета 8 бит. Что касается дисплеев, то тут все очень запутано и непонятно. Одни матрицы с честными 10 битами, другие с 8 битами + FRC (Frame rate control), когда 2 бита добавляются через игру с частотой мерцания (нечестные 10 бит). Фактически лично я разницы не вижу. Но уверен, что есть люди, которые смогут отличить честные 10 бит от нечестных. А может быть есть еще какая-то проблема, которая возникает при использовании нечестных 10 бит. Ниже я сильно утрированно попытался показать, почему так важны 10 бит. Чтобы исключить щеконадувательство особливо умных, сразу предупреждаю, что я не пытался учитывать контрастность и не пытался показать все как есть. Ориентировался исключительно на один параметр: максимальную/пиковую яркость выдуманных дисплеев в нитах. Предположим, что у нас есть 10-битный контент в виде градиента из 64 блоков. Первый монитор у нас с низкой контрастностью в 300 нит и 8 битовой глубиной цвета. Обратите внимание, что мы видим отдельные блоки, но они по яркости идут достаточно равномерно. Второй монитор — высококонтрастный монитор с максимальной яркостью в 1200 нит, т.е. в 4 раза ярче, и битовой глубиной 8 бит. Этот же контент уже не выглядит таким плавным и мы начинаем видеть границы битовой глубины достаточно отчетливо. Третий монитор —  высококонтрастный монитор в 1200 нит и битовой глубиной 10 бит, т.е. в 4 раза больше градаций серого. Здесь никаких вопросов не возникает. Все 64 блока отображаются с той яркостью, с которой и было задумано. Градиент выглядит плавным. Как уже упоминалось ранее, современная поддержка HDR-видео включает в себя три самых популярных стандарта: HLG, DolbyVision и HDR10. Стандарт, включающий в себя гамма-кривую (вот здесь тоже щеки надувать не будем и умными словами про функции писать не будем, гамма-кривая — любительское определение) HLG и цветовое пространство (контейнер) Rec.2020. Под максимальной яркостью подразумеваются 1000 нит. Но используется и для большей. Этот стандарт был задуман как стандарт для передачи прямых трансляций в HDR. Его смысл заключался в том, что сама кривая очень просто подстраивается под любую яркость дисплея. Она хорошо может работать как при 300 нитах, так и при 1000 нитах. Т.е. его гибкость является его преимуществом. По этой же причине данный стандарт был горячо принят видеографами. Он позволяет не сильно утруждать себя контролем баланса светов и теней. Достаточно примерно понимать, что первая половина гистограммы — это основная часть сцены, и вторая часть — для ярких областей и бликов. С этим стандартом легко работать и легко преобразовывать на экранах любой яркости. Одновременно с этим стоит заметить, что в самом начале своего пути стандарт не предназначался для записи сырого материала с последующей постобработкой. Это стандарт доставки, а не стандарт записи. Но Sony каким-то образом умудрились его подать как логарифмический профиль. Причем в самом начале для глубины цвета 8 бит. Аппараты фирмы Сони, в том числе смартфоны, до сих пор нормально воспринимают 8-битный HLG.Тру-колористы данный стандарт не считают за HDR-стандарт. BBC WhitePaper WHP 309. Стандарт для высококачественного контента. Включает в себя гамма-кривую PQ и цветовое пространство P3 (в файлах упаковывается в контейнер Rec.2020), обычно 12 бит. Максимальной яркостью подразумевает 10000 нит, но имеет две опорных градации 1000 и 4000 нит. Создавался с целью показать то, что подразумевал создатель контента без искажений яркости и цвета.  Что значит без искажений? Гамма-кривая PQ разрабатывалась с целью соотнести яркость реального мира с яркостью видео-контента, а также ориентацией на возможности дисплеев. Представим, что у нас есть два дисплея: 600 нит и 1000 нит. И контент, предназначенный для дисплея 1000 нит. В этом случае контент не должен быть подстроен под возможности дисплея 600 нит, такой дисплей должен отобразить все, что предназначается отобразить до этого предела и остальное срезать (не все так идеально в реальности). Таким образом у обоих дисплеев кадр до 600 нит будет абсолютно одинаковым, а монитор в 1000 нит сможет показать дополнительный контент выше 600 нит. Это главное преимущество данного стандарта, помимо всего прочего. Dolby Vision обладает огромными возможностями по динамическим метаданным. Динамические метаданные — это информация, сопровождающая каждый отдельный кадр, в которой содержатся указания для проигрывателя, как он должен реагировать на кадр. Этот инструмент дает художнику возможность не меняя содержания самого кадра, придать ему эмоцию. В пределах этих метаданных достаточно тонко можно поменять и цвет и яркость. 10 бит может оказаться недостаточным для такого вида манипуляций, поэтому стандарт подразумевает 12 бит. Чаще всего с этим стандартом мы имеем дело в кинотеатрах. Чтобы обеспечить корректную работу данного стандарта в домашних условиях, надо неплохо постараться. Тру-колористы считают настоящий Dolby Vision настоящим HDR, и не признают никакие другие стандарты. Бесплатная альтернатива Dolby Vision от Samsung. Гамма-кривая и цветовое пространство те же. Предполагается использование битовой глубины цвета 10 бит. В самом начале целились на максимальную яркость 1000 нит, но с учетом быстрого развития HDR-видео, порог был повышен до 4000 нит. Да, сама гамма кривая как и в Dolby Vision предполагает максимальный предел в 10000 нит. Но почему-то в контексте HDR10 такая яркость не упоминается. Следующее отличие от Dolby Vision — это отсутствие динамических метаданных. Этот вопрос был решен в стандарте HDR10+. Тот самый плюс означает поддержку динамических метаданных. Здесь так же их “бюджетная” версия. С помощью метаданных в HDR10+ можно отрисовать свето-теневой рисунок кадра, и на этом всё. Такой гибкости как в Dolby Vision нет. Второй минус метаданных HDR10+, сколько уже времени я вращаюсь в сфере покраски видео, еще ни разу не встретил ни одного приложения, способного работать с этими метаданными. Т.е. они как бы есть, но их как бы нет. Для кого они существуют в стандарте и освещаются в рекламе, остается загадкой. Данный стандарт в обоих вариациях (с + и без) был тепло принят производителями смартфонов, которые хотели, чтобы их аппараты поддерживали HDR-видео. С приходом HDR-дисплеев в смартфоны, производители задумались о том, чтобы контент в HDR10+ можно было бы записывать. Плюс тут конечно оказался лишним, но об этом все умолчали. Минусом данного стандарта как стандарта записи видео является его непредназначенность для этого. При использовании HDR10 очень сложно контролировать экспозицию в светах, что приводит к некрасивому клиппингу, когда насыщенное небо переходит в резко очерченный солнечный круг. При работе с HDR10 надо очень ответственно подходить к вопросам цвета в светлых участках кадра, потому что HDR10 при проигрывании контента проигрывателем предполагает дополнительное насыщение светлых областей кадра. Насыщенность светов есть преимущество HDR10 перед HLG, у которого чем ярче пиксель, тем больше он теряет насыщенность. Но касается это преимущество HDR10 как стандарта доставки видео-контента, а не записи. При записи все это контролировать просто невозможно. И никогда этот стандарт не предполагался для записи. Но либо рынок диктует правила, либо сами производители таким образом стараются удивить, сегодня почти все современные смартфоны снимают HDR10. Исключением являются только Apple и Sony. Сегодня HDR10 это самый популярный стандарт. Он поддерживается большинством производителей смартфонов, мониторов и телевизоров, и даже лазерными проекторами. HDR10+ WhitePaper. Пример HDR-видео, снятого на телефон приложением mcpro24fps. Теперь давайте вспомним, где мы слышали о стандарте Dolby Vision, касаемо смартфонов? Правильно! iPhone. Казалось бы, как круто, Dolby Vision в смартфоне! Но не тут-то было. Маркетинг снова нас увлек своей красивой болтовней. Каким образом получилось так, что в Dolby неожиданным образом смастерили новый стандарт, использующий гамма-кривую HLG, и подразумевающий 10 бит, для меня до сих пор остается загадкой. Но факт остается фактом: специально для Apple Dolby пошли на большие уступки. Что мы имеем в результате? Мы имеет стандарт HLG с возможностью вписывать динамические метаданные от Dolby. И чем дальше в лес, тем больше дров. Чтобы работать с динамическими метаданными от Dolby, колорист должен купить у Dolby не самую дешевую лицензию. У Apple такая лицензия есть, и их нативное приложение имеет возможность работать с этими метаданными. И всё. Все преимущества на этом кончаются, что в принципе вынуждает воспринимать Dolby Vision на смартфонах Apple как обычный HLG 10 бит у тех же Sony. Может быть Apple имеют какие-то далеко идущие планы на этот счет. Но пока что всё это выглядит как красивый маркетинг. Потому что мало того, что никто не имеет лицензий на редактирование метаданных, так еще и пользователей, способных это сделать корректно, надо поискать. Плюс приложений, способных работать с метаданными Dolby Vision, критически мало.Dolby Vision от Dolby — очень мощный стандарт видео, лучший, что есть сегодня.Dolby Vision от Apple — жалкое подобие, призванное популяризировать стандарт (все производители телевизоров кинулись его поддерживать), что тоже неплохо. Т.к. тру-колористы стандарт HLG не считают за HDR-стандарт, то и представленный Apple Dolby Vision не вызвал в них никакого восторга. Using an Apple iPhone 12 captured Dolby Vision content as a source in a Dolby Vision production. Популярность HDR10 привела к тому, что основной разработчик OpenGL ES API — Khronos Group — проигнорировал HLG. Поэтому на данный момент полноценная поддержка HLG в вопросе записи видео невозможна. HDR10 тоже имеет свои проблемы. Мы вынуждены подстраиваться под то, что придумал производитель, который как обычно подумал только о себе, и совсем забыл о сторонних разработчиках. Основной проблемой на сегодня является откровенно странная поддержка механизма применения гамма-кривых к записываемому контенту. Простое применение гамма-кривой PQ приводит к тому, что в светах появляются неприятные артефакты, связанные с тем, что производитель в каком-то месте забыл сделать clamp(). Это почти никак не победить, а если победить, то через такие костыли, которые пользователю невозможно объяснить. Вот так выглядит солнце через ветви деревьев в HDR10 на Sony Xperia 5 III. До третьего семейства Sony был единственным брендом, который был способен работать с HDR10 без каких либо проблем. На сегодня такая проблема не обошла стороной ни один флагман. Что еще раз доказывает мысли любого производителя смартфонов только о себе любимом. Как и всё новое, появляющееся в смартфонах, HDR- видео – это не только большой шаг в развитии привычных всем форматов видео, но и отличная цель для маркетинговых манипуляций. В том, что касается воспроизведения HDR-видео, на современных смартфонах не возникает никаких проблем. Конечно же, если не брать во внимание такой сверх-стандарт, как Dolby Vision. Его поддерживают лишь единицы: iPhone и несколько Android-смартфонов. Узнать больше можно на странице Netflix. В том, что касается записи HDR-видео, даже при эгоцентризме разработчиков смартфонов, дела обстоят весьма обнадеживающе. По крайней мере, в mcpro24fps мне удалось реализовать не только запись популярных форматов HDR, но и экранный мониторинг, предоставив пользователям выбор и пространство для экспериментов. Да, не без костылей от устройства к устройству, но таков путь Android-разработчика. Финальная хорошая новость заключается в том, что сегодня любой смартфон с поддержкой записи 10 бит сможет снять HDR-видео в HLG! Таким образом любой такой смартфон может легко соревноваться с iPhone с той лишь разницей, что в полученном видео не будет содержаться динамических метаданных Dolby Vision. А значит, у пользователей Android есть возможность показывать языки пользователям iPhone в данном вопросе. Ведь метаданные метаданными, но если их нельзя использовать (редактировать), то ценность их наличия стремится к нулю. Традиционно постараюсь ответить на все ваши вопросы в комментариях. P.S.: Если вам интересна тематика видеосъемки на мобильных устройствах, а также тернии, сквозь которые проходит разработчик, чтобы сделать работающий продукт на Андроид, то советую вам прочитать мою предыдущую статью Почему любой Android снимает видео хуже iPhone? Программист