Использование h.265 (HEVC) в Premiere. Новые форматы: S2X, HEVC, UHDTV H 265 процессор для программного декодирования

Программы

В данной статье мы попытаемся понять, отвечает ли видеокодек нового поколения возлагаемым на него надеждам?
Видеокодек нового поколения High Efficiency Video codec (HEVC), известный также как H.265, стал важной вехой видеоиндустрии 2013 года. В течение последних 12 месяцев было много сказано о H.265 и новых технологиях кодирования видео, однако сегодня впервые можно просто сесть и внимательно изучить этот самый кодер нового поколения (хоть и существующий лишь в версии, предшествующей альфа-тестированию), а также протестировать его качества в плане работы с видео. Мы рассмотрим в едином ключе качество отображения видео и размеры сжатия потока нового кодека, сравнив его с предыдущим — H.264, а также изучим производительность в Sandy Bridge-E, Ivy Bridge и Haswell.

Преимущества H.265

Кодек H.264 был вполне успешным проектом. Это весьма гибкий кодек, который получил широкое применение в сетях распространения потокового видео, на спутниковых платформах, а также при записи Blu-ray дисков. Он весьма хорош для масштабирования, благодаря чему он был предложен в качестве стандарта для 3D с частотой кадров 48-60 в секунду, и даже для 4К. И он вполне справляется с этими задачами. Стандарт, принятый для Blu-ray дисков, пока не включает в себя каких-либо рекомендаций относительно данных технологий, однако кодек H.264 сам по себе способен их поддерживать.

Проблема кодека H.264 заключается в том, что будучи в принципе способным кодировать видео в этих форматах, он не может обеспечить степень сжатия, которая бы сделала размеры получаемых файлов приемлемыми. Потребовался новый стандарт, который бы смог существенно уменьшить размеры получаемых после сжатия файлов и тем самым заслужил бы международное признание в качестве средства продвижения новых форматов видео. Так и появился на свет H.265. Он был разработан таким образом, чтобы используя новые технологии сжатия и более умную модель кодирования/декодирования, наиболее экономно использовать пропускные ресурсы канала.

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

Первое, что их интересовало – это размеры файлов. Исследователи решили сравнить размеры элементарных видеопотоков. При этом следует учесть, что речь шла исключительно о видео – звук не кодировался ни в одном из случаев.

Размеры кодирования определялись настройками квантователя, где более низкие q-показатели соответствовали более высокому качеству (и большему размеру файлов). Базовый кодированный файл состоит из 500 кадров, его размер – 1,5 Гб, YUV 4:2:0, частота кадров – 50 в секунду. Для сравнения использовался элементарный размер потокового файла, потому что он отображает то, что передаётся на декодер для создания изображения на выходе. Исследователи работали с элементарными потоками, потому что на данной стадии проекта (предшествующей альфа-тестированию) размер декодируемого файла всегда составляет 1,5 Гб, вне зависимости от уровня качества, выбранного при его создании.

Это помогает понять основу тех преимуществ, которые может предложить H.265 в сравнении с H.264. И хотя в большинстве случаев он не даёт 50% экономии пропускной способности канала, результат близок к этой цифре. При установке q=24 в квантователе мы получаем файл размером 57% от созданного в H.264, при установке q=30 – 59%, а q=40 даёт 47%. Конечно, при установке q=40 финальный файл далёк от совершенства, однако он позволяет экономить пропускную полосу более, чем вдвое.

Производительность и качество картинки

Следующий вопрос, который интересовал исследователей, – это производительность. Известно, что в сравнении с H.264, H.265 требует большего количества «лошадиных сил» для кодирования и декодирования. Впрочем, разработчики обещают усилить роль параллельных вычислений при кодировании и декодировании, чтобы ускорить эти процессы. Подразумевается, что поддержка OpenCL станет реальной рано или поздно, а это значит, что предложения вроде HAS от AMD могут получить дополнительные очки от поддержки x265 в этом году.

