2013-08-06 5 views
4

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

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

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

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

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

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

ответ

2

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

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

+0

Я следил за вашими ссылку на документы LAME и некоторые исследования по кодированию Хаффмана и модели психоакустики, но мое впечатление заключается в том, что они все равно должны обеспечивать дополнительное сжатие и вытеснять незаметные звуки из аудио, что приводит к меньшему размеру файла. Используя лучший и худший выбор качества, я не вижу разницы в размере файла (перекодирование wav-файла 27,1 МБ на mp3-архив размером 128 Кбит/с на обоих -q 0 и -q 9 приводит к точному числу 2462 615 байт). Можете ли вы объяснить, как это возможно? Имеет ли значение, если я использую постоянный битрейт? Спасибо за ваш ответ, кстати. –

+0

@Michael Brook: Когда кодеру предлагается произвести 128 кб в секунду, он выдает 128 кб в секунду, поэтому размер двух файлов с одинаковой длиной (в секундах) будет таким же. Качество может по-прежнему отличаться, потому что с более простой моделью кодировщик может ошибаться в отбрасывании _дифференциальных звуковых функций, которые в конце концов не являются незаметными. – chirlu

+0

Я вижу. Таким образом, настройка качества не влияет на размер файла, просто настройка его на более высокое качество позволяет кодировщику получить более образованное предположение о том, какие части аудио они должны подчеркивать и какие части незаметны. Верный? –

0

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

time sox input.mp3 -C 128 output.mp3 

реального 0m7.417s пользователя 0m7.334s SYS 0m0.057s

time sox input.mp3 -C 128.02 output.mp3 

реального 0m39.805s пользователя 0m39.430s SYS 0m0.205s

 Смежные вопросы

  • Нет связанных вопросов^_^