Введение
Всякий раз, когда мы снимаем видео с помощью камер и телефонов или просматриваем видео дома, на нашу повседневную жизнь влияют кодеки, программные или аппаратные, которые занимаются кодированием и декодированием видео. В последнее время потребители все чаще отказываются от специализированных устройств для воспроизведения видео (видеомагнитофоны, DVD-проигрыватели, проигрыватели дисков Blu-ray*) и ожидают выполнения всех задач, связанных с воспроизведением видео, персональным компьютером. Для этого требуется быстрая и эффективная обработка видео кодеками.
Эта публикация — первая в серии статей, поясняющих, почему кодек HEVC (H.265) полезен для разработчиков, чтобы справиться со всеми требованиями работы с видео как в настоящее время, так и в перспективе. Также будут включены ресурсы для написания эффективных программ для обработки мультимедиа.
Используете ли вы ГП?
Для начала давайте посмотрим, как изменялось соотношение между ЦП и ГП в процессорах Intel® Core™.
Рисунок 1. Развитие центральных и графических процессоров
По рис. 1 видно, что важность ГП повышается в каждом поколении процессоров Intel Core. Потенциальная производительность при воспроизведении видео определяется количеством исполняемых блоков. Вы видите, как быстро количество исполняемых блоков увеличилось от 12 до 72.
Аналогичным образом развиваются и семейства процессоров Intel® Xeon® E3 v3 (и более новые). Некоторые процессоры E3 также содержат ГП для обработки мультимедиа на серверах. Выберите Intel® Quick Sync Video в разделе Technologies на сайте ark.intel.com или найдите определенный ГП в столбце Processor Graphics. Корпорация Intel также предоставляет программную реализацию HEVC для сценариев, в которых важно более высокое качество. Программный кодек может работать на множестве процессоров как с ГП, так и без ГП, включая Intel® Xeon® E5 и E7. Дополнительные сведения см. на сайте Intel® Media Server Studio.
Для передачи видео сверхвысокой четкости (UHD) с разрешением 4K (3840 x 2160) и 8K (7680 x 4320) требуются более эффективные алгоритмы сжатия. С этой нагрузкой могут справиться и современные ЦП, но при переносе задач по обработке видео на ГП мы получаем множество преимуществ в отношении производительности, электропитания и плотности. Наибольшие преимущества достигаются при доступности фиксированных функций аппаратного ускорения.
Что изменилось в сжатии видео? Представляем HEVC (H.265)
HEVC (H.265) — это высокоэффективный стандарт сжатия видео, позволяющий добиваться значительно более высокой степени сжатия, чем принятый 10 лет назад стандарт AVC (H.264).
Кодеки HEVC, реализованные на ЦП, обычно используют многопоточный кодировщик HEVC и декодер HEVC. И кодировщик, и декодер, вероятнее всего, будут в значительной мере оптимизированы. Но даже с учетом оптимизации для работы H.265 требуется немало вычислительных ресурсов. Кодирование видео по алгоритму H.265 значительно сложнее, поэтому для поддержания такой же скорости, как при кодировании по алгоритму Н.264, может потребоваться увеличение вычислительной мощности в 10 раз. Теоретически любой компьютер может декодировать H.265, но на практике для этого необходим встроенный аппаратный декодер.
Реализация поддержки HEVC в разных поколениях процессоров
Потребители ожидают от разработчиков оптимизации мультимедиа приложений для всех типов устройств, поэтому важно знать о возможностях современных поколений процессоров Intel.
- Процессоры Intel Core 4-го поколения (Haswell), 2–3,5 ГГц, 4 ядра: поддерживают программный декодер HEVC, способный декодировать потоки HEVC 4K в реальном времени.
- Процессоры Intel Core 5-го поколения (Broadwell) поддерживают гибридное 8-битное программно-аппаратное кодирование HEVC.
- Процессоры Intel Core 6-го поколения (Skylake) поддерживают 8-битное кодирование и декодирование HEVC с аппаратным ускорением.
Сжатие HEVC по сравнению со сжатием AVC (H.264) (значительное снижение скорости данных)
Алгоритм сжатия HEVC используется главным образом поставщиками решений для обработки видео и поставщиками поточного видео, поскольку этот алгоритм позволяет гораздо лучше сжимать видеоданные. В алгоритме AVC использовались блоки 16 x 16 пикселей, тогда как в HEVC используются блоки вплоть до 64 x 64 пикселей. В H.264 поддерживалось 8 направлений предсказания, тогда как в H.265 поддерживается 35 направлений предсказания между кадрами.
Кроме того, алгоритм H.265 способен эффективнее выявлять области кадра, остающиеся неизменными на протяжении нескольких кадров (например, фон в сцене с диалогом). Такие области кодируются только в начальном кадре, после этого кодирование не повторяется до обнаружения изменений. Кодировщик HEVC также может изменять размер неизменного блока, если изменяется лишь часть неизменной области, или увеличивать размер блоков, если в последующих кадрах неизменная область становится крупнее. За счет этого повышается эффективность и снижается нагрузка на процессор.
Средства разработки Intel, поддерживающие HEVC
Корпорация Intel предлагает инструменты и ресурсы, помогающие разработчикам приложений работать с графическими процессорами. Существует два основных пакета Intel SDK, помогающие оптимизировать программы для ГП, в дополнение к Intel® Media Server Studio. Их выбор зависит от платформ, устройств и моделей работы, для которых предназначено разрабатываемое приложение.
- Используйте Intel® Media SDKдля оптимизации декодирования видео и для кодирования видеоматериалов для мультимедиа приложений, работающих на клиентских и мобильных устройствах. В этом пакете задействовано аппаратное ускорение и достигается наивысшая производительность множества самых популярных кодеков, объединенных в одном высокоуровневом API. За счет этого приложения будут готовы к будущему: код, разработанный для более ранних поколений процессоров Intel, будет автоматически и наиболее оптимальным образом работать на новом оборудовании без дополнительной доработки и настройки. Кроме того, можно будет с легкостью добавлять доступ к новым возможностям, которые будут поддерживаться перспективным оборудованием.
- Используйте Intel® SDK для приложений OpenCL, чтобы использовать аппаратное ускорение ГП общего назначения. OpenCL работает главным образом с исполняемыми блоками. Тем не менее в процессоры Intel добавляются новые расширения, позволяющие воспользоваться в приложениях OpenCL преимуществами аппаратных блоков Intel с фиксированными функциями.
- Используйте пакет Intel® Media Server Studio Professional Edition, в состав которого входит Intel Media SDK, для быстрого перекодирования мультимедиа и для оптимизации серверных приложений для обработки мультимедиа, инфраструктуры связи (обработка видео и видеоконференции, цифровые системы видеонаблюдения), облачных видеосистем и центров обработки данных, а также для встроенных систем. Этот пакет включает мощные средства оптимизации и анализа производительности обработки видео, а также средства, ускоряющие переход на HEVC, что позволяет ускорить разработку и снизить ресурсоемкость приложений.
В обоих SDK для доступа к аппаратным возможностям Intel используется один и тот же драйвер. В Windows* все библиотеки, необходимые для запуска Media SDK и приложений OpenCL, автоматически устанавливаются вместе с графическим драйвером, поэтому нет необходимости упаковывать дополнительные библиотеки времени выполнения вместе с приложениями.
Дополнительные сведения также см. в статье Ускорение обработки мультимедиа: чем пользоваться.
Заключение
Подведем итоги. Видео используется повсеместно, объемы видеоданных постоянно растут. Обработка таких данных имеет важнейшее значение, поскольку многие потребители отказываются от специализированных устройств, таких как DVD-проигрыватели, в пользу поточной передачи видеоданных для фильмов и игр. Формат кодирования видео HEVC (H.265), аппаратная поддержка которого впервые реализована в процессорах Intel 6-го поколения, обеспечивает наиболее эффективное сжатие и дает возможность работать с видео сверхвысокой четкости, что особенно важно в связи с появлением на рынке все большего числа устройств, поддерживающих разрешение UHD. Чтобы оптимизировать код и воспользоваться возможностями декодирования и кодирования HEVC, можно использовать Intel Media SDK и Intel SDK для приложений OpenCL либо загрузить бесплатную ознакомительную версию Intel Media Server Studio.
В дальнейших публикациях по этой теме будут рассмотрены вопросы сценариев использования, производительности, потребления электроэнергии, качества выходных видеоматериалов, архитектуры и инструментов.
Дополнительные материалы для ознакомления и ресурсы
- Готовимся использовать новый видеокодек HEVC
- Серия материалов: в чем разница между HEVC (H.265) и H.264 (MPEG-4 AVC)
- Перспективные форматы видео: новое направление (блог Марка Бакстона)
- Готовимся к будущему 4K UHD и HEVC с помощью Intel® Media Server Studio
- Ускорение обработки мультимедиа: чем пользоваться?
- Воспроизведение видео HEVC 4k с аппаратным ускорением NVidia: все ли готово?— ars technica
- Подготовка ПК домашних кинотеатров к эпохе видео 4K: HDMI, HDCP и HEVC
- Технология Intel® Quick Sync Video на графических процессорах семейств Intel® Iris™ Graphics и Intel® HD Graphics — сочетание производительности и качества при перекодировании
- Вычислительная архитектура ГП Intel® поколения 9
- Intel® Graphics Developer Zone
- Технические статьи о популярных темах, посвященных Intel® Media SDK
- Руководство для разработчиков Intel Media
- Поддержка клиентских решений Intel Media, учебные материалы и документация
Об авторах
- Гэйл Хофмайер (Gael Hofemeier) — инженер по разработке приложений, она занимается поддержкой клиентских бизнес-приложений и пишет технические материалы.
- Джефф Мак-Аллистер (Jeff McAllister) — старший инженер по программному обеспечению и технический инженер-консультант, он работает с Intel Media SDK для приложений OpenCL.
- Эллен Чи (Ellen Chi) — инженер в отделе Desktop Graphics Product Marketing Group корпорации Intel.
OpenCL и эмблема OpenCL являются товарными знаками Apple Inc. и используются с разрешения Kronos.
Дополнительные сведения об оптимизации компиляторов см. в уведомлении об оптимизации.