Декодирование h 265. Использование h.265 (HEVC) в Premiere

Новые бюджетные решения Intel и AMD с тестами по обновленной методике

Подобные статьи, в которых мы тестируем всевозможные платформы на предмет воспроизведения HD-видео различных форматов, постепенно становятся привычным дополнением к тестированию процессоров и графических ускорителей по традиционной методике. В прошлый раз под прицелом оказались настольные процессоры Intel и AMD различных поколений. На этот раз мы решили изучить способности аппаратных декодеров у обновленных бюджетных решений обоих крупнейших производителей и конкурентов.

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

Но сперва несколько слов об обновленной методике тестирования. Время не стоит на месте, Microsoft всячески подталкивает пользователей уйти с привычной Windows 7 на более новую версию ОС, и как следствие, уже сейчас можно найти немало нового железа, драйвера которого пишутся для Windows 8 (8.1), а для Windows 7 выходят позже или вообще никогда.

Главным образом по этой причине мы обновили ОС на тестовом стенде до Windows 8.1 (редакция Профессиональная x64), включая все обновления по состоянию на сентябрь 2015 года. Поскольку сравнивать напрямую старые результаты, полученные на Windows 7, с новыми в любом случае будет некорректно, мы перешли на DXVA Checker версии 3.8.0. В этой программе есть очень удобный для тестировщика режим Benchmark, в котором видео воспроизводится настолько быстро, насколько это позволяет аппаратный или программный декодер.

Важно отметить, что в прошлых частях сводного тестирования использовалась одна и та же, самая первая версия DXVA Checker. Между тем, начиная с версии 2.0.0 алгоритм для режима Benchmark был сильно изменен (вероятно, он стал более аккуратным и качественным, хотя в режиме оценки «на глаз» никакой разницы заметить не удается), в результате чего показатели всех без исключения декодеров стали значительно более скромными. Чтобы лучше увидеть разницу между старым и новым алгоритмом, мы еще раз протестировали платформу на базе Intel Celeron G540, о возможностях которой было рассказано в третьей части данного тестирования.

Набор кодеков, напротив, остался прежним. В него входят LAV Filters, Media Player Classic Black Edition (MPC-BE) и Windows Media Player 12. Часть кодеков доступна как в виде DirectShow(DS)-фильтров, так и в качестве компонента для фреймворка Media Foundation (ME). Кроме того с переходом на 64-битную платформу появилась возможность выбирать между 32- и 64-битной версиями озвученных выше продуктов. Забегая вперед, отметим, что практической разницы между DS и ME, а также 32- и 64-битной версиями кодеков на сегодняшний день нет, их результаты различаются в пределах погрешности.

Список тестовых роликов в основном остался тем же, однако для каждого из сценариев в пару к столь привычному и отлично поддерживаемому «железом» кодеку H.264 (AVC) был добавлен ролик, закодированный в формате H.265 (HEVC) - более современном и прогрессивном, но все еще довольно сыром и плохо поддерживаемом как устройствами записи, так и устройствами воспроизведения. На текущий момент поддержку аппаратного декодирования HEVC можно считать приятным бонусом и заделом на будущее. Главное, чтобы финальная версия стандарта не была переработана настолько, чтобы выпускаемые сейчас декодеры потеряли свою актуальность.

Сами ролики для тестирования любезно подготовил автор раздела «Цифровое видео» Сергей Мерьков, вы можете скачать их с целью проведения аналогичного тестирования имеющейся в вашем распоряжении программно-аппаратной платформы:


Формат Разрешение Частота кадров Битрейт Ссылка
h264-1080-30p-10mbps.mp4 H.264 1080p 30 10 Мбит/с Скачать
h264-1080-30p-30mbps.mp4 H.264 1080p 30 30 Мбит/с Скачать
h264-1080-30p-100mbps.mp4 H.264 1080p 30 100 Мбит/с Скачать
h264-1080-60p-15mbps.mp4 H.264 1080p 60 15 Мбит/с Скачать
h264-2160-30p-20mbps.mp4 H.264 2160p 30 20 Мбит/с Скачать
h264-2160-30p-100mbps.mp4 H.264 2160p 30 100 Мбит/с Скачать
h265-1080-30p-10mbps.mp4 H.265 1080p 30 10 Мбит/с Скачать
h265-1080-30p-30mbps.mp4 H.265 1080p 30 30 Мбит/с Скачать
h265-1080-30p-100mbps.mp4 H.265 1080p 30 100 Мбит/с Скачать
h265-1080-60p-15mbps.mp4 H.265 1080p 60 15 Мбит/с Скачать
h265-2160-30p-20mbps.mp4 H.265 2160p 30 20 Мбит/с Скачать
h265-2160-30p-100mbps.mp4 H.265 2160p 30 100 Мбит/с Скачать

Тестировать ролики с разрешением ниже 1080p на современных платформах - занятие бессмысленное, поэтому самый «легкий» экземпляр в нашем списке примерно соответствует качеству BDRip 1080. Full HD-ролики, доступные для онлайн-воспроизведения на Youtube и других видеохостингах, имеют, как правило, такой же или более низкий битрейт. Во втором ролике битрейт повышается до 30 Мбит/с, что примерно соответствует качеству BDRemux, то есть Blu-ray без какого-либо ухудшающего качество картинки пережатия. Третий ролик намеренно использует ненормально высокий битрейт, который обычно не встречается в реальной жизни. Это хорошая проверка для выявления «запаса прочности» у тестируемого декодера, однако плохие результаты именно на этом ролике еще не означают, что платформа не подходит в качестве основы для построения HTPC.

