H.264 или H.265? Перспективы в области технологий сжатия видео. Оптимизация HEVC под платформу Intel® Xeon™. Что способствует повышению качества изображения

В данной статье мы попытаемся понять, отвечает ли видеокодек нового поколения возлагаемым на него надеждам?
Видеокодек нового поколения 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 кодирования, несомненно, должна хорошо показать себя на фоне многоядерных устройств будущего.

Очередное обновление Adobe Premiere Pro CC 2015 до версии 9.1 принесло возможность экспорта в долгожданном H265. Но многие не ожидали, что их мощные компьютеры новый кодек мощными совсем не считает.

Честно говоря, сравнивать скорость кодирования новым кодеком H265 (High Efficiency Video Coding) с кодеком H264 - дело совершенно неблагодарное. HEVC предлагает нам практически вдвое меньший битрейт при одинаковом визуальном качестве картинки, в сравнении с H264. Особенно это актуально для 4K контента и, тем более для видео в разрешении 8K.

Прогресс неизбежен и обновлять монтажные компьютеры все равно придется. Я же хочу сравнить время рендера в проекте с разрешением FullHD.

Параметры видео: файлы*.MTS, кодек AVC, 24 Mbs, длительность 04:10.

Эффекты на timeline: Lumetry Color (задействованы LUT, Levels, Saturation, Sharpen, Vignette), Magic Bullet Looks (задействован Cosmo).

Тестовый компьютер:

Процессор: 6-core Intel Core i7 5820K @ 3,8 GHz

Оперативная память: 32 GB DDR4 2400 MHz

Сделаем рендер этого видеоролика, замеряя время и наблюдая за загрузкой системы.

Настройки экспорта в H264: Level High 4.2 VBR 1pass 15-20 Mbps. Время экспорта 81% - 10:18

Настройки экспорта в H265: VBR 1 pass 7-10 Mbps. Quality: Higher. Время экспорта 82% - 15:38

По большому счету разница составила полтора раза. Если в настройках H265 выставить качество Highest, то время экспорта возрастает приблизительно до получаса. Т.е. в максимальном качестве H265 рендерит примерно в 3 раза дольше, чем H264. Мы говорим о разрешении FullHD.

Примечательно, что новый HEVC, по всей видимости не поддерживает видеокарту GeForce 960GTX. Ходят слухи, что, якобы, нужна видеокарта 970 или 980. На сайте Adobe такой информации нет. В любом случае, загрузка процессора при экспорте достигает 100%:

Для сравнения, при рендере в H264 силами видеокарты, нагрузка на процессор составляет около 40-50%:

Следует понимать еще одну вещь: ели бы у меня была более быстрая видеокарта, а процессор был медленнее (например 4-х ядерный i7), то разница во времени могла быть, к примеру, не 3-х кратная, а 5-кратная, т.к. H264 на видеокарте рендерился бы еще быстрее, а H265 на процессоре - медленнее.

Также немного удивил YouTube. После загрузки видеоролика в H265 появилась надпись:

Возможно, для YouTube требуется кодировать H265 в каком-то определенном профиле, разбираться особо не хотелось, поэтому залил версию H264. Кстати, YouTube анонсировал поддержку видео в разрешении 8K, так что проблемы с HEVC на YouTube в скором времени должны исзчезнуть.

В ближайшее время планирую посмотреть разницу при экспорте видео в 4K. Возможно, отсутствие аппаратной поддержки GPU существенно увеличит разницу при кодировании в этих двух форматах.

Технология сжатия видео была камнем преткновения в проектировании систем видеонаблюдения со времён появления интернет-протокола (IP) в 1990-е годы. С тех пор стандарты для кодирования видео прошли много этапов исследований. Сегодня внимание отрасли привлёк к себе стандарт сжатия H.265 или HEVC (High Efficiency Video Coding - высокоэффективное кодирование видеоизображений). Это следующая версия после H.264, которая в настоящее время является доминирующей технологией кодирования IP-видео. Мы попытаемся разобраться каковы её перспективы на сегодняшний день и в будущем.

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

H.265: разбираемся что и зачем

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

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

Последние достижения для текущего кодека H.264 оптимизируют битрейт тремя способами: предиктивным кодированием, подавлением шума, и "долгосрочным" управлением битрейтом (predictive encoding, noise suppression, and “long-term” bitrate control). Результатом этого стало сокращение требуемого объёма памяти до 75% для H.264. Из-за этих инноваций и некоторых других факторов высока вероятность того, что в ближайшие 5-10 лет оба стандарта будут мирно сосуществовать на рынке.

