Еще не попробовали кодер CDex?
Настоятельно рекомендую. Последняя версия 1.20 beta4. Замечателен тем, что в
него входит кодек LAME (психоаккустическая модель GPSYCHO
для ISO mp3 кодеков. by Mark Taylor, 1999) с переменным значением скорости потока
бит/сек (VBR - variable bit rate).
Позволю себе напомнить, что существуют два основных режима стерео для кодирования
звука: stereo и jstereo. Stereo - это кодирование правого
и левого каналов независимо друг от друга. Jstereo может включать в себя
как нормальное стерео кодирование, так и mid/side stereo (ms_stereo).
Т.е. при кодировании ms_stereo вычисляется среднее между двумя каналами (это
mid) и разница от одного из каналов (side). В этом режиме кодирования, например,
в FhG кодере всегда применяется до 128kbps (меня поправили - даже до 192kbps!)
включительно, а это сами понимаете, не фонтан по той прочтой причине, что первое:
у вас каналы могут быть в разной фазе, даже в противофазе - что в результате
услышите? Правильно, ничего. Но это редко бывает, и даже не это главная беда.
Самое плохое в том, что если после такого разделения получится, что для кодирования
side канала понадобится много бит, то либо будет уменьшено количество бит у
основного канала (что вряд ли), либо сильно подрезан как раз side канал. Чувствуете?
Конечно, когда все хорошо, т.е. на mid канал уходит столько бит, сколько запланировано,
а side каналу требуется немного, то этот трюк ms_stereo проходит. Но вот если
правый и левый каналы сильно различаются, то после раскодирования (прослушивания)
возможны шумы из-за нехватки скорости потока :(
Что делать? Правильно. Выбирать для каждого фрейма конкретно, будет он кодироваться
по разным каналам отдельно либо можно смело для усиления сжатия использовать
ms_stereo без боязни потерять информацию (соотносясь с данной скоростью потока,
конечно). Вот LAME кодек как раз так и делает. Он-то и применяется среди остальных
в рипере-кодере CDex. Причем, там есть много гибких настроек, которыми можно
выставить наконец, хочу я точно на 128kbps ms_stereo или не хочу. Между прочим,
принцип выбора критерия для mid/side stereo в LAME кодеке основывается на выкладках
книги Джонстона и Ферейры "Sum-Difference Stereo Transform Coding".
И MPEG AAC стандарт как раз ссылается на эту же книгу.

Stereo - всегда real stereo, J-stereo - выбирает кодек по фреймам,
Forced Stereo - всегда mid/side stereo
Надо сказать, что переменный битрейт давно напрашивался, как способ обойти
неудобства с кодированием пустоты и насыщенного звука в одной композиции. Сами
посудите - если звук недостаточно насыщен - его что, тоже кодировать с тем же
bps? Зачем, если можно увеличить степень "сжатия", а этот выйгрыш
потратить на критичный участок, временно повысив bps до приемлемого значения.
Как эта штука будет работать на реальной скорости потока - не представляю, но
для нас это не важно - все равно файл обычно сначала скачиваешь, а потом слушаешь.
Попробуйте - довольно весело наблюдать, как Winamp например, проигрывает mp3
с VBR - обратите внимание на окошечко с цифрами, показывающие текущий битрейт
у композиции - как он прыгает в такт насыщенности и сложности звука(!) Т.е.,
если я при кодировании выставил 96kbps, то я указал _нижний_ предел, ниже которого
кодек кодировать не должен. А выше - пожалуйста. Хоть 160kbps, хоть 256kbps.
В чем прикол - ?. Хм, выгода очевидна. При кодировании 96kbps обычным кодером
получаем плохое качество. А вот с VBR - нет. Иногда даже лучшее, чем обычным
при 128kbps. Потому что критичные участки, падение качества которых мы слышим
сразу, кодек с VBR уже обрабатывает с повышенным bps. Кстати, в инструкции
по пользованию кодеком указан оптимальный коэффициент VBR - 4. Критерий выбирается
от 0 до 9 - ноль - лучшее, 9 - худшее. Т.е. насколько кодек будет часто отклоняться
от выставленного bps.
Размеры файлов с VBR несколько больше, чем обычно - оно и понятно, за все надо
платить. Но самое главное, при 96kbps размеры получаются все равно чувствительно
меньше, чем при 128kbps обычных. А это значит, что LAME кодек составит сильную
конкуренцию VQF, AAC и Liquid с их стандартными 96kbps. Mp3 с VBR играется отлично
Winamp и K-Jofol (Windows платформа) и mpg123 (Unix платформа). А вот NAD не
поддерживает формат mp3 с VBR.
Итак, приверженцы формата Mp3 могут порадоваться - найден неплохой компромисс
между размером и качеством. Я попробовал сравнивать 96kbps VBR4 с FhG 128kbps
- различий не заметил. Более того, при 128kbps c VBR качество точно лучше, чем
у например, ISO psy-моделей при том же битрейте.
В разделе OneMp3 я выкладываю композицию, сжатую LAME кодеком, 96kbps со значением
VBR=4. Но размер файла, я еще раз повторюсь - зависит от содержания. Вообще-то,
это логично.
4 июля: Добавлю еще вот что: после преобразования
обратно в WAV файла, закодированного с VBR4 96kbps (LAME, флажок "On the
fly mp3 encoding" снят!) я не наблюдал никаких ненормальностей в АЧХ (среза
на 16kHz нет).
Скачать CDex beta4 можно и у меня
(850kb).
информацию прислал Zanac
|