Метод сжатия звука Ogg Vorbis. Как работает сжатие аудио

Формат сжатия звука MP3

MPEG-1 Audio Layer 3 Расширение файла: .mp3 Тип MIME: audio/mpeg Тип формата: Audio

MP3 (более точно, англ. MPEG-1/2/2.5 Layer 3 (но не MPEG-3) - третий формат кодирования звуковой дорожки MPEG) - лицензируемый формат файла для хранения аудио-информации.

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

В формате MP3 используется алгоритм сжатия с потерями, разработанный для существенного уменьшения размера данных, необходимых для воспроизведения записи и обеспечения качества воспроизведения очень близкого к оригинальному (по мнению большинства слушателей), хотя меломаны говорят об ощутимом различии. При создании MP3 со средним битрейтом 128 кбит/с в результате получается файл, размер которого примерно равен 1/10 от оригинального файла с аудио CD. MP3 файлы могут создаваться с высоким или низким битрейтом, который влияет на качество файла-результата. Принцип сжатия заключается в снижении точности некоторых частей звукового потока, что практически неразличимо для слуха большинства людей. Данный метод называют кодированием восприятия. При этом на первом этапе строится диаграмма звука в виде последовательности коротких промежутков времени, затем на ней удаляется информация не различимая человеческим ухом, а оставшаяся информация сохраняется в компактном виде. Данный подход похож на метод сжатия, используемый при сжатии картинок в формат JPEG.

MP3 разработан рабочей группой института Фраунгофера (нем. Fraunhofer-Institut f?r Integrierte Schaltungen) под руководством Карлхайнца Бранденбурга и университета Эрланген-Нюрнберг в сотрудничестве с AT&T Bell Labs и Thomson (Джонсон, Штолл, Деери и др.).

Основой разработки MP3 послужил экспериментальный кодек ASPEC (Adaptive Spectral Perceptual Entropy Coding). Первым кодировщиком в формат MP3 стала программа L3Enc, выпущенная летом 1994 года. Спустя один год появился первый программный MP3-плеер - Winplay3.

При разработке алгоритма тесты проводились на вполне конкретных популярных композициях. Основной стала песня Сюзанны Веги «Tom"s Diner». Отсюда возникла шутка, что «MP3 был создан исключительно ради комфортного прослушивания любимой песни Бранденбурга», а Вегу стали называть «мамой MP3».


Описание формата

В этом формате звуки кодируются частотным образом (без дискретных партий); есть поддержка стерео, причём в двух форматах (подробности - ниже). MP3 является форматом сжатия с потерями, то есть часть звуковой информации, которую (согласно психоакустической модели) ухо человека воспринять не может или воспринимается не всеми людьми, из записи удаляется безвозвратно. Степень сжатия можно варьировать, в том числе в пределах одного файла. Интервал возможных значений битрейта составляет 8 - 320 кбит/c. Для сравнения, поток данных с обычного компакт-диска формата Audio-CD равен 1411,2 кбит/c при частоте дискретизации 44100 Гц.

MP3 и «качество Audio-CD»

В прошлом было распространено мнение, что запись с битрейтом 128 кбит/c подходит для музыкальных произведений, предназначенных для прослушивания большинством людей, обеспечивая качество звучания Audio-CD. В действительности всё намного сложнее. Во-первых, качество полученного MP3 зависит не только от битрейта, но и от кодирующей программы (кодека) (стандарт не устанавливает алгоритм кодирования, только описывает способ представления). Во-вторых, помимо превалирующего режима CBR (Constant Bitrate - постоянный битрейт) (в котором, проще говоря, каждая секунда аудио кодируется одинаковым числом бит) существуют режимы ABR (Average Bitrate - усредненный битрейт) и VBR (Variable Bitrate - переменный битрейт). В-третьих, граница 128 кбит/c является условной, так как она была «изобретена» в эпоху становления формата, когда качество воспроизведения звуковых плат и компьютерных колонок как правило было ниже, чем в настоящее время.

На данный момент наиболее часто встречаются MP3 файлы с битрейтом 192 кбит/c, что может косвенно говорить о том, что большинство считает этот битрейт достаточным. Реально воспринимаемое «качество» зависит от исходного аудиофайла, слушателя и его аудиосистемы. Некоторые меломаны предпочитают сжимать музыку с «максимальным качеством» - 320 кбит/c, либо даже переходить на другие форматы, например FLAC, где битрейт в среднем ~1000 кбит/c. Также среди меломанов бытует мнение, что некоторые сэмплы (фрагменты аудиозаписи) не поддаются качественному сжатию с потерями: на всех возможных битрейтах не составляет особого труда отличить сжатое аудио от оригинала.

Режимы кодирования и опции

Существует три версии MP3 формата для различных нужд: MPEG-1, MPEG-2 и MPEG-2.5. Отличаются они возможными диапазонами битрейта и частоты дискретизации:

* 32-320 кбит/c при частотах дискретизации 32000 Гц, 44100 Гц и 48000 Гц для MPEG-1 Layer 3;

* 16-160 кбит/c при частотах дискретизации 16000 Гц, 22050 Гц и 24000 Гц для MPEG-2 Layer 3;

* 8-160 кбит/c при частотах дискретизации 8000 Гц и 11025 Гц для MPEG-2.5 Layer 3.

