Кодеки сжатия аудио без потерь (lossless)

Информации о том, что такое кодек и как он влияет на качество звучания в интернете очень много. Статья мало чем будет отличаться от сотни других таких же, но было бы неприлично отправлять читателя искать информацию в интернет самостоятельно.
Кодеки для работы со звуком делят на две категории.
Lossless – без потерь и Lossy – с потерями.
Lossless кодеки, это способ сжать звуковой файл как если бы его сжимали при помощи ZIP или RAR. Но ZIP и RAR сжатие не оптимизировано для работы со звуком, эти форматы в первую очередь были разработаны для сжатия текстовых файлов, создания многотомных архивов для долгосрочного хранения. Алгоритмы сжатия таких архиваторов как ZIP, RAR, 7z, GZIP, BZIP при архивировании уменьшают звуковой файл не более чем на 10% и к тому же что бы послушать звук ими сжатый, его придется предварительно распаковать.
Lossless кодеки призваны решить проблему эффективного сжатия звуковых данных и проигрывания сжатого файла без предварительной распаковки.
Есть распространенное заблуждение, что lossless кодеки ухудшают звук. Объясню, почему этого не может быть.
Как бы это странно не звучало, но lossless кодек не работает со звуком. Если lossy кодеки для сокращения объема вырезают частоты не слышимые ухом и вообще производят обширные вмешательство в структуру звука, то lossless кодек вообще не делает ничего с исходными данными звука. Сжатию подвергается последовательность байтов цифрового файла. При обратной конвертации из lossless вы получите на выходе абсолютно точную копию звуковых данных. Напомню – цифровой звуковой файл по своей сути является записью точек координат графика по осям x, y и в теории можно эти данные сохранить в текстовый файл. Если такой файл сжать при помощи zip и представить, что его сможет воспроизвести какая-то программа, то в общих чертах это и будет принцип работы lossless кодека. Конечно, все это довольно упрощенная модель по сравнению с теми алгоритмами, которые применяются в более чем одиннадцати видах популярных lossless кодеков.
Есть нюанс, который может ухудшить звучание при кодировании в lossless.
В том случае, когда при сжатии меняется исходная частота дискретизации в меньшую сторону, то качество снижается, поскольку теряется избыточность, которая бывает необходима в первую очередь для обработки файла. Например у вас есть запись в формате wav с частотой дискретизации 96гГц и вы ее решили сжать кодеком flac с понижением частоты дискретизации до 44гГц, что в итоге существенно уменьшит размер файла. В этом случае качество снизится, поскольку, что вы задали понижающие параметры и конвертируя обратно из flac в wav получите файл с ухудшенными параметрами, но это говорит не о том, что flac ухудшает качество, а о том, что нужно перед конвертацией точно знать что и для чего вы делаете. Какие параметры вы задали и на что они влияют, поэтому если перед вами стоит задача сжать файл, но не потерять качество, то такие параметры как частота дискретизации и количество бит на сэмпл должны быть указаны конвертеру такие же как у исходного файла. Если говорить о фольклорно — этнографических записях, то здесь возможны варианты, поскольку частотный диапазон человеческого голоса очень небольшой и современные стандарты в большинстве случаев перекрывают минимальные требования для него более чем в три раза.

FFMPEG по умолчанию кодирует wav файлы в flac с исходной частотой дискретизации

Команда для кодирования из wav в flac

ffmpeg -i file.wav file.flac
ffmpeg -i in.wav -af aformat=s32:176000 out.flac
ffmpeg -i in.wav -af aformat=s16:44100 out.flac

Существует более одиннадцати lossless кодеков с различными алгоритмами сжатия. Наиболее популярные Lossless Audio (LA), OptimFROG, Monkey's Audio, TAK, WavPack, FLACCL, True Audio (TTA), Flake, FLAC, Apple Lossless (ALAC), WMA Lossless

Разобраться в нюансах каждого из представленных задача не тривиальная, вот например статья где все эти кодеки сравниваются между собой.
https://audiophilesoft.ru/publ/my/lossless_comparison/11-1-0-68

От себя могу лишь добавить, что для кодирования нашего архива был выбран кодек FLAC.
Наши аргументы в его пользу:

  • FLAC один из наиболее популярных и распространенных.
  • Открытый исходный код, - это обуславливает то, что он поддерживается большим количеством производителей аудио аппаратуры.
  • Хорошие показатели по сжатию, не самые лучшие, но в купе с остальными преимуществами делают его наиболее привлекательным.