Ролики с увеличенным до 60 количеством кадров в секунду сейчас умеют снимать даже не самые дорогие экшн-камеры и смартфоны, поэтому все большее количество спортивных видео, роликов из путешествий, да и просто «влогов» становятся доступны в формате с 50 и 60 FPS. С другой стороны, если кроме воспроизведения полнометражных фильмов и сериалов ничего не требуется, то на качество декодирования подобных роликов можно не обращать особого внимания.

Видео в разрешении 2160p (оно же 4K) также становится в последнее время все популярнее. И хотя доступных и качественных мониторов и телевизоров с соответствующим разрешением пока что крайне мало, да и платформы с видеовыходами HDMI и DisplayPort подходящего стандарта встречаются не повсеместно - все равно воспроизведение таких роликов даже на экране с разрешением Full HD будет давать выигрыш в качестве хотя бы из-за более высокого битрейта. Ролики в этом разрешении также представлены с двумя вариантами битрейта - обычным и сильно завышенным, по аналогии с Full HD, о котором мы говорили выше.

Эти же шесть роликов, с сохранением параметров битрейта и разрешения, были перекодированы в формат H.265 (HEVC). Набор кодеков и методика тестирования с помощью DXVA Checker для них точно такая же, никаких дополнительных действий и настроек не производилось.

Краткий обзор тестируемых платформ

Всего платформ в этой части тестирования представлено 5 штук, при этом полностью новой и неизученной является только одна - процессор Intel Celeron N3150, интегрированный на плату ASRock N3150-ITX. Этот процессор выполнен по техпроцессу 14 нм и входит в новую линейку Braswell. Его графический ускоритель Intel HD Graphics восьмого поколения оснащен аппаратным декодером H.265 и позволяет выводить картинку в разрешении 4K через разъемы HDMI и DisplayPort.

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

  • Intel Celeron N3150 ()
  • Intel Pentium J2900 (ASRock Q2900-ITX)
  • AMD Athlon 5350 (графика Radeon HD8400)
  • дискретная видеокарта AMD Radeon R7 240 (Asus R7240-SL-2GD3-L)

Откровенно старый процессор Intel Celeron G540 был повторно протестирован только для того, чтобы продемонстрировать разницу в результатах старой и новой версии DXVA Checker, о чем мы уже упоминали выше. Результаты Intel Pentium J2900 должны быть очень похожи на результат Celeron J1800, равно как и AMD Athlon 5350 по скорости аппаратного декодирования не должен сильно отличаться от AMD A6-5200, поскольку эти пары являются представителями одного семейства - Bay Trail и Kabini соответственно.

В проводимых нами тестированиях платформ явно не хватает дискретных видеокарт AMD и Nvidia. Их основное сравнение будет представлено в следующих частях сводного тестирования, а в качестве пробного шага мы решили посмотреть на результаты графического ускорителя AMD Radeon R7 240 - относительно новой платы начального уровня без поддержки вывода картинки с разрешением Ultra HD.

Воспроизведение HD-видео

В сводную диаграмму включены показатели среднего количества FPS согласно данным DXVAChecker для наиболее производительного декодера. Для удобства восприятия результаты для роликов H.264 и H.265 представлены отдельно.

Результаты получились интересные и немного озадачивающие. С роликами в разрешении Full HD все испытуемые справились вполне успешно. Проблемы возникли только у «старичка» Celeron G540, которому намного комфортнее работалось на 32-битной версии Windows 7 со старыми драйверами и версиями кодеков. Если раньше его аппаратный декодер с огромной скоростью молотил абсолютно любое видео 1080p, то теперь декодер включается, нагрузки на центральный процессор нет, но видео явно тормозит, воспроизводится с пропуском кадров. Использование старых роликов (Ducks Take Off и Porsche Demo) и разных плееров проблему не решает, помогает только отключение аппаратного ускорения и декодирование силами CPU - в таком режиме ролик с разрешением 1080p и скоростью 60 FPS воспроизводится нормально.

С видео в ультравысоком разрешении ситуация заметно хуже. У самого нового Intel Celeron N3150 аппаратный декодер включается, но работает недостаточно быстро - небольшой пропуск кадров периодически случается, это будет раздражать в моменты резкой смены картинки. Пропуски видны и при обычном воспроизведении роликов через Windows Media Player и MPC-BE, так что на ошибку в DXVA Checker это не похоже. Возможно, ситуация станет лучше с выходом новой версии драйверов Intel.

Более старый Intel Pentium J2900 справляется с задачей немного лучше, хотя и у него запаса практически не чувствуется. И это при том, что со старыми ОС и драйверами его ближайший «родственник» Celeron J1800 показывал примерно вдвое лучший результат.

