265 (HEVC) — маркетинговый трюк или что-то большее? Что несёт с собой грядущая смена стандарта кодирования. H.265: разбираемся что и зачем. Теперь кодируем по-новому

В данный момент идет активная разработка энкодера, но он все ещё находится в состоянии «бета»-версии. Работает медленно и не очень эффективно. Релизы новых версий выходят очень часто.

Что требуется?

Выберите один из методов:

  1. Скачайте исходники из официального репозитория и скомпилируйте энкодер x265.exe под свою систему.
  2. Скачайте одну из последних сборок x265.exe с нашего сайта.
  3. Используйте программу кодирования с графической оболочкой (см. конец страницы).

Использование энкодера x265 из командной строки

Энкодер берет на вход файлы в формате YUV или Y4M. Размер картинки (ширина и высота), а также частота кадров (FPS) должны быть заданы. Кодирование запускается с командной строки, по аналогии с x264. Кодировать можно с постоянным битрейтом (флаг —bitrate) или с постоянным качеством (флаг —crf). Пример для постоянного битрейта:

x265.exe input.yuv --input-res 1920x1080 --fps 50 --bitrate 14000 --input-depth 8 -o output.x265

Пример для постоянного качества:

x265.exe input.yuv --input-res 1920x1080 --fps 50 --crf 17 --input-depth 8 -o output.x265

На выходе будет файл в сыром формате x265: output.x265 Разработчики подготовили набор параметров для соотношений время/качество кодирования. Эти параметры задаются с помощью флага —preset. Полный список (от самого быстрого до самого медленного): ultrafast , faster , fast , medium , slow , veryslow , placebo . По умолчанию используется пресет ‘medium’. Пример для установки пресета:

x265.exe input.yuv --input-res 1920x1080 --fps 50 --crf 17 --input-depth 8 --preset veryslow -o output.x265

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

x265.exe input.y4m --q 17 --merange 64 --frames all --ref 4 --max-merge 3 --rect --hash 2 --me 3 --b 6 --b-adapt 1 --rd 2 --rc-lookahead 60 --input-depth 16 --tu-inter-depth=3 --tu-intra-depth=3 --no-tskip --no-tskip-fast --wpp --subme 2 --s 32 --F 6 --o video.hevc

Видео 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, тем лучше будет видео.

Удивительно, но факт - стандарту сжатия видео High Efficiency Video Coding (HEVC) уже более трех лет. Существуют не только программные, но и аппаратные решения для кодирования и даже бытовые медиаплееры с поддержкой этого формата. Интернет завален рекламными хвалебными восторженными отзывами и обзорами, причем обозреватели, в зависимости от наглости безграмотности доверчивости, обещают улучшение сжатия на 30-50% по сравнению с h.264 при том же качестве картинки. Теоретически оно наверняка так и есть и я совершенно ничего не имею против самого стандарта, всей этой высшей математики, множественности профайлов и объективной оценки субъективного восприятия психофизиологических параметров с помощью PSNR. Побудительным мотивом для написания этой антинаучной статьи послужила чистая недоверчивость, желание самостоятельно пощупать имеющиеся на данный момент свободные реализации кодировщиков видео в этот формат (x265) и сравнить результаты со старым добрым x264.

Чтобы понять масштаб проблемы и степень моей недоверчивости, отмечу, что я не верю в аппаратное кодирование в h.264/AVC (а точнее уверен, что с той же и скоростью при лучшем качестве может работать и чисто программный x264.exe), не верю в кодирование видео с помощью CUDA и DXVA и считаю все реализации таких «кодировщиков» чистым шарлатанством и не верю в магические двухкнопочные программы, которые могут «закодировать быстро и хорошо». Еще я не верю в демократию, антивирусы и современное высшее образование, но это уже чисто мои проблемы не имеющие отношения в кодированию видео:)
А теперь, зарядившись изрядной долей скептицизма возьмем один из скомпилированных вариантов свободного кодировщика x265 , а точнее восьмибитовую GCC сборку 1.7+286 и все дальнейшие действия будем производить с ней.
В этом пункте, кстати, моя недоверчивость опять взбрыкнула и пришлось потратить около 6 часов для сравнения 11 разных сборок с разных сайтов чтобы ее успокоить. Оказалось что результаты кодирования с аналогичными параметрами были идентичны до степени смешения, а время кодирования отличалось не больше чем на 5-6 процентов.
Для начала, возьмем в качестве исходника упомянутый выше отрывок из Аватара брызги-дерево-туман и чтобы исключить тормоза декодера, сохраним 100 кадров и из него в виде несжатого YUV4MPEG2 файла, который в дальнейшем и будет кодироваться. В x265 по умолчанию применяется CRF метод сжатия с постоянным качеством, поэтому закодируем и в x264 тоже в режиме CRF с показателем качества 17.2. Цифра взята не с потолка, а опытным путем выяснено что любое увеличение этой цифры ведет к понижению и битрейта и качества картинки на выходе, а уменьшение только повышает битрейт без какого-либо заметного увеличения качества. Конечно же остальные параметры кодирования были тоже на максимуме и в результате получился сжатый файл с битрейтом 17.6 Mb/s (что почти в 2 раза ниже исходных 31 Mb/s на BD диске). Время кодирования 100 кадров - 40 секунд . Качество картинки получилось почти идентичным по сравнению с исходником и даже не стоит выкладывать сравнение. В дальнейшем мы будем сравнивать 12-й В-кадр файла x264-17.2.mkv с разными вариантами кодирования в HEVC.

