Звук в Линуксе/Сжатие звуковых данных с потерями
Пользователям
править- Подсистемы и серверы
- Запись и представление звуковых данных
- Воспроизведение
- Считывание компакт-дисков
- Сжатие
- Тэги
Музыкантам
править- Надо бы переработать эту страницу в статью Википедии, с названием вроде «Сжатие звуковых данных с потерями».
Цифровой век диктует свои законы, согласно которым, в частности, аудиоинформацию до последнего времени было, а видеоинформацию и сейчас намного удобнее хранить и передавать в сжатом виде. Коротко остановимся на принципе сжатия звука.
Как известно, музыка, которую мы слушаем, состоит из набора сигналов, каждый из которых имеет свои характеристики, в том числе громкость. Орган слуха человека устроен так, что мы не различаем или плохо различаем слабый (негромкий) сигнал на фоне сильного (громкого) сигнала. Этот принцип и ложится в основу современных средств сжатия (компрессии) звуковых данных.
Если представить, что сигнал заданной длины разбивается на много частей, и каждая часть обрабатывается таким образом, чтобы более слабый сигнал, трудно различимый на фоне сильного, попадал «под нож», а более сильный сигнал оставался, то это и будет приблизительной моделью компрессии звукового сигнала. Соответственно, уровень сжатия данных будет зависеть от того, на сколько именно частей (сэмплов) будет разбиваться исходный файл, и как много слабых сигналов в каждом отдельно взятом сэмпле будет удалено (какова будет битовая частота — количество битов в сэмпле заданной длительности). Этот принцип кодирования называется кодированием с потерями или 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)