что такое битрейт vbr
Выбор битрейта для записи мультимедиа
Битрейт (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 для 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 «не все йогурты одинаково полезны» 🙂
Внимание
Резюме
Что такое битрейт? Какая разница между CBR и VBR?
Битрейт — основополагающий параметр сжатия видео. Он выражает общую степень сжатия потока и тем самым определяет размер требуемого канала передачи данных. Чем выше битрейт, тем больше деталей видеоизображения удается сохранить, и тем реалистичнее выглядит видео. При выборе битрейта всегда приходится находить баланс между качеством кодирования и размером канала.
Существует два основных подхода к распределению битов в потоке: постоянный (constant bitrate — CBR) и переменный (variable bitrate — VBR) битрейты. Под постоянным и переменным битрейтом инженеры могут подразумевать две разные вещи. При вещании имеется в виду постоянное или переменное количество бит, которое передается за 1 секунду. При кодировании — постоянное и переменное наполнение и опустошение буфера с одной или разной скоростью.
CBR показывает стабильный уровень битрейта независимо от сцены, не создает резких перепадов нагрузок. CBR не оптимален со стороны качества, потому что поток не изменяется в зависимости от динамики и сложности видео.
Позволяет в сложных местах повышать битрейт и снижать степень сжатия, чтобы получать более качественное изображение. Переменный битрейт регулируется в зависимости от скорости изменения картинки. Например, битрейт статичного видеофрагмента (заката) будет значительно ниже, чем битрейт движения (автомобильной погони).
Больше полезной информации о видео технологиях вы можете найти здесь.
Интересно, как раз столкнулся с этим, спасибо)
Другая реальность, наступившая в марте 2020 года, научила нас жить и работать по-новому. Сотрудники контакт-центров одними из первых почувствовали изменения. Именно им пришлось объяснять авиапассажирам, почему отменилась поездка, на их плечи свалилась львиная доля непривычных запросов, в том числе пришлось отрабатывать обращения по резко…
Мы изучили, с какими трудностями сталкиваются компании, которые хотят развивать собственные контакт-центры, — о трех самых характерных явлениях читайте ниже. А тех, кому эта тема близка и интересна, ждем 16 ноября на бесплатном вебинаре, где вы узнаете, как запустить полноценный контакт-центр за одну рабочую неделю.
Что такое битрейт? Какая разница между CBR и VBR?
Битрейт — основополагающий параметр сжатия видео. Он выражает общую степень сжатия потока и тем самым определяет размер требуемого канала передачи данных. Чем выше битрейт, тем больше деталей видеоизображения удается сохранить, и тем реалистичнее выглядит видео. При выборе битрейта всегда приходится находить баланс между качеством кодирования и размером канала.
Существует два основных подхода к распределению битов в потоке: постоянный (constant bitrate — CBR) и переменный (variable bitrate — VBR) битрейты. Под постоянным и переменным битрейтом инженеры могут подразумевать две разные вещи. При вещании имеется в виду постоянное или переменное количество бит, которое передается за 1 секунду. При кодировании — постоянное и переменное наполнение и опустошение буфера с одной или разной скоростью.
CBR показывает стабильный уровень битрейта независимо от сцены, не создает резких перепадов нагрузок. CBR не оптимален со стороны качества, потому что поток не изменяется в зависимости от динамики и сложности видео.
Позволяет в сложных местах повышать битрейт и снижать степень сжатия, чтобы получать более качественное изображение. Переменный битрейт регулируется в зависимости от скорости изменения картинки. Например, битрейт статичного видеофрагмента (заката) будет значительно ниже, чем битрейт движения (автомобильной погони).
Больше полезных статей о видео технологиях вы можете найти на нашем сайте.
«Заметки на полях» (FAQ)
Часто задаваемые вопросы (и ответы) на околозвуковые темы технического характера
Кратко об истории и характеристиках стандартов MPEG.
1) Рассмотрим комплект MPEG-1. Этот комплект, в соответствии со стандартами ISO, включает в себя три алгоритма различного уровня сложности: Layer (уровень) I, Layer II и Layer III. Общая структура процесса кодирования одинакова для всех уровней. Для каждого уровня определен свой формат записи бит-потока и свой алгоритм декодирования. Алгоритмы MPEG основаны в целом на изученных свойствах восприятия звуковых сигналов слуховым аппаратом человека (то есть кодирование производится с использованием так называемой «психоакустической модели»).
Кратко об алгоритме кодирования. Входной цифровой сигнал сначала раскладывается на частотные составляющие спектра. Затем этот спектр очищается от заведомо неслышных составляющих – низкочастотных шумов и наивысших гармоник, то есть фактически фильтруется. На следующем этапе производится значительно более сложный психоакустический анализ слышимого спектра частот. Это делается в том числе с целью выявления и удаления «замаскированных» частот (частот, которые не воспринимаются слуховым аппаратом в виду их приглушения другими частотами). После всех этих манипуляций из цифрового аудио сигнала исключается больше половины информации. Затем, в зависимости от уровня сложности используемого алгоритма, может быть также произведен анализ предсказуемости сигнала. Кроме этого, базируясь на том, что человеческое ухо способно различать направление звучания только средних частот, то в случае, когда кодируется стерео сигнал, его можно превратить в совмещенный стерео (joint stereo). Это значит, что фактически происходит отделение верхних и нижних частот и их кодирование в моно варианте (средние частоты остаются в режиме стерео). Далее, в случае появления, например, «тишины» в одном из каналов, «пустующее» место заполняется информацией либо повышающей качество другого канала, либо просто не поместившейся до этого. В довершение ко всему проводится сжатие уже готового бит-потока упрощенным аналогом алгоритма Хаффмана (Huffman), что позволяет также значительно уменьшить занимаемый потоком объем.
Комплект 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) хранятся кроме команд и сами используемые в композиции инструменты, то для того, чтобы перевести поток в трекерный модуль, из него нужно вычленить звучание отдельных инструментов. А эта задача равносильна вычленению, например, голоса из песни (караоке). То есть, это возможно в какой-то мере, но вычленение несомненно будет крайне некачественным, так как спектры инструментов чаще всего наложены друг на друга.
Можно ли выделить из аудио потока звучание конкретного инструмента или голоса?
Что же касается вычленения звучания каких-то инструментов, то этот вопрос аналогичен предыдущему (точнее, третий абзац предыдущего вопроса).
Таких способов много. Попробуем их перечислить.
Какой метод сравнения двух аудио сигналов можно признать наиболее точным?
Сначала договоримся, что речь идет о сравнении двух сложных непериодических сигналов, представленных в цифровом виде. Далее все зависит от стоящей перед экспериментатором задачи. Вероятно, все сводится к двум вариантам: физическое сравнение двух сигналов (то есть сравнение точности совпадения форм сигналов) и субъективное сравнение, когда целью является оценка «похожести» звучания двух сигналов.
Второй вариант, целью которого является субъективное сравнение разницы в звучании двух сигналов, очень часто применим при оценке качества алгоритмов компрессии аудио. Вообще, целью большинства аудио кодеков (за исключением специализированных, например, вокодеров или кодеков для передачи ограниченного спектра частот) является в максимально меньшем объеме данных сохранить аудио информацию как можно более приближенную по качеству к оригинальному звучанию. Другими словами, задача сводится к обеспечению субъективно сходного с оригиналом качества звучания и никак ни объективного физического сходства форм (огибающих) оригинального и декодированного сжатого сигналов. В этом случае, применимость описанных выше методов сравнения может быть очень спорна, так как форма сигналов может совпадать очень слабо, а субъективное качество звучания оригинального и восстановленного сжатого сигналов при этом почти не изменится. Тогда для сравнения сигналов можно воспользоваться несколькими разновидностями спектрального анализа, каждый из которых, тем не менее, имеет массу недостатков.
Первый заключается в графическом сравнении результирующих АЧХ оригинального и восстановленного сжатого сигналов за какой-то промежуток времени. Под понятием «результирующая АЧХ» подразумевается график зафиксированных пиковых значений амплитуд частотных составляющих сигнала за некоторый промежуток времени. Таким образом, взяв два одинаковых промежутка сравниваемых сигналов и построив их результирующие АЧХ, по совпадению (не совпадению) графиков АЧХ можно приблизительно оценить уровень потерянных частотных составляющих в сжатом сигнале, а также увидеть полосы частот, где эти потери наиболее выражены. Однако этот метод является статичным, то есть он абсолютно не учитывает изменение сигналов в динамике, что является очень важным, так как часто встречаются случаи, когда результирующие АЧХ сигналов почти совпадают, однако звучание сравниваемых промежутков сигналов отличается коренным образом даже на слух.
Третий метод представляет собой более конкретизированный предыдущий, он заключается в построении АЧХ для каждого сканируемого окна БПФ. Однако эта задача не лишена тех же проблем, что и предыдущий метод, и, кроме того, производить сравнение графически крайне неудобно, даже если представить всю обсчитанную спектральную картину сигнала в трехмерном виде.
Очевидно, что идеального метода сравнения сигналов не существует. Поэтому в каждом конкретном случае пользуются наиболее подходящим по точности и удобству методом сравнения, руководствуясь только соображениями целесообразности.