Звук в Линуксе/Сжатие звуковых данных с потерями

Материал из Викиучебника — открытых книг для открытого мира

Звук в Линуксе:[править]

Пользователям[править]

Музыкантам[править]

Надо бы переработать эту страницу в статью Википедии, с названием вроде «Сжатие звуковых данных с потерями».

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

Как известно, музыка, которую мы слушаем, состоит из набора сигналов, каждый из которых имеет свои характеристики, в том числе громкость. Орган слуха человека устроен так, что мы не различаем или плохо различаем слабый (негромкий) сигнал на фоне сильного (громкого) сигнала. Этот принцип и ложится в основу современных средств сжатия (компрессии) звуковых данных.

Если представить, что сигнал заданной длины разбивается на много частей, и каждая часть обрабатывается таким образом, чтобы более слабый сигнал, трудно различимый на фоне сильного, попадал «под нож», а более сильный сигнал оставался, то это и будет приблизительной моделью компрессии звукового сигнала. Соответственно, уровень сжатия данных будет зависеть от того, на сколько именно частей (сэмплов) будет разбиваться исходный файл, и как много слабых сигналов в каждом отдельно взятом сэмпле будет удалено (какова будет битовая частота — количество битов в сэмпле заданной длительности). Этот принцип кодирования называется кодированием с потерями или lossy-кодированием.

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

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

Очевидно, что при более высокой частоте дискретизации 44.1-48.0 кГц и более высокой битовой частоте (от 160-192 Кбит/с) мы получим более соответствующий оригиналу звук, чем при частоте дискретизации в 22 кГц и битовой частоте 64 Кбит/с. Однако, размер конечного сжатого файла прямо пропорционален частоте выборки и выбранной битовой частоте, и именно этим зачастую руководствуются люди, распространяющие музыку в сжатом виде через Интернет или на различных носителях.

Следует также помнить о том, что большинство алгоритмов вырезают верхнюю часть слышимого диапазона, начиная приблизительно с 15 кГц. Это утверждение несложно проверить, проведя простейший анализ частотного спектра в звуковых редакторах Audacity или Snd, либо в специально предназначенной для этого программе Freqtweak.

В настоящее время существует несколько оригинальных алгоритмов сжатия, большинство из которых поддерживаются в GNU/Linux.

Сохранность данных[править]

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

При редактировании, во избежание постепенного ухудшения качества при каждом сохранении, следует использовать форматы сжатия без потерь. Это относится и к записям, которые могут быть объединены с видеозаписями, так как в одном файле не всегда можно объединить видео и звук в произвольных форматах.

Ogg Vorbis[править]

Ogg Vorbis — это полностью открытый и свободный от патентов звуковой формат, позволяющий хранить и передавать звуковую информацию с высоким качеством звука (частота дискретизации 44.1-48.0 КГц, 16+ бит, полифония (многоканальный звук)) и битовой частотой, варьирующейся от 16 до 512 Кбит/с на канал. При этом количество обрабатываемых каналов может достигать 255. Это позволяет поставить Vorbis в один ряд с MPEG-4 audio (AAC и TwinVQ), и заметно выше таких кодеков сжатия, как WMA, PAC и MPEG-1 audio layer 3 (MP3). Впрочем, если говорить об MP3, то на достаточно высоких битовых частотах (от 200 Кбит/с и выше) разница между Ogg Vorbis и MP3 стремится к нулю. С другой стороны, количество записей с такими качественными характеристиками также сравнительно невелико.

Ogg Vorbis также является поточным форматом, что позволяет использовать его, к примеру, для интернет-вещания, тем более что этот формат поддерживается Icecast. Особенности алгоритма кодека позволяют получать конечный файл меньшего размера, чем файлы MP3 с таким же качеством.

Для воспроизведения может использоваться официальная консольная программа ogg123 или почти любой современный проигрыватель; для кодирования — oggenc; к обеим существуют графические оболочки.

ffmpeg2theora позволяет перекодировать звуковые файлы в форматах, поддерживаемых ffmpeg, в Ogg/Vorbis.

Opus[править]

Сравнительно новый свободный кодек, объединяющий в себе технологии кодеков SILK и CELT. По данным сравнений, перечисленных на официальном сайте, превосходит по скорости кодирования, сжатию и качеству звука не только предшественника CELT — Speex, но и Vorbis и HE-AAC. В 2013 году поддерживается VLC, Firefox, Amarok, GStreamer, FFmpeg и другими программами.

