logo search
Шпоры по ТМ

Описание процесса кодирования.

Подготовка к кодированию. Фреймовая структура

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

Начало кодирования.

Кодирование начинается с того, что исходный сигнал с помощью фильтров разделяется на несколько, представляющих отдельные частотные диапазоны, сумма которых эквивалентна исходному сигналу.

Работа психоакустической модели.

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

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

Завершение кодирования.

После завершения работы психоакустической модели формируется итоговый поток, который дополнительно кодируется по Хаффману, на этом кодирование завершается.

Кодирование стереосигнала. В рамках MP3 кодирование стереосигнала допустимо четырьмя различными методами:

Dual Channel - Каждый канал получает ровно половину потока и кодируется отдельно как моно сигнал. Рекомендуется главным образом в случаях, когда разные каналы содержат принципиально разный сигнал -- скажем, текст на разных языках.

Выставляется в некоторых кодерах по требованию.

Stereo - Каждый канал кодируется отдельно, но кодер может принять решение отдать одному каналу больше места, чем другому. Это может быть полезно в том случае, когда после отброса части сигнала, лежащей ниже порога слышимости или полностью маскируемой, оказалось, что код не полностью заполняет выделенный для данного канала объем, и кодер имеет возможность использовать это место для кодирования другого канала. В документации к mp3enc замечено, что этим, например, избегается кодирование "тишины" в одном канале, когда в другом есть сигнал.

Данный режим выставлен по умолчанию в большинстве ISO-based кодеров, а также используется продукцией FhG IIS на битрейтах выше 192kbs. Применим и на более низких битрейтах порядка 128kbs... 160kbs.

Joint Stereo (MS Stereo) - Стереосигнал раскладывается на средний между каналами и разностный. При этом второй кодируется с меньшим битрейтом. Это позволяет несколько увеличить качество кодирования в обычной ситуации, когда каналы по фазе совпадают. Но приводит и к резкому его ухудшению, если кодируются сигналы, по фазе не совпадающие. В частности, фазовый сдвиг практически всегда присутствует в записях, оцифрованных с аудиокассет, но встречается и на CD, особенно если CD сам был записан в свое время с аудиоленты.

Joint Stereo (MS/IS Stereo) - Вводит еще один метод упрощения стереосигнала, повышающий качество кодирования на особо низких битрейтах. Состоит в том, что для некоторых частотных диапазонов оставляется уже даже не разностный сигнал, а только отношение мощностей сигнала в разных каналах. Понятно, для кодирования этой информации употребляется еще меньший битрейт.

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