кодирование cbr или vbr
Что такое битрейт? Какая разница между CBR и VBR?
Битрейт — основополагающий параметр сжатия видео. Он выражает общую степень сжатия потока и тем самым определяет размер требуемого канала передачи данных. Чем выше битрейт, тем больше деталей видеоизображения удается сохранить, и тем реалистичнее выглядит видео. При выборе битрейта всегда приходится находить баланс между качеством кодирования и размером канала.
Существует два основных подхода к распределению битов в потоке: постоянный (constant bitrate — CBR) и переменный (variable bitrate — VBR) битрейты. Под постоянным и переменным битрейтом инженеры могут подразумевать две разные вещи. При вещании имеется в виду постоянное или переменное количество бит, которое передается за 1 секунду. При кодировании — постоянное и переменное наполнение и опустошение буфера с одной или разной скоростью.
CBR показывает стабильный уровень битрейта независимо от сцены, не создает резких перепадов нагрузок. CBR не оптимален со стороны качества, потому что поток не изменяется в зависимости от динамики и сложности видео.
Позволяет в сложных местах повышать битрейт и снижать степень сжатия, чтобы получать более качественное изображение. Переменный битрейт регулируется в зависимости от скорости изменения картинки. Например, битрейт статичного видеофрагмента (заката) будет значительно ниже, чем битрейт движения (автомобильной погони).
Больше полезных статей о видео технологиях вы можете найти на нашем сайте.
Выбор битрейта для записи мультимедиа
Битрейт (bitrate, англ.) — означает величину (численность) бит, которая используется для записывания или передачи мультимедийного материала, длящегося на протяжении одной секунды. При фиксации мультимедийного (аудио и видео) контента в формате МР3 происходит его поблочное сжатие с помощью определённых процедур (алгоритмов). А эти алгоритмы подразделяются на виды в зависимости от битрейта (его величины). На каждый из таких блоков (фреймов) отводится от тридцати двух до трёхсот двадцати бит.
Кодирование
Алгоритмы VBR, CBR и ABR, используемые для кодирования в МР3-формате, не обеспечивают полную сохранность качества — оно теряется. Впрочем, это можно ощутить только при просмотре (проигрывании) лишь на качественной аппаратуре.
Для непрофессионального взгляда материал, записанный с использованием механизмов VBR, CBR и ABR, будет выглядеть вполне качественно.
Проведём анализ различий в алгоритмах VBR, CBR и ABR, для того чтобы знать, каким из них правильно воспользоваться для записи и последующего хранения или передачи файлов. Какой из них лучше для качества или для решения других задач.
Constant bitrate
Как видно из названия (constant — постоянный, англ.), в этой разновидности алгоритма на одну секунду материала выделяется постоянное количество бит. Все блоки равны друг другу.
Благодаря использованию CBR есть возможность заранее знать размер исходного файла или ширину потока. Это важно для передачи информации по каналам, обладающим ограниченной шириной.
Алгоритм Constant bitrate
Применение такого кодирования не идеально:
Недостатки качества при записи «сложных» участков решаются повышением битрейта, например, до максимальных 320 кбит/с, но при этом увеличивается ширина потока передачи или размер файла.
Variable bitrate
Легко догадаться, что такая разновидность метода (VBR) является переменной (variable — переменный, англ.).
Для такой кодировки характерно то, что битрейт в этом случае изменяется в процессе самого кодирования программой-кодеком. И зависит битрейт в указанном случае от насыщенности звукового или видеоматериала.
То есть при выборе VBR-кодирования программой для записи пустой картинки будет выбран меньший битрейт, а для записи насыщенных картинок или быстро сменяющихся изображений — больший.
Алгоритм Variable bitrate
Отрицательным моментом этого алгоритма является трудность предвидения предстоящих изменений. Увеличение битрейта при записи будет реально происходить с опозданием.
Кроме того, фрагменты, звучащие тихо, воспринимаются при VBR-кодировании как фрагменты, не несущие важности, и под них на этом основании выделяется минимальный битрейт.
Поэтому CBR с максимальным значением в 320 кбит/с обеспечит большее качество.
Правда, в настоящее время появилась кодировка VBR 2 Pass.
Суть её в том, что программа сначала анализирует мультимедийный поток (в первый раз), а затем производит запись, сжимая её на основе данных, полученных при первичном сканировании. Это даёт лучший результат по качеству, и в этом смысле такая кодировка лучше.
Average bitrate
Average переводится с английского как усреднённый. Таковой является разновидность ABR, являющаяся в некотором роде помесью VBR и CBR.
Выбирая режим ABR, пользователь задаёт какое-то его значение в килобитах в секунду. Кодек же может изменять его в ту или иную сторону, придерживаясь установленного среднего значения.
Алгоритм Average bitrate
Метод ABR выгодно отличается от других назначаемым количеством бит в секунду. Вы можете выбирать абсолютно любой числовой параметр от 8 до 320. В то время как кодировка CBR может использовать только шестнадцатикратное значение.
Из вышеизложенного следует, что если для результата важен размер полученного файла, то для высшего качества лучше присмотреться к кодировке ABR или CBR.
В противном же случае обратить внимание на метод VBR 2 Pass.
В этой статье вы ознакомились с кодировками VBR, CBR и ABR. Теперь вы знаете, чем отличается каждая из них, какая лучше для вашей конкретной задачи и какую из них нужно выбрать.
CBR против VBR
От битрейта напрямую зависит не только качество изображения, но и объем архива. Именно здесь в игру и вступают такие режимы как CBR и VBR. Для приведенных ниже экспериментов применялась скоростная поворотная камера так как изменить сцену на ней проще простого.
Для начала CBR
CBR – режим основанный на постоянном, непрерывном битрейте. То есть пропускная способность вообще не меняется. С помощью поворотной камеры было сымитировано движение в кадре, используя кодек сжатия H264 и установив предельный CBR 8Мбит/c.
На данном графике четко видно, что битрейт вообще не меняется во время движения в кадре. Собственно, ничего удивительного, так как активность постоянная. После чего, мы направили камеру на место где движения нет вообще – активность осталась неизменной.
ВЫВОД – независимо от сцены, нагрузка не меняется, то есть нет никакого риска потери качества.
Теперь разберемся с VBR
VBR – режим с переменной скоростью передачи данных. То есть поток меняется в зависимости от сцены. Для проведения тестов устанавливаем кодек сжатия H264, VBR 8 Мбит/c.
На тесте слева мы все еще видим режим CBR, а начиная со средины, включаем VBR и создаем имитацию активного движения в кадре при помощи вращения камеры (горизонтального сканирования).
Как можно заметить, график стал разбитым, а битрейт возрос до 10 Мбит что превышает заданный в настройках лимит на 25%!
Давайте посмотрим на график активности в сценах без движения, максимальная установка VBR 8 Мбит/c. И видим, что битрейт упал до 5 Мбит, движения в кадре нет, снова график ровный, нагрузка на сеть стабильная, но что случится если в кадре вновь возникнет резкое движение – битрейт внезапно возрастает с 5 до 8 Мбит.
ВЫВОД – стабильная нагрузка отмечается только в кадрах без движения, как только активность перед камерой возрастает, растет и нагрузка, причем довольно существенно!
Итоги тестов
CBR показывает стабильный уровень битрейта независимо от сцены, не создает резких перепадов нагрузок. Данный режим позволяет максимально точно предсказать необходимый объем архива что в свою очередь является огромным преимуществом. Из негативных сторон – битрейт занимает намного больше места в архиве.
VBR реагирует исключительно на активность в кадре, позволяет существенно экономить пространство на жестком диске. Но недостатков у него куда больше чем у CBR. Так при росте активности в кадре будет расти и битрей, а с учетом использования нескольких камер пропускная способность системы очень быстро может приблизиться к предельной, следствие – масса артефактов и искажений на итоговой картинке в плоть до полного зависания системы. Даже приблизительный объем при таком режиме рассчитать довольно проблематично.
Проблема в том, что при монтаже систем видеонаблюдения многие рассчитывают с учетом переменного битрейта, то есть VBR (8Мбит/c) и даже не задумываются о том, что при появлении активности в кадре битрейт может приблизится к 10Мбит/c, а это в свою очередь ведет к сильным глюкам и зависанию системы. Вопрос – а зачем тогда вообще нужна такая никчемная система видеонаблюдения? При расчете системы желательно иметь неплохой запас пропускной способности, вплоть до 50%.
Дополнительный поток в IP СВН
Первый поток, main stream, применяется для отображения максимального разрешения камеры. А второй, дополнительный (sub stream), имеет куда меньшее разрешение, максимально ограниченное на 720p, но чаще всего даже D1.
На нашем сайте Вы можете ознакомиться с услугами по установке видеонаблюдения, там же Вы сможете для себя подобрать систему видеонаблюдения. Для более подробной информации Вы всегда можете позвонить нашим менеджерам.
Что такое CBR, ABR, VBR?
Автор: Александр Радзишевский (Alex Y. Radzishevsky)
Copyright (C) 1998-2007, Alex Y. Radzishevsky
Что такое CBR и VBR?
Как известно, результатом кодирования сигнала с помощью такого алгоритма, как, например, MPEG-1 Layer III (MP3) (и множества других алгоритмов), является бит-поток с фреймовой (блочной) структурой. Это объясняется тем, что кодирование исходного потока производится не целиком, а по частям. То есть фактически исходный поток разделяется на блоки определенной фиксированной длины, затем каждый блок (фрейм) в отдельности подвергается кодированию и результат (кодированный блок информации) направляется в результирующий поток (будь то файл или поток данных).
Каковы отличия режимов CBR, VBR и ABR применительно к кодеру Lame?
Прежде чем начать разговор, уточним две детали:
1. Кодирование в MP3 происходит поблочно: кодируемый файл разбивается на фреймы (кадры) с одинаковым интервалом, каждый кадр кодируется и записывается в выходной поток; таким образом, выходной поток также имеет кадровую структуру.
2. Фреймы могут быть закодированы не на любом битрейте, а только на одном из входящих в таблицу стандартных для MPEG1 Layer III битрейтов: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320. Кодирование на любых промежуточных битрейтах («freeformat») стандартом не предусмотрено.
Люди, использующие VBR в Lame, обычно аргументируют это фразой: «я хочу получать постоянное качество, а не постоянный битрейт». Действительно, ведь в музыке бывают простые пассажи, на которые вполне хватает и 128 Кбит/сек (например паузы между песнями), а бывают и сложные, на которых человек с хорошим слухом, хорошей аудио картой и прочей аудиоаппаратурой услышит дефекты компрессии даже на 320 Кбит/сек. На самом деле такой аргумент не совсем правомочен.
Даже в режиме CBR, mp3-кодер может перераспределять биты во времени, выделяя большее или меньшее количество бит во время сложного или простого пассажей, что позволяет в целом улучшить качество звучания. Такое перераспределение бит делается за счёт так называемого резервуара бит: во время кодирования простых пассажей кодер тратит на них не весь заданный пользователем битрейт, а лишь около 90%, около 10% экономится в резервуаре для кодирования сложных мест (изначально резервуар пуст). При кодировании сложных пассажей кодер будет использовать все 100% указанного битрейта и добавлять дополнительные биты из резервуара (если таковые имеются, то есть если резервуар не пуст). К сожалению, в соответствии со стандартом, размер резервуара ограничен. Это означает, что если простой сигнал продолжается достаточно долго, резервуар накапливает свой объем до определенных максимально допустимых пределов и далее кодирование идёт уже с использованием всех 100% битрейта. И обратная ситуация: если сложный сигнал продолжается достаточно долго, из резервуара (постепенно) забираются все сэкономленные биты и далее кодирование идёт с использованием уже теперь всех 100% битрейта.
Главное отличие ABR от CBR в том, что в CBR все фреймы обязаны быть одного размера (то есть битрейт для всех фреймов должен быть одинаков), в ABR же это ограничение снято, соответственно, существует возможность вместо стандартного весьма ограниченного по размеру резервуара использовать практически бесконечный «виртуальный» резервуар. Выглядит это приблизительно следующим образом.
Простые пассажи кодируются меньшим количеством бит, на них берётся примерно 95% от указанного битрейта B, но теперь остаток не откладывается в резервуар, кодер просто берёт фрейм с меньшим битрейтом. Возникающая разница (оставшиеся биты) записывается в стандартный резервуар (не выбрасывать же оставшиеся биты. ). Пример. Допустим пришел «простой» пассаж. Тогда кодер берет все биты (если таковые есть) в резервуаре (настоящем), потом ищет ближайший стандартный битрейт, при котором суммарное количество бит, получившееся для этого фрейма (все биты из резервуара + взятый битрейт), составит 95% от заданного пользователем битрейта B, производит кодирование, а лишние биты (если они остались) снова сохраняет в резервуаре.
Методы оценки сложности сигнала
Таким образом, основное отличие CBR, ABR и VBR, как вы уже наверное поняли из сказанного выше, состоит в использовании разных методов подсчёта необходимого для кодирования каждого фрейма количества бит.
Методы оценки сложности сигнала: метод 1 (VBR)
Первый метод основан на вычислении «психоакустической маскировки» и «ошибки кодирования». Этот метод используется в VBR и теоретически должен был бы давать максимальное качество если бы психоакустическая модель Lame’а была идеальна. В основе этого метода лежит очень простая идея: на кодирование выделяется минимальное количество бит, необходимое для выполнения условия: [ошибка_кодирования]
CBR или VBR для IP-видеонаблюдения
Работающие с кодеком h.264 IP-камеры могут иметь несколько режимов кодирования видеоизображения, вследствие чего размеры исходящих потоков могут сильно варьироваться и оказывать серьёзное влияние на работу видеокомплекса в целом. В статье разъясняется смысл работы наиболее распространённых режимов (CBR и VBR в разных модификациях), даются выводы по их применимости и советы проектировщикам.
Позволим себе смелое утверждение: IP-камера, извлечённая из коробки, являет собой полуфабрикат, непригодный для немедленного использования. В том смысле, что после физического подключения камеры почти всегда приходится заходить в ее веб-интерфейс и изменять установленные «по умолчанию» параметры под условия конкретной задачи и требования технического задания (ТЗ).
Проблема может быть в том, что в ТЗ не всегда в явном виде указано, что и как должно быть задано в параметрах камеры. Некоторые функции и параметры IP-камер могут быть не критичны и не иметь большого значения, но некоторые неявно вытекают из общих требований к системе и собственного опыта инсталлятора.
К числу таких неявных параметров относится режим кодирования, влияющий на размер потока. В общем случае IP-камера охранного видеонаблюдения с поддержкой MPEG4/H.264 имеет два режима кодирования: CBR и VBR. О них и поговорим.
Переменный? Постоянный? Или дефолтный?
На первый взгляд всё просто: в камере есть «дефолтные» настройки видеопотоков, отталкиваясь от которых проектировщик рассчитывает проект, инсталлятор этот проект исполняет.
Кодирование в режиме CBR
Очевидно, удобен CBR тем, что под него легко посчитать требуемое дисковое пространство и подобрать коммутаторы. Подвох в том, что 10 к/с со средним размером кадра в 100 КБайт и 25 к/с со средним размером 40 Кбайт в итоге дают один и тот же поток. Какой вариант больше устроит? Меньшая скорость с лучшим качеством или среднее качество «живого видео»? А по какому варианту станет работать камера? Чтобы получить ответы, нужно обратить внимание на связанную с режимом CBR опцию задания пользователем приоритета (Priority). В итоге получим следующие сценарии работы:
Тогда результат трудно предсказуем: потеряем мы в скорости, или в качестве.
Замечание:
Режим CBR снижает максимальную нагрузку на сеть, но не снижает нагрузку на ЦП видеосервера, т.к. количество требуемых для работы видеоаналитики опорных кадров не изменяется. Настройки опорных кадров и настройки CBR/VBR в камерах не зависят друг от друга. Это важное замечание к расчету видеосервера, которое многие производители серверов не учитывают. В калькуляторе расчета серверов для систем IP-видеонаблюдения на нашем сайте рассмотренная выше особенность учтена.
Кодирование в режиме VBR
Во избежание значительных перегрузок многие производители наделили VBR настройкой, ограничивающей максимальный размер потока (кратко говоря, «ограничение сверху»). Это даст гарантию, что поток не вырастет выше определённой величины, и именно от этой величины надо будет исходить при расчёте трафика. Рассчитывать же архивы следует исходя из среднего значения потока. Конкретную максимальную и среднюю величину можно определить либо калькуляторами производителей камер, имитирующими наблюдение обстановки, либо опытным путём. Или можно обратиться в компанию Видеомакс, инженерный состав которой располагает обширным опытом работы с IP-наблюдением и охотно поможет с оценкой трафика и расчётом пропускной способности сети, в зависимости от наблюдаемой сцены и задачи.
Развитие технологии VBR. Zipstream, H.264+, Smart stream, Smart Coding и иже с ними
Реальная эффективность таких технологий зависит от интенсивности движения в поле зрения камеры, о чём мы рассказывали в нашем видеоролике:
Так что же выбрать: CBR или VBR?
CBR можно рекомендовать, прежде всего, при необходимости уложиться в твёрдо заданную и при том невысокую пропускную способность линии связи (когда перегружать канал нельзя ни в коем случае). Нередко применяется при работе в общей сети заказчика. Кроме того, CBR подходит для наблюдения мало изменяющихся объектов (например, помещение, одинаково освещённое днём-ночью-летом-зимой с одной и той же обстановкой в поле зрения камеры), особенно, если какое-нибудь конкретное ПО больше «любит» CBR и работает наиболее стабильно при использовании именно этого режима. И такое ПО действительно существует!
Это общие рекомендации, а частности мы свели в таблицу сравнения:
CBR | VBR | |
---|---|---|
Когда лучше использовать | Ограничения пропускной способности линии связи. | Универсальный выбор; требуется качество жёстко заданного уровня. |
Расчёт сети | Исходя от заданного размера потока. | Исходя от заданного ограничения «сверху» (должно поддерживаться камерой!). |
Расчёт архива | Исходя от заданного размера потока. | Исходя от среднего значения, получаемого опытным путем, либо на калькуляторах производителей для заданной сцены |
Условия падения качества | Задан приоритет скорости; недостаточен установленный размер потока | Малый размер ограничения «сверху» |
Условия падения скорости | Задан приоритет качества; недостаточен установленный размер потока | Малый размер ограничения «сверху» |
Риск сокращения глубины архива | Отсутствует. | Высок, если среднее значение определено неверно. |
Риск перегрузки сети | Отсутствует. | Высок, если ограничение «сверху» не задано. |
Важно!
Функции ограничения VBR-потока и установки приоритета есть не у всех камер. Об этом следующий раздел. Дополнение: богатая практика инженеров «Видеомакс» показывает, что в большом количестве задач и наблюдаемых сцен переход от использования CBR к VBR увеличивает глубину архива. Казалось бы, как так? Дело в том, что бо́льшие расходы дискового пространства при всплесках потока в VBR более чем компенсируются расходами малыми, когда наблюдаемая обстановка «успокаивается», и VBR-поток зачастую становится чуть ли не меньше самого маленького значения CBR, которое можно выставить в камере.
Где это в камерах?
Непростой и мало кем освещаемый момент: у разных производителей интерфейс и возможности настроек режимов потоков реализованы очень по-разному. Бывает, что общепринятые термины CBR и VBR вообще отсутствуют! В таких случаях следует ориентироваться на слова «constant», «fixed», «maximum», «bit rate», «encoder», «quality» и на окна ввода значений размеров потока. Далее – примеры реализации. Возможно, вы узнаете знакомые вам интерфейсы и поймете, что означают эти все настройки.
Здесь, если «галочка» у «enable» отсутствует, то камера работает в режиме VBR. Если «галочка» установлена, то камера работает в CBR с указанным размером потока. Функции ограничения потока «сверху» для VBR и функции задания приоритета «скорость или качество» у данной камеры нет.
В этой камере «Fixed quality» означает выбор режима VBR. Функций ограничения потока «сверху» для VBR и задания приоритета для CBR у данной камеры тоже нет.
Здесь есть всё: и «Constant. », и «Variable. », и приоритет выбрать можно, и ограничения. Даже пределы качества для CBR можно задавать. Думаем, многие узнали интерфейс настройки одного из лидеров в производстве камер для IP-видеонаблюдения.
У этой камеры выбор режима CBR/VBR находится в строке «Encoder Mode». Виден ограничитель («Maximum Bitrate»), но возможности его изменить нет. Зато есть «комбинированный» CVBR. По сути тот же VBR, но с ограничением не только «сверху» («Maximum Bitrate»), но ещё и «снизу» («Bitrate»). Функции выбора приоритета «скорость или качество» опять нет.
Вердикт: в плане выбора и настраиваемости CBR/VBR «не все йогурты одинаково полезны» 🙂