Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ЦО АВС.doc
Скачиваний:
69
Добавлен:
07.09.2019
Размер:
5.86 Mб
Скачать

3.10.7 Методы оценки сложности сигнала

Таким образом, основное отличие CBR, ABR и VBR состоит в использовании разных методов подсчёта необходимого для кодирования каждого фрейма количества бит.

Методы оценки сложности сигнала: метод 1 (VBR)

Первый метод основан на вычислении "психоакустической маскировки" и "ошибки кодирования". Этот метод используется в VBR и теоретически должен был бы давать максимальное качество если бы психоакустическая модель Lame была идеальна. В основе этого метода лежит очень простая идея: на кодирование выделяется минимальное количество бит, необходимое для выполнения условия: [ошибка_кодирования] < [порога_маскировки] (то есть дефекты кодирования должны маскироваться основным сигналом и не должны быть различимы на слух).

Пояснение по поводу маскировки. Основная масса "аудио компрессоров с потерями" использует для сжатия аудио сигнала особенности человеческого слуха (в противовес существуют аудиокомпрессоры использующие особенности звукоизвлечения), а именно его неидеальность. Можно указать несколько основных "дефектов" слуха используемых в сжатии звука: 1) ограниченный динамический диапазон. Человек не слышит слабых сигналов или, иначе говоря, существует некий порог слышимости. 2) громкие сигналы (особенно шумовые, а не тональные) обладают маскирующим действием, при чем как во временной, так и в частотной области, т.е. любой мощный, особенно шумовой сигнал определённой частоты маскирует достаточно слабый сигнал, особенно если он лежит в близком частотном диапазоне и такой замаскированный сигнал можно не кодировать, ведь человек его не слышит. Порог маскировки может быть увеличен на несколько децибелл путем уменьшения качества кодирования (объяснение этому: чем хуже качество кодирования, тем больше артефактов и помех в звучании, и тем более мощный сигнал необходим, чтобы замаскировать эти помехи).

Плюс такого метода: теоретически максимальное качество. Минусы: невысокая скорость а также то, что из-за не идеальности психоакустической модели в Lame, постоянно занижается битрейт, соответственно не рекомендуется использовать без фиксированной нижней границы около 112- 128 кБ/с, а, следовательно, режим VBR вообще не рекомендуется использовать на низких и средних битрейтах. Резервуар в VBR минимизирован, а следовательно не рекомендуется использовать ограничение битрейта сверху (объяснение: так как практически резервуара в VBR нет, если ограничить битрейт сверху, то некоторым фреймам со "сложной" музыкой может оказаться недостаточно бит для кодирования звука, поскольку дополнительные биты взять неоткуда , резервуара нет и битрейт ограничен; такие фреймы будут кодироваться только тем количеством бит, которое имеется в наличии - то есть на максимально допустимом битрейте, что может привести к плохому качеству кодирования).

Методы оценки сложности сигнала: метод 2 (ABR / CBR)

Второй метод основан на вычислении Perceptual Entropy (PE), характеризующей сложность кодируемого сигнала (чем сложнее сигнал, тем PE больше). Этот метод используется при кодировании CBR и ABR. Механизм расчета сложности сигнала с помощью PE полностью отличается от механизма, использованного в VBR. Не вдаваясь глубоко в подробности следует сказать, что если в первом методе расчет сложности сигнала проводился опираясь на свойства маскировки, то в данном методе сложность сигнала оценивается путем попытки его предсказания: чем более сложный сигнал (огибающая ведет себя хаотично), тем труднее он предсказуем и, соответственно, тем больше бит требуется для кодирования сигнала. Во время кодирования кодер пытается предсказать сигнал, затем сравнивает предсказанный сигнал с оригиналом, чем менее предсказанный сигнал совпадает с оригиналом, тем больше бит уходит на кодирование. Очень важно отметить, что используемые методы вычисления сложности сигнала принципиально влияют на отличия использующих их механизмов. Так, принципиальная разница между ABR/CBR (использующих описываемый метод) и VBR (который использует метод 1, описанный выше) заключаются еще и в том, что выбор битрейта в ABR/CBR лежит не на кодере, а на пользователе, при этом Lame лишь добавляет/отнимает небольшое количество бит во время кодирования сложных/простых мест соответственно (для чего и рассчитывается PE). Другими словами, в зависимости от рассчитанного PE, к выбранному пользователем битрейту добавляется (или отнимается от него) нужное число бит, что реализуется с помощью механизма работы с резервуаром (виртуальным или настоящим). Таким образом, при использовании второго метода именно пользователь выбирает битрейт (когда в VBR кодер сам решает величину битрейта), PE же лишь корректирует его с помощью резервуара в зависимости от сложности музыки. Происходит это примерно следующим образом.

CBR. Для каждого фрейма выделяется "основное", постоянное количество бит, 90% от указанного битрейта и "дополнительное", переменное. Простые пассажи кодируются с помощью этих 90-а процентов, а оставшиеся 10% процентов накапливаются в резервуаре битов (как было описано вначале), вплоть до его заполнения, после чего на кодирование простых пассажей уходит весь битрейт (так как экономить биты некуда). Сложные пассажи кодируются используя полный битрейт плюс из резервуара изымаются дополнительные биты, если только в нём ещё есть биты. Плюсы: совместимость, минусы: из-за малого размера резервуара очень часто нахватает дополнительных бит для кодирования сложных мест.

ABR. При кодировании ABR использование резервуара минимизировано, он просто-напросто не нужен, ведь в ABR мы можем использовать фреймы с разным битрейтом и, соответственно, не накапливать биты в резервуаре (механизм работы ABR пояснен на примере выше). После вычисления PE и необходимого "дополнительного количества" бит, Lame просто выбирает минимальный битрейт в который укладывается полное необходимое количество бит (битрейт выбирается из таблицы). Остаток бит не выбрасывается, а накапливается в резервуаре.

Замечание: неправильно было бы думать, что в CBR и ABR совсем не используется психоакустика - конечно же это не так. Такая вещь как перераспределение битов отведённых на кодирование фрейма между всеми частотными полосами лежит именно на психоакустике.