видео энкодер что это такое

Как использовать энкодер для организации трансляций

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Технологии вебинаров развиваются стремительно. Современные кодеки и алгоритмы позволяют добиться профессионального качества трансляций и открывают неограниченные возможности для организаторов вебинаров. Один из наиболее эффективных инструментов для проведения вебинаров с качеством картинки уровня телевизионных трансляций — это энкодер.

В сегодняшней статье мы подробно расскажем о возможностях энкодера и поделимся кейсами наших клиентов, использующих энкодер для организации трансляций.

Что такое энкодер

Энкодер — это программа, которая захватывает изображение, передаваемое с камеры, преобразует его в видеопоток, а затем направляет в интерфейс вебинарной комнаты.

Энкодер также позволяет транслировать изображение с нескольких камер, добиться профессионального качества картинки и дополнить видео титрами и спецэффектами в прямом эфире.

Какие задачи решает энкодер

Использование энкодера в организации онлайн-трансляций поможет решить сразу несколько задач и вывести вебинары на профессиональный уровень.

Источник

Видеоэнкодеры для желающих «гибридизировать»

Под видеосерверами можно понимать различные устройства, например видеорегистраторы PC-based, что вносит некоторую путаницу. А видеоэнкодер – вполне определенный термин, обозначающий исключительно устройство, предназначенное для оцифровки аналоговых видеосигналов и передачи преобразованной информации (уже в цифровом и сжатом виде) по сети Ethernet. Одноканальный энкодер по сути превращает аналоговую камеру в IP-камеру.

По способу применения видеоэнкодеры делятся на 2 основные группы:

Видеоэнкодеры в операторских комнатах

Устройства из первой группы, предназначенные для установки в операторских комнатах, – это, как правило, громоздкие многоканальные изделия в корпусах для монтажа в 19-дюймовые шкафы и стойки. Основное назначение – использование ранее установленных аналоговых камер в новой IP-системе.

Рассмотрим типовой случай
На объекте успешно работает аналоговая система видеонаблюдения, включающая в себя, к примеру, 48 камер. Принимается решение об установке IP-камер и NVR с объединением их с существующими аналоговыми камерами в единую систему с одним интерфейсом и общим комплексом видеорегистрации. Сознательно не касаюсь причин принятия этого решения – в данном случае это несущественно. В операторской комнате устанавливается 19-дюймовая стойка, в которой находятся 3 видеоэнкодера по 16 видеоканалов каждый. На эти входы подаются видеосигналы от старых аналоговых камер, а к сетевому хранилищу видеоэнкодеры в этом случае подключаются короткими патчкордами через сетевые коммутаторы или (реже) напрямую.

Такое решение очень удобно тем, что от инсталлятора требуется минимальное количество монтажных работ, ведь используются существующие коаксиальные линии связи, даже с установленными на них ранее BNC-разъемами. По сути, мы говорим о простой замене старых видеорегистраторов на новые видеоэнкодеры. При этом на вновь установленных сетевых регистраторах NVR (желательно, конечно, того же производителя) изображение с аналоговых камер будет записываться и отображаться точно так же, как и картинка с вновь устанавливаемых IP-камер. В принципе, здесь можно говорить о гибридном видеорегистраторе, входная группа которого вынесена в отдельный корпус и соединена с центральным хранилищем с помощью Ethernet. У такой системы есть и существенные минусы – ведь мы объединяем здесь минусы аналоговых и сетевых камер. На довольно длинных старых коаксиальных линиях аналоговые видеосигналы ослабляются, «набирая» попутно разнообразные помехи. При этом сильнее всего ослабляется высокочастотная составляющая, передающая мелкие детали. Затем происходит аналого-цифровое преобразование со сжатием, а потом видеоинформация разбивается на пакеты и передается через Ethernet, зачастую получая на выходе типичные для сетевого видео задержки, а иногда и пропуски пакетов и/или артефакты изображения. Давая посредственный по нынешним временам результат, данный вариант не слишком дешевый – 16-канальные видеоэнкодеры стоят подобно аналогичным видеорегистраторам. Поэтому большого распространения такие энкодеры не получили и едва ли когда-нибудь получат. Когда закончатся клиенты, желающие «гибридизировать» свое старое видеонаблюдение, закончится и потребность в этих изделиях. Устанавливать их в новых системах не имеет смысла.

Видеоэнкодеры вблизи камер