Препятствия для принятия H.265

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

При более высокой стоимости, пользователи должны быть уверены, что обновление до H.265 действительно стоит того

Ограничения лабораторных испытаний

По результатам испытаний проведенных Объединенной командой по видеокодированию Joint Collaborative Team on Video Coding (JCT-VC), коэффициент сжатия H.265 удвоился по сравнению с предыдущим H.264. Но, как и следовало ожидать, эти тесты были проведены в лабораторных условиях и далеки от многих сложностей, возникающих в процессе фактического использования стандарта.

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

Стандарт H.264 более 10 лет внедряли в отрасль, в которой происходило его развитие, при поддержке со стороны всех производителей чипсетов, и с доступом к самым разным кодерам и декодерам. Это проверено и доказано на практике. В этом смысле технологии H.265 придётся многое наверстать.

Цена патента

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

Оптимизированные технологии кодирования H.264

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

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

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

Предиктивное кодирование

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

Подавление шума

Ещё одним важным элементом оптимизации H.264 является подавление шума.

Шум или нежелательный электрический сигнал, отображающийся в видеопотоке, является серьёзной помехой цифрового видеосигнала. Это приводит к тому, что на фоне изображения появляется множество посторонних пикселей, вызванных колебаниями света, температуры, или другими сигналами в воздухе. Но оптимизированные технологии H.264 с использованием алгоритмов интеллектуального анализа подавляют большую часть шума путём кодирования объекта переднего плана изображения с более высокой скоростью передачи данных относительно фонового изображения. Результат: чёткие изображения с точной цветопередачей.

Долгосрочный контроль битрейта

И, наконец, требования к битрейту по каждой конкретной сцене могут колебаться в течение дня. Например, в типичной уличной сцене в ночное время есть небольшое движение на первом плане, так что требования к битрейту невысокие. Днём требования значительно повышаются из-за транспортных средств и пешеходов, движущихся на переднем и заднем планах. Современные технологии кодирования H.264 управляют этим распределением по времени путём вычисления общего среднего битрейта, а затем автоматически выделяют необходимый битрейт в то время суток, когда это требуется. Это происходит на уровне заданных значений декодера. Здесь основным преимуществом долгосрочного контроля битрейта является то, что у пользователей есть возможность точно прогнозировать свои требования к системе хранения видео, благодаря чему можно измерять необходимый размер хранилища.

***

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

Разработки видеосжатия, как правило, имеют тенденцию придерживаться примерно 10-летнего цикла. В 1994 году был введен формат MPEG2. H.264 запущен в 2003 году, а H.265 - в 2013. В данном случае исторический контекст имеет важное значение, потому что стандарты кодирования видео реагируют не только на технологические изменения, но и на тенденции в рамках всей видео-индустрии. Когда стандартом был формат MPEG2, промышленность была сосредоточена главным образом на DVD-плеерах и телевизионном разрешении, где использовался этот формат. Появление H.264 совпало с введением технологии HD, передовыми IT-технологиями и мобильным интернетом.

Использование H.264 включало HD-цифровое телевидение, интернет-видео, мобильное видео, видеонаблюдение, Blu-Ray и др. Так как H.265 только выходит на сцену, мы считаем, что он будет наиболее широко использоваться в разработке ультра-HD технологий и приложений облачных систем хранения данных.

Перспективы развития технологий сжатия видео

После запуска H.265, члены Объединенной совместной группы по видеокодированию (JCT-VC) начали составлять прогнозы на будущее для данного сегмента. В 2015 году они создали группу совместного исследования видео (Joint Video Exploring Team - JVET), сосредоточив внимание на дальнейшем улучшении возможностей сжатия. Их последние данные тестирования показывают, что улучшения по производительности сжатия H.265 достигнуты на 20%. В то же время, другая организация - AOM (Alliance for Open Media) - объединила целый ряд интернет-ориентированных компаний, в том числе Microsoft, Google, Intel, и Amazon, стремясь прийти к свободному стандарту для интернет-видео. План состоит в том, что этот (свободный) стандарт ускорит обновление технологий в онлайн-мире с сумасшедшей скоростью.

