?

Log in

No account? Create an account
   Journal    Friends    Archive    Profile    Memories
 

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


Mar. 3rd, 2013 12:32 pm Аудиоформаты

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

Мотивацией послужило недавнее наблюдение про видео. Совершенно очевидно, что один и тот же фильм в разы приятнее смотреть в сжатии 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, то, мне кажется, выбор кодека был бы куда важнее. Но я могу ошибаться.

Ссылки:

5 comments - Leave a commentPrevious Entry Share Next Entry

Comments:

From:ermouth
Date:March 3rd, 2013 09:02 pm (UTC)
(Link)
Ты можешь ошибаться запросто, потому что алгоритмы, вычленяющие подлежащие удалению или более грубой дискретизации фрагменты разложения сигнала "под маскировкой" (замаскированные другими звуками), разнЯтся от кодека к кодеку.

Соответсвенно, я своими ушами слышал булькание на вполне определённой музыке с какого-то кодека на 320 и не слышал этого булькания с другого кодека на 128 – а нарезано было с одного и того-же трэка в wav.

Какие это были кодеки я не вспомню – 12 лет назад было – но не думаю, что за эти 12 лет появилась универсальная психоакустическая модель.

И я кста гораздо больше встречаю сейчас аудио с дискретизацией 48кГц, чем 44,1кГц.
From:morfizm
Date:March 3rd, 2013 09:15 pm (UTC)
(Link)
Т.е. ты бы хранил всё lossless, дабы понизить риск от кривого алгоритма фильтрации, кривость которого может обнаружиться спустя годы, я правильно понимаю посыл? (Смежный вопрос: если тебе попался CD, ты его кодируешь в lossless format, или в mp3/аналогичное сжатие?)


И я кста гораздо больше встречаю сейчас аудио с дискретизацией 48кГц, чем 44,1кГц.

А на чём оно физически записывается, если в магазине такое покупать? (CD вроде все 44.1). Или оно с какой-то более дорогой аппаратуры сразу записывается в 48, и потом уже распространяется в интернете?

Где ты, вообще, встречаешь аудио файлы these days? (как они к тебе приходят?)
From:ermouth
Date:March 3rd, 2013 10:03 pm (UTC)
(Link)
нет, посыл проще – "совершенства нет, достаточно найти наиболее приемлемый вариант".

я прекратил риповать диски году в 2002-2003. у меня была программа какая-то – напрягся и не смог вспомнить название – с уродливым интерфейсом, отобранная из многих именно по качеству сжатия на 128-160к joint stereo. В плеере у меня было всего 64Мб тогда и классику я вообще не брезговал в 96к паковать. wav никогда не хранил.

Студийные записи обычно имеют частоту дискретизации, кратную 48кГц (например, 4х) и разрядность выше, чем 16 бит. Киношки я вообще не помню, чтобы 44.1 встречал звук.

На сегодня я музыку слушаю либо с инет-радио, 160-192К обычно ок, либо с айфона из вконтакта, оно тем более кеширует их. То, что попадает в плейлист вКонтакте, я выбираю из поиска на слух. вКонтактике обычно композиция есть в нескольких вариантах – сохраняю в плейлист то, что больше на слух нравится именно в тех наушниках, в которых слушать буду.
From:dennyrolling
Date:March 4th, 2013 08:39 am (UTC)
(Link)
я зарипал все свои сиди в лозлесс, чисто на всякий случай. сиди потом выбросил
From:metaller
Date:March 4th, 2013 05:18 pm (UTC)
(Link)
1) На сегодня очень-очень мало музыки доступно в качестве лучше CD.
2) 320 kbps mp3 я не могу отличить от CD, прослушивая музыку на Sennheiser HD 600