Вторая группа включает в себя видеоэнкодеры, используемые в качестве линейного оборудования, то есть устанавливаемые в непосредственной близости к камерам. Обычно это миниатюрные изделия с 1, 4, реже с 6 аналоговыми видеовходами. Как правило, цена этих устройств значительно ниже, чем у многоканальных «монстров» из первой группы, даже в пересчете на канал. Установка энкодеров рядом с камерами дает некоторые преимущества. По небольшим коаксиальным кабельным линиям от камер до энкодеров аналоговый видеосигнал передается без существенного ослабления и наведенных помех. Далее передача видеоинформации происходит по сети Ethernet на любые расстояния и любым способом – по кабелю UTP, по оптоволокну либо вовсе без проводов, с помощью Wi-Fi или WiMAX. Оборудование для построения сети Ethernet производится массово, поэтому значительно дешевле специализированных «железок» для видеонаблюдения, да и проводов в этом варианте нужно меньше, чем в «классическом аналоговом» наблюдении. Поэтому на некоторых объектах установка подобной системы может оказаться целесообразной.

Есть еще одно важное достоинство такой распределенной структуры – некоторые видеоэнкодеры имеют возможность установки встроенных жестких дисков, что выводит систему на новый уровень надежности. Если же совместить видеосерверы с коммутаторами и бесперебойными блоками питания, то получится неубиваемый сетевой узел, подобный предложенному когда-то мною в полезной модели RU 104753 U1. Такой узел может сколь угодно долго работать с неустойчивыми и «тонкими» Ethernet-каналами, так как здесь не требуется постоянная передача всей видеоинформации. Осуществляется лишь передача по запросу для просмотра со сравнительно небольшим трафиком.

Миниатюрные видеоэнкодеры с жестким диском представляют собой сетевые видеорегистраторы, только предназначенные для установки не в операторских комнатах, а в укромных местах объектов рядом с камерами. Основное отличие состоит в том, что такая установка, например за подвесным потолком, требует от изделий высочайшей надежности из-за неудобства обслуживания. Зависания с необходимостью периодического аппаратного сброса по понятным причинам здесь совершенно неприемлемы, а все управление ими, в отличие от традиционных регистраторов, осуществляется по сети.

Ключевые преимущества

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

Функционал видеоэнкодеров обоих типов весьма схож с видеорегистраторами: и детектор движения, и управление поворотными камерами, и поддержка нескольких потоков, и регулировка степени сжатия, цвета, яркости, контрастности и т.д.

Применение энкодеров дает проектировщику возможность максимально эффективно использовать разные типы оборудования на объектах самого разного масштаба для построения единой системы видеонаблюдения.

Источник

Статьи

Букварь для начинающих стримеров: аппаратные энкодеры

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Что такое потоковый аппаратный энкодер

Аппаратный энкодер – это специализированное устройство, которое захватывает, сжимает и преобразует аудиовизуальные данные в формат, подходящий для потоковой передачи и / или записи. Поскольку мы часто получаем вопросы о кодировании в реальном времени, в частности, для целей этой статьи мы будем говорить в основном об аппаратных энкодерах для потокового вещания. По сути, аппаратные средства кодирования потокового видео представляют собой устройства, разработанные специально для трансляции видео в Интернет.

Доступные на рынке устройства потокового аппаратного кодирования сильно различаются по сложности. Это могут быть очень простые портативные устройства, созданные для потоковой передачи только в одно место назначения. Одним из примеров такого энкодера является Webcaster X2, который может транслировать на YouTube, Facebook Live или Twitch. С другой стороны шкалы устройства аппаратного кодирования могут быть достаточно сложными, предназначенными для приёма различных типов видеовходов и способными одновременно передавать сигнал сразу нескольким получателям. Эти более сложные аппаратные энкодеры также могут быть достаточно портативными, например, Pearl Mini.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Чем аппаратный энкодер не является

Аппаратный энкодер, как следует из названия, отличается от программного энкодера. Потоковое программное обеспечение работает на компьютерном оборудовании, на котором, в свою очередь, выполняется множество других процессов. Следовательно, компьютер не предназначен исключительно для кодирования и потоковой передачи. Аппаратные энкодеры, с другой стороны, являются устройствами, разработанными специально для кодирования. Этот факт делает их более надёжными, чем потоковое программное обеспечение, потому что здесь другие процессы не мешают его работе. Вот почему в критических ситуациях профессиональные производители видео используют аппаратные кодеры.

Аппаратный энкодер потоковой передачи сам по себе не является сетевым потоковым адресатом. Как правило, вам нужно настроить пункт назначения прямой трансляции отдельно. Таким местом назначения может быть живая видео-платформа, такая как YouTube или Facebook Live, CDN, такая как Kaltura, или потоковый сервер, такой как WOWZA. Тем не менее, многие энкодеры позволяют вести прямую потоковую передачу зрителям в локальной сети.

Аппаратный энкодер также не является видеовходом. Это как входной хаб. Аппаратный энкодер может принимать источники видео, используя физические разъёмы, такие как HDMI, USB, SDI или через сеть (например, NDI).

Возможности потокового энкодера

Еще раз, аппаратные энкодеры бывают всех форм, размеров и наборов функций. Вот некоторые из важных функций, которые отличают аппаратные кодеры:

