Пиковая производительность кодека что такое
Современные реалии, а именно широкое распространение видео в интернете, требуют быстро и качественно производить компрессию данных, и желательно, с минимальными требованиями к железной части как во время кодирования, так и во время декодирования уже на клиентском устройстве.
Для реализации этой идеи внедряются специальные алгоритмы (программы), называемые кодеками, которыми и совершается компрессия данных. Но, к сожалению, компрессия происходит с потерей информации, то есть после декомпрессии видео оно становится менее качественным, появляются разнообразные проблемы среди которых:
- Уменьшение цветов (более грубые градиенты)
- Усреднение соседних областей (потеря детализации и чёткости)
- Ухудшение качества движущихся объектов (разрывы на объектах, артефакты, нарушения границ объектов, смешение объектов с фоном)
Однако такой сценарий доступен не всегда. Если требуется передавать поток в режиме реального времени, то скорость кодирования должна быть равна или выше, чем скорость воспроизведения видео. В таком случае гипотетически можно увеличить битрейт и тем самым использовать упрощённые методы сжатия, теряя меньше деталей при компрессии. И это было бы так, если бы современные стриминговые площадки не ограничивали доступный битрейт для видеопотока.
Какие есть пресеты настроек
И для кодека x.264 и для более современного кодека x.265 есть масса параметров которые влияют на качество кодирования. Десятки опций имеющих возможность переключения множества параметров, которые образуют десятки тысяч комбинаций настроек. И чтобы пользователю не приходилось тратить своё время на подбор оптимальных конфигураций были введены готовые пресеты настроек. И для кодека x.264 и для кодека x.265 этих пресетов 10.
- Ultra Fast
- Super Fast
- Very Fast
- Faster
- Fast
- Medium
- Slow
- Slower
- Very Slow
- Placebo
С пресетами разобрались. Теперь надо разбираться с методикой тестирования и критериями и оценками качества.
Методика тестирования
Суть сжатия заключается в выборе опорного кадра и анализе изменений в последующих или соседних кадрах, и если этих изменений мало, то и описание изменений будет занимать мало места, а значит эти описания изменений могут поместится и в малый битрейт без значительного ухудшения качества. А если изменений в соседних кадрах будет много и они будут сложные как по цветам, так и по геометрии, то описать такие изменения будет либо сложно с точки зрения алгоритмов, либо сложно с точки зрения требований по объёму этих записей. Напомню, что мы рассматриваем случай когда в объёме мы ограничены.
В итоге для каждой из сложности кодирования нужно составить своего рода зависимость качества кодирования от сложности сцены для кодирования при неизменном битрейте.
Оценивать предлагаю по вот этому тестовому кадру:
Нажмите для увеличения
В нём есть довольно много интересных мест, которые будут меняться при сжатии.
Для наглядности вот GIF анимация нескольких этапов ухудшения качества. Естественно и сама GIF анимация использует сжатие, так что она не всецело отражает разницу, но все исходники будут размещены в самом низу статьи, и с ними может ознакомится любой желающий.
Нажмите на изображение чтобы открыть анимацию (2,6 МБ)
Основные отличия можно рассмотреть в чёткости сеток, в чёткости сложной спиральной формы скруглённой сетки, в равномерности и плавности градиентов цветов и цветовых переходов, в качестве градиентов серого цвета, в пиксилезации и замылинности текстур высокой контрастности и текстур низкой контрастности, в чёткости отображения текста.
Далее это несжатое видео было сжато в программе MeGUI (скачать можно тут). Программа выполняет скрипт программы AviSynth, которую можно скачать тут. Самый простой скрипт будет если поместить видео и сам скрипт формата *.avs и программу MeGUI в одну папку и скрипт можно создать текстовым редактором (например блокнотом), вписав:
С соответствующими настройками кодирования с постоянным ограниченным битрейтом в 10 Мбит/с.
Результаты
Далее нам надо оценить результаты. И я хочу остановится на сложностях 6 и 10. Сложность 6 отражает довольно высокую нагрузку, реально достижимую в видео. Сложность 10 просто самая большая.
Нам необходимо заполнить таблицу:
В виде графика эти данные выглядят так:
Далее я дал субъективные оценки качества изображения для сложности 6 и сложности 10.
Приоритеты при оценке были следующими:
- Сохранение форм и чёткости
- Сохранение цветов, полутонов, градиентов
- Отсутствие артефактов
Если для вас лично приоритеты иные, то сравнительные оценки для вас лично будут другие. Рекомендую самостоятельно провести оценку используя исходные стоп кадры или сэмплы видео с разными пресетами сжатия.
Оценки проводились для сложности 6 и 10.
Сложность сцены 6
Для сложности 6 результаты занесены в таблицу:
Эти же данные в виде графиков представлены ниже:
Графики зависимости качество кодирования от пресета настроек кодирования
Стоит отметить, что пресеты для x.264 очень нелинейно прирощают качество. Между качествами Slower и Very Slow кодека x.264 находятся все результаты для x.265 кроме Ultra Fast. При этом до пресета Fast в x.264 я результаты счёл неудовлетворительными. В то время как пресеты Very Slow и Placebo на x.264 оказались лучшими по качеству, чем Very Slow и Placebo на x.265.
Также предлагаю провести расчёт удельного качества в зависимости от потраченного времени. Но предупреждаю, что я хоть и пытался оценивать качество линейно, но в реальности субъективной оценкой линейности не добиться, так что графики представленные ниже имеют примерный характер. Результаты для кодирования выполненного с ограничением в SSD не учитываются.
Чем величина по вертикали больше, тем выше показатель удельного качества. То есть оценивается оправданность временных затрат.
Удельное качество зависимое от времени
С точки зрения математики, при анализе субъективных оценок качества, наиболее выгодным является пресет настроек Medium кодека x.265. То есть пресет позволяет получить приемлемое качество с приемлемыми затратами производительности.
Также видно для x.265, что дальнейший рост времени кодирования плохо компенсирует возрастающее качество.
Сложность сцены 10
Далее оценим аналогичные параметры для максимальной сложности видео.
На максимальной сложности нелинейность качества на x.264 становится ещё выше, и расслоение качества на x.265 так же становится больше. При этом стоит отметить, что для placebo x.265 я поставил оценку 7,5, что ниже, чем Very Slow для x.264.
Удельное качество зависимое от времени кодирования
Полученные изменения привели к тому, что при увеличении сложности самого видео ситуация с x.264 становится лучше, и пресет Slower позволяет добиться хорошего соотношения качества/производительности, но этот пресет всё равно не обходит по этому показателю Medium x.265.
Выводы
Ещё стоит отметить существенно большую чёткость изображения на средних пресетах x.265 в сравнении с x.264. Изображение полученное с пресетом x.265 Ultra Fast сопоставимо с изображением с пресетом slow x.264.
x.265 Ultra Fast требует существенно меньших затрат ресурсов, но поддержки кодека x.265 популярными стриминговыми сервисами нет.
Гипотетически достижимый сейчас пресет medium x.265 для кодирования в реальном времени и стриминга обеспечивал бы существенно более качественную картинку, чем технически недостижимый сейчас x.264 Slower.
Всё вышеописанное справедливо только для софтверного кодирования которое имеет лучшие характеристики качества/битрейт. При использовании аппаратного ускорения и кодировании в h.264 и h.265, при возможности выбора динамического битрейта и более высоких значений среднего битрейта кодирование видеокартой будет существенно лучше по соотношению качества/производительности, но хуже по соотношению качество/битрейт.
Тем не менее для монтажа видео и его вывода не в масштабах реального времени целесообразно применять аппаратное кодирование.
Для сравнения в архиве с оригиналами сжатых видео находится видео полученное RTX 2070 с динамическим битрейтом и средним битрейтом в 20 Мб/с, с объёмом в 133 МБ, против 93 для Placebo h.264.
Кодирование видео заняло около 24 секунд и для 6-ой сложности получено качество
8 баллов (примерно как x.265 medium и существенно лучше x.264 Slower).
Для 10-ой сложности качество при аппаратном кодировании RTX 2070 примерно соответствует x.265 Very Slow.
Вышеуказанная разница, естественно, получена с различным битрейтом, исходя из различных задач. Для расчётов процессором исходя из требований битрейта для стримов видеопотока, а для расчётов аппаратным кодированием видеокартой исходя из достаточности качества, то есть для получения качества сравнимого с обычными не стрим видео на Youtube. Пример тестового видео сжатого в VP9 после загрузки видео на Youtube имеется в архиве с видео.
Ссылки для скачивания исходных файлов:
Проект для Vegas Pro для создания не сжатого видео: тут (12 МБ)
Стоп кадры из тестовых видео: тут (502 МБ) (упаковано в архив 7-zip)
Видео зарендеренные с разными пресетами кодеков: тут (1,76 ГБ) (упаковано в архив 7-zip)
Видео на YouTube канале "Этот компьютер"
Это связано со многими факторами. Во-первых, в кодеке работает такой механизм как управление битрейтом, которое дает колебания качества даже у хороших кодеков. Во-вторых, сам пользователь выбирает разные стратегии битрейта, и в случае выбора CBR (или постоянный битрейт) на медленных сценах качество будет высоким, а на быстрых - низким. В-третьих, у кодеков есть т.н. ключевые кадры, качество которых обычно изменяется отдельно, и отличается от качества остальных кадров. В-четвертых, на качество влияет префильтрация (которая есть у всех современных кодеков). В-пятых. В-шестых. В-седьмых. :)
Это означает, что на любом достаточно длинном фильме (а средний фильм это 150000-200000 кадров) можно подобрать как достаточно хорошие, так и достаточно плохие кадры. Особенно если использовалось однопроходное CBR сжатие на достаточно динамичном фильме.
Разные кодеки "затачиваются" под разные типы фильмов
Межкадровая разница показывает, насколько сильно отличаются кадры. Черный цвет свидетельствует о том, что разницы нет; синий, зеленый и красный по возрастающей показывают различия, имеющиеся в изображениях. Если привести эти кадры в качестве сравнения, то Divx 3.1 будет лучше Divx 5.1.
Качество сжатия конкретного фильма может сильно зависеть от параметров кодирования
Большинство об этом не задумывается (должны же были авторы кодеков ВСЕ предусмотреть! :), но у кодеков, как правило, есть достаточно много параметров, позволяющих при том же размере файла заметно (а то и кардинально) изменить качество. В первую очередь это параметры стратегии битрейта, особенно режимы "quality - based" & "bitrate - based". Потом параметры префильтрации. В частности, deinterlacing, ибо встречаются фильмы, которые сжимали в чересстрочной развертке в MPEG-4 (и, видимо, удивлялись слабому качеству :), denoising (подавление шумов), deflicking (подавление мерцания) и т.д. Существуют параметры управления частотой ключевых кадров, маской использования B-frames, управление зависимости префильтра от фильма и т.д. Это означает, что имея кодеки А и Б (примерно равного качества), можно легко установить один кодек в режим Maximum Perfomance (все ручки сдвинуть до предела в сторону скорости сжатия), а другой в режим 2-pass Maximum Quality (все ручки до предела в сторону максимального качества), можно получить 2 фильма одного размера, но существенно разного качества. Можно даже эти фильмы на сайт выложить и предложить убедиться! :) Что с успехом многие компании и делают. При этом душераздирающие подробности того, что один кодек работал в 10 раз меньше другого, предпочитают оставлять за кадром. Зачем людям (тем более журналистам) знать лишнее? :) При этом исходный несжатый файл никто не кладет, обосновывая это его большим размером. А почему не кладут параметры сжатия - вы теперь знаете.
В этом кодеке из-за ошибки в rate control на одном из битрейтов резко падает качество (да, ошибки в кодеках тоже бывают :). Для этого кодека данный битрейт будет весьма неудачным параметром.
На самом деле существуют и другие, более тонкие способы получать как реальное преимущество, так и "преимущество". (Например, не существует методик, определяющих, насколько пропуск кадров критичен для восприятия и т.д.) Но эти - основные. Итак! Если хорошо вникнуть в методы "надувательства" при сравнении 2 кодеков, то становится понятно, что для корректного сравнения необходимо достаточно глобальное тестирование. Т.е., как минимум, нужно сравнивать разные по характеру фильмы с разными битрейтами, причем с использованием интегральных (средних) характеристик качества по всему фильму. Именно для этого и было проведено настоящее сравнение. Всего было протестировано 32 доступных кодека. В качестве тестовых были выбраны 9 последовательностей разного характера. Для того, чтобы проверить все кодеки на разных битрейтах, пришлось прогнать их более 2400 раз с разными параметрами (и то фактически тестировались только параметры по умолчанию)! Суммарное время счета составило больше 11 суток, причем реальное время было больше, поскольку из-за ошибок (в т.ч. ошибок в кодеках) часть последовательностей приходилось пересчитывать.Часть 1: Методология тестирования
Метрика PSNR
Описание метрики
В рамках данного тестирования критерием оценки качества сжатия служит метрика PSNR (peak signal to noise ratio/пиковое отношение сигнала к шуму, измеряется в дБ). Использование именно этой метрики обусловлено ее популярностью, ее используют во многих научных статьях и сравнениях в качестве меры потерь качества. Как и все существующие метрики, она не идеальна и имеет свои достоинства и недостатки. Для понимания приведенных ниже цифр, необходимо знать лишь то, что значение метрики тем больше, чем больше разница между сравниваемыми изображениями. Программу для PSNR-анализа можно загрузить здесь.
Смысл графиков PSNR/Frame size
На графике изображена зависимость показателя метрики от среднего размера кадра. Каждая ветвь соответствует определенному кодеку. Ветви построены на опорных точках, каждая из которых соответствует конкретному битрейту. Очевидно, на каждой ветви находится по десять точек (каждая последовательность сжимается на 10 настройках битрейта). Бывает, что кодек не удерживает битрейт и с разными настройками битрейта сжимает одинаково. В таких случаях, очевидно, на ветви кодека расположено менее десяти опорных точек. Для сравнения кодеков на этих графиках следует обращать внимание на то, как высоко расположены ветви кодеков. Чем выше находится ветвь – тем выше качество последовательности, сжатой данным кодеком. На приведенном рисунке видно, что на низком битрейте качество последовательности, сжатой кодеком Morgan Multimedia JPEG 2000, выше, чем у последовательности другого кодека. Однако на высоком битрейте Visicron J сжал последовательность с меньшими потерями качества по сравнению с кодеком MM JPEG2000.
Смысл графиков PSNR/Frame size (with drop frames)
Drop-фреймами называются кадры, которые кодек пропускает; на их место в видеопоследовательности подставляется последний сжатый кадр. Drop-фреймы являются средством понижения битрейта сжимаемой последовательности. Однако при большом количестве drop-фреймов в последовательности наблюдается эффект «слайд-шоу» - вместо динамической сцены кодируется лишь один кадр, который и будет показан в нужный интервал времени при проигрывании сжатого видео. Графики этого вида позволяют оценить количество реальных кадров в видеопоследовательности.
При сравнении кодеков на данных графиках следует обращать внимание на то, как близко к оси ординат расположены ветви на графике, отражающем использование drop-фреймов. Чем левее находится ветвь кодека, тем меньшие средние размеры кадров характерны для соответствующей сжатой последовательности. И следовательно, тем больше FPS на выходе. Таким образом, кодеки, чьи ветви расположены левее, дают на выходе больше FPS при том же качестве.
Методика тестирования
Последовательность действий
В тестировании участвует девять фильмов (см. ниже). Каждый фильм сжимается десять раз с разными битрейтами (кбит/с.): 100, 225, 340, 460, 700, 938, 1140, 1340, 1840, 2340. Для компрессии фильмов используется программа VirtualDub 1.4.13. Таким образом, для каждого кодека генерируется 90 фильмов. Затем для каждого фильма вычисляется метрика PSNR и количество drop-фреймов. Причем указанная метрика вычисляется как для каждого кадра, так и для всей последовательности – среднее значение по всем кадрам. Далее для построения графика используются соответствующие числа, в зависимости от типа графика.
Α видеокодек это программное обеспечение или устройство , которое обеспечивает кодирующее и декодирование для цифрового видео , и который может или не может включать в себя использование сжатия видео и / или декомпрессии. Большинство кодеков обычно являются реализациями форматов кодирования видео .
Сжатие может использовать сжатие данных с потерями , так что вопросы измерения качества становятся важными. Вскоре после того, как компакт-диск стал широко доступен в качестве замены аналогового аудио в цифровом формате, стало возможным также хранить и использовать видео в цифровой форме. Вскоре для этого появились самые разные технологии. Основная цель большинства методов сжатия видео - создать видео, максимально приближенное к точности исходного источника, при одновременном сохранении минимально возможного размера файла. Однако есть также несколько других факторов, которые можно использовать в качестве основы для сравнения.
СОДЕРЖАНИЕ
Введение в сравнение
При сравнении видеокодеков сравниваются следующие характеристики:
- Качество видео по битрейту (или диапазону битрейтов ). Обычно качество видео считается основной характеристикой сравнения кодеков. Сравнение качества видео может быть субъективным или объективным .
- Характеристики производительности, такие как скорость сжатия / распаковки, поддерживаемые профили / параметры, поддерживаемые разрешения, поддерживаемые стратегии управления скоростью и т. Д.
- Общие характеристики программного обеспечения - например:
- Производитель
- Поддерживаемые ОС ( Linux , macOS , Windows )
- Номер версии
- Дата выпуска
- Тип лицензии (коммерческая, бесплатная, с открытым исходным кодом )
- Поддерживаемые интерфейсы (VfW, DirectShow и др.)
- Цена (соотношение цены и качества, оптовые скидки и т. Д.)
Качество видео
Качество, которого может достичь кодек, во многом зависит от формата сжатия, который использует кодек. Кодек не является форматом, и может быть несколько кодеков, реализующих одну и ту же спецификацию сжатия - например, кодеки MPEG-1 обычно не достигают соотношения качества / размера, сравнимого с кодеками, реализующими более современную спецификацию H.264. Но соотношение качества и размера продукции, созданной различными реализациями одной и той же спецификации, также может различаться.
Каждая спецификация сжатия определяет различные механизмы, с помощью которых необработанное видео (по сути, последовательность несжатых цифровых изображений с полным разрешением) может быть уменьшено в размере, от простого битового сжатия (например, Lempel-Ziv-Welch ) до психовизуального резюмирования и резюмирования движений, и как вывод сохраняется в виде битового потока. Пока компонент кодера кодека соответствует спецификации, он может выбрать любую комбинацию этих методов для применения различных частей контента. Компонент декодера кодека, который также соответствует спецификации, распознает каждый из используемых механизмов и, таким образом, интерпретирует сжатый поток для рендеринга его обратно в необработанное видео для отображения (хотя это не будет идентично входному необработанному видео, если только сжатие не было выполнено). без потерь). Каждый кодировщик реализует спецификацию в соответствии со своими собственными алгоритмами и параметрами, что означает, что сжатый вывод различных кодеков будет различаться, что приведет к различиям в качестве и эффективности между ними.
Прежде чем сравнивать качество видео кодека, важно понять, что каждый кодек может дать различную степень качества для данного набора кадров в видеопоследовательности. Многочисленные факторы играют роль в этой изменчивости. Во-первых, все кодеки имеют механизм управления битрейтом, который отвечает за определение битрейта и качества для каждого кадра. Разница между переменным битрейтом (VBR) и постоянным битрейтом (CBR) создает компромисс между постоянным качеством для всех кадров, с одной стороны, и более постоянным битрейтом, который требуется для некоторых приложений, с другой. Во-вторых, некоторые кодеки различают разные типы кадров, такие как ключевые кадры и неключевые кадры, различающиеся по важности для общего визуального качества и степени, до которой они могут быть сжаты. В-третьих, качество зависит от префильтров, которые есть во всех современных кодеках. Другие факторы также могут иметь значение.
Для достаточно длинного клипа можно выбрать последовательности, которые мало пострадали от сжатия, и последовательности, которые сильно пострадали, особенно если использовался CBR , в результате чего качество между кадрами может сильно различаться из-за разной степени сжатия, необходимой для добиться постоянного битрейта. Таким образом, в данном длинном клипе, таком как полнометражный фильм, любые два кодека могут работать совершенно по-разному с определенной последовательностью из клипа, в то время как кодеки могут быть приблизительно равными (или ситуация обратная) по качеству в более широкой последовательности. рам. Пресс-релизы и любительские форумы могут иногда выбирать в обзорах последовательности, которые, как известно, отдают предпочтение определенному кодеку или стилю управления скоростью.
Объективное качество видео
Методы объективной оценки видео - это математические модели, которые стремятся предсказать человеческие суждения о качестве изображения, что часто подтверждается результатами экспериментов по оценке субъективного качества. Они основаны на критериях и показателях, которые могут быть объективно измерены и автоматически оценены компьютерной программой. Объективные методы классифицируются на основе наличия исходного исходного видеосигнала, который считается высококачественным (как правило, без сжатия). Поэтому их можно классифицировать как:
- Полные эталонные методы (FR), при которых доступен весь исходный видеосигнал
- Методы сокращенного эталона (RR), при которых доступна только частичная информация об исходном видео, и
- Методы без ссылки (NR), когда исходное видео вообще недоступно.
Субъективное качество видео
Это касается того, как видео воспринимается зрителем, и определяет его мнение о конкретной видеопоследовательности. Субъективные тесты качества видео довольно дороги с точки зрения времени (подготовка и выполнение) и человеческих ресурсов.
Есть много способов показать экспертам видеоряды и записать их мнения. Некоторые из них стандартизированы, в основном в Рекомендации МСЭ-R BT.500-13 и Рекомендации МСЭ-Т P.910 .
Причина для измерения субъективного качества видео такая же, как и для измерения средней оценки аудио. Мнения экспертов могут быть усреднены, и средняя оценка может указываться как заданный доверительный интервал или сопровождаться им. Для усреднения можно использовать дополнительные процедуры. Например, мнения экспертов, мнения которых считаются нестабильными (например, если их корреляция со средним мнением оказывается низкой), могут быть отвергнуты.
В случае видеокодеков это очень распространенная ситуация. Когда кодеки с одинаковыми объективными результатами показывают результаты с разными субъективными результатами, основными причинами могут быть:
- В кодеках широко используются пре- и постфильтры . Кодеки часто используют предварительные фильтры, такие как шумоподавление , устранение помех, устранение помех и т. Д. Уменьшение шума и устранение помех обычно поддерживает значение PSNR, одновременно повышая визуальное качество (лучшие фильтры для медленного шумоподавления также увеличивают PSNR на средних и высоких битрейтах). Устранение встряски значительно снижает PSNR, но повышает визуальное качество. Постфильтры обладают схожими характеристиками - снятие блокировок и устранение ошибок поддерживает PSNR, но повышает качество; зернистость (предлагается в H.264 ) существенно повышает качество видео, особенно на больших плазменных экранах, но снижает PSNR. Все фильтры увеличивают время сжатия / распаковки, поэтому они улучшают визуальное качество, но снижают скорость кодирования и декодирования.
- Стратегия поиска с оценкой движения (ME) также может привести к разному визуальному качеству для одного и того же PSNR. Так называемый поиск истинного движения обычно не достигает минимальной суммы абсолютных разностей (SAD) значений в кодеке ME, но может привести к лучшему визуальному качеству. Такие методы также требуют большего времени сжатия.
- Стратегия контроля скорости . VBR обычно вызывает более высокие оценки визуального качества, чем CBR для тех же средних значений PSNR для последовательностей.
Для субъективного тестирования сложно использовать длинные последовательности. Обычно используются три или четыре десятисекундных последовательности, в то время как полные фильмы используются для объективных показателей. Выбор последовательности важен - те последовательности, которые похожи на те, которые используются разработчиками для настройки своих кодеков, более конкурентоспособны.
Сравнение производительности
Сравнение скорости
Число кадров в секунду ( FPS ), обычно используемое для измерения скорости сжатия / декомпрессии.
При оценке возможных различий в производительности кодеков следует учитывать следующие вопросы:
- Равномерность времени кадра декомпрессии (иногда сжатия) - большие различия в этом значении могут вызвать раздражающее прерывистое воспроизведение.
- Поддержка SIMD процессором и кодеком - например, MMX , SSE , SSE2 , каждый из которых изменяет производительность процессора для некоторых видов задач (часто включая те, с которыми связаны кодеки).
- Поддержка многопоточности процессором и кодеком. Иногда включение поддержки Hyper-threading (если она доступна на конкретном процессоре) приводит к снижению скорости кодека.
- Скорость ОЗУ - обычно важна для большинства реализаций кодеков
- Размер кеш-памяти процессора - низкие значения иногда вызывают серьезное снижение скорости, например, для процессоров с низким кешем, таких как некоторые из серии Intel Celeron .
- Использование графического процессора кодеком - некоторые кодеки могут значительно повысить свою производительность за счет использования ресурсов графического процессора.
Так, например, кодек A (оптимизированный для использования памяти, т. Е. Использует меньше памяти) может на современных компьютерах (которые обычно не ограничены памятью) давать более низкую производительность, чем кодек B. Между тем одна и та же пара кодеков может даст противоположные результаты при работе на старом компьютере с ограниченными ресурсами памяти (или кеша).
Поддержка профилей
Современные стандарты определяют широкий спектр функций и требуют очень значительных программных или аппаратных усилий и ресурсов для их реализации. В любом конкретном продукте обычно поддерживаются только выбранные профили стандарта. (Это очень часто, например, для реализаций H.264.)
Стандарт H.264 включает следующие семь наборов возможностей, которые называются профилями и предназначены для определенных классов приложений:
- Базовый профиль (BP) : в первую очередь для недорогих приложений с ограниченными вычислительными ресурсами, этот профиль широко используется в видеоконференцсвязи и мобильных приложениях.
- Основной профиль (MP) : изначально задумывался как основной профиль потребителя для приложений вещания и хранения, важность этого профиля уменьшилась, когда для этих приложений был разработан профиль High (HiP).
- Расширенный профиль (XP) : этот профиль, предназначенный для использования в качестве профиля потокового видео, обладает относительно высокой способностью к сжатию и некоторыми дополнительными приемами для обеспечения устойчивости к потерям данных и переключению потоков сервера.
- High Profile (HiP) : основной профиль для приложений вещания и хранения на дисках, особенно для приложений телевидения высокой четкости. (Это профиль, принятый , например, для дисков HD DVD и Blu-ray .)
- Профиль High 10 (Hi10P) : выходя за рамки возможностей сегодняшних основных потребительских продуктов, этот профиль построен на основе High Profile, добавляя поддержку точности декодированного изображения до 10 бит на выборку.
- Профиль High 4: 2: 2 (Hi422P) : в первую очередь нацелен на профессиональные приложения, использующие чересстрочное видео, этот профиль строится поверх профиля High 10, добавляя поддержку формата выборки цветности 4: 2: 2 при использовании до 10 бит на каждый. образец точности декодированного изображения.
- Прогнозирующий профиль High 4: 4: 4 (Hi444PP) : этот профиль построен на основе профиля High 4: 2: 2, поддерживает выборку цветности до 4: 4: 4, до 14 бит на выборку и дополнительно поддерживает эффективную без потерь кодирование области и кодирование каждого изображения в трех отдельных цветовых плоскостях.
- Multiview High Profile : этот профиль поддерживает два или более просмотра с использованием как межкадрового (временного), так и межвидового предсказания MVC, но не поддерживает изображения полей и кодирование поля кадра с адаптацией к макроблокам.
Стандарт также содержит четыре дополнительных профиля all-Intra , которые определены как простые подмножества других соответствующих профилей. В основном это профессиональные приложения (например, камеры и системы редактирования):
- Профиль High 10 Intra : Профиль High 10 предназначен только для внутреннего использования.
- Профиль High 4: 2: 2 Intra : Профиль High 4: 2: 2 ограничен для использования во всех помещениях.
- Профиль High 4: 4: 4 Intra : Профиль High 4: 4: 4 ограничен для использования во всех помещениях.
- Профиль CAVLC 4: 4: 4 Intra : Профиль High 4: 4: 4 ограничен для использования только во внутреннем формате и энтропийного кодирования CAVLC (т. Е. Не поддерживает CABAC ).
Более того, стандарт теперь также содержит три профиля масштабируемого кодирования видео .
- Масштабируемый базовый профиль : масштабируемое расширение базового профиля.
- Масштабируемый высокий профиль : масштабируемое расширение высокого профиля.
- Масштабируемый профиль High Intra : масштабируемый профиль High Intra ограничен для использования только в помещении.
При точном сравнении кодеков необходимо учитывать вариации профиля в каждом кодеке.
Поддерживаемые стратегии контроля скорости
Стратегии управления скоростью видеокодеков можно разделить на:
Переменный битрейт (VBR) - это стратегия максимального визуального качества видео и минимизации битрейта. В сценах с быстрым движением переменный битрейт использует больше битов, чем в сценах с замедленным движением аналогичной продолжительности, но обеспечивает постоянное визуальное качество. Для потоковой передачи видео в реальном времени и без буферизации, когда доступная полоса пропускания фиксирована - например, в видеоконференцсвязи, доставляемой по каналам с фиксированной полосой пропускания, - необходимо использовать постоянный битрейт (CBR).
CBR обычно используется для видеоконференций, спутникового и кабельного вещания. VBR обычно используется для создания видео CD / DVD и видео в программах.
Контроль скорости передачи данных подходит для потокового видео. Для автономного хранения и просмотра обычно предпочтительнее кодировать с постоянным качеством (обычно определяемым квантованием ), а не использовать управление скоростью передачи данных.
Характеристики программного обеспечения
Список кодеков
В настоящее время поддерживается Compression Technologies, Inc.
- DivX Plus также известен как DivX 8. Последней стабильной версией для Mac является DivX 7 для Mac.
Встроенная поддержка операционной системы
Обратите внимание, что поддержка операционной системы не означает, что видео, закодированное с помощью кодека, может воспроизводиться в конкретной операционной системе - например, видео, закодированное с помощью кодека DivX, может воспроизводиться в Unix-подобных системах с использованием бесплатных декодеров MPEG-4 ASP (FFmpeg MPEG -4 или Xvid), но кодек DivX (который является программным продуктом) доступен только для Windows и macOS.
Современные медийные платформы позволяют пользователям наслаждаться высокодетализированным видео и потрясающими аудиоэффектами в режиме онлайн.
Однако создание подобного контента было бы невозможно без существования кодеков и контейнеров.
Чем кодеки отличаются от контейнера — их часто путают
Для ответа на вопрос, чем кодеки отличаются от контейнеров, необходимо понять, что такое кодеки.
Смысл понятия «кодек» лежит прямо в его названии:
Фактически кодек — это цифровой инструмент компрессии и декомпрессии данных. Компрессия (сжатие данных) необходима для экономии занимаемого файлом места. Например, несжатое видео высокой четкости в raw-формате, при 60 кадрах в секунду способно достигать размеров в полтерабайта на каждый час записи.
Восьмиканальная аудиодорожка в 24-битном разрешении будет занимать 16 мегабит за одну секунду записи. Такие объемы данных не подходят ни для штатного хранения, ни для их передачи онлайн, поэтому для их сжатия применяются специальные формулы, которые и называются кодеками.
Для хранения сжатой информации создаются контейнеры-обертки в определенном формате. Современные контейнеры способны хранить информацию, обработанную разными кодеками. Такие обертки указывают устройству на то, какими кодеками была сжата информация, и по какой формуле ее восстанавливать.
Если разобрать стандартное видео со звуком на кодеки и контейнеры, в результате получится три составные части:
- Видеокодек, отвечающий за степень сжатия и потери качества в процессе.
- Аудиокодек, отвечает за хранение звуковой дорожки.
- Контейнер-обертка, хранилище обоих кодеков и дополнительной метаинформации.
В случае если в видео нет звука, аудиокодек не нужен.
Популярные и прогрессивные кодеки
Большинство создаваемого видеоконтента обрабатывается кодеками XviD, MPEG-1\2, H.264, MPEG-4, DivX, WMV, MJPEG, RealVideo, Bink Video и их вариациями. Для аудиоформатов в основном используют AAC, Opus и MP3-кодеки. Из новинок стоит отметить кодек H.266/VVC, разрабатываемый для потоковой передачи видео в 4K и 8K.
Новый кодек позволяет вдвое сократить объем файла относительно H.265 кодека за счет более сложных алгоритмов. Сложные вычисления потребляют больше ресурсов, до 1000 % от потребления H.265 при кодировании, и до 200% при декодировании.
Какие кодеки в основном поддерживаются современными ТВ и обновляются ли они с прошивкой
Современные системы поддерживают большинство существующих кодеков.
Поддержка кодеков MPEG от первого до четвертого, вариации H.264 для воспроизведения Blu-Ray, а также XviD и DivX, входят в базовый пакет любого современного телевизора.
Ведущие производители всегда следят за ошибками и актуальностью своего программного обеспечения.
Обновление кодеков в процессе прошивки регулируется разработчиками индивидуально под каждую модель SmartTV.
Если новые кодеки необходимы, поддерживаются устройством на аппаратном уровне и не вызывают ошибок отображения, ничего не мешает разработчикам добавить их в ближайших обновлениях.
Не все устройства совместимы с новыми кодеками, поэтому установка неофициальных обновлений прошивки не рекомендуется потому как может привести к ошибкам воспроизведения.
Какие кодеки используются при проигрывании онлайн-видео (современные кодеки youtube)
В настоящее время стандартом большинства видеосервисов стали кодеки H.264 и MPEG-4, значительно реже встречаются кодеки FFDshow, XviD и DivX.
Одним из самых перспективных кодеков является бесплатный AV1-кодек. Разработан сообществом AOMedia, включающим в себя таких гигантов как AMD, Google, Netflix, Mozilla, Nvidia, Intel, ARM и Cisco. Исходный код кодека открыт и свободно распространяется без каких-либо лицензионных отчислений.
Что даст конечному пользователю переход ютуба на современный AV1
Кодек AV1 разрабатывался для воспроизведения видео онлайн, в браузерах Safari, Firefox, Edge и Chrome. Степень сжатия видео кодеком AV1 превосходит кодеки VP8 и H.264 от 30% до 50%, а кодек HEVC до 30–43 % на высоких битрейтах.
Полный переход видео платформы YouTube на AV1-кодек не только ускорит загрузку всех видеороликов от 20% до 50%, но и позволит стримить в разрешении 4K.
Для минимизации потерь качества, при сохранении и конвертации файла рекомендуется использовать кодеки AV1 для видео и Opus для аудио, обернутые в MP4-контейнер.
С развитием рынка видеонаблюдения и появлением мегапиксельных видеокамер все большее значение приобретает компрессия видеосигнала при его хранении и передаче по сети. Кодирование и последующее декодирование сигнала уменьшает нагрузку на каналы передачи данных и позволяет обойтись меньшим объемом архива.
Компрессия сигнала производится при помощи кодеков, самыми известными из которых являются H.264, MPEG-4 и MJPEG. В чем их особенности? Можно ли однозначно сказать, что один из них лучше другого? Чтобы ответить на эти вопросы, нужно определиться…
Что такое хороший кодек?
Итак, каким требованиям должен удовлетворять кодек для охранного видеонаблюдения?
Кодек должен обеспечивать высокую компрессию видеосигнала с большой производительностью и минимальными задержками. Это необходимо для снижения нагрузки на сеть и уменьшения объема архива, а также для синхронизации данных и повышения безопасности объекта (из-за большого времени задержки охрана может не успеть среагировать на нештатную ситуацию).
Любой кодек портит изображение (так называемые потери компрессии). В хорошем кодеке потери качества картинки должны быть сведены к минимуму – ведь в видеонаблюдении важной может оказаться любая деталь в кадре. Не следует забывать о возможности предоставления данных в различные инстанции (включая судебные) и о технологиях идентификации объектов, для которых высокое качество картинки просто необходимо.
Чем сильнее степень компрессии – тем более производительным должен быть процессор кодирующего / декодирующего устройства, а это ведет к повышению стоимости оборудования.
Для охранного видеонаблюдения важно иметь возможность быстрого доступа к конкретному кадру, причем как при просмотре в реальном времени, так и из архива.
Кодек не должен существенно увеличивать общую стоимость системы видеонаблюдения – а это относится и к пропускной способности каналов связи (их прокладка или аренда), и к объему архива для хранения данных, и собственно к оборудованию (кодеры и декодеры).
Даже на первый взгляд видно, что эти требования во многом противоречат друг другу. Высокая степень и скорость компрессии требует больших мощностей процессора – а это приводит к существенному увеличению стоимости оборудования для обработки сигнала. Да и качество изображения при этом страдает. Но если сигнал сжат слабо – стоимость системы возрастет за счет большого объема архива и повышенных требований к каналам связи, хотя качество картинки, скорее всего, будет лучше.
Поэтому идеального кодека в настоящее время, увы, просто не существует. Можно только подобрать кодек, более-менее оптимальный для конкретной системы видеонаблюдения с учетом поставленных перед ней задач.
Кодеки принято делить на потоковые или Inter (H.264 и MPEG-4) и покадровые или Intra (MJPEG). Основное различие между этими типами кодеков заключается в том, что покадровые сжимают каждый отдельный кадр, который является опорным, а потоковые оперируют с группой кадров, сохраняя не сам кадр, а изменения в нем по отношению к предыдущим или последующим кадрам.
MJPEG (Motion JPEG)
Этот покадровый кодек отличается простотой и быстротой сжатия данных, легкостью доступа к конкретному кадру и самой низкой степенью компрессии. Его особенности:
- низкие требования к оборудованию обработки данных;
- высокое качество картинки;
- малое время обработки (задержки) сигнала;
- простота получения кадров из архива;
- большой объем архива (вследствие большого «веса» данных);
- высокие требования к пропускной способности сети.
Покадровый метод компрессии MJPEG рекомендуется использовать в бюджетных сетях с низкими вычислительными мощностями и камерами не самого высокого разрешения, а также там, где качество картинки является приоритетным.
MPEG-4
Этот потоковый (или внешнекадровый) кодек является общепринятым мировым стандартом при оцифровке и сжатии видео и звука, он активно применяется в телевещании и киноиндустрии, при записи фильмов на диски и т.п. При компрессии сигнала применяются сложные алгоритмы, причем обрабатывается группа кадров с сохранением только изменений в кадре.
Сложные алгоритмы сжатия требуют больших вычислительных ресурсов и большего времени на обработку сигнала. Небольшая задержка и потеря качества картинки на экране телевизора допустима… а на мониторе наблюдения оператора? Что, если именно эта задержка приведет к беде, а «потеряется» самая нужная часть кадра? Особенности кодека MPEG-4:
- более высокая степень компрессии (по сравнению с MJPEG);
- требуется меньше дискового пространства для хранения архива;
- ниже требования к пропускной способности сети;
- требуются более мощные процессоры (т.е. более дорогие кодеры и декодеры);
- более сложное восстановление отдельного кадра;
- увеличивается задержка при передаче сигнала.
H.264 (MPEG-4 part 10)
Хотя формально H.264 является не более чем разновидностью MPEG-4, его принято считать отдельным кодеком… возможно, из-за его быстро возрастающей популярности у производителей оборудования для охранного видеонаблюдения.
Как и MPEG-4, кодек H.264 обрабатывает группы кадров, при этом применяются еще более сложные алгоритмы для достижения еще большей степени компрессии данных. При сжатии в памяти одновременно сохраняются несколько обрабатываемых кадров (с прямым доступом к каждому кадру), поэтому H.264 отличается самой большой задержкой… но и самой высокой степенью сжатия.
Кодек H.264 – хороший выбор для систем видеонаблюдения с большим числом мегапиксельных видеокамер и хорошими вычислительными мощностями, при этом снижаются требования к каналам передачи данных и размеру архива. В России этот кодек получил большое распространение не в последнюю очередь из-за низкой пропускной способности сетей.
Принято считать, что H.264 сжимает изображение примерно на 50% лучше, чем MPEG-4, и на 80% - чем MJPEG. К примеру, средний «вес» кадра от двухмегапиксельной камеры, сжатого при помощи MJPEG, около 280 кб; при помощи MPEG-4 – более 30 кб; а кодек H.264 сожмет 2-х мегапиксельную картинку до размера примерно 20 кб.
Motion Wavelets
Этот кодек появился сравнительно недавно, он основан на теории вейвлет-функций («маленьких всплесков») и разработан специально для охранного телевидения. Каждый кадр видео можно описать всплесками и спадами цвета и яркости в определенной точке и в определенный момент времени. Вейвлет-кодирование – это, образно говоря, разложение картинки на вейвлеты, а декодирование – собирание изображения из них.
На диаграмме мы видим сравнение двух кодеков - Motion Wavelets и DivX-5 Pro, в основе которого – модифицированный алгоритм компрессии MPEG-4, т.е. по сути мы сравниваем именно эти два кодека по отношению сигнал / шум. Сравнение проводилось путем сжатия одного и того же динамического видеофрагмента до 3-х файлов одного размера каждым кодеком (сильное, среднее и слабое сжатие). Далее файлы декодировались и оценивались с помощью программы PSNR Checker.
Вывод таков – при одинаковой степени сжатия Motion Wavelets меньше искажает сигнал. А если сжать обеими кодеками видео до одной степени искажения (одинаковое качество видео), то степень компрессии кодеком Motion Wavelets по сравнению с MPEG-4 выше примерно в 1,7 раза. Возможно, вскоре этот кодек будет поддерживать большинство сетевого оборудования.
Широко известные открытые мировые стандарты передачи данных, то есть по сути совместимости сетевого оборудования ONVIF и RTSP обеспечивают поддержку кодеков H.264, MPEG-4 и MJPEG. Поэтому если в спецификации к устройству указано, что оно соответствует ONVIF или RTSP (или не менее популярному стандарту PSIA), можно с большой вероятностью утверждать, что это устройство будет совместимо с другим устройством, поддерживающим этот же стандарт.
Некоторые производители разрабатывают свои кодеки, и они могут быть в чем-то лучше, чем общеизвестные H.264, MPEG-4 и MJPEG. К сожалению, тут есть большое НО, и называется оно «несовместимость с оборудованием других производителей». Встроив в оборудование малоизвестный стандарт кодировки сигнала, производитель тем самым резко сужает сферу применения такого оборудования.
Именно поэтому большинство производителей оборудования для охранного видеонаблюдения «встраивают» в него широко распространенные кодеки H.264, MPEG-4 и MJPEG. Иногда поддерживается только один из этих стандартов, чаще - два или три.
С одной стороны, это хорошо, т.к. оборудование с поддержкой мировых стандартов кодирования более универсально. С другой… МВД России наложило запрет на использование потоковых кодеков в системах видеонаблюдения, устанавливаемых в государственных учреждениях. Да и в судах при предоставлении доказательств нужен так называемый стоп-кадр, который можно получить только с помощью покадрового MJPEG.
Как к этому относиться? Первая ли это «ласточка» от МВД? Cui prodest? Замешаны ли тут чьи-то интересы… как это часто бывает в нашей стране? И будет ли запрет на потоковые кодеки со временем распространен не только на госструктуры? Или весы качнутся в обратную сторону и запрет на H.264 и MPEG-4 будет отменен?
Ответа на эти вопросы нет. Время покажет… А пока – производители профессиональных камер для видеонаблюдения с гордостью пишут на упаковке «поддерживаются кодеки H.264, MPEG-4 и MJPEG». Они – пишут, мы – покупаем и устанавливаем… И все мы ждем появления идеального кодека, способного быстро и покадрово сжать сигнал до минимального размера, не требуя при этом больших вычислительных ресурсов и не портя картинку.
Андрей Васильев - директор по развитию бизнеса компании "ТД Видеоглаз".
Читайте также: