Показать сообщение отдельно
Старый 25.07.2007, 18:10   #4
Strannik
Местный
 
Аватар для Strannik
 
Регистрация: 03.10.2006
Адрес: Москва
Сообщений: 576
Вы сказали Спасибо: 0
Поблагодарили 4 раз(а) в 4 сообщениях
Отправить сообщение для Strannik с помощью ICQ
По умолчанию Описание процесса кодирования

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

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

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

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

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

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

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

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

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

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

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

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

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

Режим выставлен по умолчанию продукцией FhG IIS, а также кодером Lame, для битрейтов от 112kbs до 192kbs.

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

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

Этот режим по умолчанию используется продукцией FhG IIS для высоких частот на битрейтах от 96kbs и ниже (другими качественными кодерами этот режим практически не используется).

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