Количество одновременно кодируемых потоков и мест назначения

Энкодеры различаются по количеству одновременных потоков, которые они могут кодировать. Кодирование требует большой вычислительной мощности, и с каждым дополнительным кодируемым потоком рабочая нагрузка увеличивается. Количество кодированных потоков не следует путать с количеством пунктов назначения. С достаточно продвинутыми аппаратными энкодерами вы можете легко передать один закодированный поток сразу нескольким адресатам. Как правило, более простые и менее дорогие устройства могут кодировать один поток и отправлять его в один пункт назначения. Тогда как более мощные энкодеры могут кодировать несколько отдельных видео и транслировать каждое в несколько пунктов назначения одновременно.

Типы потоковых пунктов назначения

Потоковые аппаратные энкодеры также могут иметь ограничения потоковой передачи. Как уже упоминалось выше, Webcaster X2 может работать только на YouTube, Facebook Live или Twitch, тогда как более продвинутые аппаратные энкодеры могут транслировать практически в любое место. Кроме того, некоторые аппаратные энкодеры интегрированы с CDN (сетями доставки контента).

Разрешение кодирования

Разрешение кодирования относится к окончательному размеру видеокадра, ширина×высота, в пикселях. Наиболее популярные потоковые разрешения – 1280×720 (или 720p) и 1920×1080 (или 1080p). Разрешения выше этих требуют гораздо больше ресурсов процессора и сети. Однако, если вы настроены на потоковую передачу с разрешением 4K, убедитесь, что энкодер действительно способен на это. Вам также необходимо обеспечить высокую и надёжную пропускную способность сети. Если вы хотите узнать больше о различных стандартных разрешениях, ознакомьтесь с таблицей в этой статье.

Битрейт

Битрейт описывает, сколько данных передаётся за данный промежуток времени. Чем выше битрейт – тем выше качество изображения. В то же время, чтобы получить качественный поток с высоким разрешением (например, 4K, 8K), битрейт должен быть очень высоким. Битрейт обычно измеряется в килобитах в секунду (Кбит/с) или мегабитах в секунду (Мбит/с). В различных энкодерах настройки битрейта могут варьироваться от 1000 Кбит/с до 30 000+ Кбит/с. Например, минимальный битрейт, рекомендуемый YouTube для потоковой передачи 4K, составляет 35 000 – 45 000 Кбит/с.

Доступная скорость потоковой передачи зависит не только от физических ограничений устройства, но в значительной степени от доступной пропускной способности сети. Устройство может поддерживать потоковую передачу со скоростью 20 000 Кбит/с, но, если ваше сетевое подключение допускает только скорость восходящей линии связи 5 000 Кбит/с, конечное видео не будет отличным, независимо от того, насколько хорош энкодер. Многие энкодеры предлагают удобную опцию «автоматического» битрейта, где энкодер вычисляет оптимальный битрейт на основе скорости вашего соединения.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Частота кадров

Частота кадров отражает количество изображений, которые кодируются в секунду. Выражается в кадрах в секунду (кадр/с или fps). Снижение частоты кадров для канала уменьшает использование полосы пропускания и наоборот. Частота кадров 30 была стандартом для цифрового видео в течение последних двух десятилетий. В настоящее время частота кадров 60 и выше используется все чаще и чаще, создавая очень плавный, гиперреалистичный вид (естественно, только если входной источник имеет эти 60fps). Имейте в виду, что частота кадров напрямую влияет на требуемый битрейт: для видео с тем же разрешением, чем выше частота кадров, тем выше битрейт.

Сжатие видео (варианты кодеков)

Для того, чтобы транслироваться в Интернете, видео должно быть сначала оптимально сжатым. Кодеки – это методы сжатия, которые делают это возможным. Кодеки используют разные методы сжатия видеофайлов: некоторые работают быстрее, некоторые могут создавать файлы меньшего размера, но технология сжатия постоянно развивается и движется вперед. Вот некоторые из самых популярных кодеков, используемых сегодня аппаратными кодерами:

Motion JPEG (MJPEG)

MJPEG сжимает отдельные кадры и имеет «низкую стоимость процессора» кодирования / декодирования. Однако это требует большей пропускной способности, чем некоторые другие кодеки. Кроме того, MJPEG не поддерживает аудио. Чаще всего он используется для потоковой передачи видеонаблюдения или другого видео, которое не требует живого аудио

264 / AVC

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

265 / HEVC

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

Потоковые протоколы

Потоковые протоколы – это методы доставки живого потока к месту назначения. Задача протокола потоковой передачи состоит в том, чтобы решить, как разделить видеопоток на «кусочки»-пакеты и доставить его онлайн. Протоколы потоковой передачи не следует путать с кодеками: кодеки выясняют, как изначально сжимать и упаковывать видео, а затем потоковые протоколы извлекают его оттуда. Неудивительно, что различные потоковые аппаратные кодеры предлагают поддержку определённого набора потоковых протоколов.

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