Ранее мы уже убеждались в том, что интегрированный графический чип Radeon HD8000 не оснащается аппаратным декодером 4K-видео и, следовательно, воспроизведение таких роликов полностью ложится на CPU. AMD Athlon 5350 справляется с этой задачей немного лучше, чем AMD A6-5200, но в любом случае его скорости не хватает для стабильных 30 кадров в секунду. Было интересно узнать, на что способна дискретная карта начального уровня AMD. Ведь если для игр она практически непригодна, то, быть может, в нее устанавливают более продвинутый аппаратный декодер для видео. Однако по факту оказалось, что ни по скорости, ни по количеству поддерживаемых форматов Radeon R7 240 не отличается от Radeon HD8000: только Full HD, никакого 4K.

Занятно, что результат программного декодирования потока 2160p для процессора Intel Celeron G540 стал заметно выше, чем был на Windows 7. Теперь его производительности вполне хватает на 4K-ролики со стандартным битрейтом. Нагрузка на процессор при этом не поднимается выше 85%, так что остается еще небольшой запас на фоновые операции, которые могут помешать плавному воспроизведению видео.

Результаты графической карты AMD Radeon R7 240 на данной диаграмме не представлены по той простой причине, что аппаратного ускорителя HEVC в этом чипе нет, а скорость программного декодера зависит исключительно от скорости центрального процессора. Дискретный видеочип в этом случае никак не помогает и не мешает процессу.

Из оставшихся участников тестирования блок аппаратного декодирования потока H.265 обнаружился только у Intel Celeron N3150, и это полностью совпадает с заявленными спецификациями платформ. Занятно, что скорость декодирования H.265 у нового процессора Intel оказывается даже немного выше, чем для более старого и распространенного H.264. Особенно это важно и заметно при воспроизведении видео в разрешении 2160p: если на роликах AVC были заметны пропуски как в режиме бенчмарка, так и в обычных плеерах, то с HEVC ситуация несколько выправляется, ролики 4K с адекватным битрейтом можно смотреть на скорости 30 кадров в секунду. Правда, «запаса прочности» по-прежнему не наблюдается, что несколько настораживает и расстраивает.

Вычислительной мощности всех остальных платформ вполне хватает на воспроизведение Full HD-роликов в новом формате, даже при удвоенной частоте кадров. Но стоит поднять битрейт до аномально высоких значений или повысить разрешение до 2160p, и просмотр видео превращается в слайд-шоу.

Итоги

По итогам очередной части сводного тестирования можно сделать два основных вывода. Во-первых, дискретные видеокарты AMD 2xx начального уровня обладают точно таким же по скорости и поддерживаемым форматам аппаратным декодером для видеопотока, что и встроенные в современные APU графические ускорители этой компании. Возможности этого декодера на сегодняшний день покрывают потребности большей части пользователей, потому как работа с кодеком H.265 и разрешением 4K по-прежнему является скорее экзотикой, чем повседневной необходимостью. Тем не менее, никакого задела на будущее AMD Radeon R7 240 и другие построенные на аналогичном GPU ускорители не обеспечивают, а это делает их чуть менее привлекательными в сравнении с конкурентами.

Во-вторых, аппаратный декодер Intel для процессоров из линейки Braswell можно назвать одним из самых продвинутых на рынке x86-совместимого оборудования. В него заложена поддержка как ультравысокого разрешения 4K, так и нового перспективного кодека H.265 (HEVC). Правда, полноценно воспользоваться им в варианте «из коробки» получится не всегда. Наши тесты показали, что для нахождения оптимального по скорости решения может потребоваться не самый быстрый и увлекательный процесс подбора версии операционной системы, драйверов, кодеков, плеера и их совместной настройки.

| Использование h.265 (HEVC) в Premiere.

Использование h.265 (HEVC) в Premiere.

актуально на 01.2019

Формат H.265/HEVC и его применение

H.265 также называемый High Efficiency Video Coding (HEVC) это стандарт компрессии видео, который разработан для более эффективного сжатия видео высокого разрешения. Конечной целью является передача 4К контента высокого качества по существующим каналам связи. Netflix в августе 2016 опубликовал результаты своего сравнения кодеков x264, VP9 и x265* на основе видеоклипов из 500 фильмов и ТВ передач, по результатам которого кодеки VP9 и x265 дают на 40–50% лучшее сжатие 1080p, чем x264 (то есть размер файла может быть в половину от h.264). Используемые алгоритмы сложнее и требуют больших вычислительных ресурсов: для декодирования нужно примерно в 2 раза больше мощности чем для h.264, для кодирования ещё в нескольок раз больше. Формат рассчитан на высокое разрешение, на низких разрешениях превосходство над h.264 не так существенно.

На видеокамерах h.265 получил популярность в 2018 году, благодаря новым IPhone, GoPro Hero, DJI Phantom 4k. Также часто используется в IP камерах видеонаблюдения. H.265 - это формат для воспроизведения на пользовательских устройствах: фактическим телевизионным стандартом для 4К выбран H.265, модельные ряды телевизоров с 2015 года имеют поддержку hevc, современные приставки выходят с его поддержкой. На Facebook и Youtube можно загрузить h.265. Контейнер для h.265 это файлы mp4 и mov. Аппаратная поддержка кодирования и декодирования h.265 имеется на видеокартах NVidia начиная с Maxwell 9x0-й серия, новых картах AMD, в интеловских процессорах начиная со Skylake.