Speex[править]

Разработчики Speex рекомендуют переходить на Opus, см. выше.

Существует свободный кодек сжатия записи речи под названием Speex, обеспечивающий превосходное качество и высокую степень компрессии данных. Speex изначально разработан для Voice-over-IP (VoIP). Средства кодирования и декодирования находятся в пакете speex. Воспроизводить данные в этом формате можно при помощи XMMS. Удобный графический интерфейс для кодирования данных в Speex есть в редакторе звуковых файлов Sweep.


MP3[править]

MP3 или MPEG-1 audio layer 3 является на сегодняшний день наиболее популярным форматом для хранения и передачи данных в сжатом виде. Этот формат был разработан в Fraunhofer Institut, Германия. Однако, несмотря на повсеместную распространённость формата, не следует забывать, что патент на алгоритмы кодирования и декодирования MP3 принадлежит одной компании, поэтому конечный пользователь в любой момент может оказаться в весьма невыгодных условиях, как это уже произошло с разработчиками свободных средств сжатия данных в MP3. Подробности об условиях лицензирования вы можете получить на сайте разработчиков (http://www.mp3licensing.com).

Разработчики предлагают для ознакомления следующие характеристики кодека.

Качество звука Диапазон частот Режим Битрейт Коэффициент сжатия
«телефонный» звук 2.5 КГц моно 8 Кбит/сек 96 : 1
Лучше коротковолнового радио (short-wave radio) 4.5 КГц моно 16 Кбит/сек 48 : 1
Лучше СВ-радио (средние волны, AM) 7.5 КГц моно 32 Кбит/сек 24 : 1
На уровне FM-радиостанции 11 КГц стерео 56...64 Кбит/сек 26...24 : 1
Близкое к качеству компакт-диска 15 КГц стерео 96 Кбит/сек 16 : 1
Качество компакт-диска > 15 КГц стерео 112..128 Кбит/сек 14..12 : 1

В Linux существуют как средства кодирования, так и средства декодирования файлов в формате MP3. Подробнее о них вы можете прочитать в соответствующем разделе.

WMA[править]

Формат WMA является закрытой разработкой компании Microsoft. Ему не удалось занять сегмент рынка, сравнимый с таковым у MP3, однако он имеет определённую популярность, несмотря на выявленные серьёзные проблемы с безопасностью. В настоящий момент воспроизводить файлы в формате WMA умеют не только универсальные проигрыватели MPlayer и Xine, но и популярный проигрыватель звуковых файлов XMMS. Для того, чтобы при помощи XMMS можно было слушать музыку в этом формате, необходимо установить пакет xmms-in-wma. Свободных средств сжатия данных по этому алгоритму не существует и появление их маловероятно.

AAC[править]

Из-за популярности iPod (портативный проигрыватель музыкальных файлов) и iTunes (программный проигрыватель, также работающий с iPod) сравнительно большую популярность получил формат AAC, продвигаемый автором обеих разработок, компанией Apple, как стандарт распространения музыки. Как и MP3, этот формат несвободен.

Файлы в этом формате можно воспроизводить при помощи XMMS, установив или собрав из исходного кода модуль xmms-input-faad. Получить исходный код FAAC/FAAD (кодировщика/декодировщика), если его нет в готовом собранном виде для вашего дистрибутива, можно с домашней страницы проекта.

Формат AAC также поддерживается мультимедийной подсистемой GStreamer, поэтому файлы в данном формате можно слушать через любой проигрыватель, использующем GStreamer, например, amaroK. (в amaroK версиях 1.4 и новее, поддержка GStreamer была прекращена из технических соображений. Смотрите ниже)

Поддержка форматов AAC и aacPlus (AACPlus, AAC+) (aac С компрессионными расширениями качества при передаче облегчённого потокa. Формат часто использутся интернет радиостанциями) была добавлена в очень популярную мультимедийную подсистему Xine. Xine может быть использован как "мотор воспроизведения" cо многими музыкальными проигрывателями, включая: amaroK, kaffeine и totem (В некоторых бесплатных Линукс дистрибутивах, как OpenSuse, Xine был намеренно ограничен в поддержке многих "коммерческих" кодировок. Если ваш Xine не воспроизводит AAC / aacPlus, попробуйте установить "полную" версию. См. страницу Xine)