К примеру вы купили новенький 4K-телевизор. Приготовились смотреть блокбастер в 4K HDR, а там сплошные блоки, артефакты и так далее. А выставляешь качество получше, видео начинает тормозить и долго подгружаться! Почему так?
Ответ простой — виноваты кодеки.
Поэтому сегодня поговорим от том какие бывают кодеки при видеостриминге. Узнаем, чем отличается h.264 от h.265? Узнаем, почему современные видеокодеки — самые лучшие предсказатели. Поговорим от том, что придет на смену AV1? И выясним как не ошибиться с выбором ТВ!
Если бы не было современных видеокодеков, то не было бы ни YouTube, ни стриминговых сервисов, ни zoom-конференций. А всё потому, что цифровое видео очень много весит. К примеру несжатый полуторачасовой фильм в формате 4K Ultra HD весил бы. Как думает сколько? Немногим больше, чем 3,22 терабайта!
Это примерно по 36 гигабайт на 1 минуту видео.
Кодеки. Зачем нужны? Чем отличаются?
3840 x 2160 точек x 8 (бит) x 3 (канала цвета) x 24 (кадра) x 5400 (сек) / 8 000 000 000 000 (биты в терабайты) = 3,22 TБ
Современные кодеки позволяют без заметной потери качества уменьшить размер файла до 5 гигабайт на всё видео. Это в почти в 645 раз меньше! Но как они это делают, и что значит без заметной потери качества?
Принцип работы
Все это основано на принципах работы архивов. Кстати, напишите, если хотите материал про основы сжатия информации.
Но сейчас сосредоточимся на вдиео. Грубо говоря, есть два типа сжатия которые применяются в видеокодеках. Что это всё такое?
Первое — это внутрикадровое сжатие. А второе — межкадровое сжатие.
Внутрикадровое сжатие позволяет оптимизировать размер каждого конкретного кадра. Для чего применяются различные методы борьбы с излишней информацией. По принципу — удаляем всё подряд, кожаные мешки всё равно не заметят! А мы действительно много чего не замечаем.
Цветовая субдискретизация
Например, человеческое зрение отлично различает перепады яркости, но так себе различает цвета. Это такая странная эволюционная фишка. Поэтому в кодеках активно используется метод цветовой субдискретизации. Это абсолютно гениальная штука.
Берём видео с тремя каналами цвета — RGB, и конвертируем его в видеоформат, в котором есть отдельный канал яркости — Y и два канала цвета Cb и Cr. И получаем формат YCbCr.
Кому интересно, вот такая математика за этим стоит.
Преобразование ITU-R BT.709А дальше, так как у нас теперь цвета и яркость — это отдельные сущности, мы уменьшаем каналы цвета по разрешению в два раза и натягиваем на канал яркости. Готово! Разница почти не видна, а количество информации почти в два раза уменьшили.
Такой вариант субдискретизации обозначается тремя цифрами 4:2:0, что расшифровывается так: на 4 пикселя яркости приходится всего 1 цветной пиксель, в каждом канале цвета.
Именно в формате 4:2:0 стримят всё видео в интернете. Включая этот видос. Хотя в настройках камеры я поставил 4 4 2 — чтобы хотя бы цветокоррекцию можно было сделать.
Косинусы
Если вам это кажется сложным, то как насчет — второго варианта сжатия или например использования дискретного косинусного преобразования. Это вообще интересная штука.
Вот посмотрите на такую табличку с градиентами.
Оказывается, накладывая вот такие квадратики друг на друга с разной степенью прозрачности можно получить в принципе любое изображение.
Вот посмотрите как потихоньку вырисовывается буква А.
Поэтому если разбить кадр на мелкие блоки. Всё изображение можно представить в виде наложения косинусов друг на друга.
Всё это внутрикадровые методы сжатия, их довольно много и они ничем не отличаются от методов сжатия изображений, например также сжимается JPEG.
Все эти методы позволяют неплохо сжать изображение, оптимизировав размер в десятки раз. Что неплохо, но не идет ни в какое сравнение с видеокодеками, которые сжимают данные в сотни раз. И делают они это благодоря межкадровому сжатию. Что это такое?
Межкадровое сжатие
Как правило соседние кадры в видео мало чем отличаются друг от друга. Тогда зачем нам тогда кодировать каждый кадр отдельно?
Мы можем взять первый кадр, назовём его «ключевым». А второй, промежуточный, кадр можно сделать на основе первого. Что в нем закодировано? Только та информацию, которая изменилась.
А с учетом того, что мы и так уже разбили информацию на блоки, кодировать нам придется не весь кадр, а только изменившиеся блоки.
Всякие глитчи, когда изображение становится зеленым или фиолетовым, а поверх частично рисуется новый кадр, это как раз следствие межкадрового сжатия. Просто ключевой кадр во время стриминга был потерян.
Предсказания
И если вы уже сейчас думаете: WOW! Как круто люди придумали, то вы рано удивляетесь.
Больше всего сэкономить места кодекам помогают механизмы предсказаний.
Например, если человеку показать два кадра: в одном кадре объект находится слева, а в другом справа, и попросить его предположить, где бы находился объект в промежуточном состоянии. Человек легко это сможет сделать интуитивно.
Точно также в каждый кодек вшиты алгоритмы предсказаний. Просчитывая вектора движений, они предполагают каким могут быть промежуточные кадры. Но какой в этом смысл?
Если их предположение оказывается верным, то есть совпадает с реальным кадром который нужно сжать, то в этом случае можно вообще не использовать никакие данные из реально кадра, а использовать предположение.
А если что-то не совпало, то можно хранить просто разницу между реальным кадром и предполагаемым, в этом случае всё равно получится сохранить очень много байт. Более того при помощи предиктивных моделей, можно предугадывать не только соседние кадры, но и соседние блоки внутри кадра.
Например, если внутри блока у нас одни синие пиксели, мы можем предположить, что и соседний блок будет состоять из синих пикселей.
Естественно, чем лучше модель предсказания, тем эффективнее работает кодек. Поэтому именно в моделях анализа изображения и предсказания соревнуются современные кодеки.
А если вы также хороши как современные кодеки, вы должны были предсказать, что сейчас мы будем говорить о телевизоре от спонсора, сегодняшнего ролика — Haier.
У нас сегодня недорогой телевизор HAIER 43 SMART TV MX с диагональю 43 дюйма и разрешением Ultra HD. В телевизоре есть все базовые функции.
Он работает на Android TV 9-й версии со всеми преимуществами системы: можно обмазаться всеми стриминговыми сервисами и смотреть сериальчики в 4K HDR.
Благо Wi-Fi модуль поддерживает частоту 5 ГГц, поэтому стримится контент без задержек. Также можно истыкать телевизор флешками и жесткими дисками, для любителей надежного старого способа.
Здесь удобный пульт с голосовым управлением, который работает по Bluetooth 5.0, а также можно подружить другие аксессуары: наушники, клавиатуры, геймпады. В общем, раздолье. Да и вы сами знаете, что позволяет Android TV.
Но самое главное в этом телике — качество картинки. Тут установлена очень хорошая VA-матрица и Direct LED подсветка. Картинка выглядит отлично: глубокий черный, сочные цвета. Есть поддержка HDR10.
Плюс есть 4K-апскейлинг, поэтому Full HD-контент на этом телевизоре выглядит замечательно.
В общем, за дисплей пятёрка. Даже больше скажу, у Haier есть подобная модель с Full HD-разрешением по цене ниже. Так вот тут, картинка гораздо лучше, есть за что доплатить.
Звук тоже очень неплохой — колонки мощностью 16 Ватт, а также поддерживается фирменная технология объемного звука Simulated Surround Sound. Поэтому можно не тратиться на дополнительные саундбары.
Особенное удовольствие доставляет безрамочный дизайн, который впишется в любой интерьер и не будет отвлекать на себя внимание от контента (в любом кодеке).
В общем, HAIER 43 SMART TV MX -отличная покупка если вам нужен небольшой ТВ с хорошим изображением. Для онлайн контента здесь все есть, топ модель в своем сегменте!
H.264
Теперь мы представляем, как примерно работают работают кодеки, а значит сможем их сравнить.
Самый популярный и устаревший на текущий момент кодек — это всеми любимый H.264 или AVC (Advanced Video Coding), или MPEG-4 Part 10. Это всё одно и тоже.
Кодек существует с 2003 года и он по-прежнему популярен. В первую очередь, потому что он поддерживается всеми браузерами, операционными системами и процессорами.
Источник: dzen.ru
Основы кодирования видео: Что такое видеокодек?
Сбиты с толку некоторыми терминами и концепциями, связанными с кодированием видео? Мы расскажем вам об основах того, что необходимо знать, развеем распространенные мифы и спрогнозируем будущие тенденции.
Что такое видеокодек и для чего он нужен?
Термин кодек на самом деле представляет собой комбинацию таких слов как КОдирование и ДЕкодирование и описывает процесс сжатия и распаковки данных в виде файлов или потока в реальном времени. Для инженеров вещания кодек обычно относится к стандарту сжатия, используемому кодером, декодером или транскодером.
Для чего необходимо сжатие?
Когда дело доходит до транспортировки и хранения несжатого необработанного видео, оно может занимать колоссальный объем данных для передачи по любому соединению. Учитывая постоянную борьбу за эффективность пропускной способности, сжатие значительно снижает требуемую пропускную способность, позволяя легко передавать видеопотоки или файлы в реальном времени по сетям с ограниченными возможностями. Алгоритмы сжатия видео, такие как H.264/AVC или H.265/HEVC, уменьшают объем необработанных данных контента в 1000 раз.
Сжатие видео
Методы сжатия широко используются во всех элементах современных компьютерных и сетевых архитектур для эффективного хранения или транспортировки. Цель видеокодека состоит в том, чтобы разумно уменьшить размер видеоконтента, то есть общее количество битов, необходимых для представления данного изображения или последовательности, при одновременном сохранении качества изображения. Сжатие видео обычно выполняется с помощью алгоритма или формулы кодека для определения наилучшего способа сжатия данных.
Методы сжатия
Существует несколько различных кодеков и методов сжатия, но основные концепции остаются прежними. Большинство кодеков используют методы сжатия с потерями. Это означает, что при сжатии видео уменьшается некоторая избыточная пространственная и временная информация. Сжатие “без потерь” иногда используется, когда цель состоит в том, чтобы уменьшить размеры файлов и потоков лишь на небольшую величину, чтобы сохранить качество изображения идентичным исходному источнику.
Пространственное уменьшение или внутрикадровое сжатие физически уменьшает размер данных за счет выборочного удаления частей исходных данных в видеокадре. Временное сокращение или межкадровое сжатие значительно уменьшает объем данных, необходимых для хранения видеокадра, за счет кодирования только пикселей, которые изменяются между последовательными кадрами в последовательности. Группируя несколько кадров в группе изображений (или GOP), межкадровое сжатие является наиболее распространенным подходом для кодирования видео, поскольку оно может значительно уменьшить размеры файлов и потоков.
Основное руководство потоковой передачи видео с низкой задержкой
В этом техническом документе рассматриваются основы кодирования видео, советы по оптимизации рабочих процессов и преимущества различных кодеков и протоколов.
Что такое битрейт?
В контексте потоковой передачи видео в реальном времени битрейт видео — это количество битов, обрабатываемых за единицу времени, и обычно измеряется в битах в секунду. Как правило, более высокий битрейт обеспечивает более высокое качество изображения на видеовыходе. При сжатии видео потока с той же скоростью в более продвинутом кодеке, таком как HEVC, например, будет достигаться более высокое качество, чем у его предшественника, H.264. И наоборот, HEVC может обеспечить такое же качество видео при более низком битрейте, чем H.264.
Текущие параметры видеокодека
MPEG-2 — предшественник H.264 и HEVC, был разработан в 1990-х годах и отвечал за новаторское кодирование видео с помощью цифрового телевидения и DVD-дисков. Его алгоритм сжатия обеспечивает высокое качество, но имеет менее сложную структуру, поскольку он был разработан с учетом доступной вычислительной мощности того времени. В то время как использование MPEG2 постепенно прекращается в пользу новых стандартов кодирования, он все еще используется во многих устаревших приложениях и в системах наземного эфирного вещания, таких как ATSC, кабельные системы DVB-C и спутниковое телевидение.
Представленный в 2000 году, JPEG2000 — это стандарт, который до сих пор используется в различных приложениях, включая цифровое кино, медицинскую визуализацию, геопространственные данные и архивирование документов. JPEG2000 использует внутрикадровое кодирование. Это означает, что каждый кадр сжимается индивидуально, что в конечном итоге означает, что по сравнению с более современными кодеками, использующими технологию межкадрового сжатия, требования к пропускной способности для передачи JPEG2000 выше, что влечет за собой увеличение нужный объем памяти для хранения.
H.264 / AVC (Advanced Video Coding)
Для высококачественной потоковой передачи видео через Интернет широко используется H.264, который, по оценкам, составляет большую часть мультимедийного трафика. H.264 имеет репутацию отличного качества, скорости кодирования и эффективности сжатия. Первая версия стандарта была завершена в 2003 году, и хотя в последующих изданиях были добавлены расширения его возможностей, обычно считается, что это устаревшая схема сжатия. Поскольку появился спрос на более высокие разрешения видео, необходимо дальнейшее повышение эффективности.
H.265 / HEVC (High Efficiency Video Coding)
Преемник H.264, H.265 или HEVC быстро становится повсеместным благодаря распространению контента 4K. При одинаковом уровне визуального качества HEVC обеспечивает значительно улучшенное сжатие, позволяя сжимать видео в два раза быстрее, чем H.264, что делает его вдвое эффективнее. При сжатии с тем же битрейтом, что и H.264, HEVC обеспечивает значительно лучшее качество изображения.
Разработанный Google и используемый YouTube, VP9 — это бесплатный кодек с открытым исходным кодом, который предлагает меньше преимуществ, чем HEVC. С точки зрения функций, VP9 имеет недостатки в нескольких ключевых моментах, и с ограниченным количеством коммерчески доступных кодеров VP9 он мало привлекателен в качестве формата кодирования для трансляций в реальном времени.
Заглянем в будущее
Хотя в 2020 году была завершена разработка двух новых кодеков, их актуальность должна стать ясной только в ближайшие несколько лет, как только аппаратные и экономические факторы станут менее расплывчатыми.
JPEG XS — это стандарт визуального сжатия без потерь, лежащий в основе SMPTE-2110. JPEG XS — это стандартизация ISO технологии сжатия TICO, которая представляет собой облегченный стандарт сжатия без потерь, который полезен для рабочих процессов передачи 4K и 8K в существующих сетях 3G SDI и 12G SDI или гибридных сетях SDI/IP. Несмотря на то, что TICO идеально подходит для передачи сигналов 4K через сеть 10 ГБ для периферийных устройств, которые не могут поддерживать полное соединение 12 ГБ, он позволяет настроить только ограниченные параметры конфигурации. JPEG XS, похоже, станет важным фактором в области удаленного производства и живых мероприятий в ближайшем будущем, поскольку он обеспечивает относительно низкую задержку, низкую сложность и способен поддерживать до 8K по IP.
Versatile Video Coding (VVC) или универсальное кодирование видео (H.266), является стандартом сжатия следующего поколения, который следует по стопам HEVC и был доработан в июле 2020 года. VVC нацелен на повышение эффективности сжатия на 30-50 процентов по сравнению с HEVC. Однако мы можем увидеть первые внедрения в потребительское оборудование не раньше середины 2022 года или даже позже.
AV1, разработанный альянсом открытые медиа (OPM), демонстрирует большие перспективы в качестве нового открытого и бесплатного стандарта. Однако первоначальное тестовое развертывание требует значительно большей вычислительной мощности для управления дополнительной сложностью по сравнению с HEVC. На данный момент работа продолжается, и недостаточно информации, чтобы предсказать, примут ли индустрия и сами производители AV1 в качестве стандартного видеокодека.
Кодирование видео с низким уровнем сложности или Low Complexity Enhancement Video Coding (LCEVC), или MPEG-5 часть 2 представляет собой композитную технологию, разработанную компанией V-Nova, которая использует существующие типы кодеков, такие как HEVC или AVC, для создания базы, которая может быть улучшена для повышения эффективности существующих кодеков. LCEVC был доработан и продвинут в качестве международного стандарта MPEG в октябре 2020 года, и благодаря новым технологиям кодеков он может оказать наибольшее влияние на потоковую передачу в будущем.
Разработка EVC (Essential Video Coding) началась в 2018 году и продолжалась в течение 2020 года без намеченной даты завершения. EVC стремится предоставить альтернативный кодек, аналогичный по производительности HEVC, но с другими условиями лицензирования (он не будет бесплатным) и в основном ориентирован на рабочие процессы 4K и HDR. Если EVC будет доработан, его принятие все равно может произойти только в конце 2023 года.
Какой кодек вам подойдет лучше всего?
Возможно, вы слышали о так называемых “войнах кодеков”, когда кодеки якобы борются за то, чтобы занять первое место. Но дело в том, что все сводится к требованиям целевого приложения и устройств просмотра, в которых оно будет использоваться.
Для компаний, специализирующихся на рабочих процессах с видео в реальном времени, которые занимаются трансляциями и распространением, HEVC является очевидным выбором на данном этапе. Он встроен в миллиарды наборов микросхем, от кодеров и телевизоров до телевизионных приставок и мобильных устройств, что делает его популярным и реалистичным вариантом для передачи, транскодирования и распространения. Для установленных систем цифрового вещания все еще может потребоваться H.264. В большинстве случаев инженерам вещания необходимо поддерживать оба кодека.
Экосистема продуктов Haivision поддерживает как HEVC, так и H.264 и включает поддержку протокола с открытым исходным кодом Secure Reliable Transport (SRT). SRT быстро становится фактическим стандартом потоковой передачи видео с низкой задержкой в индустрии вещания и потоковой передачи. Более того, в отличие от некоторых других решений, которые поддерживают только определенные кодеки, SRT не зависит от кодеков, что позволяет пользователям проверять свои рабочие процессы в будущем.
Видеокодер Makito X4
Узнайте все подробности о видеокодере Makito X4 в нашем подробном техническом описании.
Источник: haivision.ru
Видеокодеки и аудиокодеки: как в этом всём разобраться
Наверняка вы хоть раз в жизни сталкивались с тем, что ваш компьютер отказывался воспроизводить скачанную музыку, видеоролик или фильм с диска именно в тот день, когда вы решили провести приятный вечер у экрана монитора. От этой проблемы можно избавиться раз и навсегда, если переустановить или обновить кодеки.
Не знаете, что такое кодеки и как они работают? Тогда эта статья – для вас! Из нее вы узнаете, для чего нужны кодеки и какими они бывают, а также поймете, как устроен процесс воспроизведения видео на ПК и мобильных устройствах.
Всё, что нужно знать о кодеках
Кодеком (от английского codec) называют программу, предназначенную для кодирования и декодирования данных мультимедиа (например, аудио- и видеопотоков). Каждый кодек «специализируется» только на одном типе данных. За обработку звуковых записей отвечают аудиокодеки (AAC, AIF, AU, MP3, RA, RAM, WMA, FLAC), с видео работают видеокодеки (DivX, AVI, H.261, H.263, H.264, MPEG, RM, RV, WMV). Над роликами, в которых содержится и звук, и видео, «колдуют» оба этих типа кодеков.
Также существуют кодеки, предназначенные для обработки цифровых изображений и текста, однако в этой статье речь пойдет именно об аудио- и видеокодеках.
Как работают кодеки?
Представьте, что вы записали ролик на видеокамеру, загрузили его в компьютер и открыли с помощью проигрывателя. Казалось бы, пустяковое дело! Но кодекам на вашей камере и компьютере пришлось немало потрудиться, чтобы вы смогли это сделать. Давайте посмотрим, чем же занимаются эти программы, когда вы записываете видео и проигрываете снятые клипы.
Кодеки принимаются за работу в тот самый момент, когда вы нажимаете кнопку записи на своей камере. Прямо во время съемки видеокодек сжимает и кодирует видеодорожку, а аудиокодек работает со звуковой дорожкой. Затем оба потока синхронизируются и сохраняются в одном медиаконтейнере, а если говорить проще – формате. Камеры могут вести запись как в популярных форматах типа AVI и MP4, так и в более экзотических.
Теперь, когда вы перенесли снятый клип на свой компьютер, в дело вступают кодеки, установленные на нем: видеокодек распаковывает изображение, аудиокодек – звуковую дорожку, а проигрыватель выводит эту информацию на экран и в колонки вашего компьютера.
Зачем все эти сложности?
Неужели нельзя обойтись без кодирования? Теоретически – можно, на практике – лучше не стоит. Дело в том, что кодеки выполняют очень важную функцию: они сжимают файлы до размеров, приемлемых для современных устройств.
Видеофайлы, создаваемые камерами в процессе записи, имеют слишком большой размер: пятиминутный ролик, снятый на современный смартфон, в несжатом состоянии может занимать несколько гигабайт памяти! Вспомните, сколько места есть на дисках вашего компьютера и мобильных устройств, и представьте, сколько несжатых видеороликов вы могли бы на нем хранить – вряд ли эта цифра будет слишком большой.
Возможно, в будущем, когда память компьютеров и гаджетов будет исчисляться десятками и сотнями терабайтов, необходимость в использовании кодеков отпадет, но сейчас без этих шустрых программ, превращающих гигабайтные видео в мегабайтные, нам не обойтись.
Как же кодеки уменьшают размер файлов?
Сжатие видео и аудио происходит за счет устранения так называемой избыточности данных. Как это происходит? Представьте, что вы в течение 5 минут снимали морской пейзаж – такой, как на картинке:
Допустим, ваша камера снимает со скоростью 30 кадров в секунду. Получается, за 1 секунду записи она сохраняет в своей памяти 30 уникальных изображений. А за 5 минут (300 секунд) она снимет целых 9000 кадров!
Но что может кардинально измениться в этом пейзаже за 1 секунду? Позеленеет небо? Испарится вода?
Даже если произойдут какие-то изменения, то они будут плавными, и на их осуществление потребуется время. Вывод: ежесекундно камера снимает 30 практически полностью идентичных друг другу кадров.
Так зачем же сохранять в памяти все эти кадры целиком? Для записи пейзажа на видео кодеку достаточно сохранить один исходный кадр, найти все похожие на него и удалить из похожих кадров повторяющиеся части изображения. Затем, при воспроизведении видео, кодек будет наслаивать изменяющиеся части на исходное изображение. Если в картинке что-то поменяется, кодек выделит еще один исходный кадр и все на него похожие. Описанный алгоритм называют компенсацией движения и считают одним из основных методов сжатия видеоданных.
Компенсация движения – это всего лишь один из множества методов, применяемых видеокодеками при обработке записей с камер. Свои способы устранения избыточной информации используют и аудиокодеки. В результате работы кодеков из аудио- и видеопотоков удаляется большая часть «лишних» данных. За счет этого и происходит изменение объема закодированного файла.
Какой кодек выбрать?
Существует множество видео- и аудиокодеков, предназначенных для различных целей. Вот краткий список самых популярных кодеков:
— MPEG-2
— H.265 (MPEG-H, HEVC)
— Flash
— WMV
— FLAC
— APE
Чтобы вам не пришлось подолгу искать, какой кодек лучше подойдет вам, мы советуем скачать K-Lite Codec Pack – универсальный пакет для Windows, в котором есть все, что понадобится для проигрывания практически любого видео: самые хорошие кодеки для AVI, MKV, MP4 и других форматов.
А вдруг кодек сработает неправильно и удалит нужную информацию?
Можно ли обработать видеофайл без потерь?
В основе современных кодеков лежат сложные комплексные алгоритмы сжатия данных, которые помогают свести потери информации к минимуму. Однако если вы все-таки хотите перестраховаться, у нас есть хорошие новости: существуют так называемые lossless-кодеки, обрабатывающие видео без потерь. Это значит, что при декодировании потока информация будет воспроизведена бит к биту. Однако следует быть готовыми к тому, что размер видеофайла, обработанного такими кодеками, будет довольно большим.
Источник: www.movavi.io