Стандарт распространён не так широко, как h264, препятствиями являются слишком сложные алгоритмы сжатия и слишком дорогая и сложная система лицензирования (в 7 раз дороже чем MPEG). На настоящее время Netflix и Youtube работают в VP9. На подходе следующий открытый стандарт AOMedia Video 1 (AV1), который при равном качестве будет иметь на 25% меньший битрейт и главное бесплатный, почему на него планирует перейти Youtube. Штатная возможность импорта AV1 появилась в Adobe Premiere 2018.1. Стандарт НЕVC продолжает развиваться, поэтому устройства и программы, воспроизводящие hevc видео ранних версий, не факт что смогут проиграть все hevc видео. В 2019 выйдут камеры Sony c кодеком XEVC, базирующимся на H.265 (HEVC) версии 2. В 2020 году разработчики hevc собираются принять новый стандарт vvc(h.266) на 30% более эффективный чем h.265.

Cinegy Daniel2

Прежде всего это коммерческий кодек позиционируемый как альтернатива монтажным кодекам DNxHD/ProRes. Уникальной особенностью заявлена работа на GPU (CUDA), за счет этого он очень быстр, что нужно для монтажа 4К, 8К, 16К материала. Кодек универсальный - при отсутствии gpu работает на процессоре и тоже быстро. Кодек может быть интересен как имеющий плагин ввода/вывода для Премьера, при чём кроме собственно кодека Daniel2 в нём есть экспорт в h.264 и hevc через блок nvenc видеокарт NVidia. Отличается несколько завышенными системными требованиями: Windows 10 64bit и NVidia Pascal.

Другие плагины экспорта

Профессиональный пакет Sorenson Squeeze в версиях 10 и 11 поддерживает программное кодирование h.265 и VP9. В 2018 проект закрыт.
Коммерческий кодировщик Cinemartin CINEC имеет плагин для Премьера, судя по характеристикам и функционалу, основанный на бесплатном ffmpeg, только за неадекватно высокую цену. Сайт не обновляется с 2014 года.
Пакеты Drastic MediaReactor в версиях Workstation и Lite for Adobe имеют плагин импорта h.265.

Конвертеры

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

Экспорт из Premiere через Frame Server

Для прямого экспорта из Премьера через внешние конвертеры можно воспользоваться плагином Advanced Frame Server.
1. Устанавливаем Advanced Frame Server , вспоминаем путь куда установили и копируем dfscPremiereOut.prm оттуда в C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore
2. Устанавливаем последнюю версию MediaCoder , скачиваем и устанавливаем апдейты.
3. Экспортируем обычным образом (например File > Export > Movie) и выбираем Advanced Frame Server выходным форматом.
4. Вводим имя промежуточного файла для экспорта, например "signpost", Color space - YUY2.
5. Нажимаем "Export" для запуска FrameServing.
6. Запускаем Mediacoder и загружаем "signpost", в закладке Video выбираем Format: H.265, если видеокарта NVidia GTX 950 и выше, то можно включить аппаратное кодирование - выбрать Encoder: NVENC.

7. Нажимаем "Start".
8. После завершения кодирования в MediaCoder остается отменить экспорт в Premiere. К сожалению, из-за этой особенности работы пакетное кодирование через Adobe Media Encoder протекает в ручном режиме.

Можно даже не использовать MediaCoder, StaxRip и подобные фронт-энды. Frameserver позволяет работает с энкодерами из командной строки, использовать TSmuxer, FFMPEG и X265 напрямую. При экспорте этим способом так же возможно задействовать аппаратное кодирование h.265 при наличии видеокарты NVidia от 9x0-й серии или процессора Intel серий от SkyLake.
Из недостатков: может возникнуть проблема с цветовыми пространствами bt.601 vs bt.709.

iPhone 8 и iPhone X и Premiere

В новых iphone запись видео делается в формате hevc в файлы с контейнером mov. В зависимости от версии Премьера и Windows возникают разные ситуации:
* Если у вас установлена Windows 10 и Премьер версии 2018.1 и новее, то такие файлы импортируются без проблем (нужна свежая сборка win10 с HEVC Video Extensions или HEVC Video Extensions from the Device Manufacturer).
* Если у вас стоит Премьер 2018 и новее, но Windows 7, то файлы не импортируются, проблема в том что в с этой версии премьер открывает hevc при помощи системного декодера MFC, которого в Win7 нет. Как вариант можно попробовать переименовать mov в mp4.
* Если у вас стоит старый Премьер (2017.x - 2015.1) и Win 10, то проще всего установить последнюю версию Премьера, или же можно попробовать переименовать в mp4 (файлы mov с hevc внутри будут открываться через Quicktime, но QT не умеет работать с hevc, поэтому попробуем открыть их через ImporterMPEG).
* Если у вас стоит старый Премьер (2017.x - 2015.1) и Win 7, то можно попробовать переименовать в mp4 (попробуем открыть через ImporterMPEG).
* Если у вас совсем старый Премьер (2015.0 и старее) и любая версия windows, то придется перекодировать.