Более того, некоторые протоколы лучше подходят для отправки видео онлайн или на CDN для дальнейшего распространения, в то время как другие обрабатывают доставку видео зрителям в локальной сети. Кроме того, некоторые из последних протоколов потоковой передачи способны адаптироваться к доступному битрейту конечного пользователя. Это называется адаптивной потоковой передачей. Давайте рассмотрим некоторые из самых популярных потоковых протоколов, доступных сегодня на аппаратных энкодерах.

RTMP (протокол обмена сообщениями в реальном времени)

RTMP является одним из наиболее широко используемых сегодня потоковых протоколов. Многие популярные CDN, такие как Facebook Live и Youtube, принимают RTMP-потоки от энкодеров. Для защищённой потоковой передачи используется протокол, называемый RTMPS (последняя буква S обозначает Secure). Этот протокол шифрует поток перед отправкой, что делает его хорошим выбором для безопасной потоковой передачи. RTMP очень надёжен и универсально поддерживается, однако он работает только с определёнными кодеками.

RTSP (протокол потоковой передачи в реальном времени)

RTSP – это протокол управления сетью, он часто используется с IP-камерами и локальными потоками. Зрители могут копировать и вставлять URL-адрес потока RTSP в медиаплейер и наблюдать за потоком в локальной сети.

MPEG-TS

Протокол с очень низкой задержкой, отлично подходит для потоковой передачи по локальной сети непосредственно зрителям.

MPEG-DASH

Один из самых последних протоколов. Обеспечивает адаптивную потоковую передачу битов, работает практически с любым кодеком и используется крупными вещательными компаниями.

HLS (HTTP Live Streaming)

Этот протокол был первоначально разработан Apple, чтобы обойти использование Flash на i-устройствах. На сегодняшний день это один из самых популярных методов доставки живого видео конечному пользователю, потому что он поддерживается практически каждым браузером, операционной системой и даже Smart TV. HLS является надёжным, хорошо масштабируется, предлагает адаптивную потоковую передачу битрейта, однако при передаче происходит значительная задержка, что делает его непригодным для интерактивных живых событий.

Другие особенности потокового кодера

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

1. Рабочее пространство и пользовательский интерфейс

Как получить доступ к настройкам энкодера / пользовательскому интерфейсу? Это может быть веб-интерфейс (доступ через браузер в той же сети), физические внешние кнопки, сенсорная панель, приложение или даже внешний монитор. Кроме того, насколько легко начать / остановить потоковую передачу? Некоторые энкодеры могут запускать и останавливать потоковую передачу одним нажатием кнопки, тогда как другие требуют, чтобы у вас был явный доступ к веб-интерфейсу пользователя.

2. Опции обработки живого видео

Может ли энкодер одновременно передавать и записывать видео? Если доступно более одного источника видео, может ли устройство переключаться между источниками? Кроме того, возможно ли создавать «картинку-в-картинке» или добавлять графические наложения к вашему видео и требует ли это использования какого-либо дополнительного внешнего программного обеспечения?

3. Локальное воспроизведение видео

Есть ли возможность контролировать программу композитного выхода (например, локальное воспроизведение видео), используя встроенный контрольный монитор или через внешний монитор, подключённый по HDMI?

4. Типы видео и аудио входов

Какие есть варианты подключения для видео: HDMI, SDI, VGA, DVI, USB? Сколько там портов? Есть ли опция видео по IP, такая как NDI? Какие аудио входы и сколько их? Для профессионального аудио имеет важное значение наличие XLR.

5. Тип сетевого подключения

Какие есть варианты подключения к интернету для энкодера? Подключается ли он через Wi-Fi, сотовый интернет, линию LAN или их комбинацию?

6. Форм-фактор

Будет ли этот энкодер постоянно устанавливаться как часть стойки оборудования? Рассмотрите возможность установки аппаратного кодера в стойку. Для более совершенных потоковых аппаратных кодеров многие производители предлагают как автономные настольные устройства, так и модели для монтажа в стойку (например, Pearl-2).

Другие кодеры легки и портативны. Такие кодеры, как VidiU Go и LiveU Solo, имеют встроенные аккумуляторы и подключаются к Интернету через сотовую связь, что делает их идеальными для потоковой передачи на ходу.

Заключительный совет по выбору аппаратного энкодера для прямой трансляции