Конкурс на разработку этих стандартов, вероятно, будет жестким - и это также может означать, что 10-летний цикл сжатия канет в Лету, а новые стандарты появятся в гораздо более короткие сроки.

Видео 4K занимает тонну пространства, что затрудняет загрузку и потоковое вещание в лучшем качестве. К счастью, одна технология меняет это, и она известна как High Efficiency Video Coding (HEVC) или H.265 .

Потребуется много времени, чтобы эта новая технология стала вездесущей, но это происходит: 4K UHD Blu-ray использует HEVC, VLC 3.0 воспроизводить 4K с помощью надежного HEVC, а iPhone может даже сохранить записанное видео в HEVC для экономии памяти.

Но как это работает, и почему так важно для видео 4K?

Текущий стандарт: AVC/H.264

Когда вы смотрите диск Blu-ray, видео на YouTube или фильм из iTunes, все они имеют идентичный исходный файл, который был получен в студии редактирования. Чтобы разместить этот фильм на диске Blu-ray или сделать его достаточно маленьким, чтобы удобно загружать из интернета, видео должно быть сжато .

AVC также использует межкадровое сжатие , которое рассматривает несколько кадров и отмечает, какие части кадра меняются, а какие нет. Алгоритм сжатия также развивает фрейм на макроблоки и говорит: «Знаешь что? Эти куски не меняются 100 кадров подряд, поэтому давайте просто отображать их снова, вместо того, чтобы хранить все части изображения 100 раз». Это может значительно уменьшить размер файла.

Это всего лишь два упрощенных примера использования методов AVC/H.264 . Но, они позволяют сделать видеофайл более эффективным, не ставя под угрозу качество.

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

HEVC/H.265 сжимает видео более эффективно

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

Например, когда AVC просматривает несколько кадров на наличие изменений, макроблоки могут иметь несколько разных форм и размеров, максимум до 16×16 пикселей. С HEVC эти фрагменты могут быть размером до 64×64, что намного больше, чем 16×16, это означает, что алгоритм может запоминать меньшее количество фрагментов, тем самым уменьшая размер общего видео.

Опять же, в HEVC используются другие методы, но это одно из самых больших улучшений – оно позволяет HEVC сжимать видео вдвое сильнее, чем AVC, при том же уровне качества. Это особенно важно для видео 4K , которое занимает огромное пространство с AVC. HEVC делает 4K видео намного более удобным для потоковой передачи, загрузки или копирования на ваш жесткий диск.

HEVC медленнее без аппаратного декодирования

HEVC является утвержденным стандартом с 2013 года, так почему его не используют во всех видео?

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

Таким образом, хотя многие ПК и программы могут пытаться воспроизвести видео HEVC, оно может «заикаться» или быть очень медленным без аппаратного декодирования. Таким образом, HEVC не принесёт много пользы, если у вас нет видеокарты и видеопроигрывателя, которые поддерживают аппаратное декодирование HEVC .

Это не проблема для автономных устройств воспроизведения. 4K проигрыватели Blu-ray, в том числе Xbox One, уже сконструированы с учетом HEVC. Но когда дело доходит до воспроизведения видео HEVC на компьютере, всё становится сложнее.

Вашему устройству потребуется одно из следующих аппаратных средств для быстрого декодирования видео HEVC:

  • Intel 6-го поколения «SkyLake» или более новые процессоры
  • AMD 6-го поколения «Carizzo» или более новые APU
  • NVIDIA GeForce GTX 950, 960 или более новые видеокарты
  • AMD Radeon R9 Fury, R9 Fury X, R9 Nano или более новые графические карты

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

С течением времени большее количество компьютеров сможет обрабатывать видео такого типа, и больше плееров будут поддерживать H.265. Для этого может потребоваться некоторое время, чтобы стандарт стал повсеместным, и до этого Вам придётся хранить свои 4K видео в AVC/H.264 при больших размерах файлов (или сжимать их больше и терять качество изображения). Но чем шире будет поддерживаться больше HEVC/H.265, тем лучше будет видео.

  • Перевод

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

Краткое описание H.265/HEVC