** Если у вас установлен новый Premiere, но в триальной версии, то файлы hevc в любом контейнере не будут открываться. Проверить на триал легко - в полной версии должен быль доступен hevc для экспорта.
** Если переименование файлов не поможет, то нужно перекодировать. Сделать это сразу на айфоне можно в приложении "HEVC & H.264 Video Compressor", на компьютере можно перекодировать в HandBrake.

Также может возникнуть проблема с рассинхронизацией звука и видео на таймлайне. Это связано с тем что при записи некоторые кадры могут пропускаться (так называемый vfr) и Премьер 2015.0, 2017.x, 2018.0 не могут это корректно обрабатывать. Поэтому при перекодировании таких файлов пользуйтесь конверторами которые позволяют выправлять кадровую частоту (обычно то называется constant frame rate).

Полезные ссылки

https://helpx.adobe.com/premiere-pro/using/whats-new.html
https://helpx.adobe.com/premiere-pro/kb/fixed-issues.html
https://blogs.gnome.org/rbultje/2016/12/13/overview-of-the-vp9-video-codec/

Как известно, все мы любим смотреть фильмы, видеоролики или передачи в хорошем качестве. Но в плане хранения видео на компьютере возникает множество проблем, обычно связанных с банальной нехваткой места. Относительно недавно появился новый стандарт, и многих пользователей сразу же возник закономерный вопрос: «Что это - HEVC?». Рассмотрим несколько основных аспектов, связанных с внедрением и практическим использованием нового кодека.

Что это: HEVC

Если говорить о фильмах, которые записываются на съемные носители, обычно размер самого диска влияет на выбор метода Те же Blu-ray-диски могут хранить фильмы в высоком разрешении объемами более 25 Гб. Однако, согласитесь, держать такой фильм на винчестере, особенно когда его вместимость явно ограничена, с практической точки зрения является совершенно нецелесообразным.

Для этого используется кодирование роликов, позволяющее даже без ущерба качеству уменьшить размер конечного файла за счет специальных методов сжатия. А на практике что это? HEVC на сегодняшний день является самым продвинутым кодеком, можно сказать, даже революцией в области видео. Но чем же не устраивает любителей качественного видео старый кодек H.264?

High Efficiency Video Coding: основы кодирования

Для этого следует обратиться к пониманию основ кодирования сигнала. Дело в том, что здесь одну из главных ролей играет использование максимального блока. Для H.264 это 16 х 16 или в сумме 256 пикселей.

Для нового стандарта H.265 такой блок может быть в 16 раз больше! А если учесть еще и технологии изменяемых блоков, когда размер блока вбирается непосредственно самим алгоритмом в процессе сжатия, нетрудно сообразить, что новый кодек является, так сказать, наиболее «терпимым» к высоким разрешениям и на сегодняшний день поддерживает даже 8k (8192 х 4320 пикселей). Можно добавить сюда еще и функцию параллельного кодирования. Таким образом, кодек HEVC при высоком качестве изображения позволяет уменьшить битрейт, а соответственно, и размер файла. Экономия места в сравнении со стандартом H.264 может достигать 25-50%!

Поддержка 4k и 8k: насколько это эффективно

Что же касается эффективности применения такого кодека, на заре своего появления он особой популярности не завоевал. Связано это было с тем, что поддержку нового стандарта могли обеспечить только самые мощные и современные графические чипы GeForce 970 или 980.

Собственно, и сам процесс кодирования на других менее мощных устройствах занимал порядка 10-12 часов. Таким образом, с точки зрения практической, применение нового стандарта было невыгодным.

Со временем ситуация изменилась, и теперь технологии на основе H.265 начинают применяться повсеместно. В плане экономии места в сравнении с H.264 можно привести достаточно красноречивый пример. При разрешении 720p показатель экономии составляет порядка 25%, а при условии качества 4k - более 50%. Кстати сказать, если использовать рип Blu-ray-диска, размер исходного видео может быть уменьшен почти в 10 раз (он будет «весить чуть более 3 Гб)!

Основные нововведения

Если посмотреть на некоторые новшества, среди всего того, что представлено в требованиях к новому кодеку, можно отметить следующие:

  • поддержка профилей Main 8 и 10 бит (в перспективе - 12 бит);
  • наличие двумерных разделимых, неразделимых и направленных интерполяционных фильтров ASF;
  • компенсация движения с точностью до 1/8 пикселя;
  • использование системы адаптивного предсказания ошибок и выбора матрицы в процессе кодирования;
  • наличие сравнительной схемы кодирования вектора движения;
  • режимно-зависимое внутрикадровое кодирование.

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

Итак, с самим кодеком разобрались. Что это (HEVC), думается, уже немного понятно. Теперь перейдем к самому насущному вопросу, который, несомненно, интересует большинство пользователей. Что же использовать для просмотра видео, закодированного при помощи новых алгоритмов?

В принципе, в самом простом варианте можно использовать программные плееры. Одним из самых интересных, по мнению многих, является специализированное и узконаправленное приложение Daum PotPlayer. Если не подходит такой вариант, можно использовать популярный VLC Media Player, только установить нужно обязательно последнюю версию, поскольку только в ней имеется встроенная поддержка HEVC.

