morfizm (morfizm) wrote,
morfizm
morfizm

Category:

Аудиоформаты

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

Мотивацией послужило недавнее наблюдение про видео. Совершенно очевидно, что один и тот же фильм в разы приятнее смотреть в сжатии 4GB/час, чем в 1GB/час или 500MB/час. В 90х двухчасовой фильм на гигабайт считалось очень круто, и да и выглядело достойно - получше, чем в телевизоре. С сегодняшними мониторами и телевизорами даже при том же количестве пикселей и количестве кадров в секунду, легко заметно, что менее агрессивное сжатие даёт куда больше деталей, интереснее, и глазу приятнее. Не говоря уже о том, что для просмотра фильмов стали доступны видеорежимы с куда большим количеством пикселей, благодаря сочетанию из мощности видеокарты, процессор-память-диск и размеры мониторов. Ещё - стоит отметить, что старые фильмы (из тех же 90-х) были записаны на дорогом профессиональном оборудовании, и в них сохранилось куда больше информации, чем мы получали для просмотра в большом сжатии (скажем, 2 часа на 1 гб). Тот же старый фильм сегодня можно посмотреть в более хорошем качестве.

Вопрос - так ли это с музыкой, если "исходником" считать 16-bit sampling at 44.1 KHz (стандартное "CD" quality)? Аудио в этом битрейте на диске занимает 1.4 MBit/sec. Совершенно очевидно, что 320 KBit/sec mp3 (22.6% от размера несжатого wav), сегодня неразличим даже с отличным оборудованием, и даже если различим, то люди имеют тенденцию предпочитать mp3. Можно объяснить, что "дополнительное сжатие ничего не даёт" тем, что дополнительные битики пойдут на более точное сжатие частот из неслышимого диапазона, но не пойдут на улучшения качества слышимых частот. Так ли это? Так ли это если у вас хорошие (аудиофильные) наушники? Так ли это, если мы рассматриваем архивный сценарий - типа, сохранить коллекцию на будущее, чтобы воспроизвести на более хорошем оборудовании через 10 лет?

Я не знаю хорошего ответа на этот вопрос. 10 лет назад я бы сказал уверенное "нет", и что mp3 более, чем достаточен для любого использования этой музыки в будущем. Одновременно с этим, 10 лет назад я не был таким аудиофилом, и считал, что кодирование выше 160 KBit/sec это ненужный выпендрёж. Сейчас я так не думаю. Я слышу разницу между 320 и 160. Особенно когда это не joint stereo, или joint stereo, но с большой разницей в левом и правом каналах. (Joint stereo - это способ кодирования, в котором хранится отдельно среднее между левым и правым каналом, и отдельно дельта. Это позволяет уменьшить размер файла при том же уровне качества, или повысить качество при том же bitrate, если левый и правый канал имеют похожий сигнал, в этом случае дельта будет содержать мало информации и хорошо сжиматься.)

mp3 формат имеет ограничение в 320 KBit/sec - это лучшее качество. Сегодня я бы сказал "mp3 более, чем достаточно", но у меня закрадываются сомнения, если я пытаюсь вспомнить, что я говорил раньше про более низкий bitrate :)

С другой стороны, я уже сегодня вижу, что CD quality говно по сравнению, например, с live performance. Что-то должно прийти на смену CD и фундаментально записывать больше бит оригинала (может, 32-bit sampling at 150 Khz?). Может, пока всё ещё записывают и продают CD, для CD mp3 всегда будет good enough? Sampling at 44.1 Khz фундаментально позволяет сохранить частоты до половины от sampling rate, т.е. 22.05 KHz. Считается, что диапазон слуха у человека от 20 до 20 KHz, таким образом, это как бы должно покрывать. Оно не покрывает. Почему?

Короче, перейдём к практическим воросам.
1. Существует ли практическая замена CD с более высоким качеством, которую уже начали использовать?
2. Если мы отталкиваемся от CD quality, стоит ли его хранить на диске в WAV или жать lossless codec'ом (который в лучшем случае сократит вдвое, а не в 4.5 раза как mp3 @320 kbit/sec), рассчитывая, что в будущем апаратура позволит возрадоваться этим дальновидым решением, а те, кто хранил mp3-шки будут стыдливо кусать локти?