Режимы управления кодированием звуковых каналов

Так как формат MP3 поддерживает двухканальное кодирование (стерео), существует 4 режима:

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

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

* Двухканальный - два независимых канала, например звуковое сопровождение на разных языках. Битрейт делится на два канала. Например, если заданный битрейт 192 кбит/c, то для каждого канала он будет равен только 96 кбит/c.

* Объединённое стерео (Joint Stereo) - оптимальный способ двухканального кодирования. Например, в одном из режимов Объединённое стерео левый и правый каналы преобразуются в их сумму (L+R) и разность (L-R). Для большинства звуковых файлов насыщеность канала с разностью (L-R) получается намного меньше канала с суммой (L+R). Также тут свою роль играет восприятие звука человеком, для которого различия в направлении звука намного менее примечательны. Поэтому Объединённое стерео позволяет либо сэкономить на битрейте канала (L-R) или улучшить качество на том же битрейте, поскольку на канал суммы (L+R) отводится бо?льшая часть битрейта. Бытует мнение, что данный режим не подходит для звукового стереоматериала, в котором в двух каналах воспроизводится субъективно абсолютно различный материал, так как он стирает различия между каналами. Но современные кодеки используют различные схемы в разных фреймах (включая чистое стерео) в зависимости от исходного сигнала.

CBR расшифровывается как Constant Bit Rate, то есть Постоянный битрейт, который задается пользователем и не изменяется при кодировании произведения. Таким образом каждой секунде произведения соответствует одинаковое количество закодированных бит данных (даже при кодировании тишины). CBR может быть полезен для потоков мультимедиа данных по ограниченному каналу; в таком случае кодирование использует все возможности канала данных. Для хранения данный режим кодирования не является оптимальным, так как он не может выделить достаточно места для сложных отрезков исходного произведения, при этом бесполезно тратя место на простых отрезках. Повышенные битрейты (выше 256 кбит/c) могут решить данную проблему, выделив больше места для данных, но зато и пропорционально увеличивая размер файла.

VBR расшифровывается как Variable Bit Rate, то есть Варьирующийся Битрейт или Переменный Битрейт, который динамически изменяется программой-кодером при кодировании, в зависимости от насыщенности кодируемого аудиоматериала и установленного пользователем качества кодирования (например, тишина закодируется с минимальным битрейтом). Этот метод MP3-кодирования является самым прогрессивным и до сих пор развивается и улучшается, так как аудиоматериал разной насыщенности может быть закодирован с определенным качеством, которое обычно выше, чем при установке среднего значения в методе CBR. Плюс к тому, размер файла уменьшается за счет фрагментов, не требующих высокого битрейта. Минусом данного метода кодирования является сложность предсказания размера выходного файла. Но этот недостаток VBR-кодирования незначителен в сравнение с его достоинствами. Также минусом является то, что VBR считает «незначительной» звуковой информацией более тихие фрагменты, таким образом получается, что если слушать очень громко, то эти фрагменты будут некачественными, в то время как CBR делает с одинаковым битрейтом и тихие, и громкие фрагменты. Формат VBR постоянно улучшается, благодаря постоянному совершенствованию математической модели кодеков, в частности после выхода обновленной версии свободного mp3-кодека lame (версия 3.98), кодирование с переменным битрейтом, по заявлению самих разработчиков, качественно лучше CBR и тем более ABR.

ABR расшифровывается как Average Bit Rate, то есть Усредненый Битрейт, который является гибридом VBR и CBR: битрейт в кбит/c задается пользователем, а программа варьирует его, постоянно подгоняя под заданный битрейт. Таким образом, кодер будет с осторожностью использовать максимально и минимально возможные значения битрейта, так как рискует не вписаться в заданный пользователем битрейт. Это является явным минусом данного метода, так как сказывается на качестве выходного файла, которое будет немного лучше, чем при использовании CBR, но намного хуже, чем при использовании VBR. С другой стороны, этот метод позволяет наиболее гибко задавать битрейт (может быть любым числом между 8 и 320, против исключительно кратных 16 чисел метода CBR) и вычислять размер выходного файла.

Метки в границах mp3-файла (в начале и\или в конце). В них могут быть записана информация об авторстве, альбоме, годе выпуска и прочая информация о треке. В более поздних версиях тегов возможно хранение обложек альбомов и тексты песни. Существуют различные версии тегов.

Недостатки

Технические недостатки. MP3 является лидером по распространённости, но при этом не является лучшим по техническим параметрам. Существуют форматы, позволяющие добиться большего качества при одинаковом размере файла, такие как Vorbis, AAC. Также в формате MP3 отсутствует режим кодирования без потерь, желательный для профессионального использования. При этом MP3 вполне подходит (с профессиональной точки зрения) для распространения демонстрационных композиций или иных способов «раздачи» своей музыки из-за повсеместной распространённости проигрывателей.

Юридические ограничения. Для свободного использования формата существуют патентные ограничения. Компания Alcatel-Lucent обладает правами на MP3 и получает отчисления от тех, кто использует этот формат - производителей плееров и мобильных телефонов. Из-за этого лицензионная чистота формата под вопросом. В частности, Alcatel-Lucent предъявила претензии компании Microsoft за то, что в Windows была встроена поддержка MP3. Однако срок действия патентов на технологию заканчивается в 2010 году, после чего любая компания сможет использовать её свободно.