Однако, несмотря на все преимущества, можно отметить и массу проблем. В большинстве своем это относится только к тому, что в Интернете сейчас можно найти не так уже много фильмов или видеороликов, закодированным при помощи нового алгоритма. Что еще более огорчает, так это отсутствие поддержки со стороны вендоров. Если с программным обеспечением вопросы еще хоть как-то решаются, то производители домашних кинотеатров или Smart TV не торопятся осваивать выпуск продукции с поддержкой H.265. Да и сам кодек, хоть и считается революционным, все равно особого распространения пока не получил. Но хочется надеяться, что это временное явление.

Вместо итога

Вот вкратце и все, что касается нового стандарта в кодировании видео. Конечно, здесь были затронуты далеко не все технические стороны новой технологии, однако даже такая краткая информация поможет любому пользователю сделать вывод об основных нововведениях, целесообразности внедрения и практического использования таких технологий. А ведь по большому счету, они могут перевернуть все наши представления о качестве и обработке видеоинформации. И, по всей видимости, скоро устаревший стандарт H.264 уйдет в небытие, ведь технологии не стоят на месте. Если взять догосрочную перспективу, очень сможет быть, что и вместо кодека HEVC будет разработано что-то еще более мощное.

Более шести лет назад 13 сентября 2010 года на форуме IDF компания Intel представила микроархитектуру процессоров Sandy Bridge - второго поколения процессоров Intel Core. Процессор и графическое ядро объединили на одном кристалле, а само графическое ядро значительно обновилось и увеличило тактовую частоту. Именно в Sandy Bridge появилось «секретное оружие» - технология Intel Quick Sync Video (QSV) для аппаратного ускорения кодирования и декодирования видео. Маленький участок SoC специально выделили для размещения специализированных интегральных схем, которые занимаются только видео. Это был настоящий аппаратный транскодер.


Встроенная графика 9-го поколения HD Graphics 530 в процессоре Intel Core i7 6700K с 24 блоками выполнения команд (EU), организованными в три фрагмента по 8 блоков.

Удивительно, но Intel сумела обойти и AMD, и Nvidia в реализации аппаратного ускорения кодирования видео: похожие технологии AMD Video Codec Engine и Nvidia NVENC в видеокартах AMD и Nvidia появились со значительным опозданием (алгоритмы компрессии требуют серьёзной адаптации под процессоры видеокарт). Вот почему идея и разработка QSV хранились в секрете пять лет .

Сказать, что QSV была востребована - значит, ничего не сказать. Воспроизведение (декодирование) видео с аппаратной поддержкой стало гораздо меньше отнимать ресурсов у других задач в ОС, меньше нагревать CPU и потреблять меньше электроэнергии.

К тому же, в последние годы кодирование видео стало одной из самых ресурсоёмких задач на ПК. Популярность YouTube превратила миллионы человек в операторов и режиссёров. А тут ещё и повсеместное распространение смартфонов, для которых требуется транскодирование с DVD в сжатый AVC MP4/H.264. В результате, практически каждый ПК стал видеостудией. Массово распространились IPTV и потоковые видеотрансляции в интернете. Компьютер начал выполнять роль телевизора. Видео стало вездесущим и превратилось в один из самых популярных видов контента на ПК. Оно кодируется и транскодируется постоянно и везде: на разные битрейты, в зависимости от типа устройства, размера экрана и скорости интернета. В такой ситуации возможность быстрого кодирования и декодирования видео в процессорах напрашивалась сама собой. Так в Intel GPU встроили аппаратный кодер/декодер.

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


Скриншот открытого видео в программе Elecard StreamEye , 1920×1040

Аппаратная поддержка кодирования и декодирования означает, что непосредственно в процессоре реализованы интегральные схемы, специализированные для конкретных задач кодирования и декодирования. Например, дискретное косинусное преобразования (DCT) выполняется при кодировании, а обратное дискретное косинусное преобразования - при декодировании.

За прошедшие пять лет технология Intel QSV значительно продвинулась вперёд. Добавлена поддержка свободных видеокодеков VP8 и VP9, обновлены драйверы под Linux и т.д.

Технология улучшалась с каждым новым поколением Intel Core, вплоть до нынешнего 6-го поколения Skylake.

Микроархитектура GPU 9-го поколения

Последняя версия QSV 5.0 вышла вместе с микроархитектурой ядра шестого поколения Skylake. Данная версия GPU в официальной документации Intel классифицируется как Gen9, то есть графика 9-го поколения.


Процессор Intel Core i7 6700K для настольных компьютеров содержит 4 ядра CPU и встроенную графику 9-го поколения HD Graphics 530

С каждой новой микроархитектурой в GPU увеличивалось количество блоков выполнения команд (EU). Оно выросло с 6 в Sandy Bridge до 72 в топовой графике Iris Pro Graphics 580 на кристаллах Skylake. В том числе за счёт этого производительность GPU увеличилась десятикратно без увеличения тактовой частоты. Во всей графике последнего поколения Iris и Iris Pro имеется встроенный кэш Level 4 на 64 или 128 МБ.

▍Микроархитектура блоков выполнения команд (EU)