Стандарт H.265/HEVC (High-Efficiency Video Coding - высокоэффективное кодирование видео) - это самый последний стандарт видеокодека, разработанный совместно Международным союзом электросвязи ITU-T и ISO/IEC. Цель этого стандарта - повысить эффективность сжатия и снизить потери данных. H.265/HEVC, по сравнению с предыдущим стандартом H.264/AVC, обладает вдвое более высокой степенью сжатия при равном субъективном качестве изображения. Технология HEVC позволяет поставщикам видео передавать высококачественные видеоматериалы с меньшей нагрузкой на сеть.
Отметим основные функциональные новшества, примененные в Н.265:
  • Особые возможности для произвольного доступа и сращивания цифровых потоков. В H.264/MPEG-4 AVC цифровой поток должен всегда начинаться с блока адресации IDR, а в HEVC поддерживается произвольный доступ.
  • Изображение разделяется на единицы дерева кодирования (CTU), каждая из которых содержит блоки дерева кодирования (CTB) яркости и цветности. Во всех прежних стандартах кодирования видео использовался фиксированный размер массива для выборок яркости - 16×16. HEVC поддерживает блоки CTB разного размера, который выбирается в зависимости от потребностей кодировщика с точки зрения памяти и вычислительной мощности.
  • Каждый блок кодирования (СВ) может быть рекурсивно разделен на блоки преобразования (ТВ). Разделение определяется остаточным квадродеревом. В отличие от прежних стандартов в HEVC один блок ТВ может охватывать несколько блоков предсказания (РВ) для перекрестных предсказываемых единиц кодирования (CU).
  • Направленное предсказание с 33 различными направлениями ориентации для блоков преобразования (TB) размером от 4×4 до 32×32. Возможное направление предсказания - все 360 градусов. HEVC поддерживает различные методики кодирования предсказания интракадров.
H.265/HEVC налагает исключительно высокие требования по вычислительной мощности и на клиентские устройства, и на внутренние серверы транскодирования.

Проблемы производительности HEVC

Существующий проект HEVC Test Model (HM) реализует только основную функциональность стандарта; фактическая производительность по-прежнему далека от необходимой в реальной среде. Два основных недостатка этого проекта:
  • Отсутствие параллельной схемы.
  • Неэффективная настройка векторизации.


Рисунок 1. Профиль проекта HM - параллельная работа потоков


Рисунок 2. Профиль проекта HM - ресурсоемкий код

Этот кодек HEVC потребляет, по сравнению с H.264, в 100 раз больше ресурсов ЦП на стороне сервера и в 10 раз больше - на стороне клиента.
Кодек H.265/HEVC привлек внимание множества компаний и организаций во всем мире, что повлекло оптимизацию его производительности и фактическую разработку. Существует несколько проектов с открытым исходным кодом.

  • OpenHEVC (совместим с HM10.0, оптимизация декодера)
  • x265 (совместим с HM, распараллеливание и векторизация)
Для оценки производительности кодировщика x265 на платформе с процессорами Intel® Xeon® (E5-2680, 2,7 ГГц, 8*2 физических ядер, кодовое название - Sandy Bridge) мы запустили видео с разрешением 720p и частотой 24 кадра в секунду. Разработчики x265 проделали большую работу для оптимизации исходного стандарта с целью распараллеливания обработки задач и данных. Тем не менее, наш тест показал, что кодек может использовать лишь 6 ядер в системе с 32 логическими ядрами (с включенным SMT). Таким образом, кодек далеко не в полной мере использует ресурсы современных многоядерных платформ.

Рисунок 4. Проект X.265 с настройкой Intel® SIMD

В проекте x265 также были использованы инструкции Intel® SIMD (автогенерация компилятором), что обеспечило повышение производительности более чем на 70%. Вместе с дальнейшей оптимизацией компиляторными опциями, компилятор Intel обеспечивает удвоение производительности на платформе IA. Тем не менее, производительность кодировщика по-прежнему существенно ниже, чем требуется для кодировщика реального времени, особенно для видео высокой четкости с разрешением 1080p.
Ниже мы покажем результаты, достигнутые китайской компанией Strongene при поддержке специалистов компании Intel на пути оптимизации созданного ей кодека H.265/HEVC под различные платформы Intel.

Оптимизация HEVC под платформу Intel® Xeon™

Основную часть самых ресурсоемких функций по обработке видео и изображений составляют интенсивные вычисления блочных данных. Для их оптимизации можно использовать инструкции векторизации Intel® SIMD. В кодировщике в составе кодека Strongene, согласно данным профилирования, с помощью инструкций Intel SSE можно провести ручную векторизацию всех наиболее ресурсоемких функций, таких как кадровая интерполяция низкой сложности с компенсацией движения; целочисленное преобразование без транспозиции; преобразование Адамара; вычисление сумм абсолютных разностей (SAD)/квадратов разности (SSD) с наименьшим избыточным использованием памяти. Мы включили инструкции Intel SSE в виде интринсик-функций, как показано на рис. 5.