Форматы - Форматы сжатия звука

FLAC (англ. Free Lossless Audio Codec - свободный аудио-кодек без потерь) - популярный свободный кодек для сжатия аудио. В отличие от кодеков с потерями Ogg Vorbis, MP3, FLAC не удаляет никакой информации из аудиопотока и подходит как для прослушивания музыки на высококачественной звуковоспроизводящей аппаратуре, так и для архивирования аудиоколлекции. На сегодня формат FLAC поддерживается многими аудиоприложениями.

Аудиопоток

Основными частями потока являются:

* Строка из четырёх байтов «fLaC»

* Блок метаданных STREAMINFO

* Другие необязательные блоки метаданных

* Аудио фреймы

Первые четыре байта идентифицируют поток FLAC. Следующие за ними метаданные содержат информацию о потоке, затем идут сжатые аудиоданные.

Метаданные

FLAC определяет несколько типов блоков метаданных (все они перечислены на странице формата). Блоки метаданных могут быть любого размера, новые блоки могут быть легко добавлены. Декодер имеет возможность пропускать неизвеcтные ему блоки метаданных. Обязателен только блок STREAMINFO. В нём содержится частота дискретизации, количество каналов и т. п., а также данные, позволяющие декодеру настроить буферы. Сюда также записывается подпись MD5 несжатых аудиоданных. Это полезно для проверки всего потока после его передачи.

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

Аудиоданные

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

Разбиение на блоки

Размер блока - очень важный параметр для кодирования. Если он очень мал, то в потоке будет слишком много заголовков фреймов, что уменьшит уровень сжатия. Если размер большой, то кодер не сможет подобрать эффективную модель сжатия. Понимание процесса моделирования поможет Вам увеличить уровень сжатия для некоторых типов входных данных. Обычно при использовании линейного прогнозирования на аудиоданных с частотой дискретизации 44.1 кГц оптимальный размер блока лежит в диапазоне 2-6 тысяч сэмплов.

Межканальная декорреляция

Если на вход поступают стерео аудиоданные, они могут пройти через стадию межканальной декорреляции. Правый и левый канал преобразуются к среднему и разностному по формулам: средний = (левый + правый)/2, разностный = левый - правый. В отличие от joint stereo этот процесс не приводит к потерям. Для данных с аудио компакт-дисков это обычно приводит к значительному увеличению уровня сжатия.

Моделирование

На следующем этапе кодер пытается аппроксимировать сигнал такой функцией, чтобы полученный после её вычитания из оригинала результат (называемый разностью, остатком, ошибкой) можно было закодировать минимальным количеством битов. Параметры функций тоже должны записываться, поэтому они не должны занимать много места. FLAC использует два метода формирования аппроксимаций:

* подгонка простого полинома к сигналу

* общее кодирование с линейными предикторами (LPC).

Во-первых, постоянное полиномиальное предсказание (-l 0) работает значительно быстрее, но менее точно, чем LPC. Чем выше порядок LPC, тем медленнее, но лучше будет модель. Однако с увеличением порядка выигрыш будет все менее значительным. В некоторой точке (обычно около 9) процедура кодера, определяющая наилучший порядок, начинает ошибаться и размер получаемых фреймов возрастает. Чтобы преодолеть это, можно использовать полный перебор, что приведёт к значительному увеличению времени кодирования.

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

Остаточное кодирование

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

Кодирование Райса состоит из нахождения одного параметра, отвечающего распределению сигнала, а затем использования его для составления кодов. При изменении распределения меняется и оптимальный параметр, поэтому имеется метод позволяющий пересчитывать его по необходимости. Остаток может быть разбит на контексты или разделы, у каждого из которых будет свой параметр Райса. FLAC позволяет указать, как нужно производить разбиение. Остаток может быть разбит на 2n раздела.

Составление фреймов

Аудиофрейму предшествует заголовок, который начинается с кода синхронизации и содержит минимум информации, необходимой декодеру для воспроизведения потока. Сюда также записывается номер блока или сэмпла и восьмибитная контрольная сумма самого заголовка. Код синхронизации, CRC заголовка фрейма и номер блока/сэмпла позволяют осуществлять пересинхронизацию и поиск даже в отсутствие точек поиска. В конце фрейма записывается его шестнадцатибитная контрольная сумма. Если базовый декодер обнаружит ошибку, будет сгенерирован блок тишины.

Чтобы поддерживать основные типы метаданных, базовый декодер умеет пропускать теги ID3v1 и ID3v2, поэтому их можно свободно добавлять. Теги ID3v2 должны располагаться перед маркером «fLaC», а теги ID3v1 - в конце файла.

Существуют модификации FLAC кодера: Improved FLAC encoder и Flake.

29 января 2003 г. Xiphophorus (сейчас называется Xiph.Org Foundation) анонсировали включение формата FLAC в линейку своих продуктов, таких, как Ogg Vorbis

Формат сжатия звука MP3

Методы сжатия звуковой информации

Сжатие звуковых данных

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