Базовым строительным блоком микроархитектуры Gen9 является блок выполнения команд (EU). Каждый EU сочетает в себе одновременную многопоточность (SMT) и тщательно настроенную чередующуюся многопоточность (IMT). Здесь работают арифметическо-логические устройства с одиночным потоком команд, множественным потоком данных (SIMD ALU). Они выстроены по конвейерам многочисленных тредов для высокоскоростного проведения вычислений с плавающей запятой и целочисленных операций.

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


Блок выполнения команд (EU)

Каждый тред в блоке выполнения команд Gen9 содержит 128 регистров общего назначения. В каждом из регистров 32 байта памяти, доступной в виде 8-элементного вектора SIMD или 32-битных элементов данных. Таким образом, на каждый тред приходится 4 КБ файла реестра общего назначения (GRF). Всего на один EU приходится 7 тредов с общим количеством 28 КБ GRF на EU. Гибкая система адресации позволяет адресовать несколько регистров вместе. Состояние треда в текущий момент сохраняется в отдельном файле архитектуры реестра (ARF).

В зависимости от нагрузки, аппаратные треды в EU могут выполнять параллельно один код от одного вычислительного ядра либо могут выполнять код от совершенно разных вычислительных ядер. Состояние выполнения в каждом треде, в том числе его собственные указатели инструкций, хранятся в его независимом ARF. На каждом цикле EU может выдавать до четырёх различных инструкций, которые должны быть от четырёх различных тредов. Специальный арбитр тредов (Thread Arbiter) отправляет эти инструкции в один из четырёх функциональных блоков для выполнения. Обычно арбитр может выбирать из разнородных инструкций, чтобы одновременно загружать все функциональные блоки и, таким образом, обеспечивать параллелизм на уровне инструкций.

Пара модулей FPU на схеме на самом деле выполняет и операции с плавающей запятой, и целочисленные вычисления. В Gen9 эти модули способы обработать за цикл не только до четырёх операций с 32-битными числами, но и до восьми операций с 16-битными. Операции сложения и умножения выполняются одновременно, то есть блок EU способен выполнить максимум до 16 операций с 32-битными числами за один цикл: 2 FPU по 4 операции × 2 (сложение+умножение).

Генерацией SPMD-кода для многопоточной загрузки EU занимаются соответствующие компиляторы, такие как RenderScript, OpenCL, Microsoft DirectX Compute Shader, OpenGL Compute и C++AMP. Компилятор сам эвристически выбирает режим загрузки тредов (SIMD-width): SIMD-8, SIMD-16 или SIMD-32. Так, в случае SIMD-16 на одном EU могут одновременно исполняться 112 (16×7) потоков.

Обмен данными в рамках одной инструкции внутри блока EU может составлять, например, 96 байтов на чтение и 32 байтов на запись. При масштабировании на весь GPU с учётом нескольких уровней иерархии памяти получается, что максимальный теоретический лимит обмена данными между FPU и GRF достигает нескольких терабайт в секунду.

▍Масштабируемость

Микроархитектура GPU обладает масштабируемостью на всех уровнях. Масштабируемость на уровне тредов переходит в масштабируемость на уровне блоков выполнения команд. В свою очередь, эти блоки выполнения команд объединятся в группы по восемь штук (8 EU = 1 subslice).

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


Группа из 8 блоков EU (subslice)

В свою очередь группы из 8 EU объединяются в группы по 24 EU (3 sublices = 1 slice). Эти срезы по 24 блока, в свою очередь, тоже масштабируются: существующая графика Gen9 содержит 24, 48 или 72 EU.

В графике Gen9 увеличен объём кэша третьего уровня L3 до 768 КБ на каждую группу из 24 EU. У всех семплеров и портов данных свой собственный интерфейс доступа к L3, позволяющий считать и записать по 64 байта за цикл. Таким образом, на группу из 24 EU приходится три порта данных с полосой передачи данных к кэшу L3 192 байта за цикл. Если в кэше нет данных по запросу, то данные запрашиваются или направляется для записи в системную память, тоже по 64 байта за цикл.


Микроархитектура Gen9 из двух групп по 24 (3×8) EU

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

Что умеет QSV в Skylake

В Gen9 появилась полная поддержка аппаратного ускорения при кодировании и декодировании H.265/HEVC , частичная поддержка аппаратного кодирования и декодирования свободным кодеком VP9. Произведены значительные улучшения в технологии QSV. Они повысили качество и эффективность кодирования и декодирования, а также производительность фильтров в программах для транскодирования и видеоредактирования, которые используют аппаратное ускорение.

Интегрированная графика Skylake поддерживает стандарты DirectX 12 Feature Level 12_1, OpenGL 4.4 и OpenCL 2.0. Решено полностью отказаться от мониторов VGA, зато Skylake GPU поддерживают до трёх мониторов c интерфейсами HDMI 1.4, DisplayPort 1.2 или Embedded DisplayPort (eDP) 1.3.

Аппаратное ускорение декодирования видео доступно графическому драйверу через интерфейсы Direct3D Video API (DXVA2), Direct3d11 Video API или Intel Media SDK, а также через фильтры MFT (Media Foundation Transform).

В графике Gen9 поддерживается аппаратное ускорение декодирования AVC, VC1, MPEG2, HEVC (8 бит), VP8, VP9 и JPEG.