Выбирая аппаратный энкодер, вы должны спросить себя, для чего нужен ваш энкодер. Желаемая функциональность будет определять ваше решение, и вам не придётся переплачивать за функции, которые вам не нужны.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Сколько направлений вы хотите транслировать? Если вы хотите просто транслировать в социальные сети, например, в Facebook, можно использовать простой энкодер уровня Webcaster X2. Если вы хотите осуществлять потоковую передачу как локально, так и на потоковый сервер одновременно, вы можете рассмотреть возможность использования более сложного аппаратного кодера, такого как Pearl Mini.

Источник

Как работает видеокодек. Часть 2. Что, для чего, как

Первая часть: Основы работы с видео и изображениями

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Что? Видеокодек — это часть программного/аппаратного обеспечения, сжимающая и/или распаковывающая цифровое видео.

Для чего? Невзирая на определённые ограничения как по пропускной способности так
и по количеству места для хранения данных, рынок требует всё более качественного видео. Припоминаете, как в прошлом посте мы подсчитали необходимый минимум для 30 кадров в секунду, 24 бита на пиксель, с разрешение 480×240? Получили 82,944 Мбит/с без сжатия. Сжатие — это пока единственный способ вообще передавать HD/FullHD/4K на телевизионные экраны и в Интернет. Как это достигается? Сейчас кратко рассмотрим основные методы.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое
Перевод сделан при поддержке компании EDISON Software.

Кодек vs Контейнер

Распространенная ошибка новичков — путать кодек цифрового видео и контейнер цифрового видео. Контейнер это некий формат. Обёртка, содержащая метаданные видео (и, возможно, аудио). Сжатое видео можно рассматривать как полезную нагрузку контейнера.

Обычно расширение видеофайла указывает на разновидность контейнера. Например, файл video.mp4, вероятно всего, является контейнером MPEG-4 Part 14, а файл с именем video.mkv — это, скорее всего, матрёшка. Чтобы быть полностью уверенным в кодеке и формате контейнера, можно воспользоваться FFmpeg или MediaInfo.

Немного истории

Прежде чем перейдем к Как?, давайте слегка погрузимся в историю, чтобы немного лучше понимать некоторые старые кодеки.

Видеокодек H.261 появился в 1990 году (технически — в 1988) и был создан для работы со скоростью передачи данных 64 Кбит/с. В нём уже использовались такие идеи, как цветовая субдискретизация, макроблоки и т.п. В 1995 году был опубликован стандарт видеокодека H.263, который развивался до 2001 года.

В 2003 году была завершена первая версия H.264/AVC. В том же году компания «TrueMotion» выпустила свой бесплатный видеокодек, сжимающий видео с потерями под названием VP3. В 2008 году Google купил эту компанию, выпустив VP8 в том же году. В декабре 2012 года Google выпустил VP9, ​​и он поддерживается примерно на ¾ рынка браузеров (включая мобильные устройства).

AV1 — это новый бесплатный видеокодек с открытым исходным кодом, разработанный Альянсом за открытые медиа (AOMedia), в состав которого входят известнейшие компании, как-то: Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel и Cisco. Первая версия кодека 0.1.0 была опубликована 7 апреля 2016 года.

Рождение AV1

В начале 2015 года Google работал над VP10, Xiph (который принадлежит Mozilla) работал над Daala, а Cisco сделала свой бесплатный видеокодек под названием Thor.

Затем MPEG LA сначала объявила годовые лимиты для HEVC (H.265) и плату, в 8 раз выше, чем за H.264, но вскоре они снова изменили правила:

без годового лимита,
плата за контент (0,5% от выручки) и
плата за единицу продукции примерно в 10 раз выше, чем за H.264.

Альянс за открытые медиа был создан компаниями из разных сфер: производителями оборудования (Intel, AMD, ARM, Nvidia, Cisco), поставщиками контента (Google, Netflix, Amazon), создателями браузеров (Google, Mozilla) и другими.

У компаний была общая цель — видеокодек без лицензионных отчислений. Затем появляется AV1 с гораздо более простой патентной лицензией. Тимоти Б. Терриберри сделал сногсшибательную презентацию, ставшей источником текущей концепции AV1 и её модели лицензии.

Вы будете удивлены, узнав, что можно анализировать кодек AV1 через браузер (заинтересовавшиеся могут перейти по адресу aomanalyzer.org).

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Универсальный кодек

Разберём основные механизмы, лежащие в основе универсального видеокодека. Большинство из этих концепций полезны и используются в современных кодеках, таких как VP9, AV1 и HEVC. Предупреждаю, что многие объясняемые вещи будут упрощены. Иногда будут использоваться реальные примеры (как в случае с H.264) для демонстрации технологий.

1-й шаг — разбиение изображения

Первым шагом является разделение кадра на несколько разделов, подразделов и далее.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Для чего? Есть множество причин. Когда дробим картинку, можно точнее прогнозировать вектор движения, используя небольшие разделы для маленьких движущихся частей. В то время как для статического фона можно ограничиться и более крупными разделами.

