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