Сжатие звуковых данных (сжатие аудио) - тип сжатия данных, кодирования, применяемая для уменьшения объема аудиофайлов или для возможности уменьшения полосы пропускания для потокового аудио. Алгоритмы сжатия звуковых файлов реализуются в компьютерных программах, называемых аудиокодеками. Изобретение специальных алгоритмов сжатия звуковых данных мотивировано тем, что общие алгоритмы сжатия неэффективны для работы со звуком и делают невозможным работу в реальном времени.

Как и в общем случае, различают сжатия звука без потерь, что делает возможным восстановление исходных данных без искажений, и сжатие с потерями, при котором такое восстановление невозможно. Алгоритмы сжатия с потерями дают большую степень сжатия, например audio CD может вместить не более часа «несжатой» музыки, при сжатии без потерь CD вместит почти 2 часа музыки, а при сжатии с потерями при среднем битрейте - 7-10 часов.

Сжатие без потерь

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

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

Наиболее распространенными форматами сжатия без потерь являются:
Free Lossless Audio Codec (FLAC), Apple Lossless , MPEG-4 ALS , Monkey"s Audio , и TTA .

Сжатие с потерями

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

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

Для осуществления маскировки сигнал из временной последовательности отсчетов амплитуды превращается в последовательность спектров звуков, в которых каждый компонент спектра кодируется отдельно. Для осуществления такого преобразования используются методы быстрого преобразования Фурье, МДКП, квадратурной-зеркальных фильтров или другие. Общий объем информации при таком перекодировании остается неизменным. Сжатие в определенной частотной области может заключаться в том, что замаскированные или нулевые компоненты не запоминаются вообще, или кодируются с меньшим разрешением. Например, частотные компоненты в до 200 Гц и более 14 кГц могут быть закодированы с 4-битной разрядностью, тогда как компоненты в среднем диапазоне - с 16 битной. Результатом такой операции станет кодирования со средней разрядностью 8-бит, однако результат будет значительно лучше, чем при кодировании всего диапазона частот с 8-битной разрядностью.

Однако очевидно, что перекодированные с низким разрешением фрагменты спектра уже не могут быть восстановлены в точности, и, таким образом, теряются безвозвратно.
Главным параметром сжатия с потерями является битрейт, определяющий степень сжатия файла и, соответственно, качество. Различают сжатия с постоянным битрейтом (англ. Constant BitRate - CBR), переменным битрейтом (англ. Variable BitRate - VBR) и усереденим битрейтом (англ. Average BitRate - ABR).

Наиболее распространенными форматами сжатия с потерями являются: AAC, ADPCM, ATRAC, Dolby AC-3, MP2, MP3, Musepack Ogg Vorbis, WMA и другие.

Формат сжатия звука MP3

MPEG-1 Audio Layer 3 Расширение файла: .mp3 Тип MIME: audio/mpeg Тип формата: Audio

MP3 (более точно, англ. MPEG-1/2/2.5 Layer 3 (но не MPEG-3) - третий формат кодирования звуковой дорожки MPEG) - лицензируемый формат файла для хранения аудио-информации.

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

В формате MP3 используется алгоритм сжатия с потерями, разработанный для существенного уменьшения размера данных, необходимых для воспроизведения записи и обеспечения качества воспроизведения очень близкого к оригинальному (по мнению большинства слушателей), хотя меломаны говорят об ощутимом различии. При создании MP3 со средним битрейтом 128 кбит/с в результате получается файл, размер которого примерно равен 1/10 от оригинального файла с аудио CD. MP3 файлы могут создаваться с высоким или низким битрейтом, который влияет на качество файла-результата.

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

MP3 разработан рабочей группой института Фраунгофера (нем. Fraunhofer-Institut f?r Integrierte Schaltungen) под руководством Карлхайнца Бранденбурга и университета Эрланген-Нюрнберг в сотрудничестве с AT&T Bell Labs и Thomson (Джонсон, Штолл, Деери и др.).



Основой разработки MP3 послужил экспериментальный кодек ASPEC (Adaptive Spectral Perceptual Entropy Coding). Первым кодировщиком в формат MP3 стала программа L3Enc, выпущенная летом 1994 года. Спустя один год появился первый программный MP3-плеер - Winplay3.

При разработке алгоритма тесты проводились на вполне конкретных популярных композициях. Основной стала песня Сюзанны Веги «Tom"s Diner». Отсюда возникла шутка, что «MP3 был создан исключительно ради комфортного прослушивания любимой песни Бранденбурга», а Вегу стали называть «мамой MP3».

Описание формата

В этом формате звуки кодируются частотным образом (без дискретных партий); есть поддержка стерео, причём в двух форматах (подробности - ниже). MP3 является форматом сжатия с потерями, то есть часть звуковой информации, которую (согласно психоакустической модели) ухо человека воспринять не может или воспринимается не всеми людьми, из записи удаляется безвозвратно. Степень сжатия можно варьировать, в том числе в пределах одного файла. Интервал возможных значений битрейта составляет 8 - 320 кбит/c. Для сравнения, поток данных с обычного компакт-диска формата Audio-CD равен 1411,2 кбит/c при частоте дискретизации 44100 Гц.

MP3 и «качество Audio-CD»