Обычно кодеки организуют эти разделы в секции (или фрагменты), макроблоки (или блоки дерева кодирования) и множество подразделов. Максимальный размер этих разделов варьируется, HEVC устанавливает 64×64, в то время как AVC использует 16×16, а подразделы могут дробиться до размеров 4×4.

Припоминаете разновидности кадров из прошлой статьи?! Это же можно применить и к блокам, так что, у нас могут быть I-фрагмент, B-блок, P-макроблок и т.п.

Для желающих попрактиковаться — посмотрите как изображение разобъётся на разделы и подразделы. Для этого можно воспользоваться уже упоминаемой в прошлой статье Intel Video Pro Analyzer (тот, что платный, но с бесплатный пробной версией, имеющей ограничение на первые 10 кадров). Здесь проанализированы разделы VP9:

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

2-й шаг — прогнозирование

Как только у нас появились разделы, мы можем составлять астрологические прогнозы по ним. Для INTER-прогнозирования необходимо передать векторы движения и остаток, а для INTRA-прогнозирования передаётся направление прогноза и остаток.

3-й шаг — преобразование

После того, как получим остаточный блок (предсказанный раздел → реальный раздел), возможно преобразовать его таким образом, чтобы знать, какие пиксели можно отбросить, сохраняя при этом общее качество. Есть некоторые преобразования, обеспечивающие точное поведение.

Хотя есть и другие методы, рассмотрим более подробно дискретное косинусное преобразование (DCT — от discrete cosine transform). Основные функции DCT:

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

Давайте возьмем такой блок пикселей 8×8:

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Этот блок рендерится в следующее изображение 8 на 8 пискелей:

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Применим DCT к этому блоку пикселей и получаем блок коэффициентов размером 8×8:

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

И если отрендерим этот блок коэффициентов, получим такое изображение:

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Как видим, это не похоже на исходное изображение. Можно заметить, что первый коэффициент сильно отличается от всех остальных. Этот первый коэффициент известен как DC-коэффициент, представляющий все выборки во входном массиве, нечто похожее на среднее значение.

У этого блока коэффициентов есть интересное свойство: он отделяет высокочастотные компоненты от низкочастотных.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

В изображении большая часть мощности сконцентрирована на более низких частотах, поэтому, если преобразовать изображение в его частотные компоненты и отбросить более высокие частотные коэффициенты, можно уменьшить количество данных, необходимых для описания изображения, не слишком жертвуя качеством картинки.

Частота означает, насколько быстро меняется сигнал.

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

Сначала конвертируем его в частотную область.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Далее отбрасываем часть (67%) коэффициентов, в основном нижнюю правую часть.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Наконец, восстанавливаем изображение из этого отброшенного блока коэффициентов (помните, оно должно быть обратимым) и сравниваем с оригиналом.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Видим, что оно напоминает исходное изображение, но есть много отличий от оригинала. Мы выбросили 67,1875% и все же получили что-то, напоминающее первоисточник. Можно было более продуманно отбросить коэффициенты, чтобы получить изображение ещё лучшего качества, но это уже следующая тема.

Каждый коэффициент формируется с использованием всех пикселей

Важно: каждый коэффициент напрямую не отображается на один пиксель, а представляет собой взвешенную сумму всех пикселей. Этот удивительный график показывает, как рассчитывается первый и второй коэффициент с использованием весов, уникальных для каждого индекса.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Вы также можете попытаться визуализировать DCT, взглянув на простое формирование изображения на его основе. Например, вот символ A, формируемый с использованием каждого веса коэффициента:

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

4-й шаг — квантование

После того как на предыдущем шаге выбрасываем некоторые коэффициенты, на последнем шаге (преобразование), производим особую форму квантования. На этом этапе допустимо терять информацию. Или, проще говоря, будем квантовать коэффициенты для достижения сжатия.

Как можно квантовать блок коэффициентов? Одним из самых простых методов будет равномерное квантование, когда берём блок, делим его на одно значение (на 10) и округляем то что получилось.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Можем ли обратить этот блок коэффициентов? Да, можем, умножив на то же значение, на которые делили.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Этот подход не самый лучший, поскольку он не учитывает важность каждого коэффициента. Можно было бы использовать матрицу квантователей вместо одного значения, а эта матрица может использовать свойство DCT, квантуя большинство нижних правых и меньшинство верхних левых.

5 шаг — энтропийное кодирование

После того, как мы квантовали данные (блоки изображений, фрагменты, кадры), все еще можем сжимать их без потерь. Существует много алгоритмических способов сжатия данных. Мы собираемся кратко познакомиться с некоторыми из них, для более глубокого понимания вы можете прочитать книгу «Разбираемся со сжатием: сжатие данных для современных разработчиков» («Understanding Compression: Data Compression for Modern Developers»).