В настоящее время исследователи были ограничены в выборе процессора, однако представитель MultiCoreWare Том Воган уверил их, что команда разработчиков активно работает над многопоточностью. Группа исследователей решила испытать возможности тестового декодера, используя Sandy Bridge-E, Ivy Bridge и Haswell. Исследователи экспериментировали с несколькими различными уровнями параллелизации, однако в итоге решили остановиться на числе физических ядер в системе (6, 4 и 4). Была задействована функция гипер-поточности, но установка параллелизации в 12/8 потока лишь не намного ускорила процесс кодирования.

Параллелизация показала неплохие результаты производительности. Sandy Bridge-E с его шестью ядрами опережает четырёхядерный Ivy Bridge. Ivy Bridge также уступает модели Haswell благодаря поддержке последней AVX2 и лучшим характеристикам производительности. Если сравнивать время кодирования с x264, даже при самых медленных установках, кодирование при помощи x265 идёт намного больше. К примеру, файл, который Ivy Bridge 3770K кодировал в H.264 за 129 секунд, в H.265 кодировался на протяжении 247 секунд. Впрочем, не забывайте о том, что речь идёт о самой-самой первой тестовой версии.

Не менее интересным для исследователей был и вопрос качества. Насколько качество видеофайла, кодированного в H.265, будет отличаться от исходного некомпрессированного видео? Для изучения вопросов, связанных с качеством, исследователи решили выбрать фрагмент баскетбольного матча. Файл, записанный с частотой 50 кадров в секунду, был полон моментов, демонстрирующих быстрые движения, которые очень часто приводят к зависаниям процессоров или «дёрганию» картинки. Согласитесь, если эта «болезнь» будет также свойственна H.265, то его возможность создавать относительно небольшие видео-файлы будет нивелирована плохим качеством.

Elmedia Player для Мак поддерживает h.264 и h.265 кодеки.

Итак, вашему вниманию представлены скриншоты оригинального некомпрессированного YUV видео, а также видео, кодированного в H.265 при показателях q=24, и видео, кодированного в H.264 при показателях q=24.

Как мы видим, разница здесь минимальна. Деревянный пол под прыгающим игроком немного менее размыт в H.264 варианте, однако качество H.265 варианта – феноменально, при том, что размер этого файла примерно вдвое меньше. А как на счёт установок с меньшим качеством? Вот скриншоты видео, кодированного в H.265 и H.264 с показателем q=30. Первым идёт скриншот видео, сжатого в H.265.

При установке квантователя q=30 (размеры файлов соответственно 6.39 Мб и 10.87 Мб) показатели качества потокового видео при использовании кодека H.265 оказались лучшими, чем у потока, кодированного в H.264. Разумеется, группа исследователей, проводившая данные опыты, не собирается возводить полученные результаты в абсолют – как всегда, большое значение имеют параметры кодирования, которые требуют настройки. Однако после более года ожидания, «джинн» по имени H.265, наконец, вышел из бутылки, и уже очевидно, что новый стандарт компрессии сможет оправдать возложенные на него ожидания.

Тем временем поддержка кодирования/декодирования уже очень скоро будет доступна во многих изделиях. Современные процессоры более чем готовы к декодированию H.265 при наличии соответствующего программного обеспечения. Поддержка OpenCL ожидается в ближайших итерациях. А аппаратная поддержка от производителей графических процессоров – таких, как AMD, Intel и Nvidia – дело ближайшего будущего. Возможно, она и не появится в ближайших моделях, которые вот-вот выйдут на рынок, но определённо появится в недалёком будущем. Эти три компании уже включили в свои изделия поддержку дополнительных источников видеоинформации, как отмечается в презентации H.265, поскольку видео становится обычным явлением в любых устройствах.

В долгосрочной перспективе H.265, скорее всего, заменит H.264 в качестве главного решения для расширенной обработки видео. Впрочем, всё будет зависеть ещё и от того, насколько сильнее будет разряжать батареи процесс обработки H.265 видео по сравнению с H.264. Мы сможем об этом узнать только тогда, когда появится полноценное «железо» для работы с этим стандартом, однако пока предположения весьма оптимистичны. Параллельная модель H.265 кодирования, несомненно, должна хорошо показать себя на фоне многоядерных устройств будущего.

Высокоэффективный видео кодек (High Efficiency Video Coding (HEVC)), видео кодек, известный также как кодек H 265, который сжимает сильнее в более чем в два раза, чем лучший видео кодек для Blu-ray.