А вот тут пора вспомнить что пресет placebo использует далеко не самые максимально возможные параметры . Наиболее важные здесь --me star (при максимальном значении full) и --subme 5 (при максимальном 7). Попробуем ужесточить условия и вручную сказать
"E:\Video\x265\x265_64-8.exe" "E:\Video\avatar\raw.y4m" --preset placebo --me full --subme 7 --psy-rd 0.5 --psy-rdoq 0.5 --output "E:\Video\avatar\x265-test1.mkv" Сразу же становится понятным почему разработчики не рискнули вставить в «максимальный» профайл максимальные значения параметров. Время кодирования увеличилось более чем в 10 раз


И стоил ли результат этих жертв? не уверен…
Итак попытка #3, crf 20, -me full --subme 7, битрейт 9045 kb/s - 77 минут кодирования

И тут же сравнение результатов пресета placebo с вручную заданными -me full --subme 7

Выкидываем вручную заданные me, subme и ползем дальше.
Попытка #4, crf 18, битрейт 12922 kb/s - почти хорошо, но x264 пока лучше

Теперь посмотрим что будет если закодировать в x265 с тем же битрейтом что и x264 и с максимальными параметрами.
Этого же битрейта удалось достичь при значении crf 16.2. В этот раз кодирование заняло 90 минут.
Ссылка на файл

Результаты очень близки, но все же x264 сохранил чуть больше деталей и добавил чуть меньше мыла.
Вывод: Текущие реализации x265 проигрывают по качеству x264 на высоких битрейтах.

Вот мы и подошли к основному посылу всей статьи. Форматы сжатия видео вместе со всем остальным миром катятся в сторону упрощения и отупления населения. Никому не интересно иметь потребителя, который разглядывает скриншоты сравнений, борется за каждый лишний пиксель искажений, вчитывается в параметры кодирования и т.д. Все затачивается на максимально быстрые и смешные профайлы кодирования с минимальными битрейтами. Наверняка на низких битрейтах x265 будет иметь значительное преимущество над x264. Хотя и там и там будет масса искажений и мыла, но у x264 будет больше. Проверим.
Попытка #5, x265 5371 kb/s, x264 5374 kb/s

А вот и не отгадали:) Даже на родном для x265 битрейте x264 выглядит поприличнее.

x265 - это открытая реализация нового стандарта кодирования видео H.265 HighEfficiencyVideoCoding (HEVC). Стандарт H.265 является логическим продолжением H.264 и характеризуется более эффективными алгоритмами сжатия. Стандарт предполагает примерно двукратное уменьшение размера файла при одинаковом визуальном качестве, по сравнению с H.264 и поддержку высоких разрешений вплоть до 8K UHD (8192×4320).

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

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

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

Новый стандарт в кодеке H.265 смог существенно уменьшить размеры сжатых файлов и тем самым заслужил международное признание в качестве средства продвижения новых форматов видео. В H.265 использованы новые технологии сжатия и «умная» модель кодирования/декодирования, что позволяет экономно использовать пропускные ресурсы канала. Кодек разрабатывался с учётом всех особенностей 4К (поддержку 10-битового видео, высокую частоту кадров).

Размеры кодирования определяются настройками квантователя (цифрового преобразователя), где более низкие 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.265 требует большей производительности процессора для кодирования и декодирования в сравнении с H.264.
Функция гипер-поточности и установка параллелизации в 12/8 потока немного ускоряют процесс кодирования. Возможности тестового декодера с процессорами на базе SandyBridge-E (6 физических ядер) и Haswell (4 физических ядра, поддержка последней AVX2 и лучшим характеристикам производительности) опережают IvyBridge (4 физических ядра).
Кодирование при помощи x265 идёт дольше, чем кодирование с x264. Например, IvyBridge 3770K кодирует в H.264 файл за 129 секунд, в H.265 - за 247 секунд.

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

На изображении представлено оригинальное некомпрессированное YUV видео