Кодирование видео с помощью VLC

Сжимаем поток, предполагая, что в итоге потратим 8 бит на каждый символ. Без сжатия на символ понадобилось бы 24 бита. Если каждый символ заменять на его код, то получается экономия!

Первый шаг заключается в кодировании символа e, который равен 10, а второй символ — это a, который добавляется (не математическим способом): [10] [0], и, наконец, третий символ t, который делает наш финальный сжатый битовый поток равным [10] [0] [1110] или же 1001110, для чего требуется всего 7 бит (в 3,4 раза меньше места, чем в оригинале).

Обратите внимание, что каждый код должен быть уникальным кодом с префиксом. Алгоритм Хаффмана поможет найти эти цифры. Хотя данный способ не без изъянов, существуют видеокодеки, которые всё ещё предлагают этот алгоритмический метод для сжатия.

И кодер, и декодер должны иметь доступ к таблице символов со своими бинарными кодами. Поэтому также необходимо отправить во входных данных и таблицу.

Арифметическое кодирование

С этой таблицей построим диапазоны, содержащие все возможные символы, отсортированные по наибольшему количеству.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Теперь давайте закодируем поток из трёх символов: eat.

Сначала выбираем первый символ e, который находится в поддиапазоне от 0,3 до 0,6 (не включая). Берём этот поддиапазон и снова делим его в тех же пропорциях, что и ранее, но уже для этого нового диапазона.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Давайте продолжим кодировать наш поток eat. Теперь берём второй символ a, который находится в новом поддиапазоне от 0,3 до 0,39, а затем берём наш последний символ t и, повторяя тот же процесс снова, получаем последний поддиапазон от 0,354 до 0,372.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Нам просто нужно выбрать число в последнем поддиапазоне от 0,354 до 0,372. Давайте выберем 0,36 (но можно выбрать и любое другое число в этом поддиапазоне). Только с этим числом сможем восстановить наш оригинальный поток. Это как если бы мы рисовали линию в пределах диапазонов для кодирования нашего потока.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Обратная операция (то бишь декодирование) так же проста: с нашим числом 0,36 и нашим исходным диапазоном можем запустить тот же процесс. Но теперь, используя это число, выявляем поток, закодированный с помощью этого числа.

С первым диапазоном замечаем, что наше число соответствует срезу, следовательно, это наш первый символ. Теперь снова разделяем этот поддиапазон, выполняя тот же процесс, что и раньше. Тут можно заметить, что 0,36 соответствует символу a, и после повторения процесса мы пришли к последнему символу t (формируя наш исходный кодированный поток eat).

И для кодера и для декодера должна быть в наличии таблица вероятностей символов, поэтому необходимо во входных данных отправить и её.

Довольно элегантно, не так ли? Кто-то, придумавший это решение, был чертовски умён. Некоторые видеокодеки используют эту технику (или, во всяком случае, предлагают её в качестве опции).

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

6 шаг — формат битового потока

После того, как сделали всё это, осталось распаковать сжатые кадры в контексте выполненных шагов. Необходимо явно информировать декодер о решениях, принятых кодером. Декодеру должна быть предоставлена вся необходимая информация: битовая глубина, цветовое пространство, разрешение, информация о прогнозах (векторы движения, направленное INTER-прогнозирование), профиль, уровень, частота кадров, тип кадра, номер кадра и многое другое.

Мы поверхностно ознакомимся с битовым потоком H.264. Нашим первым шагом является создание минимального битового потока H.264 (FFmpeg по умолчанию добавляет все параметры кодирования, такие как SEI NAL — чуть дальше узнаем, что это такое). Можем сделать это, используя наш собственный репозиторий и FFmpeg.

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

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Битовый поток H.264

Стандарт AVC (H.264) определяет, что информация будет отправляться в макрокадрах (в понимании сети), называемых NAL (это такой уровень абстракции сети). Основной целью NAL является предоставление «дружественного к сети» представления видео. Этот стандарт должен работать на телевизорах (на основе потоков), в Интернете (на основе пакетов).

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Существует маркер синхронизации для определения границ элементов NAL. Каждый маркер синхронизации содержит значение за исключением самого первого, который равен Если запустим hexdump для сгенерированного битового потока H.264, то идентифицируем по крайней мере три паттерна NAL в начале файла.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Как говорилось, декодер должен знать не только данные изображения, но также и детали видео, кадра, цвета, используемые параметры и многое другое. Первый байт каждого NAL определяет его категорию и тип.

Идентификатор типа NALОписание
0Неизвестный тип
1Кодированный фрагмент изображения без IDR
2Кодированный раздел данных среза A
3Кодированный раздел данных среза B
4Кодированный раздел данных среза C
5Кодированный IDR-фрагмент IDR-изображения
6Дополнительная информация о расширении SEI
7Набор параметров SPS-последовательности
8Набор параметров PPS-изображения
9Разделитель доступа
10Конец последовательности
11Конец потока
..