Я бы назвал его просто — H 265, потому что это звучит круто, но его полное имя — High Efficiency Video Coding (HEVC). Это новый преемник Advanced Video Coding (AVC), кодек, также известный как H.264, который является одной из основных схем сжатия, используемых Blu-ray.

Идея HEVC заключается в том, чтобы предложить тот же уровень качества изображения, что и AVC, но с улучшенным сжатием, поэтому видео файл, сжатый с помощью этого кодека, будет в два раза меньше. Это важно, для вещания в формате 4K / Ultra HD (интернет и спутник), 4K Blu-ray и для других целей.

Но достаточно ли хорошо он в этом отношении, как он работает?

Сжатие (хорошее, плохое, с потерями)

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

Есть много способов сделать это, одним из самых простых является снижение качества. В некоторых случаях это нормально. Подумайте о видео на YouTube с низким качеством. Не очень, правда? Часто это связано с тем, что видео сильно сжато (до или во время загрузки).

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

Но это не самая хорошая идея, если нужно сохранить намерение режиссера или показать свой новеньки 77-дюймовый телек.

Таким образом, другой вариант — использовать лучшее сжатие. В этом случае вы можете в основном думать о «лучшем» сжатии как «о более умном» сжатии. Он берет тот же оригинал (видео) и находит лучшие способы уменьшить количество данных, не жертвуя качеством. Каждые несколько лет вычислительная мощность передачи улучшилась настолько, что позволяет использовать более интенсивные алгоритмы сжатия процессора, а также сжимать данные без ухудшения качества.

Это различие между «большим» сжатием и «лучшим» сжатием важно, так как на самом деле термины не являются взаимозаменяемыми в этом контексте. Вы можете уменьшить объем данных, необходимых для сигнала, либо путем сжатия и ухудшения изображения, либо с помощью более эффективной компрессии («лучшего» сжатия).

Позвольте мне сказать это так. Скажите, что у вас есть бушель из яблок. Вам нужно поместить 100 яблок внутрь. Вы можете сделать это с большим сжатием (сокращение яблок до пюре) или с лучшим сжатием (поиск лучшего способа сделать их целыми, но при этом, уменьшить объем занимаемого места).

Большее сжатия: яблочное пюре
Лучшее сжатие: больше яблок, в одном и том же пространстве.

Как вы можете видеть из этого восхитительного примера, «более» сжатие легче сделать, в то время как «лучшее» сжатие требует более продуманных и / или лучших технологий.

Кодек H.265

Поток данных, в 4K видео, значительно сильнее чем в HD видео. В то время как большинство из нас еще только привыкало к идее преимущества кодека H.264 по сравнению с MPEG-2, Группа Motion Picture Experts Group и International Telecommunication Union’s Telecommunication Standardization Sector (ITU-T), уже начали работу над следующим поколением сжатия видео.

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

Как удалось этого достичь? Во многом благодаря расширению использования AVC (и других методов сжатия).

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

Затем HEVC расширяет размер области, на которую смотрят эти изменения. Большие и меньшие «блоки» существенно, что обеспечивает дополнительную эффективность. Они могут быть больше, меньше и различной формы в HEVC, чем в предыдущих кодеках. Более крупные блоки, например, оказались более эффективными.

Слева — макроблокирование по AVC / H.264. Как вы можете видеть, справа гораздо больше гибкости, не говоря уже о больших размерах, для кодировщика HEVC / H.265.

Затем были улучшены другие вещи, такие как компенсация движения, пространственное предсказание и т. Д. Все это было бы сделано в AVC или даже раньше, но это требовало большей вычислительной мощности, чем это было в то время экономически целесообразно.

На этапе разработки алгоритм сжатия объективно проверяется на эффективность его исходного видео. Также проверяется и субъективно, профессионалами видео, сравнивающими различные методы сжатия в «слепом» тесте, где они не знают, какой именно метод перед ними. Сравнение человеком, имеет решающее значение. Просто потому, что компьютер говорит, что один уровень сжатия лучше, чем другой, не означает, что он выглядит лучше другого.