На изображении представлено видео, кодированное в H.265 при показателях q=24, и видео, кодированного в H.264 при показателях q=24.

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

На изображении представлено видео, кодированное в H.265 и H.264 с показателем q=30.

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

Поддержка кодирования/декодирования доступна во многом оборудовании. Современные процессоры более чем готовы к декодированию H.265 при наличии соответствующего программного обеспечения. В долгосрочной перспективе H.265, скорее всего, заменит H.264 в качестве главного решения для расширенной обработки видео. Параллельная модель H.265 кодирования должна хорошо показать себя на фоне многоядерных устройств.
Внедрение нового формата для высокоэффективной обработки видео может оказать огромное влияние на рынок видеонаблюдения уже в ближайшие годы. Главное преимущество нового стандарта кодирования (H.265/HEVC) в сравнении с H.264/MPEG4 - это снижение битрейта примерно на 40%, качество получаемого изображения остается таким же.

IP-камеры с кодеком H.265 обеспечивают высококачественное изображение и снижают нагрузку сети и хранилища данных на 40%. Внедрение нового стандарта H.265 позволит увеличить количество эффективных мегапикселей у сетевых камер (10,15,20 Мп), а также снизить цифровые шумы и более четко отрабатывать функции WDR (Wide Dynamic Range).

Ассортимент оборудования Optimus активно пополняется современными моделями с кодеком сжатия H.265.

Теперь кодируем по-новому! Первые версии HEVC, Н.265 (High Efficiency Video Coding), новейшего стандарта видеокомпрессии, появились еще в 2013-м году. Среди специалистов было много споров, приживется данный формат в сфере видеонаблюдения или нет: в частности, говорилось о недоказанной эффективности (тесты в лабораторных условиях не в счет), высоких затратах на новое оборудование (кодек требует более мощной производительности устройств) и прочих важных моментах.

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

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

Теперь кодируем по-новому!

Н.265 – новейшая революционная разработка в области форматов видеокомпрессии. Специалисты полагают, этот кодек способен ощутимо пошатнуть status quo и в области обращения потребительского медиаконтента, и в профессиональной сфере (например, в системах видеонаблюдения).

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

Благодаря более мощным механизмам компрессии, кодек Н.265 отлично справляется с кодированием видео высокого и высочайшего разрешения более 8K UHD (8192×4320). Причем для качественного воспроизведения видеоинформации разрешением 4К кодеру необходим поток со скоростью всего 50 МВ/с.

Однако вернемся в привычные реалии, где множество камер имеют все же стандартное, а не запредельное разрешение: 1,3 Мп, 2 Мп, 3-Мп и выше. Испытания кодера показали эффективную его работу с разрешением видео выше 1 Мп. Тогда разница между сжатым файлом и оригиналом действительно видна. С видеопотоком, имеющем разрешение менее 1 Мп, по-прежнему мастерски справляется кодек Н.264.

И, что немаловажно, Н.265 сжимает видео практически без потерь, качество «ужатого» видео остается на высоком уровне. Специальные алгоритмы компрессии устраняют присущие Н.264 артефакты, такие как зернистость или размытые края движущихся объектов. С применением нового кодека такие моменты устранены.

Конкретные цифры: испытание последних версий кодека Н.265 дало ошеломительные результаты. Объем видео, обработанного по новому стандарту, оказался почти на 85% меньше, чем при использовании Н.264!

Дано: 2 Мп камера с фреймрейтом 25 к/с и сцена съемки со средней интенсивностью движения. При использовании кодека Н.264 битрейт будет равен примерно 4 Мб/с. В то время как при компрессии кодеком Н.265 – всего около 1 Мб/с!

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

Итого:
- Н.265, по сравнению с Н.264, рассчитан на обработку видео с разрешением от 4К и выше (6, 8, 12 Мп).
- Н.265 сжимает видео в разы сильнее, что позволяет экономить дисковое пространство и уменьшить нагрузку на каналы передачи данных вполовину.
- Н.265 производит видеокомпрессию практически без потерь, оставляя качество на более высоком уровне, без пиксельности и размытия объектов в движении
- Н.265 использует более мощные алгоритмы компрессии и позволяет получать объем видео до 85% меньше, чем закодированный при помощи Н.264.
- для эффективной работы, кодеку Н.265 требуется более мощные по производительности элементы и процессоры в оборудовании.

Даже такое поверхностное сравнение форматов сжатия Н.264 и Н.265 показывает ряд преимуществ нового кодека Н.265. Стандарт будет востребован в разных областях бизнеса: интернет-компании и видеохостинги, IP и цифровое ТВ, системы конференц-связи и т.д. Для систем видеонаблюдения новый формат сжатия также принесет неизмеримую пользу. За новым, Н.265-м кодеком – будущее!




Top