Потоковое вещание в формате 4K — это новая норма, но каждые 16 миллисекунд передается информация для более чем 8,2 миллиона пикселей, поэтому хранение и передача видео 4K в Интернете — непростая задача.
Двухчасовой фильм в несжатом виде занял бы более 1,7 терабайт дискового пространства. Итак, как потоковым гигантам, таким как YouTube и Netflix, удается хранить и транслировать видео, которые занимают так много места?
Ну, нет, потому что они используют видеокодеки для уменьшения размера фильмов, но что такое видеокодек и какой из них лучше?
Что такое видеокодек?
Прежде чем углубляться в сложности видеокодеков, очень важно понять, как создается видео. Проще говоря, видео — это не что иное, как набор неподвижных изображений, быстро сменяющих друг друга.
Из-за этой высокой скорости изменения человеческий мозг думает, что изображения движутся, создавая иллюзию просмотра видео. Поэтому при просмотре видео в 4К вы просто смотрите на набор изображений с разрешением 2160х3840. Благодаря высокому разрешению изображения видео, снятое в формате 4K, обеспечивает отличное качество видео. Тем не менее, это высокое разрешение изображений увеличивает размер видео, делая невозможным потоковую передачу по каналам с ограниченной пропускной способностью, таким как Интернет.
Для решения этой проблемы у нас есть видеокодеки. Сокращенный от кодер/декодер или сжатие/распаковка, видеокодек сжимает поток изображений в биты данных. Это сжатие может либо снизить качество видео, либо никак не повлиять на него в зависимости от используемых алгоритмов сжатия.
Как следует из названия, бит сжатия в кодеке уменьшает размер каждого изображения. Чтобы сделать то же самое, алгоритм сжатия использует нюансы человеческого глаза, чтобы люди не знали, что видео, которые они смотрят, сжаты.
Декомпрессия, напротив, работает наоборот и воспроизводит видео с использованием сжатой информации.
Хотя кодеки отлично справляются со сжатием информации, их выполнение может быть обременительным для вашего процессора. В связи с этим нормально наблюдать колебания производительности системы при запуске алгоритмов сжатия видео в вашей системе.
Чтобы решить эту проблему, процессоры и графические процессоры поставляются со специальным оборудованием, которое может запускать эти алгоритмы сжатия. Включение ЦП для выполнения текущих задач, в то время как выделенное оборудование обрабатывает видеокодеки, повышая эффективность.
Как работает видеокодек?
Теперь, когда у нас есть общее представление о том, что делает видеокодек, мы можем посмотреть, как он работает.
Подвыборка цветности
Как объяснялось ранее, видео состоит из изображений, и подвыборка цветности уменьшает количество информации в каждом изображении. Для этого он уменьшает информацию о цвете, содержащуюся в каждом изображении, но как это уменьшение информации о цвете обнаруживается человеческим глазом?
Видите ли, человеческие глаза прекрасно улавливают изменения яркости, но этого нельзя сказать о цветах. Это связано с тем, что в человеческом глазу больше палочек (клеток фоторецепторов, ответственных за обнаружение изменений яркости) по сравнению с колбочками (клеток фоторецепторов, ответственных за дифференциацию цветов). Разница в палочках и колбочках не позволяет глазам обнаруживать изменения цвета при сравнении сжатых и несжатых изображений.
Для выполнения субдискретизации цветности алгоритм сжатия видео преобразует информацию о пикселях в формате RGB в данные о яркости и цвете. После этого алгоритм уменьшает количество цвета в изображении на основе уровней сжатия.
Удаление избыточной информации о кадре
Видео состоит из нескольких кадров изображений, и в большинстве случаев все эти кадры содержат одну и ту же информацию. Например, представьте себе видео с человеком, говорящим на фиксированном фоне. В таком случае все кадры в видео имеют одинаковую композицию. Поэтому все изображения не нужны для рендеринга видео. Все, что нам нужно, — это базовое изображение, содержащее всю информацию и данные, связанные с изменением при переходе от одного кадра к другому.
Следовательно, чтобы уменьшить размер видео, алгоритм сжатия делит видеокадры на кадры I и P (прогнозируемые кадры). Здесь I-кадры являются основной истиной и используются для создания P-кадров. Затем кадры P визуализируются с использованием информации в кадрах I и информации об изменении для этого конкретного кадра. Используя эту методологию, видео разбивается на набор I-кадров, чередующихся с P-кадрами, что приводит к дальнейшему сжатию видео.
Сжатие движения
Теперь, когда мы разбили видео на кадры I и P, нам нужно рассмотреть сжатие движения. Часть алгоритма сжатия видео, помогающая создавать P-кадры с использованием I-кадров. Для этого алгоритм сжатия разбивает I-кадр на блоки, известные как макроблоки. Этим блокам затем присваиваются векторы движения, которые определяют направление, в котором эти блоки перемещаются при переходе от одного кадра к другому.
Эта информация о движении для каждого блока помогает алгоритму сжатия видео прогнозировать положение каждого блока в предстоящем кадре.
Удаление высокочастотных данных изображения
Так же, как и изменения в цветовых данных, человеческий глаз не может обнаружить тонкие изменения в высокочастотных элементах изображения, но что такое высокочастотные элементы? Видите ли, изображение, отображаемое на вашем экране, состоит из нескольких пикселей, и значения этих пикселей меняются в зависимости от отображаемого изображения.
В некоторых областях изображения значения пикселей изменяются постепенно, и говорят, что такие области имеют низкую частоту. С другой стороны, если происходит быстрое изменение пиксельных данных, область классифицируется как имеющая высокочастотные данные. Алгоритмы сжатия видео используют дискретное косинусное преобразование для уменьшения высокочастотной составляющей.
Вот как это работает. Сначала алгоритм DCT запускается для каждого макроблока, а затем обнаруживает области, в которых изменение интенсивности пикселей происходит очень быстро. Затем он удаляет эти точки данных из изображения, уменьшая размер видео.
Кодирование
Теперь, когда вся избыточная информация в видео удалена, мы можем сохранить оставшиеся биты данных. Для этого алгоритм сжатия видео использует схему кодирования, такую как кодирование Хаффмана, которая связывает все биты данных в кадре соответствуют тому количеству раз, которое они встречаются в видео, а затем соединяют их в виде дерева. Эти закодированные данные хранятся в системе, что позволяет легко отображать видео.
Различные видеокодеки используют разные методы для сжатия видео, но на самом базовом уровне они используют пять основных методов, определенных выше, для уменьшения размера видео.
AV1 против. HEVC против. VP9: Какой кодек лучше?
Теперь, когда мы понимаем, как работают кодеки, мы можем определить, какой из них лучше: AV1, HEVC и VP9.
Сжимаемость и качество
Если у вас есть видео 4K, которое занимает много места в вашей системе и не может загрузить его на ваш любимая платформа потокового вещания, возможно, вы ищете видеокодек, обеспечивающий наилучшее сжатие соотношение. Однако вы также должны учитывать, что качество, которое он обеспечивает, снижается по мере того, как вы продолжаете сжимать видео. Поэтому при выборе алгоритма сжатия важно смотреть на качество, которое он обеспечивает при определенном битрейте, но что такое битрейт видео?
Проще говоря, битрейт видео определяется как количество битов, которое видео должно воспроизводиться в секунду. Например, 24-битное несжатое видео 4K с частотой 60 кадров имеет битрейт 11,9 Гбит/с. Поэтому, если вы транслируете несжатое видео 4K в Интернете, ваш Wi-Fi должен передавать 11,9 гигабит данных каждую секунду, что исчерпает вашу месячную квоту данных за считанные минуты.
Использование алгоритма сжатия, напротив, снижает битрейт до очень небольшого значения в зависимости от выбранного вами битрейта без ухудшения качества.
Когда дело доходит до показателей сжимаемости/качества, AV1 лидирует и предлагает на 28,1% больше. сжатие по сравнению с H.265 и экономия на 27,3% по сравнению с VP9 при сохранении аналогичного качество.
Поэтому, если вы ищете лучшее сжатие без ухудшения качества, AV1 — это степень сжатия для вас. Благодаря большому соотношению сжатия к качеству кодека AV1 он используется Google в своих приложение для видеоконференций Google Duo и по Netflix при передаче видео по каналу передачи данных с низкой пропускной способностью.
Совместимость
Как объяснялось ранее, алгоритм сжатия видео кодирует видео после его сжатия. Теперь, чтобы воспроизвести это видео, ваше устройство должно его декодировать. Поэтому, если ваше устройство не имеет аппаратной/программной поддержки для распаковки видео, оно не сможет его запустить.
Следовательно, важно понимать аспект совместимости алгоритма сжатия, потому что какой смысл создавать и сжимать контент, который не может работать на многих устройствах?
Итак, если вы ищете совместимость, то VP9 должен быть кодеком для вас, так как он поддерживается более чем на двух миллиардах конечных точек и может работать в любом браузере, смартфоне и смарт-устройстве. ТВ.
Этого нельзя сказать о AV1, поскольку он использует более новые, более сложные алгоритмы для уменьшения размера файла видео и не может воспроизводиться на старых устройствах. Что касается поддержки браузеров, Safari не может воспроизводить AV1, но такие браузеры, как Firefox и Chrome, могут воспроизводить видео AV1 без каких-либо проблем.
Что касается аппаратной поддержки, новые SoC и графические процессоры, такие как Snapdragon 8 Gen 2, Samsung Exynos 2200, MediaTek Dimensity 1000 5G, Google Tensor G2, Nvidia RTX 4000-й серии и графические процессоры Intel Xe и Arc поддерживают ускоренное аппаратное декодирование для кодека AV1. Таким образом, если у вас есть устройства на базе этих чипсетов, вы можете наслаждаться потоковым контентом, сжатым с использованием кодеков AV1, не истощая ресурсы ЦП/ГП.
Что касается кодека H.265, то самые популярные браузеры, такие как Safari, Firefox и Google Chrome, могут без проблем воспроизводить видео, закодированные с использованием алгоритма сжатия. Тем не менее, по сравнению с AV1 и VP9, H.265 не является открытым исходным кодом, и для использования кодека H.265 необходимо приобретать лицензии. По этой причине такие приложения, как видеопроигрыватель Microsoft Movies & TV, поставляемые вместе с операционной системой, по умолчанию не могут воспроизводить видео, закодированные с использованием H.265. Вместо этого пользователи должны установить дополнительные надстройки из магазина Windows, чтобы запускать такие видео.
Скорость кодирования
Видеокодеки существенно уменьшают размер видео, но для уменьшения размера видео несжатое видео необходимо обрабатывать с помощью программного обеспечения, что требует времени. Поэтому, если вы хотите уменьшить размер видео, вы должны посмотреть на время, необходимое для сжатия видео с использованием алгоритма сжатия.
Что касается эффективности кодирования, VP9 лидирует, а время кодирования для сжатия видео намного меньше, чем у H.265 и AV1. AV1, с другой стороны, является самым медленным по времени кодирования и может занимать в три раза больше времени для кодирования видео по сравнению с H.265.
Какой кодек выбрать?
Когда дело доходит до видеокодеков, поиск идеального кодека очень субъективен, поскольку каждый кодек предлагает разные функции.
Если вы ищете лучшее качество видео, выбирайте AV1. С другой стороны, если вы ищете наиболее совместимый видеокодек, VP9 подойдет вам лучше всего.
Наконец, кодек H.265 отлично подходит, если вам нужно хорошее качество и сжатие без накладных расходов на кодирование.