Так как в последнее время 10-битное видео набирает популярность то предлагаю закрепить данную мини-инструкцию по устранению проблем, связанных с просмотром 10-битного видео. В раздачах 10-битного аниме в дополнительной информации под спойлером можно указывать ссылку на данную инструкцию для оперативного устранения проблем.
Внимание! Ознакомьтесь также со 2ым постом данной темы, а уже затем поступайте так, как сочтёте для себя более лёгким\правильным.
Во-первых, установить последнюю версию набора кодеков CCCP или K-Lite. Если кодек-пак уже установлен, то достаточно просто обновить ffdshow.
Во-вторых, для полноценного вывода 10 бит рекомендуется скачать и установить LAVfilters и madVR (для установки распаковать куда-либо и запустить install.bat с правами администратора). После этого сделать следующее:
Отключить ВСЕ встроенные фильтры:
Задать LAV в качестве предпочитаемого декодера (добавить в список можно, нажав кнопку «Add filters» и выбрав в появившемся списке LAV Audio Decoder и LAV Video Decoder):
После открытия любого видео-файла в трее должна появиться иконка рендерера, клацнув по которой заходим в настройки:
и отключаем ”fullscreen exclusive mode”:
Проверка правильности выполнения:
Во время воспроизведения видео жмём Ctrl+J и смотрим на OSD: Правильно(слева) Неправильно(справа)
Также проверяем, правильные ли фильтры используются:
Любителям KMPlayer, для воспроизведения 10-битного видео необходимо также обновить системные кодеки (ffdshow или K-Lite/CCCP, см. выше) и сделать настройку плеера согласно сринам ниже:
Пример неправильного и правильного воспроизведения 10-битного видео:
*Значительно более высокий уровень сжатия, что приводит к намного меньшим размерам файлов. Первые тесты показывают уменьшение размера файлов на 20-40%. *Устраняются такие проблемы как сегментация, меньший уровень бандинга и улучшение детализации в тёмных сценах. *Более точное передание исходного изображения, с которого делался рип. *Меньше головной боли для энкодеров.
*Меньшая скорость кодирования и декодирования. *Некоторые проблемы с несовместимостью с непонятным и устаревшим железом, например с проигрыванием видео на PS3, XBox или на «железном» плеере. В том числе и на портативных устройствах.
Для начала устанавливать всякие кодек-паки (особенно унылые типа клайта) совсем не необходимо. Например на чистой системе вполне достаточно одного MPC-HC и madVR.
Также, я конечно знаю что это копипаста, но зачем было удалять пункт про аппаратное ускорение? Основным недостатком 10-бит как раз таки и является полное отсутвие аппаратного декодирования. Также тот текст писался хомячком, который похоже даже и не подозревает, что 10-бит не поддерживает не только «непонятное и устаревшее железо» но и вполне себе понятное и современное. Реально воспроизведение такого видео возможно исключительно на ПК и исключительно силами процессора.
Поэтому опимальный вариант такой: 1) поставить mpc, madVR, lav filters. 2) отключить H.264/AVC (FFmpeg) фильтр в mpc. 3) выбрать рендерер madVR. Все. Можно еще поиграться с настройками madVR (если с производительностью плохо).
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-битной глубины цвета в сравнении с 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 и стандартной на сегодня кадровой скорости. В дальнейшем область применения современных аппаратно-ускоренных видео кодеков будет расширяться.
В этой статье упоминались следующие программные средства (со ссылками для скачивания):