Что такое контроль скорости vbr или cbr
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 или 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 «не все йогурты одинаково полезны» 🙂
Внимание
Резюме
Упущенные истины видеонаблюдения
Самая частая ошибка монтажных организаций при выполнении проектов по видеонаблюдению любой величины и сложности – расчеты при проектировании. Либо же, оценочные расчеты. Если они вообще велись.
Раcчет ВАР ведется исходя из данных производителя (кривых разряда АКБ для 12В потребителей, кривых разряда UPS для потребителей 220В).
Глубина архива. Данный параметр очень важен для Заказчика и сильно зависит от настроек, выполненных Исполнителем: расписание записи, тип записи (постоянная, ДД, по тревоге и тп).
Самая часто встречающаяся проблема – записи нужны месячной давности, а архив, как оказалось, всего недельной емкости. Тут уже встает вопрос о смысле такой системы.
А рассчитывается он очень просто (только для примера с постоянной записью):
Архив системы= Кол-во камер * Битрейт камеры (Мбит/с)* Временной промежуток (с).
Различные калькуляторы архива прячут параметр «Битрейт камеры» за понятием «Качество» или «Уровень компрессии», при этом не давая продвинутому пользователю ввести желаемый битрейт руками:
macroscop.com Пример калькулятора
arecontvision.ru Расчет архива
Для тех, кто понимает необходимый уровень битрейта – все очень просто.
Очень часто, используя аналоговые камеры, выставляют битрейт 2Мбит/с, который может очень легко быть применен для fullHD IP-камер, с частотой кадров 12кс, а то и 25кс (в зависимости от кодека и его реализации).
Давайте посмотрим, сколько же может писать в сутки одна камера с битрейтом в 2048 Кбит/с (это может быть как аналоговая, так и 3Мп камера):
Итого, 1 камера с битрейтом 2Мбит/с за 24часа непрерывной записи займет 21 Гб ахрива.
CBR против VBR
Битрейт имеет большое значение в системах видеонаблюдения, так как влияет на качество и, самое главное, на объем архива. Здесь в игру вступают режимы CBR и VBR.
Мы провели ряд экспериментов с использованием скоростной поворотной камеры, поскольку полностью изменять сцену на ней не составляет труда ( не махать же руками каждый раз перед объективом).
На графике видно, что битрейт неизменный при активном движении в кадре.
Оно и понятно, поскольку активность постоянная. Тогда мы направили нашу камеру в место, где движения в кадре нет совсем и видим, что график остался неизменным.
Из чего можно сделать вывод, что независимо от сцены, нагрузка на сеть не меняется, а значит никакого риска с потерей качества нет.
Рассмотрим режим VBR.
VBR (Variable bitrate) расшифровывается как переменная скорость передачи данных и этот термин подразумевает, что поток изменяется в зависимости от сцены. Устанавливаем кодек сжатия H264, VBR 8 Мбит/c.
Слева на графике мы видим все еще режим CBR, а с середины мы включаем режим VBR и создаем активное движение в кадре, включив постоянное горизонтальное сканирование (вращение) поворотной камеры.
Помимо того, что график стал разбитым, мы видим, что битрейт поднялся до 10 Мбит, а это превышает заданный лимит на 25%!
Рассмотрим график изменения при сцене, где активности движения нет совсем при том же максимально установленном VBR 8 Мбит/c.
Видно, что битрейт упал до 5 Мбит, движения нет, график ровный, нагрузка на сеть стабильная, но что произойдет если в кадре резко появится активное движение?
Справа видно, что при появлении движения в кадре битрейт с 5 Мбит резко возрастает до 8 Мбит. Из чего вывод, что если движения в кадре нет, нагрузка на сеть стабильная, но как только появляется движение, нагрузка увеличивается в 1.5 раза и это с одной камеры
CBR держит стабильный битрейт независимо от сцены и не создает резких нагрузок на сеть. В данном режиме можно довольно точно предсказать размер архива, что является плюсом, но вы должны учитывать, что постоянный битрейт это в разы больше занимаемого места в архиве, что можно присвоить к минусу этого режима.
При монтаже системы видеонаблюдения многие рассчитывают пропускную способность сети с переменным битрейтом, например, в 8Мбит/c не задумываясь о том, что при появлении активности в кадре битрейт может подскочить до 10Мбит/c, тем самым получают зависания картинки. В системе видеонаблюдения необходимо всегда иметь запас пропускной способности желательно до 50%.
Доп. поток в IP СВН
Первый поток, main stream, используется для отображения максимального разрешения камеры в полноэкранном режиме 1 камера на весь монитор, 1 или 2 или 3 Мегапикселя.
Дополнительный, второй поток, sub stream, имеет значительно меньшее разрешение, максимально ограниченное 720p, но чаще всего D1.
Падение напряжения на кабельных трассах
Самая большая проблема, с которой встречаются монтажники, имеющие небольшой опыт при построении «растянутых» объектов, с длинными кабельными трассами.
Вроде бы…все просто, но не тут то было. Видеокамера – сложный технический продукт. От недостатка напряжения изображение теряет качество, а при переизбытке напряжения – камера вынуждена служить меньше времени, отведенного ей производителем. На примере трех камер SNR были выполнены тесты для разных значений напряжения от 4-5 до 13В:
Сравнительно небольшая девиация тока при уменьшении напряжения.
При 4В камера почти ничего не потребляет.
Включение ИК-подсветки на камере меняет сопротивление камеры и увеличивает потребляемый ток.
Сравнительно небольшая девиация тока при уменьшении напряжения.
Включение ИК-подсветки на камере меняет сопротивление камеры и увеличивает потребляемый ток.
Сравнительно небольшая девиация тока при уменьшении напряжения.
Включение ИК-подсветки на камере меняет сопротивление камеры и увеличивает потребляемый ток.
Из приведенных замеров видно, что понижение напряжения ведет к увеличению потребляемого тока, что вполне вяжется с законом Ома для участка цепи и определением мощности P= UI. Но данный закон не применим в точности к видеокамере ввиду наличия реактивных сопротивлений и микросхем.
При падении напряжения ниже определенного рабочего значения (для каждой камеры оно свое) начинается игра «напряжение-ток»:
Потеря напряжения в кабеле ведет к возрастанию потребляемого тока камерой, что в свою очередь ведет к повышению потери напряжения на кабеле опять. и так до предела минимального напряжения на схеме камеры.
Падение напряжения в кабеле зависит напрямую от его сопротивления:
Uкаб=IкамRкаб, где Rкаб=ρ*l/S, чем длиннее и тоньше кабель, тем его сопротивление больше(*).
Для расчета сопротивления кабеля рекомендуем брать справочные характеристики производителя, например кабельная продукция «Паритет»:
Параметры | Кабель КВК-П | Кабель LANsens U/UTP |
Фото | Следуя определению сопротивления (*), когда мы объединяем несколько витых пар – мы увеличиваем сечение кабеля и этим уменьшаем его сопротивление. Давайте рассчитаем необходимое напряжение источника питания UИП, которое позволит переключаться камере из ИК режима в дневной, при этом не выходя за рамки номинального напряжения 11-13В, и посмотрим, какую длину нам обеспечат одна и три витых пары. Верхняя линия, более пологая, это наименьший ток камеры, низшая линия, более крутая, ток камеры с ИК подсветкой. «Заметки на полях» (FAQ)Часто задаваемые вопросы (и ответы) на околозвуковые темы технического характераКратко об истории и характеристиках стандартов MPEG. 1) Рассмотрим комплект MPEG-1. Этот комплект, в соответствии со стандартами ISO, включает в себя три алгоритма различного уровня сложности: Layer (уровень) I, Layer II и Layer III. Общая структура процесса кодирования одинакова для всех уровней. Для каждого уровня определен свой формат записи бит-потока и свой алгоритм декодирования. Алгоритмы MPEG основаны в целом на изученных свойствах восприятия звуковых сигналов слуховым аппаратом человека (то есть кодирование производится с использованием так называемой «психоакустической модели»).
Комплект MPEG-1 предусмотрен для кодирования сигналов, оцифрованных с частотой дискретизации 32, 44.1 и 48 КГц. Как было указано выше, комплект MPEG-1 имеет три уровня (Layer I, II и III). Эти уровни имеют различия в обеспечиваемом коэффициенте сжатия и качестве звучания получаемых потоков. Layer I позволяет сигналы 44.1 КГц / 16 бит хранить без ощутимых потерь качества при скорости потока 384 Кбит/с, что составляет 4-х кратный выигрыш в занимаемом объеме; Layer II обеспечивает такое же качество при 194 Кбит/с, а Layer III – при 128 (или 112). Выигрыш Layer III очевиден, но скорость компрессии при его использовании самая низкая (надо отметить, что при современных скоростях процессоров это ограничение уже не заметно). Фактически, Layer III позволяет сжимать информацию в 10-12 раз без ощутимых потерь в качестве. 2) Стандарт MPEG-2 был специально разработан для кодирования ТВ сигналов вещательного телевидения, поэтому на рассмотрении MPEG-2 мы бы не останавливались, если бы в апреле 1997 этот комплект не получил «продолжение» в виде алгоритма MPEG-2 AAC (MPEG-2 Advanced Audio Coding – продвинутое аудио кодирование). Стандарт MPEG-2 AAC стал результатом кооперации усилий института Fraunhofer, компаний Sony, NEC и Dolby. MPEG-2 AAC является технологическим приемником MPEG-1. Существует несколько разновидностей этого алгоритма: Homeboy AAC, AT&T a2b AAC, Liquifier AAC, Astrid/Quartex AAC и Mayah AAC. Наиболее высокое качество звучания по сравнению c MPEG-1 Layer III обеспечивают две предпоследние реализации. Все приведенные разновидности алгоритма AAC не являются совместимыми между собой. Также, как и в комплекте аудио стандартов кодирования MPEG-1, в основе алгоритма AAC лежит психоакустический анализ сигнала. Вместе с тем, алгоритм AAC имеет в своем механизме множество дополнений, направленных на улучшение качества выходного аудио сигнала. В частности, используется другой тип преобразований, улучшена обработка шумов, изменен банк фильтров, а также улучшен способ записи выходного бит-потока. Кроме того, AAC позволяет хранить в закодированном аудиосигнале т.н. «водяные знаки» (watermarks) – информацию об авторских правах. Эта информация встраивается в бит-поток при кодировании таким образом, что уничтожить ее становится невозможно не разрушив целостность аудиоданных. Эта технология (в рамках Multimedia Protection Protocol) позволяет контролировать распространение аудиоданных (что, кстати, является препятствием на пути распространения самого алгоритма и файлов, созданных с помощью него). Следует отметить, что алгоритм AAC не является обратно совместимым (NBC – non backwards compatible) с уровнями MPEG-1 несмотря на то, что он представляет собой продолжение (доработку) MPEG-1 Layer I, II, III. MPEG-2 AAC предусматривает три различных профиля кодирования: Main, LC (Low Complexity) и SSR (Scaleable Sampling Rate). В зависимости от того, какой профиль используется во время кодирования, изменяется время кодирования и качество получаемого цифрового потока. Наивысшее качество звучания (при самой медленной скорости компрессии) обеспечивает основной Main профиль. Это связано с тем, что профиль Main включает в себя все механизмы анализа и обработки входного потока. Профиль LC упрощен, что сказывается на качестве звучания получаемого потока, сильно отражается на скорости компрессии и, что более важно, декомпрессии. Профиль SSR также представляет собой упрощенный вариант профиля Main. Говоря о качестве звука, можно сказать, что поток AAC (Main) 96 Кбит/с обеспечивает качество звучания, аналогичное потоку MPEG-1 Layer III 128 Кбит/с. При компрессии AAC 128 Кбит/с, качество звучания ощутимо превосходит MPEG-1 Layer III 128 Кбит/с. 4) Стандарт MPEG-7, разработка которого еще не окончена, вообще в корне отличается от всех иных стандартов MPEG. Стандарт разрабатывается не для установления каких-то рамок для передачи данных или типизации и описания данных какого-то конкретно рода. Стандарт предусмотрен как описательный, предназначенный для регламентации характеристик данных любого типа, вплоть до аналоговых. Использование MPEG-7 предполагается в тесной связи с MPEG-4. Выпуск в свет MPEG-7 намечен на 2001 год. Для удобства обращения со сжатыми потоками, все алгоритмы MPEG разработаны таким образом, что позволяют осуществлять декомпрессию (восстановление) и воспроизведение потока одновременно с его получением (download) – потоковая декомпрессия «на лету» (stream playback). Эта возможность очень широко используются в интернете, где скорость передачи информации ограничена, а с использованием подобных алгоритмов появляется возможность обрабатывать информацию прямо во время ее получения не дожидаясь окончания передачи. Что такое 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’а была идеальна. В основе этого метода лежит очень простая идея: на кодирование выделяется минимальное количество бит, необходимое для выполнения условия: [ошибка_кодирования] Какие методы кодирования стерео информации используются в алгоритмах MPEG (и других)? Существует несколько методов кодирования стерео аудио информации в стандарте ISO11172-3 (MPEG-1 Layer 1,2,3). Dual Channel. Этот режим предполагает кодирование стерео каналов, как абсолютно независимых. Иными словами, в этом режиме кодирование аудио информации происходит отдельно в каждом канале без использования корреляций между ними. Как и следует из названия, этот режим главным образом предназначен для кодирования двух параллельных но различных каналов (например, речь на английском и немецком языках), а не стерео (т.е. не два канала, несущих информацию о стерео картине). Этот режим не рекомендуется использовать для кодирования стерео сигнала, так как существуют проигрыватели (например, madplay), проигрывающие по умолчанию только один канал если поток помечен как Dual Channel. Stereo. Этот режим отличается от предыдущего только тем, что в режиме Dual Stereo во время кодирования для каждого канала используется свой резервуар (об этом в обсуждении вопроса об отличиях ABR/VBR/CBR), а в этом режиме оба канала кодируются с использованием общего резервуара. Иных различий между режимами нет. При кодировании в MPEG-1 имеются две разновидности этого метода. Intensity Stereo. В этом режиме в верхнем частотном диапазоне так же происходит кодирование общей составляющей обоих каналов, как и в случае MS Stereo, но вместо кодирования разностной составляющей в верхнем диапазоне частот происходит просто регистрация и запись мощностей сигналов в левом и правом каналах в каждой частотной полосе начиная с некоторой определенной. Иными словами весь сигнал разбивается на полосы, фактическому кодированию подвергается только нижний диапазон частот side-канала, а в верхнем частотном диапазоне начиная с определенной полосы происходит не кодирование сигнала в каждой полосе, а лишь регистрация мощностей сигнала в каждой полосе. Кодирование стерео сигнала в нижнем частотном диапазоне осуществляется в режиме MS Stereo или просто Stereo. Таким образом, в режиме Joint Stereo фактически происходит кодирование лишь общей составляющей каналов, а стерео на высоких частотах «воссоздается» (если такой термин здесь уместен, а лучше «синтезируется») в соответствующем канале путем умножения общего сигнала на известные (сохраненные при кодировании) значения мощностей частотных участков в соответствующем канале. Можно предположить, что приблизительно аналогичные методы кодирования стерео аудио информации применяются и в других алгоритмах компрессии аудио. Какие параметры предпочтительны при кодировании MP3? Этот вопрос не имеет однозначного ответа. Каждый человек подбирает себе параметры кодирования в зависимости от конкретной задачи. Если речь идет о кодировании голоса или другой звуковой информации при малых требованиях к качеству, то кодирование можно производить на минимальных битрейтах, вплоть до 8 Кбит/с (при данном битрейте полоса частот ограничивается 2,5 КГц, что сравнимо с телефонной линией). Если же стоит вопрос о кодировании аудио данных с CD (44.1 KГц / 16 бит / стерео), то на этот счет существует масса мнений. Большинство пользователей почему-то убеждено, что битрейта 128 Кбит/c достаточно для кодирования аудио CD-качеcтва без потерь. На самом деле это не так. В этом легко убедиться, если прослушать (даже на аппаратуре среднего качества) сначала оригинал, а затем полученный MP3. MP3 будет отличаться как минимум «сухостью» звучания, не говоря уже о появлении некоторых посторонних «позвякиваний», скрежета и других помех.. Это обусловлено тем, что используемая при кодировании психоакустическая модель оставляет только «жизненно необходимые» частоты, отфильтровывая замаскированные и слабослышимые. Причем это проявляется тем больше, чем с меньшим битрейтом производится кодирование. Основываясь на опыте можно предположить, что битрейт, достаточный для «точной» передачи CD-звучания, лежит в пределах от 192 до 320 Кбит/с (в зависимости от кодируемого аудио сигнала и, конечно, самого слушателя). Безусловно, при таком кодировании объем, занимаемый полученным MP3-потоком, увеличивается пропорционально поднятию битрейта. Какие альтернативные MPEG-1 Layer III (MP3) алгоритмы компрессии существуют? Действительно, на MP3 свет клином не сошелся. Параллельно MP3 появляются и развиваются не менее, а иногда, и более прогрессивные алгоритмы компрессии звука. Перечислять все алгоритмы нет надобности. Следует отметить только, что существуют алгоритмы по своим возможностям и качеству во многом превосходящие MP3. Один из таких алгоритмов это MPEG-2 AAC. MPEG-2 AAC. MPEG-2 Advanced Audio Coding – продвинутое аудио кодирование) стал результатом кооперации усилий института Fraunhofer, компаний Sony, NEC и Dolby. MPEG-2 AAC является технологическим приемником MPEG-1. Существует несколько разновидностей этого алгоритма: Homeboy AAC, AT&T a2b AAC, Liquifier AAC, Astrid/Quartex AAC и Mayah AAC. Наиболее высокое качество звучания по сравнению c MPEG-1 Layer III обеспечивают две предпоследние реализации. Все приведенные разновидности алгоритма AAC не являются совместимыми между собой. Так же, как и в комплекте аудио стандартов кодирования MPEG-1, в основе алгоритма AAC лежит психоакустический анализ сигнала. Вместе с тем, алгоритм AAC имеет в своем механизме множество дополнений, направленных на улучшение качества выходного аудио сигнала. В частности, используется другой тип преобразований, улучшена обработка шумов, изменен банк фильтров, а также улучшен способ записи выходного бит-потока. Кроме того, AAC позволяет хранить в закодированном аудио сигнале т.н. «водяные знаки» (watermarks) – информацию об авторских правах. Эта информация встраивается в бит-поток при кодировании таким образом, что уничтожить ее становится невозможно не разрушив целостность аудио данных. Эта технология (в рамках Multimedia Protection Protocol) позволяет контролировать распространение аудиоданных (что, кстати, является препятствием на пути распространения самого алгоритма и файлов, созданных с помощью него). Следует отметить, что алгоритм AAC не является обратно совместимым (NBC – non backwards compatible) с уровнями MPEG-1 не смотря на то, что он представляет собой продолжение (доработку) MPEG-1 Layer I, II, III. Говоря о качестве звука, можно сказать, что поток AAC 96 Кбит/с обеспечивает качество звучания, аналогичное потоку MPEG-1 Layer III 128 Кбит/с. При компрессии AAC 128 Кбит/с, качество звучания ощутимо превосходит MPEG-1 Layer III 128 Кбит/с. Несколько слов необходимо сказать и о другом прогрессивном алгоритме TwinVQ(Transform-domain Weighted Interleave Vector Quanization), разработанном фирмой Nippon Telegraph and Telephone Corp. (NTT) в Human Interface Laboratories и лицензированном фирмой Yamaha (продукты от Yamaha, основанные на TwinVQ, распространяются под торговой маркой SoundVQ). Этот метод позволяет сжимать цифровые потоки с коэффициентом компрессия до 1:20. При этом качество звучания потока TwinVQ при 96 Кбит/с практически идентично качеству звучания потока MPEG-1 Layer III (при 128 Кбит/с) и MPEG-2 AAC (при 96 Кбит/с). Алгоритм TwinVQ позволяет кодировать данные во всем диапазоне слышимых частот (до 22 КГц) и, также как и MPEG, производить декодирование и воспроизведение потока одновременно с его получением (stream playback). Кстати, говоря об алгоритме TwinVQ следует сказать также, что трудоемкость этого алгоритма намного выше трудоемкости, например, алгоритма MPEG-1 Layer III, так что программы-компрессоры, основанные на алгоритме TwinVQ работают в 5-10 раз медленнее, чем Layer III-компрессоры. Следует сказать также, что наработки TwinVQ используются в стандарте MPEG-4. По различным оценкам, TwinVQ в нижнем диапазоне частот превосходит по качеству MPEG-1 Layer III, уступая ему на верхних частотах. TwinVQ поддерживает кодирование с переменным битрейтом (VBR), а также имеет поддержку т.н. несимметричного битрейта, когда разные каналы кодируются с отличными битрейтами. Алгоритм PAC (Perspective Audio Coding) от Bell Labs & Lucent Technologies. По различным данным обеспечивает аналогичное (или выше) MPEG-1 Layer III 128 Кбит/с качество звучания при 64 Кбит/с. Поддерживаются также 96 и 128 Кбит/с. Алгоритм позволяет потоковое воспроизведение (stream playback). Имеет встроенный механизм защиты. Обладает высокой скоростью компрессии. Можно ли осуществить преобразование из одного потокового формата аудио данных в другой? Можно ли осуществить преобразование WAV в MIDI, WAV в трекерный модуль? Таким образом, для того, чтобы, скажем, преобразовать оцифрованную музыку в формат MIDI необходимо качественно проанализировать весь исходный цифровой поток и однозначно определить, звучание каких инструментов необходимо будет задействовать в выходном MIDI-файле. То есть, фактически необходимо точно идентифицировать инструменты, входящие в композицию. Однако эта проблема, по крайней мере на сегодняшний день, почти не решаема. Посудите сами: для того, чтобы правильно определить звучание какого инструмента происходит в данный момент, нужно, грубо говоря, однозначно знать спектры всех возможных инструментов. И затем, сравнивая спектр звучащего инструмента с набором спектров известных инструментов, определить звучание какого инструмента мы слышим. Но в тоже время мы знаем, что спектр одного и того же инструмента может сильно измениться даже при небольшом изменении силы воздействия на него, а это в свою очередь означает, что однозначно получить спектр мы не можем. Но все сказанное касалось звучания только одного инструмента. А что же будет со спектром сигнала, если в него входит звучание сразу нескольких инструментов? Спектр изменится коренным образом! Вы скажете, что можно, наверное, определить звучание по формантным областям. Да, это возможно, однако говорить все же о точности определения не приходится. Да и проблема-то не заканчивается точной идентификацией инструментов. В дальнейшем придется точно определять тональности звучания, расстановку во времени и тому подобное. По этой причине можно сделать однозначный вывод: качественное преобразование цифровых потоков в MIDI невозможно в принципе. Справедливости ради нужно сказать, что существует некоторое количество программ, которые позволяют переводить простые одноголосые композиции в MIDI-партитуру. Можно ли перевести цифровой поток в трекерный модуль? Нет, нельзя по приведенным выше причинам. Более того, так как в трекерных модулях (в отличие от MIDI) хранятся кроме команд и сами используемые в композиции инструменты, то для того, чтобы перевести поток в трекерный модуль, из него нужно вычленить звучание отдельных инструментов. А эта задача равносильна вычленению, например, голоса из песни (караоке). То есть, это возможно в какой-то мере, но вычленение несомненно будет крайне некачественным, так как спектры инструментов чаще всего наложены друг на друга. Можно ли выделить из аудио потока звучание конкретного инструмента или голоса? Что же касается вычленения звучания каких-то инструментов, то этот вопрос аналогичен предыдущему (точнее, третий абзац предыдущего вопроса). Таких способов много. Попробуем их перечислить. Какой метод сравнения двух аудио сигналов можно признать наиболее точным? Сначала договоримся, что речь идет о сравнении двух сложных непериодических сигналов, представленных в цифровом виде. Далее все зависит от стоящей перед экспериментатором задачи. Вероятно, все сводится к двум вариантам: физическое сравнение двух сигналов (то есть сравнение точности совпадения форм сигналов) и субъективное сравнение, когда целью является оценка «похожести» звучания двух сигналов. Второй вариант, целью которого является субъективное сравнение разницы в звучании двух сигналов, очень часто применим при оценке качества алгоритмов компрессии аудио. Вообще, целью большинства аудио кодеков (за исключением специализированных, например, вокодеров или кодеков для передачи ограниченного спектра частот) является в максимально меньшем объеме данных сохранить аудио информацию как можно более приближенную по качеству к оригинальному звучанию. Другими словами, задача сводится к обеспечению субъективно сходного с оригиналом качества звучания и никак ни объективного физического сходства форм (огибающих) оригинального и декодированного сжатого сигналов. В этом случае, применимость описанных выше методов сравнения может быть очень спорна, так как форма сигналов может совпадать очень слабо, а субъективное качество звучания оригинального и восстановленного сжатого сигналов при этом почти не изменится. Тогда для сравнения сигналов можно воспользоваться несколькими разновидностями спектрального анализа, каждый из которых, тем не менее, имеет массу недостатков. Первый заключается в графическом сравнении результирующих АЧХ оригинального и восстановленного сжатого сигналов за какой-то промежуток времени. Под понятием «результирующая АЧХ» подразумевается график зафиксированных пиковых значений амплитуд частотных составляющих сигнала за некоторый промежуток времени. Таким образом, взяв два одинаковых промежутка сравниваемых сигналов и построив их результирующие АЧХ, по совпадению (не совпадению) графиков АЧХ можно приблизительно оценить уровень потерянных частотных составляющих в сжатом сигнале, а также увидеть полосы частот, где эти потери наиболее выражены. Однако этот метод является статичным, то есть он абсолютно не учитывает изменение сигналов в динамике, что является очень важным, так как часто встречаются случаи, когда результирующие АЧХ сигналов почти совпадают, однако звучание сравниваемых промежутков сигналов отличается коренным образом даже на слух. Третий метод представляет собой более конкретизированный предыдущий, он заключается в построении АЧХ для каждого сканируемого окна БПФ. Однако эта задача не лишена тех же проблем, что и предыдущий метод, и, кроме того, производить сравнение графически крайне неудобно, даже если представить всю обсчитанную спектральную картину сигнала в трехмерном виде. Очевидно, что идеального метода сравнения сигналов не существует. Поэтому в каждом конкретном случае пользуются наиболее подходящим по точности и удобству методом сравнения, руководствуясь только соображениями целесообразности.
|