Кодек AV1 – 3 вещи, которые вы должны знать об этом
Кодек Aomedia Video 1, или AV1, начинает оказываться в руках потребителя. Ранее в этом году Netflix попал в заголовки газет, заявив, что начал потоковую передачу AV1 некоторым зрителям Android. Совсем недавно Google объявил, что добавит кодек AV1 в свое приложение для видеочата Duo, а MediaTek объявил о том, что он будет поддерживать видеопотоки YouTube AV1 на своей Dimensity 1000 5G SoC. Так в чем суета? Что такое кодек AV1? Почему это важно? Вот краткий обзор AV1 и его значения для потоковой передачи видео за 5 лет.
AV1 бесплатна и имеет открытый исходный код
Изобретать технологии, разрабатывать компоненты и проводить исследования дорого. Инженеры, материалы, здания – все это стоит денег. Для «традиционной» компании возврат инвестиций происходит от продаж. Если вы разрабатываете новый гаджет, и он продается миллионами, вы получаете деньги, которые были потрачены изначально. Это верно для физических продуктов, таких как смартфоны, но это также верно и для разработки программного обеспечения.
Игровая компания тратит деньги на разработку игры, платит инженерам и художникам по пути, а затем продает игру. Он может даже физически не существовать на картридже DVD / ROM / что-либо еще, это может быть цифровая загрузка. Однако продажи платят за его развитие. Но что произойдет, если вы разработаете новый алгоритм или технику для чего-то, скажем, для сжатия видео? Вы не можете предлагать алгоритм для цифровой загрузки, его будут покупать не потребители, а производители, которые хотят включить этот алгоритм в смартфоны, планшеты, ноутбуки, телевизоры и т.д.
Netflix попал в заголовки, когда заявил, что начал потоковую передачу AV1 некоторым зрителям Android.
Если изобретатель алгоритма может продать технику третьим сторонам, то один из бизнес-вариантов – взимать небольшую плату – изменение роялти за каждое устройство, поставляемое с алгоритмом. Все это кажется справедливым и справедливым. Однако система открыта для злоупотреблений. От недружественных переговоров о пошлинах, до патентных троллей, до судебных исков на миллион долларов история предприятий, основанных на роялти, длинна и полна неожиданных побед и потерь как для «плохих парней», так и для «хороших парней».
Как только технология становится повсеместной, происходит странная вещь: продукты не могут быть созданы без нее, но они не могут быть созданы с ее помощью, если не согласованы цены. Еще до того, как продукт достигнет первоначальной концепции, он уже обременен перспективой лицензионных отчислений. Это все равно что пытаться взимать с производителя продукта за создание гаджета, который использует электричество, а не количество использованного электричества, а только тот факт, что оно использует электричество.
Реакция против этого состоит в том, чтобы искать и развивать технологию, которая свободна от лицензионных платежей и свободна от кандалов патентов. Это цель кодека AV1.
Многие из современных и распространенных технологий потокового видео не являются бесплатными. Видео MPEG-2 (используется на DVD, спутниковом телевидении, цифровом телевещании и т.д. ), H.264 / AVC (используется на дисках Blu-ray и во многих службах потоковой передачи в Интернете) и H.265 / HEVC (рекомендуемый кодек для 8K) ТВ) все нагружены претензиями роялти и патентами. Иногда сборы отменяются, иногда нет. Например, у Panasonic более 1000 патентов, связанных с H.264, а у Samsung более 4000 патентов, связанных с H.265!
Кодек AV1 разработан, чтобы быть лицензионным платежом. У него много громких имен, поддерживающих его, а это значит, что юридический вызов против объединенного пула патентов и финансовой мощи Google, Adobe, Microsoft, Facebook, Netflix, Amazon и Cisco будет бесполезным. Однако это не помешало некоторым патентным троллям, таким как Сисвел, греметь своими цепями. На сегодняшний день на самом деле ничего не дошло до суда, но патентные тролли не легко сдаются.
AV1 на 30% лучше, чем H.265
Помимо того, что AV1 не требует лицензионных отчислений и является открытым исходным кодом, он должен действительно предлагать преимущества по сравнению с уже установленными технологиями. Aomedia (хранители кодека AV1) утверждают, что предлагает сжатие на 30% лучше, чем H.265. Это означает, что он использует меньше данных, предлагая то же качество для видео 4K UHD.
Есть два важных показателя для любого видеокодека. Битрейт (то есть размер) и качество. Чем выше битрейт, тем больше закодированные файлы. Чем больше закодированные файлы, тем больше объем данных, которые необходимо передать в поток. С изменением битрейта меняется и качество. Проще говоря, если данных будет меньше, то точность и точность исходного материала снизится. Чем больше данных, тем больше шансов представить оригинал.
Видеокодеки, такие как AV1 (и H.264 / H.265), используют сжатие с потерями. Это означает, что закодированная версия не совпадает (пиксель за пикселем) с оригинальной. Хитрость заключается в том, чтобы закодировать видео таким образом, чтобы потери были незаметны для человеческого глаза. Есть много методов, чтобы сделать это, и это сложный предмет. Три из основных методов должны использовать постепенные изменения кадра, квантование и векторы движения.
AV1 разработан, чтобы быть без лицензионных платежей.
Первый – это простой выигрыш с точки зрения сжатия, вместо того, чтобы отправлять полный кадр видео 30 раз в секунду (для видео со скоростью 30 кадров в секунду), почему бы просто не отправить изменения от одного кадра к другому. Если в сцене два человека, которые бросают мяч, то изменениями будут мяч и люди. Остальная часть сцены останется относительно статичной. Видеокодеру нужно только беспокоиться о разнице, гораздо меньшем наборе данных. Всякий раз, когда сцена изменяется или через форсированные регулярные интервалы, должен быть включен полный кадр (ключевой кадр), а затем отслеживаются отличия от этого последнего полного кадра.
Когда вы делаете фотографию на своем смартфоне, есть вероятность, что она будет сохранена в формате JPEG (файл .jpg). JPEG – это формат сжатия изображений с потерями. Он работает с использованием техники, называемой квантованием. Основная идея заключается в том, что данный сегмент фотографии (8 × 8 пикселей) может быть представлен фиксированной последовательностью затененных рисунков (по одному для каждого цветового канала), наложенных друг на друга. Эти шаблоны генерируются с использованием дискретного косинусного преобразования (DCT). Используя 64 из этих шаблонов, можно представить блок 8 × 8, решив, сколько из каждого шаблона необходимо для получения аппроксимации исходного блока. Оказывается, может быть, только 20% шаблонов необходимы для убедительной имитации исходного блока. Это означает, что вместо сохранения 64 чисел (по одному на пиксель) изображению со сжатием с потерями может потребоваться только 12 чисел. 64 до 12,
Пример дискретных косинусных паттернов, используемых для сжатия с потерями
Количество затененных рисунков, преобразования, необходимые для их генерации, вес, заданный для каждого рисунка, количество выполненных округлений, являются переменными и изменяют качество и размер изображения. JPEG имеет один набор правил, H.264 другой набор, AV1 другой набор и так далее. Но основная идея та же самая. В результате каждый кадр в видео представляет собой представление с потерями исходного кадра. Сжатый и меньше, чем оригинал.
В-третьих, есть отслеживание движения. Если мы вернемся к нашей сцене, где два человека бросают мяч, то мяч перемещается по сцене. Для некоторых его перемещений он будет выглядеть точно так же, поэтому вместо того, чтобы отправлять те же данные снова и относительно мяча, было бы лучше просто заметить, что блок с мячом немного сместился. Векторы движения могут быть сложными, и нахождение этих векторов и построение дорожек могут занимать много времени во время кодирования, но не во время декодирования.
Это все о битах
Наивысшая битва за видеокодер – поддерживать низкий битрейт и высокое качество. Поскольку кодирование видео прогрессировало на протяжении многих лет, целью каждого последующего поколения было снижение битрейта и поддержание того же уровня качества. В то же время наблюдается увеличение разрешающей способности дисплея для потребителей. DVD (NTSC) был 480p, Blu-ray был 1080p, и сегодня у нас есть 4K потоковых видео сервисов, и мы замедляем скорость до 8K. Высокое разрешение экрана также означает большее количество пикселей для представления, что означает, что для каждого кадра требуется больше данных.
«Битрейт» – это число единиц и нулей, используемых в секунду видеокодеком. В качестве отправной точки, практическое правило: чем выше битрейт, тем лучше качество. Какой битрейт вам нужен для хорошего качества, зависит от кодека. Но если вы используете низкий битрейт, качество изображения может быстро ухудшиться.
Когда файлы хранятся (на диске DVD, диске Blu-ray или на жестком диске), битрейт определяет размер файла. Для простоты мы будем игнорировать любые аудиодорожки и любую встроенную информацию внутри видеопотока. Если объем DVD составляет приблизительно 4,7 ГБ, а вы хотите сохранить фильм продолжительностью 2 часа (120 минут или 7200 секунд), то максимально возможная скорость передачи данных составит 5200 килобит в секунду или 5,2 Мбит / с.
Если вам нужно освежить в мегабитах против мегабайт, то у меня есть видео об этом: мегабит в секунду (Мбит / с) против мегабайт в секунду (МБ / с).
Для сравнения, видеоклип 4K прямо с моего смартфона Android (в H.264) использовал скорость 42 Мбит / с, примерно в 8 раз выше, но при записи с разрешением примерно в 25 раз больше пикселей на кадр. Глядя на эти очень грубые цифры, мы видим, что H.264 предлагает сжатие, по крайней мере, в 3 раза лучше, чем MPEG-2 Video. Один и тот же файл, закодированный в H.265 или AV1, будет использовать примерно 20 Мбит / с, что означает, что и кодек H.265, и кодек AV1 обеспечивают сжатие в два раза больше, чем H.264.
Наивысшая битва за видеокодер – поддерживать низкий битрейт и высокое качество.
Это очень приблизительные оценки доступных коэффициентов сжатия, потому что числа, которые я дал, подразумевают постоянную скорость передачи битов. Однако некоторые кодеки позволяют кодировать видео с переменным битрейтом, определяемым настройкой качества. Это означает, что битрейт меняется мгновенно, с предопределенным максимальным битрейтом, используемым, когда сцены сложные, и меньшим битрейтом, когда вещи менее загромождены. Именно тогда этот параметр качества определяет общий битрейт.
Существуют различные способы измерения качества. Вы можете посмотреть пиковое соотношение сигнал / шум, а также другую статистику. Плюс вы можете посмотреть на качество восприятия. Если у 20 человек одинаковые видеоклипы с разных кодеров, то какие из них будут оцениваться выше по качеству.
Вот откуда берутся на 30% лучшие требования к сжатию. Согласно различным исследованиям, видеопоток, закодированный в AV1, может использовать более низкую скорость передачи битов (на 30%) при достижении того же уровня качества. С личной, субъективной точки зрения это трудно проверить и одинаково трудно оспорить.
Выше приведен монтаж одного кадра из одного и того же видео, закодированного тремя различными способами. Вверху слева оригинальное видео. Рядом справа находится кодек AV1 с H.264 под ним и H.265 под оригинальным источником. Первоначальный источник был 4K. Это не идеальный метод для визуализации различий, но он должен помочь проиллюстрировать это.
Из-за уменьшения общего разрешения (это 1920 x 1080) изображения мне трудно заметить большую разницу между четырьмя изображениями, особенно без просмотра пикселов. Вот тот же тип монтажа, но с увеличенным изображением, поэтому мы можем немного разглядеть пиксель.
Ниже приведено сравнение кадра HEVC / H.265 с кадром AV1.
Пример HEVC H.265 при 22 Мбит / с Пример AV1 на 22 Мбит / с
Здесь я вижу, что исходное видео, вероятно, имеет лучшее качество, а H.264 – худшее (относительно) по сравнению с оригиналом. Я бы изо всех сил пытался объявить победителя между H.265 и AV1. В случае необходимости я бы сказал, что кодек AV1 лучше воспроизводит цвета на лепестках.
Одно из утверждений Google об использовании AVI в приложении Duo заключалось в том, что оно «улучшит качество и надежность видеовызова даже при подключениях с очень низкой пропускной способностью». Возвращаясь к нашему монтажу, на этот раз каждый кодировщик был настроен на 10 Мбит / с. Это совершенно несправедливо для H.264, поскольку он не претендует на то же качество на тех же битрейтах, что и H.265 / Av1, но это поможет нам увидеть. Кроме того, оригинал остается неизменным.
H.264 на скорости 10 Мбит / с явно худший из 3. Быстрый взгляд на H.265 и AV1 оставляет у меня ощущение, что они очень похожи. Если я смотрю пиксель, я вижу, что AV1 работает лучше с травой в верхнем левом углу кадра. Таким образом, AV1 – чемпион, но только по очкам, это не был нокаут.
Пример HEVC H.265 при 10 Мбит / с Пример AV1 на 10 Мбит / с
AV1 не готов для масс (пока)
Без роялти и на 30% лучше. Где я могу зарегистрироваться? Но есть проблема, на самом деле огромная проблема. Кодирование файлов AV1 идет медленно. Мой оригинальный 4K клип с моего смартфона длится 15 секунд. Для кодирования этого с использованием только программного обеспечения в H.264 на моем ПК требуется около 1 минуты, что в четыре раза больше длины клипа. Если я использую аппаратное ускорение, доступное на моей видеокарте NVIDIA, тогда это займет 20 секунд. Просто немного дольше, чем оригинальный клип.
Для H.265 все немного медленнее. Только программное кодирование занимает около 5 минут, что немного дольше, чем оригинал. К счастью, аппаратное кодирование в H.265 также занимает всего 20 секунд. Поэтому аппаратное кодирование H.264 и H.265 похоже на мою настройку.
До того как все фанаты видео начали кричать, да, я знаю, что есть миллиард различных настроек, которые могут изменить время кодирования. Я приложил все усилия, чтобы удостовериться, что я кодирую как для подобного.
Мое оборудование не поддерживает кодирование AV1, поэтому мой единственный вариант – программный. Тот же 15-секундный клип, который занял 5 минут для программного обеспечения H.265, занимает 10 минут для Av1. Но это было не так, как было, это было изменено, чтобы получить лучшую производительность. Я протестировал несколько разных вариантов настроек качества и пресетов, 10 минут было лучшим временем. Один вариант, который я пробежал, занял 44 минуты. 44 минуты на 15 секунд видео. Это использует кодировщик SVT-AV1, которым увлекается Netflix. Существуют альтернативы, но они намного медленнее, например часы и часы, гораздо медленнее.
Кодирование клипа 4K 15 сек. | SW или HW | Время |
---|---|---|
H.264 | Программное обеспечение | 1 мин |
H.264 | аппаратные средства | 20 сек |
H.265 | Программное обеспечение | 5 минут |
H.265 | аппаратные средства | 20 сек |
AV1 | Программное обеспечение | 10 минут |
Это означает, что если у меня есть 1-часовой фильм, который я отредактировал со своего отпуска в экзотическое место, то для преобразования его в H.265 с использованием аппаратного ускорения на моем компьютере потребуется 80 минут. Один и тот же файл с использованием современных программных кодеров AV1 займет 40 часов!
Вот почему он не готов для масс (пока). Улучшения придут к кодировщикам. Программное обеспечение станет лучше, и аппаратная поддержка начнет появляться. Декодеры уже становятся экономными и эффективными, поэтому Netflix может начать потоковую передачу некоторого контента в AV1 на устройства Android. Но с точки зрения повсеместной замены H.264 нет, пока нет.
Одна интересная вещь в заявлениях Google относительно AV1 для Duo заключается в том, что она подразумевает кодирование AV1 на клиентских устройствах и декодирование AV1. Я написал по электронной почте Google об этом, и были обнадеживающие признаки того, что он собирался рассказать мне некоторые детали, но его планы относительно кодека AV1 и Duo, но затем все в списке рассылки загадочным образом затихли. Если кто-нибудь из Google вернется ко мне, я дам вам знать!
Источник записи: https://www.androidauthority.com