В прошлом было распространено мнение, что запись с битрейтом 128 кбит/c подходит для музыкальных произведений, предназначенных для прослушивания большинством людей, обеспечивая качество звучания Audio-CD. В действительности всё намного сложнее. Во-первых, качество полученного MP3 зависит не только от битрейта, но и от кодирующей программы (кодека) (стандарт не устанавливает алгоритм кодирования, только описывает способ представления). Во-вторых, помимо превалирующего режима CBR (Constant Bitrate - постоянный битрейт) (в котором, проще говоря, каждая секунда аудио кодируется одинаковым числом бит) существуют режимы ABR (Average Bitrate - усредненный битрейт) и VBR (Variable Bitrate - переменный битрейт). В-третьих, граница 128 кбит/c является условной, так как она была «изобретена» в эпоху становления формата, когда качество воспроизведения звуковых плат и компьютерных колонок как правило было ниже, чем в настоящее время.

Некоторые методы сжатия звуковых данных (доп. к Лекции 2)

    Кодирование данных без потерь (lossless coding) - это способ кодирования аудио, который позволяет осуществлять стопроцентное восстановление данных из сжатого потока. К такому способу уплотнения данных прибегают в тех случаях, когда сохранение оригинального качества данных критично. Например, после сведения звука в студии звукозаписи, данные необходимо сохранить в архиве в оригинальном качестве для возможного последующего использования. Существующие сегодня алгоритмы кодирования без потерь (например, Monkeys Audio) позволяют сократить занимаемый данными объем на 20-50%, но при этом обеспечить стопроцентное восстановление оригинальных данных из полученных после сжатия. Подобные кодеры – это своего рода архиваторы данных (как ZIP, RAR и другие), только предназначенные для сжатия именно аудио.

    Кодирование данных с потерями (lossy coding). Цель такого кодирования - любыми способами добиться схожести звучания восстановленного сигнала с оригиналом при как можно меньшем объеме упакованных данных. Это достигается путем использования различных алгоритмов «упрощающих» оригинальный сигнал (выкидывая из него «ненужные» слабослышимые детали), что приводит к тому, что декодированный сигнал фактически перестает быть идентичным оригиналу, а лишь похоже звучит.

Методов сжатия, а также программ, реализующих эти методы, существует много. Наиболее известными являются MPEG-1 Layer I,II,III (последним является всем известный MP3), MPEG-2 AAC (advanced audio coding), Ogg Vorbis, Windows Media Audio (WMA), TwinVQ (VQF), MPEGPlus, TAC, и прочие.

В среднем, коэффициент сжатия, обеспечиваемый такими кодерами, находится в пределах 10-14 (раз).

Некоторые форматы звуковых файлов :

Формат AU . Этот простой и распространенный формат на системах Sun и NeXT (в последнем случае, правда, файл будет иметь расширение SND). Файл состоит из короткого служебного заголовка (минимум 28 байт), за которым непосредственно следуют звуковые данные. Широко используется в Unix-подобных системах и служит базовым для Java-машины.

Формат WAVE (WAV). Стандартный формат файлов для хранения звука в системе Windows. Является специальным типом другого, более общего формата RIFF (Resource Interchange File Format); другой разновидностью RIFF служат видеофайлы AVI. Файл RIFF составлен из блоков, некоторые из которых могут, в свою очередь, содержать другие вложенные блоки; перед каждым блоком данных помещается четырехсимвольный идентификатор и длина. Звуковые файлы WAV, как правило, более просты и имеют только один блок формата и один блок данных. В первом содержится общая информация об оцифрованном звуке (число каналов, частота дискретизации, характер зависимости громкости и т.д.), а во втором - сами числовые данные. Каждый отсчет занимает целое количество байт (например, 2 байта в случае 12-битовых чисел, старшие разряды содержат нули). При стереозаписи числа группируются парами для левого и правого канала соответственно, причем каждая пара образует законченный блок - для нашего примера его длина составит 4 байта. Такая, казалось бы, излишняя структурированность позволяет программному обеспечению оптимизировать процесс передачи данных при воспроизведении, но, как в подобных случаях всегда бывает, выигрыш во времени приводит к существенному увеличению размера файла.

Формат MP3 (MPEG Layer3) . Это один из форматов хранения аудиосигнала, позднее утвержденный как часть стандартов сжатого видео. Природа получения данного формата во многом аналогична уже рассмотренному нами ранее сжатию графических данных по технологии JPEG. Поскольку произвольные звуковые данные обратимыми методами сжимаются недостаточно хорошо, приходится переходить к методам необратимым: иными словами, базируясь на знаниях о свойствах человеческого слуха, звуковая информация “подправляется” так, чтобы возникшие искажения на слух были незаметны, но полученные данные лучше сжимались традиционными способами. Это называется адаптивным кодированием и позволяет экономить на наименее значимых с точки зрения восприятия человека деталях звучания. Приемы, применяемые в MP3, непросты для понимания и опираются на достаточно сложную математику, но зато обеспечивают очень значительный эффект сжатия звуковой информации. Успехи технологии MP3 привели к тому, что ее применяют сейчас и во многих бытовых звуковых устройствах, например, плеерах и сотовых телефонах.

