Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sbornik_statey_po_teorii_zvuka.pdf
Скачиваний:
200
Добавлен:
22.05.2015
Размер:
4.96 Mб
Скачать

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

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

Заключение

Итак, кратко. CBR/ABR и VBR в Lame отличаются разными методами подсчёта необходимого для кодирования количества бит и, как следствие, разной "философией" использования резервуара. В CBR и ABR основное количество бит выделяемых на кодирование фрейма определяется пользователем при запуске программы: ключами -b или --abr для CBR или ABR соответственно. Количество дополнительных бит необходимых для кодирования сложных мест рассчитывается по одинаковой формуле на основе расчета PE. Разница между CBR и ABR лишь в том, что в режиме CBR битрейт постоянен и возможности кодера по использованию дополнительных битов из резервуара сильно ограничены размером резервуара, в режиме же ABR у кодера есть возможность изменять битрейт, как бы используя "виртуальный резервуар" неограниченных размеров, а настоящий резервуар используется лишь для хранения невостребованных бит.

В VBR используется абсолютно другой метод. Пользователь задаёт качество, а LAME самостоятельно, на основании психоакустической модели (порою не совершенной), рассчитывает количество бит, необходимых для кодирования с заданным качеством каждого отдельного фрейма. Работа с резервуаром в ABR и VBR одинакова.

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

Какие методы кодирования стерео информации используются в алгоритмах MPEG (и других)?

Существуют несколько методов кодирования стерео аудио информации в стандарте ISO11172-3 (MPEG-1 Layer 1,2,3).

Dual Channel. Этот режим предполагает кодирование стерео каналов, как абсолютно независимых. Иными словами, в этом режиме кодирование аудио информации происходит отдельно в каждом канале без использования корреляций между ними. Как и следует из названия, этот режим главным образом предназначен для кодирования двух параллельных но различных каналов (например, речь на английском и немецком языках), а не стерео (т.е. не два канала, несущих информацию о стерео картине). Этот режим не рекомендуется использовать для кодирования стерео сигнала, так как существуют проигрыватели (например, madplay), проигрывающие по умолчанию только один канал если поток помечен как Dual Channel.

Stereo. Этот режим отличается от предыдущего только тем, что в режиме Dual Stereo во время кодирования для каждого канала используется свой резервуар (об этом в обсуждении вопроса об отличиях ABR/VBR/CBR), а в этом режиме оба канала кодируются с использованием общего резервуара. Иных различий между режимами нет.

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

При кодировании в MPEG-1 имеются две разновидности этого метода.

MS Stereo. В данном режиме кодируются не левый и правый канал, а их суммарная составляющая и разностная. При этом перед кодированием сигнал в каждом отдельном фрейме разбивается на частотные полосы (что, собственно, происходит всегда, то есть не только в Joint Stereo). Затем производится вычисление суммарной и разностной составляющей каналов, что математически выглядит так: Mi=(Li+Ri)/sqrt(2), Si=(Li-Ri)/sqrt(2), где i - номер частотной полосы на которые разбивается сигнал перед кодированием, M и S - Mid (сумма) и Side (разность) каналы соответственно, L и R - левый и правый каналы. При таком кодировании о какой-то деградации качества говорить не приходится, поскольку ничего кроме простейших арифметических операций здесь нет. Тяжело говорить про все MP3кодеры, но именно так делается в Lame Encoder в режиме VBR. В кодерах от Fraunhofer и в Lame CBR (возможно и в других кодерах, так как этот метод описан

встандарте) в Joint Stereo применяется дополнительный механизм, называемый "Sparsing of side channel". Суть этого метода заключается в более жёстком кодировании side-канала, на который, в этом случае, как правило, выделяется меньшее количество бит, что приводит к деградации звучания

вside канале, но улучшению качества кодирования в mid.

Intensity Stereo. В этом режиме в верхнем частотном диапазоне так же происходит кодирование общей составляющей обоих каналов, как и в случае MS Stereo, но вместо кодирования разностной составляющей в верхнем диапазоне частот происходит просто регистрация и запись мощностей сигналов в левом и правом каналах в каждой частотной полосе начиная с некоторой определенной. Иными словами весь сигнал разбивается на полосы, фактическому кодированию подвергается только нижний диапазон частот side-канала, а в верхнем частотном диапазоне начиная с определенной полосы происходит не кодирование сигнала в каждой полосе, а лишь регистрация мощностей сигнала в каждой полосе. Кодирование стерео сигнала в нижнем частотном диапазоне осуществляется в режиме MS Stereo или просто Stereo.

Таким образом, в режиме Intensity Stereo фактически происходит кодирование лишь общей составляющей каналов, а стерео на высоких частотах "воссоздается" (если такой термин здесь уместен, а лучше "синтезируется") в соответствующем канале путем умножения общего сигнала на известные (сохраненные при кодировании) значения мощностей частотных участков в соответствующем канале.

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

Какие параметры предпочтительны при кодировании MP3?

Этот вопрос не имеет однозначного ответа. Каждый человек подбирает параметры кодирования в зависимости от конкретной задачи. Если речь идет о кодировании голоса или другой звуковой информации при малых требованиях к качеству, то кодирование можно производить на минимальных битрейтах, вплоть до 8 Кбит/с (при данном битрейте полоса частот ограничивается 2,5 КГц, что сравнимо с телефонной линией).

Если же стоит вопрос о кодировании аудио данных с CD (44.1 KГц / 16 бит / стерео), то на этот счет существует масса мнений. Большинство пользователей почему-то убеждено, что битрейта 128 Кбит/c достаточно для кодирования аудио CD-качеcтва без потерь. На самом деле это не так. В этом легко убедиться, если прослушать (даже на аппаратуре среднего качества) сначала оригинал, а затем полученный MP3. MP3 будет отличаться как минимум "сухостью" звучания, не говоря уже о появлении некоторых посторонних "позвякиваний", скрежета и других помех.. Это обусловлено тем, что используемая при кодировании психоакустическая модель оставляет только "жизненно необходимые" частоты, отфильтровывая замаскированные и слабослышимые. Причем это проявляется тем больше, чем с меньшим битрейтом производится кодирование. Основываясь на опыте можно предположить, что битрейт, достаточный для "точной" передачи CD-звучания, лежит в пределах от 192 до 320 Кбит/с (в зависимости от кодируемого аудио сигнала и, конечно, самого слушателя). Безусловно, при таком кодировании объем, занимаемый полученным MP3-потоком, увеличивается пропорционально поднятию битрейта.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]