Рисунок 5. Пример включения инструкций Intel® SIMD/SSE в кодеке Stongene

Разработчики Strongene переписали все ресурсоемкие функции, чтобы добиться наибольшего прироста производительности кодировщика. На рис. 6 показаны наши данные профилирования в сценарии кодирования видео стандарта 1080p с помощью HEVC. Видно, что 60% ресурсоемких функций обрабатываются инструкциями Intel SIMD.


Рисунок 6. Результаты профилирования функций кодирования Strogene

Инструкции Intel AVX2 с вычислением 256-разрядных целочисленных значений обладают вдвое более высокой производительностью по сравнению с прежним кодом Intel SSE, работающим со 128-разрядными значениями. Набор инструкций Intel AVX2 поддерживается платформой
Intel Xeon (Haswell), выпуск которой начат в 2014 году. Для оценки производительности встроенных функций Intel AVX2 мы используем распространенное вычисление сумм абсолютных разностей для блока 64*64.

Таблица 1. Результаты реализации Intel® SSE и Intel® AVX2

Циклы ЦП Исходный код Intel® SSE Intel® AVX2
Запуск 1 98877 977 679
Запуск 2 98463 1092 690
Запуск 3 98152 978 679
Запуск 4 98003 943 679
Запуск 5 98118 954 678
Среднее 98322,6 988,8 681
Ускорение 1,00 99,44 144,38

Как видно из таблицы 1, применение инструкций Intel SSE и Intel AVX2 обеспечивает повышение производительности в 100 раз, при этом код Intel AVX2 дополнительно выигрывает еще 40% по сравнению с Intel SSE.
Как мы видели ранее, в большинстве существующих реализаций используются не все ядра многоядерных платформ. Опираясь на последнюю многоядерную архитектуру Intel Xeon с параллельной зависимостью между алгоритмами на основе CTB, разработчики Strongene предлагают заменить исходные методы OWF и WPP параллельной структурой IFW, а затем разработать трехуровневую схему управления потоками, чтобы гарантировать полное использование структурой IFW всех ядер ЦП для ускорения кодирования HEVC.


Рисунок 7. Параллельная работа потоков и использование ЦП в кодировщике Strongene

За счет применения новой параллельной структуры WHP и полной реализации инструкций Intel SIMD соответственно на уровне задач и уровне данных разработчикам кодировщика Strongene удалось добиться весьма значительного повышения производительности на процессорах x86 для видео с разрешением 1080p, используя вычислительные ресурсы всех ядер, как показано на рис. 8.

Дальнейшая настройка с использованием SMT/HT

Также представляет интерес зависимость производительности кодека от включения в системе широко распространенной на всех платформах с архитектурой Intel одновременной многопоточности (SMT), также называемой технологией гипертрединга (HT).

Таблица 2. Скорость кодирования Strongene HEVC на платформе Intel® Xeon®


Как видно из таблицы (показано желтым цветом) на платформе Ivy Bridge (процессор Intel Xeon E5-2697 v2 для отключенного SMT кодирование видео HEVC с разрешением 1080p осуществляется в реальном времени!

Добившись огромнейшего увеличения производительности, мы продолжили изучение возможностей кодирования Strongene HEVC на платформе Ivy Bridge, уделяя внимание скорости потока и вопросам качества.

Таблица 3. Сравнение производительности кодеков H.264 и H.265


В таблице 3 видно, что кодек H.265/HEVC снижает объем данных на 50% при сохранении прежнего качества видеоизображения.

H.265/HEVC, по всей видимости, станет наиболее популярным стандартом видео в ближайшее десятилетие. Во множестве приложений и продуктов мультимедиа в настоящее время реализуется поддержка HEVC. В этом документе мы реализовали основанное на ЦП полнофункциональное решение HEVC реального времени на платформах Intel с новыми технологиями IA. Наше оптимизированное решение на базе процессоров Intel развернуто в компании Xunlei, занимающейся предоставлением услуг видео через Интернет, и будет способствовать повсеместному внедрению и распространению технологии H.265/HEVC.