Формат MIDI. Название MIDI есть сокращение от Musical Instrument Digital Interface, т.е. цифровой интерфейс для музыкальных инструментов. Это довольно старый (1983 г.) стандарт, объединяющий разнообразное музыкальное оборудование (синтезаторы, ударные, освещение). MIDI базируется на пакетах данных, каждый из которых соответствует некоторому событию, в частности, нажатию клавиши или установке режима звучания. Любое событие может одновременно управлять несколькими каналами, каждый из которых относится к определенному оборудованию. Несмотря на свое изначальное предназначение, формат файла стал стандартным для музыкальных данных, которые при желании можно проигрывать с помощью звуковой карты компьютера безо всякого внешнего MIDI-оборудования. Главным преимуществом файлов MIDI является их очень небольшой размер, поскольку это не детальная запись звука, а фактически некоторый расширенный электронный эквивалент традиционной нотной записи. Но это же свойство одновременно является и недостатком: поскольку звук не детализирован, то разное оборудование будет воспроизводить его по-разному, что в принципе может даже заметно исказить авторский музыкальный замысел.

Формат MOD. Представляет собой дальнейшее развитие идеологии MIDI-файлов. Известные как “модули программ воспроизведения”, они хранят в себе не только “электронные ноты”, но и образцы оцифрованного звука, которые используются как шаблоны индивидуальных нот. Таким способом достигается однозначность воспроизведения звука. К недостаткам формата следует отнести большие затраты времени при наложении друг на друга шаблонов одновременно звучащих нот.

Сегодня количество потребляемой нами информации в сети выросло в тысячи раз в сравнении с началом 2000-х. И неудивительно, ведь раньше, помимо намного менее распространенного интернет-покрытия, привычные нам сайты и сервисы выглядели совсем по другому.

Мы ежедневно читаем статьи и новости о том, что та или иная компания разработала новый стандарт соединения, превосходящий нынешние аналоги по скорости передачи данных. За уже практически два десятилетия провайдеры и производители многих гаджетов сделали огромный шаг в направлении к скоростному доступу в Интернет. Но не одними лишь скоростями наш мгновенный доступ к сайтам един.


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

Работа алгоритма

Первым в новой серии статей станет самый популярный формат сжатия аудио–файлов *.mp3. Появился он в 1993 году, благодаря рабочей группе института Фраунгофера, а стандартизирован объединением MPEG. По данным Википедии, объединение было образовано международной организацией ISO для разработки норм в сжатии аудио и видеофайлов. Ими были установлены также следующие стандарты:

  • MPEG–1 : Предназначался для сжатия видео и аудио–файлов, позже стал устоявшимся стандартом для VCD (Video CD).
  • MPEG–2 : Уже ориентировался на передачу сигнала широковещательного телевидения семейств ATSC, ISDB и DVB и в прочих спутниковых ТВ-вещаниях. Таких как например Dish Network.
  • MPEG–3 : Стандарт разработанный для вещания HDTV, но был не принят по причине того, что MPEG–2, с небольшими доработками вполне хватало для таких целей. И нет, это не тот самый mp3, о котором вы сейчас могли подумать. На самом деле, mp3 является ответвлением стандарта MPEG–1, 3 уровня.
  • MPEG–4 : Является во многом усовершенствованным MPEG–1, с поддержкой декодирования 3D–контента и сжатия с низким битрейтом. В него также была интегрирована система программной защиты авторских прав - DRM. Из новых введенных в стандарт видео-форматов, можно отметить ASP и H.264.
Все таки давайте вернемся обратно к mp3. Основной задачей формата было и является уменьшение размера файлов за счет удаления определенных участков звукового спектра, которые не ощущаются на непрофессиональной аудиотехнике, в соответствии с психоакустической моделью звуковосприятия человека.

На этом этапе при помощи алгоритма преобразования Фурье, звуковая волна раскладывается на спектры разной частоты. Все те малоразличимые нашим слухом частоты просто удаляются. В основном это весь спектр звука выше 16 000 Гц. По такому принципу, кстати, работают и сервисы определения музыки, типа SoundHound и Shazam. Встроенный в их работу алгоритм разделяет слышимую звуковую волну на несколько, выделяет ритмику, основные ноты и сравнивает их со своей базой данных.

Но тем не менее, общая картина звучания, например, mp3-файла в битрейте 320 кбит/с мало чем отличается от несжатого файла, при этом в размере может составлять 1/10 от оригинального.

Уже на этом этапе размер файла можно значительно уменьшить, но самый больший процент сжатия происходит на следующих этапах маскировки. Работа первого из них заключается в удалении кратных звуковых частот на громких моментах в песне, то есть если звучит громкий барабан, то все остальные сигналы исходящие от включенных в аранжировку инструментов, можно просто–напросто убрать, и никто этого не заметит.

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

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

В конце каждый из сжатых фреймов аудиозаписи закодированные одинаковыми символами (например нулями), сокращаются до минимальных размеров при помощи метода кода Хаффмана. В процессе его работы дополнительная информация не теряется, просто к каждому из значений фреймов присваивается какой-то код, в зависимости от того, сколько раз то или иное число в нем встречается. Далее все оставшиеся куски нашей аудиозаписи склеиваются и на выходе образуют привычный нам аудио–файл.

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

Сегодня большинство из нас имеет дело преимущественно с цифровыми системами воспроизведения звука. В этих системах звук хранится в цифровом виде – то есть – в виде последовательностей нулей и единиц, которые после раскодирования их с помощью специального программного и аппаратного обеспечения, превращаются в звук. В мире цифровой музыки идет борьба, с одной стороны, за качество воспроизведения, а с другой – за объем хранимых данных. Это два противоборствующих понятия – чем выше качество звука, тем, обычно, больше места требуется для его хранения. Для того, чтобы сохранить цифровой звук с как можно более высоким качеством в как можно меньшем объеме информации, были разработаны алгоритмы сжатия звука.