Я исхожу из ответов "нет" на оба вопроса, но мне очень интересно узнать об этом ваше мнение.

Вопрос "сколько места" оно занимает на диске достаточно важен, и я не хочу хранить в lossless-формате "just because I can". Кроме того, есть несомненное удобство в хранении музыки в одном формате, для портативности. Нет большого удовольствия разбираться, какие нужны кодеки для какого-нибудь странного формата "ape" или "wv". (Кстати, кто какие тулы использует для конвертации из одного формата в другой, особенно если там нужна нарезка с помощью cue-файлов? Чем вы конвертируете из flac, чтобы сохранились тэги? (Использовать wav в качестве промежуточного файла, не сохранит тэги)).

На сегодняшний день для музыки в архивном качестве я использую lame с такими настройками:

lame.exe -m j --vbr-new -V0 -q0 -b128 --lowpass 20.5 source.wav target.mp3

-m j: joint stereo - получаем меньшего размера файлы с тем же качеством.

-V0: режим VBR (variable bit rate), 0 означает самое лучшее качество. VBR это такой формат, в котором уровень сжатия (число бит в секунду) варьируется в течение трека. Это позволяет "сложные места" (высокие частоты, или много шума) кодировать в 320, а "простые места" (паузы, простые мелодии на низких частотах) кодировать в 128. Кроме VBR ещё бывает CBR (constant bit rate, всё в 320) и ABR (average bit rate, то же, что и VBR, но в качестве "цели" выставляется не какой-то абстрактный "уровень качества", а размер файла, конкретное число bps). На многих форумах в интернете обсуждается, что VBR с максимальным качеством - это самый лучший вариант, потому что при установке CBR ниже 320, мы можем получить различимые на слух потери в сложных местах. Но при этом что лучше: CBR @320 или VBR at V0 - я точно не знаю. Подозреваю, что разница настолько незначительна, что V0 должен победить просто потому что он создаёт, в среднем, в 1.5 раза меньшего размера файлы.

--vbr-new - использовать новый алгоритм вместо старого. Сейчас вроде новый это default, наверное, можно уже убрать эту опцию.

--lowpass 20.5 - фильтр высоких частот. Теоретически максимальная частота, которую можно сохранить при sampling rate 44KHz это 22KHz. Потеря частот в интервале между 20.5KHz и 22KHz не должно никак отразиться на восприятии музыки, но уменьшит размер файлов. Стандартный lowpass filter выставлен на более низкое значение и режет больше, кажется, 19.5 или 19.8 для VBR V0. Отличие в размере файла совершенно незначительное, но я предпочту, при прочих равных, резать меньше.

-b128: в сочетании с -V задаёт минимальный bitrate 128Kbps. Фреймы будут кодироваться от 128Kbps до 320Kbps. Я не знаю, зачем я это делаю, пусть это будет своего рода "гарантия" от багов в VBR алгоритме :) Кроме того, есть плееры, которые не поддерживают режимы с низким bitrate, если lame вдруг захочет их выбрать - также решаем проблему portability.

-q0: максимальное качество в noise shaping & psycho acoustic algorithms. Ставить что-то хуже, чем максимальное качество, имеет смысл, если важна скорость кодирования (мне не важна). Меня удивляет, почему значение по умолчанию это 5, а не 0.

* * *

Кстати, "почему lame"? Считается, что это хороший кодек, но не самый лучший, например, он уступает Fraunhofer'скому (не знаю, используется ли он сегодня, но много лет назад это была платная альтернатива для lame, которая была лучше). У меня нет достаточной уверенности, что коммерческий кодек будет *настолько* лучше жать, чтобы это было заметно, если мы сравниваем параметры максимального качества, поэтому предпочитаю lame за удобство - это бесплатная утилита, которую можно вызывать из командной строки. Если бы я жал в низком bitrate, или делал бы streaming, то, мне кажется, выбор кодека был бы куда важнее. Но я могу ошибаться.

Ссылки:
Tags: music, polls questions and social games, software
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 5 comments