видео 10 бит что это
Что такое Hi10P?
Как смотреть Hi10P
Выбирайте!
Mplayer2 (и SMplayer с расширением) будут оптимальны для большинства пользователей, особенно для тех кто желает работающее решение из коробки. Однако для максимального качества вам необходимо использовать MPC-HC + madVR как будет показано ниже.
Если же вы пользуетесь операционной системой отличной от Windows, например GNU/Hurd/Linux/Haiku/BSD/VMX/OS/2/MS-DOS/Menuet/BareMetalOS/и так далее, всё тоже самое — обзаведитесь mplayer2 или VLC.
Пользователям же Mac OS X необходимо использовать Mplayer OSX Extended.
Как НЕ смотреть Hi10P
Достоинства Hi10P
Недостатки Hi10P
А зачем нам это?
Технологии не стоят на месте Так было с DVD, Blu-ray и DivX, теперь тоже самое происходит с Hi10P. Последние декодирующие устройства намного быстрее даже при декодировании 10 бит по сравнению с декодерами 8 битов годичной давности, так что у нас есть мощности для нового шага вперёд.
Как кодировать в Hi10P
Предполагая, что вы уже знакомы с кодированием видео, обзаведитесь соответствующим билдом x264, обозначенным как «10bit depth». На Линуксе просто выполните «./configure –bit-depth=10» перед компиляцией.
Особая заметка: Официальный билд x264 до сих пор имеет баги и неправильно конвертирует уровни. Вы можете использовать неофициальный билд x264 с исправлениями (JEEB’s builds) или же пропатчить официальный билд сами.
Если вы используете CRF, увеличьте его чуть-чуть. Если же вы используете битрейт, то вы можете его немного уменьшить. Релиз-группы всё ещё работают над получением лучших настроек, так что только время покажет как сильно нужно увеличивать/уменьшать CRF.
Помечайте свои релизы меткой «Hi10P». Вы можете свободно указывать ссылку на данную инструкцию в описаниии секций/файлов, дабы помочь людям настроить свои плееры прежде чем они начнут скулить на форумах.
Примеры Hi10P файлов
Примеры файлов закодированных в Hi10P можно найти здесь и здесь.
Хорошая подборка сравнения между 8 и 10 битной компрессией лежит здесь. Легко заметить, что 10 битное сжатие даёт большее качество с меньшим битрейтом.
Здесь так же можно увидеть достаточно изображений для сравнения. Помните, что это далеко не предел, энкодеры работают в поте лица учась подбирать правильные настройки.
Заблуждения о Hi10P и 10 битном выходе
Потребность иметь 10 битный (иначе говоря 32-битный «реальный» цвет) монитор, для того что бы увидеть преимущества Hi10P, абсолютно отсутствует. Даже после преобразования обратно в 8 бит, видео закодированное в 10 бит значительно выигрывает в качестве, по сравнению с видео закодированным в 8 бит. И это уже не говоря об уменьшении размера файлов.
Тот же 0.01% людей, имеющих подобные мониторы, должны будут поизвращаться с нестабильными драйверами для вывода 10 битного видео.
Инструкция по установке MPC-HC + madVR
Если вы хотите версию для лёгкого сохранения и чтения, вы можете взять инструкцию в картинке, но учтите что она обновляется нерегулярно, поэтому там может находиться устаревшая информация.
Данный метод даст в итоге значительно более качественную картинку и более высокую производительность, по сравнению с CCCP Beta (ну и вообще всё, что основано на ffdshow), так что если вы стремитесь смотреть видео в Hi10P, или даже обычное 1080p, попробуйте нижеследующее. MadVR регулярно обновляется и использует последнюю версию libav для декодирования, выдавая намного более высокую скорость нежели чем абсурдно устаревший ffdshow-tryout, не говоря уже о ещё более абсурдном CCCP основанном на нём.
Шаг ноль: требования
Шаг один: скачивание и установка
Шаг два: настройка
Шаг три: подтверждение
Возможные неисправности
(Бонус/Опционально) Добавление ffdshow
Disclaimer
Данная инструкция предоставляется «как есть», без страховок и гарантий телесной, духовной, а так же астральной безопасности. Если вам не нравится тот факт, что каждое предложение переполненно ссылками, то вините во всём MediaWiki.
Инструкция создана по мотивам труда Ryuumaru. Данный текст основан на не оригинальном исследовании, а так же Гугле. Данный текст (а так же данный перевод, прим. пер.) находятся в публичном достоянии, за исключением фонового изображения скриншотов с отладочной информацией, которое принадлежит создателям Air и HotD.
Указание автора оригинального текста и перевода не обязательно, как и обратная ссылка при копировании статьи. Тем не менее желательно указывать ссылку на оригинальную статью, т.к. материал в ней будет обновляться, отображая последние разработки в данной области.
Наслаждайтесь миллиардами цветов с 10-битным HEVC
Человеческий глаз способен видеть намного больше цветов, чем показывают ему современные видео дисплеи. Каким бы навороченным не был компьютер, он все равно может воспроизвести лишь конечное количество цветов. В этой статье мы расскажем об использовании 10-битной глубины цвета в сравнении с 8-битной, исходя из функционала процессоров Intel Core седьмого поколения и оптимизирующих возможностей Intel Software Tools. В статье вы также найдете ссылку на пример программы, реализующей 10-битное HEVC кодирование.
Глубина цвета
Глубина цвета, известная также как битовая глубина — это количество битов, используемое для отображения цвета отдельного пикселя. Одно и то же изображение или кадр с различной глубиной цвета выглядят различно, поскольку количество цветов в пикселе зависит от глубины цвета.
Количество битов в изображении включает в себя набор битов на канал для каждого типа цвета в пикселе. Количество цветовых каналов в пикселе зависит от используемого цветового пространства. Например, цветовые каналы в цветовом пространстве RGBA — красный ( R), зеленый (G), синий (B) и альфа (A). Каждый дополнительный бит удваивает количество информации, которое мы можем хранить для каждого цвета. В 8-битном изображении общее количество доступных цветов пикселя равняется 256. В Таблице 1 показано возможное количество доступных цветов для каждой соответствующей глубины цвета.
Глубина канала | Оттенков на канал на пиксель | Общее количество возможных оттенков |
---|---|---|
8-бит | 256 | 16.78 миллионов |
10-бит | 1024 | 1.07 миллиарда |
12-бит | 4096 | 68.68 миллиардов |
Большинство мониторов и телевизоров способны отображать лишь 8-битный контент, 10-битные изображения в них преобразуются в 8-битные. Однако преимущества 10-битной глубины имеют место уже сейчас:
Эффект цветовых полос
При захвате изображения иногда случается так, что сенсор не может распознать минимальное различие между двумя двумя соседними цветами, и возникает проблема некорректного отображения цветов. Как результат, область рисунка закрашивается одним цветом за неимением более подходящего другого. Таким образом, на рисунке появляются цветные полосы вместо плавного перехода из одного цвета в другой.
Возможные варианты решения проблемы цветовых полос:
Рисунок 1. Сравнение 8-битного (слева) и 10-битного (справа) изображения. Слева виден эффект полос.
Рисунок 1 показывает разницу между 8-битным и 10-битным изображениями применительно к эффекту цветовых полос. На левом изображении необходимая цветовая детализация не была передана сенсором, что привело у меньшему, чем надо, количеству цветов и цветовым полосам. На правом фото цветовой информации достаточно и переход между цветами получился плавным. Для обеспечения плавности цветовых переходов необходим более широкий цветовой диапазон, описанный в стандарте BT2020.
Стандарт BT. 2020
Седьмое поколение процессоров Intel Xeon и Core поддерживает стандарт BT. 2020 (известный также как Rec. 2020) в таких случаях как создание/воспроизведение 4K Ultra-high definition (UHD) контента, использование HDR с поддержкой 10 битов и т.д. UHD-мониторы имеют разрешение 3840*2160 при различной диагонали. Поддержка стандарта BT.2020 улучшает качество картинки при столь высоком разрешении.
Рисунок 2. Сравнение цветовых пространств BT.2020 и BT.709
Рекомендации The International Telecommunications Union (ITU) BT.2020 представляют значительно больший диапазон цветов, чем ранее используемые BT.709. Сравнение соответствующих цветовых пространств показано на Рисунке 2, представляющим диаграмму цветности CIE 1931. Оси X и Y показывают относительные координаты цветности с длинами волн соответствующих цветовых пространств (синий шрифт). Желтый треугольник покрывает цветовое пространство по стандарту BT. 709. Черный треугольник показывает цветовое пространство BT. 2020, значительно большее по размеру и, следовательно, содержащее большее количество цветов для плавных переходов. BT. 2020 также определяет различные аспекты UHD TV такие как разрешение дисплея, частоту кадров, цветовую субдискретизацию и глубину цвета в добавление к цветовому пространству.
Процессоры Intel 7 поколения поддерживают профили HEVC Main 10 profile, VP9 Profile 2 и High Dynamic Range (HDR) видео рендеринг с использованием стандарта BT.2020.
Профиль HEVC Main 10
High Efficiency Video Coding (HEVC), также известный как H.265 — стандарт видео сжатия, наследник хорошо известного стандарта H.264/AVC. По сравнению с предшественниками, HEVC использует более сложные алгоритмы сжатия. Больше информации о стандарте можно узнать здесь. Профиль Main 10 позволяет использовать 8-битный или 10-битный цвет с цветовой субдискретизацией 4:2:0.
Поддержка декодирования HEVC 10b появилась начиная с 6 поколения процессоров Intel. Команда ниже показывает, как тестовая утилита sample_decode из набора примеров кода Intel Media SDK может быть использована для получения сырых кадров из простейшего HEVC потока.
Используемый выше входной поток (input.h265) может быть взят здесь. Выходной поток (raw_frames.yuv) должен быть в формате P010, используемом как исходный материал для утилиты sample_encode.
Аппаратная поддержка кодирования/декодирования HEVC 10b внедрена начиная с 7 поколения процессоров Intel. Кодирование 10-битного HEVC реализовано с помощью дополнительного кода modified_sample_encode, специально измененного для этой конкретной функциональности. Данный пример работает с Intel Media SDK 2016 R2. Инструкция по сборке приведена в руководстве по примерам медиа в образцах кода Intel Media SDK.
Ниже показан пример 10-битного кодирования с использованием sample_encode из добавленной modified_sample_encode.
Рисунок 3. Скриншот утилиты Video Quality Caliper, показывающий, показывающий, что кодированный поток имеет 10 бит на пиксель.
Профиль VP9 2
VP9 — формат видео кодирования, разработанный Google как наследник VP8. Платформы Intel седьмого поколения поддерживают аппаратное ускорение декодирования VP9 10-бит, тогда как кодирование пока комбинированное, софтово-хардварное.
Высокий динамический диапазон (High Dynamic Range, HDR)
Динамический диапазон — это отношение значения самой светлой к самой темной точке на изображении. Видео высокого динамического диапазона (HDR) позволяет получить лучший динамический диапазон, чем обычное (SDR) видео, использующее нелинейные операции для кодирования и декодирования уровня освещенности.
Видео контент HDR поддерживается при использовании кодека HEVC Main 10 или VP9.2, аппаратно ускоренных начиная с 7 поколения процессоров Intel. Для передачи контента HDR, система должна быть оснащена портом DisplayPort 1.4 или HDMI 2.0a. Данная функциональность пока находится на стадии тестирования и не включена в общедоступные релизы.
Заключение
Как мы выяснили, разработчики сейчас имеют возможность создавать красивое, реалистичное видео в самых современных форматах, расцвеченных ярками красками 10-битного цвета, идеальным для HD/UHD дисплеев. Используя процессоры Intel седьмого поколения для создания контента стандарта BT.2020, а также возможности оптимизации Intel Media SDK, мы уже сейчас можем заглянуть за пределы разрешения 4K UHD и стандартной на сегодня кадровой скорости. В дальнейшем область применения современных аппаратно-ускоренных видео кодеков будет расширяться.
В этой статье упоминались следующие программные средства (со ссылками для скачивания):
8 или 10 бит для видео?
Сегодня для многих начинающих является проблемой определение битности видео для себя, то есть, насколько актуально, чтобы ваша камера поддерживала 8 бит или 10 бит записи для видео. Понятно, что больше = лучше, но что нам это дает?
Кратко: если вы не занимаетесь глубокой цветокоррекцией, для вас большой разницы между 10 и 8 битами не будет, за исключением того, что 10 битное видео занимает гораздо больше места, за счёт использования тяжёлых кодеков.
Согласитесь, при выборе камеры мы часто решаем вопрос, взять нам более профессиональную, которая пишет в дискретизации 4:2:0 с частотой 30 кадров в секунду, да к тому же 10 битный Log на карту памяти, но при этом имеет матрицу размером микро-4/3” или кроп ×1.5, или взять полнокадровую камеру, вроде той же Sony, которая делает доступные камеры для получения киношной глубины резкости, но при этом пишет только в 8 битах, причём даже выхода 10 битного из неё нет. Обратите внимание, что цена этих камер сегодня на рынке вообще сопоставима, поэтому и дилемма выбора предстает именно такой.
Но давайте не будем толочь воду в ступе и пойдём решать эту задачу предметно. А именно, просто возьмём один и тот же кадр, снятый в неизменных условиях, да к тому же с одной и той же камеры, просто в одном случае он будет снят в 8 битах, в стандартном кодеке H.264, то есть в модели 4:2:0, и тот же самый кадр, снятый в 10 битах, Apple ProRES 4:2:2. Если не применять никакой обработки, данный кадр никакого выигрыша нам не даст. Всё верно, потому что, если мы не выполняем никаких манипуляций с рабочим изображением на промежуточных этапах, мы получим исходную картинку и в результате.
Именно поэтому, кстати, люди, которые занимаются профессиональной цветокоррекцией, никогда не задают себе вопросы, насколько для них эти самые 10 бит востребованы вообще. Мы же не задаем себе вопросы, зачем мы снимаем в RAW, если фотографии всё-равно смотрим в JPEG. Промежуточная избыточность рабочей картинки для нас, фотографов и видеографов, обязательна. Таким образом, мы сможем взять и выкинуть лишнюю информацию, которая не влезает в финальный 8-битный контейнер, в котором наш результат будет просматривать зритель. То есть, мы можем выкинуть именно те данные, которые считаем ненужными, оставив только полезные и качественные. Если же мы будем изначально работать с JPEG, нам придётся выкидывать ненужные, но тоже видимые тона картинки, чтобы достичь вида, к которому мы стремимся, работая с контрастом и цветом. В большинстве случаев, это будет потеря незаметная, но может статься и так, что результаты таких потерь будут заметны даже на глаз.
Ниже приводятся скриншоты «до и после», причем, при сопоставлении видно, что видео, снятое с одними настройками, в 8 битах камерой намеренно делается на 0,3-0,5 ступени темнее, чем 10 бит, чтобы корректно отрабатывать пересветы.
Пойдем предметно: возьмем первое из наших видео, загрузим в один таймлайн в Premiere и откорректируем цвет через Lumetri, но не индивидуально, а корректирующим слоем, чтобы растянуть потом на второй дубль. Технический профиль здесь у нас соответствует тому, в котором снято видео, а стилизующий я подбираю по вкусу. Для каждой пары здесь у меня ничего не меняется, но обращайте внимание, что происходит, когда я пытаюсь приглушить пересветы или просто яркие зоны, поднять тени, особенно, когда я снижаю контраст. Пересветы вернуть нельзя, это каждый знает, но это только для 8 бит, из 10 возвращается гораздо больше, потому что при просмотре мы видим только урезанную 8-битную интерпретацию этого видео.
Обращайте внимание и на изменение цвета при работе с цветом раздельно, например, через кривые и цветовой круг. Цвет сдвигается, и итоговый цвет изображения сильно меняется, в зависимости от битности. Но самое интересное происходит в цветовом пространстве log, которое захватывает картинку уныло серой, чтобы потом можно было усиливать контраст так, как нам хочется. Это довольно стандартная работа с изображением JPEG, так занизить контраст, чтобы сохранить при съёмке максимум тонов. Но обратите внимание, что полностью потерь здесь избежать у вас не получится. Поэтому, когда вы снимаете фото в 12 или 14-битном RAW, картинка сохраняет их гораздо больше, в результате чего после обработки изображение выходит куда более качественным, чем снятое в JPEG. Собственно, кодирование видео ушло недалеко от кодирования фото в JPEG, похожей технологии, просто более продвинутой. Так вот, если вы будете банально зажимать контраст уже по снятому 8-битному изображения, это неминуемо будет приводить к выпадению ряда тонов, в результате чего на видео будут проявляться ложные цвета или искажения цвета в виде разводов и усиления муара вследствие этого. Это обусловливается тем, что там по-разному сжимаются тона в разных каналах, в одном из трех может выпасть часть тона, и появятся странные цвета, которые вы наверняка видели при жестком цветокоре. Это видно, в особенности, на лице. В то же время, при сжатии картинки в 10 битах, потерь почти не будет видно.
Я не говорю, что этих потерь не будет, я подчеркиваю, что их не будет видно.
Тем не менее, надо признаться, что даже картинка, снятая в 8 битах в обычном логе или Cinelike-D, тоже хорошо цветокорится и даёт хороший выход в итоге. Я так с нею и работал в течение нескольких лет, и не ощущал себя ущербным. Однако, со временем, стремясь к более высокому качеству, по сравнению с тем, к которому я уже привык, постоянно занимаясь видео, поэтому сейчас я уже начал чувствовать ряд ограничений, в которые уперся со своей техникой, так что мне сейчас уже хочется большего, поэтому серьезные проекты я снимаю только в 10 битах. Нет, конечно, в 12 битах можно получить еще больше, но это уже на будущее.
2 комментов к “ 8 или 10 бит для видео? ”
Не поясните разницу между h264 hi10p и Apple ProRES? И причем цветояркостная дискретизация (x:y:z), имеющая отношение скорее к разрешению, в вопросах количества полутонов (битности)? Вы ей уделили столько внимания.
И так знания в этом вопросе не очень, а теперь еще больше запутался.
Про кодеки через неделю писать буду. Это отдельная и долгая тема. Субдискретизация — просто имеющая к рекордеру отношение величина, потому и упомянул, к битности никакого отношения не имеет
Десятибитное видео: просмотр своими руками
Официальные спецификации формата Blu-ray допускают кодирование видеопотока и в почтенном формате MPEG-2, и в прогрессивном H.264 с более существенным сжатием почти без потерь в качестве. С воспроизведением этих дисков справляются даже хиленькие процессоры бытовых оптических плееров. А вот просмотр видео, захваченного с Blu-ray, у множества даже не самых рядовых пользователей ПК частенько вызывает затруднения. Особенно если создатель файла использовал десятибитный профиль кодировки H.264.
Десятибитный профиль H.264, или попросту Hi10P, подразумевает применение десятиразрядной кодировки цветовой информации вместо привычной восьмибитной. Десятиразрядные алгоритмы сжатия потоковой видеоинформации умудряются обеспечивать одновременно и лучшее качество итоговой картинки (то есть меньшие потери данных о цветовом наполнении каждого отдельного кадра в результирующем видеопотоке), и большую компактность финального файла.
Здесь имеется в виду разрядность представления каждого из базовых цветов. Восемь бит на базовый цвет означает, что он может быть представлен одной из 256 ступеней яркости; итого вместе получается 256 в кубе — те самые 16 с лишним миллионов оттенков (точнее, 16 777 216), которые наверняка всем знакомы. Десятибитное представление цвета даёт, соответственно, по 1024 ступени на каждый базовый цвет. В кинотеатрах используют и вовсе двенадцатиразрядные цифровые копии, — именно потому (а не только из-за одних лишь мощных ламп проекторов и отличного затемнения) картинка там смотрится настолько живой и насыщенной.
Так что Hi10P прежде всего имеет смысл, если сам оригинал видео закодирован с 10-битным представлением цвета (что для подавляющего большинства домашних приложений неверно, — даже для Blu-ray). Тогда десятибитная компрессия по алгоритмам MPEG оказывается явственно эффективнее, чем двухступенчатая грубая процедура — сперва сжатие с потерей цвета (из 10 бит в 8 бит), а затем распаковка полученного файла на лету с потугами на восстановление исходного цветового баланса (для воспроизведения на модном IPS-мониторе с 10-разрядным представлением цвета, например).
Хорошая новость: положительный эффект Hi10P наблюдается даже в том случае, если и оригинальный видеопоток, и тракт воспроизведения видео — восьмибитные. Можно долго распространяться о конкретных причинах этого (например, любая неточность цветопередачи при 8-битном кодировании окажется гораздо заметнее таковой при 10-битном — просто вследствие более крупной шкалы погрешностей), но в данном случае для нас важнее более практический момент.
А именно: как на экране своего ПК насладиться закодированным в H.264 Hi10P видео, добытым на просторах Интернета? В подавляющем большинстве случаев такие видеоролики пытаются воспроизводить стандартными программными плеерами, что приводит к с жутким задержкам и обильным артефактам — даже на самых современных ПК под Windows. Пользователи Linux тут в более выгодном положении: у них есть mplayer2, актуальные сборки которого вполне корректно обрабатывают десятибитное видео «из коробки».
Впрочем, и сидельцам в «Окошках» пугаться особенно нечего. Есть несколько способов организовать полноценное воспроизведение Hi10P даже не на самых современных Windows-компьютерах. Рассмотрим наиболее, пожалуй, прямолинейный, подходящий всем пользователям 32- и 64-разрядных версий Vista и 7. Итак, шесть простых шагов:
0. Никогда, в смысле — никогда в жизни не запускайте больше встроенный Windows Media Player. Честное слово, он безнадёжен.
1. Другое дело — Media Player Classic (MPC-HC), свободно распространяемое ПО с минималистским интерфейсом и отменной гибкостью. Брать его имеет смысл на домашней странице проекта. Обратите внимание на то, чтобы версия плеера соответствовала версии ОС, — 32- или 64-разрядной.
2. Установка MPC-HC линейна и незамысловата — и даже локализована. По завершении инсталляции обязательно выйдите в меню «Вид — Настройки» (горячая клавиша «О» латинское), выберите строчку «Форматы» в древовидном меню слева, нажмите на требующую администраторских прав кнопку «Изменить» и подтвердите для этой программы все доступные ассоциации аудио- и видеофайлов. Не пожалеете.
3. Уже сам по себе MPC-HC неплохо справляется и с 8-, и с 10-битными файлами среднего битрейта и высокого разрешения. Сложности могут возникать лишь с высокобитрейтовыми видеопотоками Hi10P: изображение начнёт отставать от звука вплоть до полного замораживания картинки. Надо задействовать внешние специализированные кодеки, а заодно и мощь дискретной видеокарты. Для этого придётся обратиться к свободно распространяемым фильтрам LAV: загрузить их и проинсталлировать.
4. На последнем этапе инсталляции LAV необходимо выбрать опцию настройки как минимум для фильтров видео, а в открывшемся окне — подтвердить использование аппаратного ускорения (при помощи интегрированной в ЦП графики либо, что предпочтительнее, дискретного ГП).
5. Теперь самое время снова запустить MPC-HC, нажать латинскую «О» для вызова меню опций, выбрать там в левом фрейме «Внешние фильтры» и добавить при помощи соответствующей кнопки всё, что установил в систему инсталлятор LAV, — LAV Audio Decoder, LAV Video Decoder, LAV Splitter и LAV Splitter Source.
6. Осталось лишь закрыть MPC-HC, открыть его снова и попробовать, как он обрабатывает видеопоток сверхвысокой плотности. Для примера можно поискать на торрентах какой-нибудь перегруженный в плане видеоряда клип, — скажем, по ключевым словам «fff highschool dxd ed01 1080p».
Интереса ради, попробуйте потом открыть тот же самый клип посредством Windows Media Player, The KMPlayer, да даже тем же Media Player Classic из сборки CCCP, — впечатления от просмотра будут совершенно иными.
Пока файлов с кодировкой Hi10P в Сети не так уж много: в конце концов, подавляющее большинство сёрферов смотрят видео исключительно на YouTube да «ВКонтакте». Но те, кто предпочитает коллекционировать дорогие сердцу фильмы и клипы на собственных HDD и NAS, в полной мере оценят рачительное отношение десятибитного профиля к дисковому пространству: чуть ли не двукратную (по крайней мере, тридцати-сорокапроцентную для подавляющего большинства случаев) экономию места при сохранении качества.