Существует два различных подхода к сжатию аудиоинформации. Первый называется сжатием без потерь ( lossless ) – в ходе такого сжатия звук, записанный в цифровом виде, сохраняется полностью, без потерь. Другой подход к сжатию аудиоданных называется сжатием с потерями ( lossy ) – звук особым образом обрабатывается, из него удаляется все, по заключению алгоритма сжатия, лишнее, а то, что остается, сжимается. Такое сжатие, в сравнении со сжатием без потерь, позволяет добиться гораздо более высоких уровней сжатия, то есть – уменьшить размеры звуковых файлов, в то время как качество звучания, если не стараться сжать файл слишком сильно, страдает не особенно заметно.

Музыкальные записи можно сжимать и обычными архиваторами, однако они не могут работать в режиме реального времени, к тому же, уровень сжатия несжатых музыкальных записей редко когда превышает 50%. Другой, используемый на практике, способ сжатия аудиоинформации заключается в применении специальных программ – так называемых кодеков, с помощью которых можно сжимать и "на лету" заниматься раскодированием и воспроизведением сжатых композиций.

Говоря о кодеках для сжатия аудиоинформации, следует различать понятия кодек и контейнер медиаданных. Контейнер – это, упрощенно говоря, некая стандартная оболочка , в которой хранятся аудиоданные, сжатые тем или иным кодеком. Например, в MP4-контейнере могут храниться данные, сжатые различными кодеками – в частности – кодеком сжатия с потерями AAC , кодеком сжатия без потерь ALAС и другими. Обычно для различных типов данных, которые хранятся в MP4-контейнере, применяются различные расширения файла. Точно так же, в WAV -файле могут храниться различные данные – например, сжатые в популярном формате MP3 или несжатая информация в формате PCM – в случае с WAV -файлами расширение имени файла остается неизменным (. wav ), а различаются эти файлы лишь по своей внутренней структуре.

Перечень программ

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

Таблица 3.1. Программы и форматы файлов
Программы и форматы MP3 OGG WMA AAC VQF FLAC WAV PACK APE ALAC
Lame +
Winlame + + +
RazorLame +
Windows Media Encoder +
aoTuV +
iTunes +
ImToo WMA MP3 Converter* + +
MP4 Converter**
ImToo Audio Encoder + + + + + + +
Flac Frontend +
Cue Splitter ***
WavPack Frontend +
Monkey’s Audio +
dBpoweramp + + + + + + + +

* Программа ImToo WMA MP3 Converter поддерживает большое количество входных форматов файлов, на выходе же могут быть лишь MP3 и WMA .

** Программа MP4 Converter конвертирует видеофайлы различных форматов в формат, понятный плеерам Apple iPod .

*** Программа для разбиения больших аудиофайлов в соответствии с индексными картами.

Сжатие с потерями

Среди существующих форматов сжатия аудиоданных с потерями можно отметить "большую четверку" - MP3 , WMA , Ogg Vorbis и AAC . Ваш MP3 -плеер с практически 100% вероятностью будет поддерживать один из этих форматов, а скорее всего – несколько. Знания о некоторых особенностях форматов будут особенно полезны при практической работе с аудиоинформацией. Например, в следующих лекциях мы рассмотрим ПО для работы со звуком, в частности, подробно остановимся на конверсии звука из одного формата в другой, и если вы будете знать о формате сжатия данных немного больше, чем его название, это может вам неплохо помочь. Итак, начнем с самого популярного формата.

MP3

Полное название MP3 – MPEG 1 Audio Layer 3. MP3 – это формат сжатия аудиоданных с потерями, который добился невероятной популярности по всему миру. В настоящее время существуют варианты стандарта - MPEG-2 Layer 3 и MPEG-2 .5 Layer 3.

История MP3 начинается в конце 1980-х годов, когда рабочая группа инженеров института Фраунгофера (Fraunhofer Society) начала работать над проектом DAB ( Digital Audio Broadcast ). Проект был частью исследовательской программы EUREKA и в ее рамках был известен как EU -147. MP3 стал результатом переработки стандартов сжатия аудиоинформации Musicam и ASPEC, добавления к идеям, используемых в этих стандартах, новых оригинальных концепций. Непосредственное отношение к стандарту имеет так же компания Thomson.

Стандарт развивался в начале 1990-х, в 1995 году была опубликована окончательная версия стандарта, однако еще в 1994 году был создан первый программный MP3 -кодировщик, который назывался l3enc. Тогда же было выбрано расширение. mp3 для файлов, закодированных в данном формате, а в 1995 году появился первый программный MP3 -проигрыватель Winplay3, доступный широкой общественности. Благодаря высокому качеству музыки при небольшом размере файлов, а так же из-за появления простого и качественного программного обеспечения для проигрывания и создания MP3 -файлов (например, широко известного и ныне здравствующего WinAmp’a, который появился еще в середине 1990-х годов), стандарт обрел огромную популярность и пользуется ей до сих пор.

Возможности MP3

