Каков эффект параметра качества при сжатии SoX mp3?

Я конвертирую аудиофайлы нескольких разных форматов в mp3 с помощью SoX. Согласно документам, вы можете использовать аргумент -C для указания параметры сжатия, такие как битрейт и качество, качество после запятой, например:

sox input.wav -C 128.01 output.mp3 (самое высокое качество, медленнее)

sox input.wav -C 128.99 output.mp3 (самое низкое качество, быстрее)

Я ожидал, что второй будет звучать ужасно, однако качество звука между двумя звуками точно такое же. Если это так, я не понимаю, почему кто-то работает намного медленнее или что я получу, установив сжатие на более высокое «качество».

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

P.S. Я также проверил размер каждого выходного файла, и оба они имеют одинаковый размер. Но при хешировании каждый файл получается с другим хешем.


person Michael Brook    schedule 06.08.2013    source источник


Ответы (2)


Параметры передаются в LAME. Согласно документации LAME (раздел "выбор качества алгоритма"/-q) , значение качества влияет на формирование шума и используемую психоакустическую модель. Они рекомендуют качество 2 (то есть -C 128.2 в SoX), говоря, что 0 и 1 намного медленнее, но едва ли лучше.

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

person chirlu    schedule 08.08.2013
comment
Я перешел по вашей ссылке к документам LAME и провел некоторое исследование кодирования Хаффмана и модели психоакустики, но у меня сложилось впечатление, что они все равно должны обеспечивать дополнительное сжатие и удалять незаметные звуки из звука, что приводит к меньшему размеру файла. Используя лучший и худший выбор качества, я не вижу разницы в размере файла (перекодирование wav-файла размером 27,1 МБ в mp3 со скоростью 128 кбит/с как с -q 0, так и с -q 9 дает ровно 2 462 615 байт каждый). Можете ли вы объяснить, как это было бы возможно? Имеет ли значение, если я использую постоянный битрейт? Кстати, спасибо за ответ. - person Michael Brook; 10.08.2013
comment
@Michael Brook: когда кодеру говорят производить 128 КБ в секунду, он будет выводить 128 КБ в секунду, поэтому размер двух файлов одинаковой длины (в секундах) будет одинаковым. Качество все же может быть другим, потому что с более простой моделью кодер может ошибиться, отбрасывая другие аудиофункции, которые, в конце концов, не являются незаметными. - person chirlu; 10.08.2013
comment
Я понимаю. Таким образом, в основном настройка качества никак не влияет на размер файла, просто установка более высокого качества позволяет кодировщику сделать более обоснованное предположение о том, какие части звука он должен выделять, а какие части незаметны. Правильный? - person Michael Brook; 10.08.2013
comment
@Майкл Брук: Да. Конечно, когда вы выбираете режим с переменным битрейтом (VBR), все по-другому, тогда размер файла может отличаться. - person chirlu; 10.08.2013

Для меня быстрее с простым

time sox input.mp3 -C 128 output.mp3

реальный 0m7.417s пользователь 0m7.334s система 0m0.057s

time sox input.mp3 -C 128.02 output.mp3

реальный 0m39.805s пользователь 0m39.430s система 0m0.205s

person Dima Melnik    schedule 09.09.2015