Поскольку H.265 работает намного интенсивнее, не ожидайте простого обновления прошивки, чтобы заставить ваше устройство декодировать его. На самом деле, это часть проблемы. Вам нужен аппаратный декодер. Ваш телевизор или медиа проигрывателя изначально должен иметь декодер, прошивкой тут не обойтись. Может ли ПК высокого класса декодировать его с помощью программного обеспечения? Может быть.

Достаточно ли этого?

Ну, технически да, но с большой оговоркой. Как и AVC (и другие стандарты сжатия), H.265 настраивается в зависимости от требуемой пропускной способности. Хотите 4K на низкоскоростном интернете? Нет проблем; увеличьте степень сжатия (помните яблочный соус?). Хотите лучшее качество изображения? Нет проблем; уменьшите степень сжатия.

Хотя эта схема обеспечивает гибкость, это также означает, что «4K» и «UHD» не обязательно гарантируют лучшее качество изображения, чем сегодня, «1080p» или «HD». Очень сжатый сигнал 4K во многих отношениях выглядел хуже, чем менее сильно сжатый сигнал HD.

Другими словами, потоковая передача 4K может выглядеть хуже, чем текущий 1080p Blu-ray, в зависимости от того, сколько используется сжатие

И хотя скорость обработки на всех устройствах соответствует закону Мура, пропускная способность интернета ограничена.

Еще одно преимущество

В то время как большинство потенциальных преимуществ HEVC сосредоточены на 4K, его лучшее сжатие обеспечивает преимущества для HD. Более низкая пропускная способность с HD означает, что больше людей может получить HD. Люди, у которых низкая скорость интернета, с новым кодеком смогут смотреть HD видео. Если у вас тариф с оплатой за мегабайты, то более низкие скорости передачи данных также означают более дешевый просмотр HD.

Чем смотреть HEVC.

Понятно, сразу возникает вопрос, как смотреть HEVC. Есть несколько решений, в зависимости от того, что у вас есть.

Если у вас ПК, и стоит Windows 10, то вы можете воспользоваться приложением, которое выпустила компания Microsoft. — приложение, позволяющее смотреть видео в формате HEVC на компьютерах. Однако, стоит заметить, что для того, чтобы это приложение работало, у вас должен быть довольно мощный компьютер, с процессорами Intel седьмого поколения. Ну и сама операционная система, должна быть Windows 10.

Если ваш ПК отвечает этим требованиям, то это расширение вы можете получить при обновлении Windows. Но если вы не стали обновлять свою ОС, но хотите смотреть фильмы в формате HEVC, то вы можете скачать приложения с официального сайта Microsoft .

Проигрыватель для HEVC.

Если же у вас либо другая ОС, например Windows 7, или просто ваш компьютер не столь мощный, то вы можете скачать плейер, с поддержкой HEVC, например WindowsPlayer. Данный плейер, вы можете скачать с официального сайта программы .

Заключение

Начните искать HEVC (или H.265) в качестве позиции на телевизорах, проигрывателях Blu-ray и других медиаплеерах в будущем. Почти все основные модели начиная с моделей 2014 года выпуска включают необходимый аппаратный декодер, хотя лучше сразу убедится, что он действительно есть, чем потом жалеть о покупке.

Было много ворчаний во время перехода на H.264 / AVC при появлении Blu-ray. Теперь тоже самое происходит и появлением HEVC. Но более низкие скорости передачи данных при сохранении качества — это хорошо для всех.

Как известно, все мы любим смотреть фильмы, видеоролики или передачи в хорошем качестве. Но в плане хранения видео на компьютере возникает множество проблем, обычно связанных с банальной нехваткой места. Относительно недавно появился новый стандарт, и многих пользователей сразу же возник закономерный вопрос: «Что это - 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 будет разработано что-то еще более мощное.

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

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

Телевидение, давно и прочно вошедшее в каждый дом, стремительно меняется. Если первые телевизоры, по сути, были обычными супергетеродинными приёмниками, то современные мультимедийные центры назвать телевизорами язык не поворачивается. Они превратились в сложные компьютеризированные устройства, предоставляющее зрителю высочайшее качество изображения и звука и массу дополнительных услуг. Советский стандарт монохромного, а затем и цветного телевидения обеспечивал разрешение картинки 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.

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

Более шести лет назад 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