Говоря о возможностях формата MP3, пожалуй, надо начать с формата, в котором хранят музыку на обычных музыкальных CD-дисках, на так называемых Audio CD . Звук, записанный на такие диски, имеет вполне определенные характеристики, а именно, это 44.1kHz 16Bit Stereo (44,1 кГц, 16-битный стереозвук). В переводе на нормальный человеческий язык это означает, что каждая секунда звучания состоит из 44100 образцов (этот параметр называют частотой дискретизации), каждый из которых имеет размер 16 бит (то есть – два байта), причем, информация записывается для двух каналов – для правого и для левого. В итоге получается, что для хранения одной секунды музыки в формате Audio CD потребуется 44100*16*2=1411200 бит, или 176400 байт, или 172,2 Кб. Таким образом, пятиминутная композиция займет 176400*5*60=52920000 байт, то есть – почти 50 мегабайт дискового пространства. Даже сегодня, учитывая десятки, а чаще – сотни гигабайт жестких дисков, которые есть в распоряжении обычных пользователей, довольно сложно представить себе музыкальную коллекцию, состоящую исключительно из звука, записанного в таком неэкономном формате. Что и говорить о жестких дисках на пару гигабайт, которые были пределом мечтаний многих лет десять назад.

Файлы, сжатые в MP3 практически без потери первоначального качества, занимают в 6-10 раз меньше места, чем оригинал. То есть из огромного 50-мегабайтного файла получается вполне пристойный 5-мегабайтный. Причем, если сжать такой файл с помощью обычных алгоритмов сжатия (RAR или ZIP, например), которые используются для простых файлов, мы получим, в лучшем случае, 50% выигрыш (то есть файл порядка 25 Мб). В чем же дело? Почему же MP3 способен так сильно сжимать файлы, практически не ухудшая их качества. Ответ на вопрос здесь кроется в слове "практически". Ведь обычное сжатие не изменяет качества композиций, оно полностью сохраняет его, а MP3 проводит некие манипуляции с файлом, которые могут сказаться на его качестве.

Как работает MP3

В основе MP3 лежит множество механизмов сжатия, в частности, так называемое адаптивное кодирование, основанное на психоакустических моделях, которые учитывают особенности восприятия звука человеком и удаляют из него все "лишнее" - все то, что среднестатистическому человеку невозможно услышать при прослушивании композиций. Как мы уже говорили, если не стремиться слишком сильно сжать композицию, применив наиболее качественный вариант MP3-кодирования, то ее размер будет примерно в 6-10 раз меньше оригинала с CD-качеством, а качество этих двух записей будет идентичным – вряд ли даже профессионал различит их. При более высоких уровнях сжатия потери (их еще называют артефактами сжатия) слышны гораздо сильнее, но тот, кто пользуется сильно сжатой MP3-музыкой, сознательно идет на такой шаг. Например, сильно сжатые MP3 чрезвычайно популярны в среде сотовых телефонов – часто встроенной памяти аппарата не хватает для того, чтобы закачать в него достаточное количество качественных MP3, в результате владелец жертвует качеством записи ради количества. Но вернемся к описанию принципов работы MP3, в частности, к психоакустическим моделям.

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

Битрейт

При MP3-кодировании особенную важность имеет так называемый битрейт (bitrate или ширина потока), который задается при кодировании. Например, уже описанный Audio CD может быть закодирован с максимальным битрейтом 320 Кбит/c (килобит в секунду – этот показатель так же обозначают как kbps , kbs , kb/s) до 128 и ниже. На практике, при битрейте ниже 128 Кбит/с качество звучания падает настолько сильно, что кодировать с подобным битрейтом есть смысл лишь тогда, когда другой альтернативы просто нет.

С одним и тем же битрейтом могут быть закодированы различные исходные материалы, например, звук может быть не стереофоническим, а монофоническим, другой может быть частота дискретизации или размер выборки, однако битрейт – это очень важный интегральный показатель качества MP3-файла. В общем случае, чем он больше – тем это лучше. Очень часто при кодировании MP3-записей Audio CD -качества, можно встретить битрейт 192 Кбит/с – он неплохо подходит для этих целей, однако при прослушивании подобных записей на качественной аудиоаппаратуре (особенно, если сравнить их с оригинальными Audio CD ), заметны артефакты сжатия.

Однако, нельзя однозначно утверждать, что любая музыкальная композиция, скажем, записанная на битрейте 192 Кбит/с лучше, чем композиция, записанная на 128 Кбит/с. Многое зависит от самой музыки, от кодировщика, от исходного качества записи, а так же от того, какой тип битрейта использован при записи композиции.

Так, наиболее простой тип битрейта – это постоянный битрейт – или CBR ( Constant Bit Rate ). Этот битрейт не меняется в течение кодирования всей композиции, то есть каждая секунда звучания, независимо от ее содержимого, кодируется одинаковым количеством бит.

Bit Rate ) – его можно назвать комбинацией VBR и CBR . Так, перед началом кодирования пользователь задает средний битрейт, а при кодировании программа, используя переменный битрейт, следит за тем, чтобы в итоге битрейт вписался в установленное пользователем ограничение. Качество выходного файла получается, таким образом, хуже, чем при использовании VBR (но немного лучше, чем при использовании аналогичного CBR ), однако размер файла поддается гибкой и точной регулировке.

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