▍Аппаратное ускорение декодирования видео

Кодек
Профиль
Уровень
Максимальное разрешение
MPEG2
Main
Main
High
1080p
VC1/WMV9
Advanced
Main
Simple
L3
High
Simple
3840×3840
AVC/H264
High
Main
MVC & stereo
L5.1
2160p(4K)
VP8
0
Unified level
1080p
JPEG/MJPEG
Baseline
Unified level
16k × 16k
HEVC/H265
Main
L5.1
2160(4K)
VP9
0 (4:2:0 Chroma 8-bit)
Unified level
ULT, 4k 24fps @15Mbps
ULX, 1080p 30fps @10Mbps

– Внутре! – прошелестел старичок. – Внутре
смотрите, где у неё анализатор и думатель…

А. и Б. Стругацкие «Сказка о Тройке»

Телевидение, давно и прочно вошедшее в каждый дом, стремительно меняется. Если первые телевизоры, по сути, были обычными супергетеродинными приёмниками, то современные мультимедийные центры назвать телевизорами язык не поворачивается. Они превратились в сложные компьютеризированные устройства, предоставляющее зрителю высочайшее качество изображения и звука и массу дополнительных услуг. Советский стандарт монохромного, а затем и цветного телевидения обеспечивал разрешение картинки 800 х 600 при аналоговом вещании и ширине полосы одного канала в 6,5 МГц. Диагональ вакуумных кинескопов не превышала 67 см (26 дюймов).

Успехи в создании плазменных и жидкокристаллических панелей с большой диагональю (70 дюймов – не редкость) привели к тому, что разрешение телевизионной картинки пришлось увеличивать. Так появилось телевидение высокой чёткости, фактическим стандартом которого в конечном счёте стало разрешение 1080p. Передавать картинку с таким разрешением в аналоговом формате было невозможно, поскольку один канал занимал бы полосу около 250 МГц, и телевидение стало цифровым. Для того чтобы получить приемлемые значения битрейта ТВ сигнала, его сжимают с помощью программно-аппаратных средств, называемых кодеками. Для HDTV стандартным является кодек H.264/MPEG-4 AVC (Advanced Video Coding), однако в связи с появлением на рынке устройств отображения с разрешением 4К, а в перспективе – 5К и даже 8К возникла необходимость в разработке нового кодека, который получил название H.265 или HEVC (от англ. High Efficiency Video Coding – высокоэффективное видеокодирование).

Главное отличие нового кодека от старого состоит в том, что при одинаковом качестве изображения видеопоток H.265 имеет вдвое меньший битрейт, чем поток, сжатый кодеком H.264. К примеру, если для передачи сжатого кодеком Н.264 видеопотока разрешением 1080p с частотой кадров 30 Гц битрейт составляет примерно 4 Мб/с, то у изображения, сжатого новым кодеком, битрейт упадёт до 2 Мб/с. Кодек поддерживает видео в разрешении до 7680 х 4320 пикселей, т.е. 8К.

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

Максимальный размер блока в стандарте H.264 составляет 256 пикселей (16 x 16), а в стандарте H.265 он может быть в 16 раз больше (4096 = 64 x 64), причём размер блока выбирается самим алгоритмом в процессе кодирования в зависимости от содержания кодируемого изображения.

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

Произвольный доступ к изображениям (Clean Random Access) означает, что декодирование произвольно выбранного кадра видеопотока производится без необходимости декодирования предшествующих ему в потоке изображений. Для мультимедиа это не особенно важно, а вот для систем видеонаблюдения жизненно необходимо.

Профиль Main 10 кодека H.265 обеспечивает улучшенную цветопередачу, поскольку предусматривает 10-битное цветовое кодирование, в то время как все существующие стандарты отводят на цветовой атрибут пикселя 8 бит.

Новый кодек рассчитан на работу с прогрессивной развёрткой сигнала, хотя поддерживается и чересстрочная.

К сожалению, в H.265 не была реализована опция масштабируемого кодирования, которую планировалось ввести ещё в H.264. Наличие масштабирования позволило бы без лишних затрат вычислительной мощности на дополнительную обработку передавать изображения клиентам, использующим относительно медленные подключения к сети.

Производители оборудования 4К нередко преподносят кодек H.265 как средство повышения качества изображений по сравнению с H.264 и MPEG-4. Это не вполне так, поскольку во всех этих кодеках степень сжатия, а, стало быть, и качество картинки можно устанавливать произвольно. Ограничением является только пропускная способность каналов передачи, поэтому если она достаточна для передачи изображений, сжатых по стандарту H.264, то переход на компрессию H.265 не повлечёт за собой повышение качества изображения, а лишь разгрузит сеть.

Рис. 1. Кодер кодека Н.265
(Нажмите на фото для увеличения)

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

Определённые сомнения в оправданности перехода на новый кодек вызывает то, что на сегодняшний день не задействованы все технические возможности кодека-предшественника. Большинство производителей оборудования и систем, в частности, так и не осуществили переход на более продвинутые варианты профилей H.264.

Ясно, что переход на новый кодек – это реальность, стоящая перед сообществом хайтека, но и затраты на переход окажутся весьма существенными, поскольку потребуют приобретения нового и весьма недешёвого оборудования.