Обычно первым NAL битового потока является SPS. Этот тип NAL отвечает за информирование об общих переменных кодирования, таких как профиль, уровень, разрешение и прочее.

Если пропустить первый маркер синхронизации, то можем декодировать первый байт, чтобы узнать, какой тип NAL является первым.

Например, первый байт после маркера синхронизации равен 01100111, где первый бит (0) находится в поле forbidden_zero_bit. Следующие 2 бита (11) сообщает нам поле nal_ref_idc, которое указывает, является ли этот NAL ссылочным полем или нет. И остальные 5 бит (00111) сообщает нам поле nal_unit_type, в данном случае это блок SPS (7) NAL.

Второй байт (binary=01100100, hex=0x64, dec=100) в SPS NAL — это поле profile_idc, которое показывает профиль, который использовал кодер. В данном случае использовался ограниченный высокий профиль (т.е. высокий профиль без поддержки двунаправленного B-сегмента).

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Если ознакомиться со спецификацией битового потока H.264 для SPS NAL, то обнаружим много значений для имени параметра, категории и описания. Например, давайте посмотрим на поля pic_width_in_mbs_minus_1 и pic_height_in_map_units_minus_1.

Название параметраКатегорияОписание
pic_width_in_mbs_minus_10ue(v)
pic_height_in_map_units_minus_10ue(v)

Если продолжить проверку нашего созданного видео в двоичном виде (например: ), то можно перейти к последнему NAL, который является самим кадром.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Здесь видим его первые 6 байтовых значений: 01100101 10001000 10000100 00000000 00100001 11111111. Поскольку известно, что первый байт указывает на тип NAL, в данном случае (00101) это IDR фрагмент (5), и тогда получится дополнительно исследовать его:

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

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

Чтобы получить значения некоторых полей (ue(v), me(v), se(v) или te(v)), нам нужно декодировать фрагмент, используя специальный декодер, основанный на экспоненциальном коде Голомба. Этот метод очень эффективен для кодирования значений переменных, особенно, когда если есть много значений по умолчанию.

Значения slice_type и frame_num этого видео равны 7 (I-фрагмент) и 0 (первый кадр).

Битовый поток можно рассматривать как протокол. Если желаете узнать больше о битовом потоке, стоит обратиться к спецификации ITU H.264. Вот макросхема, показывающая, где находятся данные изображения (YUV в сжатом виде).

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Можно исследовать и другие битовые потоки, такие как VP9, H.265 (HEVC) или даже наш новый лучший битовый поток AV1. Все ли они похожи? Нет, но разобравшись хотя бы с одним — гораздо проще понять остальные.

Хотите попрактиковаться? Исследуйте поток битов H.264

Можно сгенерировать однокадровое видео и использовать MediaInfo для исследования потока битов H.264. Фактически, ничто не мешает даже поглядеть исходный код, который анализирует поток битов H.264 (AVC).

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Для практики можно использовать Intel Video Pro Analyzer (я уже вроде говорил, что программа платная, но есть бесплатная пробная версия, с ограничением на 10 кадров?).

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Обзор

Отметим, что многие современные кодеки используют ту же самую модель, которую только что изучили. Вот, давайте взглянем на блок-схему видеокодека Thor. Она содержит все шаги, нами пройденные. Весь смысл этой заметки в том, чтобы вы, по крайней мере, лучше понимали инновации и документацию из этой области.

видео энкодер что это такое. Смотреть фото видео энкодер что это такое. Смотреть картинку видео энкодер что это такое. Картинка про видео энкодер что это такое. Фото видео энкодер что это такое

Ранее рассчитали, что потребуется 139 Гб дискового пространства для хранения видеофайла длительностью один час при качестве 720p и 30 fps. Если использовать методы, которые разобрали в этой статье (межкадровые и внутренние прогнозы, преобразование, квантование, энтропийное кодирование и т.п.), то можно достичь (исходя из того, что тратим 0,031 бит на пиксель), видео вполне удовлетворительного качества, занимающее всего 367,82 Мб, а не 139 Гб памяти.

Как H.265 достигает лучшей степени сжатия, чем H.264?

Теперь, когда известно больше о том, как работают кодеки, проще разбираться, как новые кодеки способны обеспечивать более высокое разрешение с меньшим количеством битов.

Если сравнивать AVC и HEVC, стоит не забывать, что это почти всегда выбор между большей нагрузкой на CPU и степенью сжатия.

HEVC имеет больше вариантов разделов (и подразделов), чем AVC, больше направлений внутреннего прогнозирования, улучшенное энтропийное кодирование и многое другое. Все эти улучшения сделали H.265 способным сжимать на 50% больше, чем H.264.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *