Как настроить смартфоны и ПК. Информационный портал

Сжатие с потерями. Принцип сжатия звука

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

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

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

00 > 0
01 > 10
10 > 110
11 > 111

В таком случае шестнадцать битов:

00 01 00 00 11 10 00 00

будут преобразованы в тринадцать битов:

0 10 0 0 111 110 0 0

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

FLAC (Free Lossless Audio Codec - свободный аудио-кодек без потерь)

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

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

Сжатие с потерями (MP3, AAC, WMA, OGG)

Используется алгоритм сжатия с потерями, размер MP3-файла со средним битрейтом 128 кбит/с примерно равен 1/11 от оригинального файла с аудио CD (несжатое аудио формата CD-Audio имеет битрейт 1411,2 кбит/с). MP3 файлы могут создаваться с высоким или низким битрейтом, что влияет на качество результата.

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

Типы битрейта MP3

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

VBR расшифровывается как Variable Bit Rate, то есть изменяющийся битрейт или переменный битрейт, который динамически изменяется программой-кодером при кодировании в зависимости от насыщенности кодируемого аудиоматериала и установленного пользователем качества кодирования (например, тишина закодируется с минимальным битрейтом). Минусом данного метода кодирования является то, что VBR считает «незначительной» звуковой информацией более тихие фрагменты, таким образом получается, что если слушать очень громко, то эти фрагменты будут некачественными, в то время как CBR делает с одинаковым битрейтом и тихие, и громкие фрагменты.

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

Аудио компрессия для меломанов

правда о высоком битрейте при сжатии с потерями

Предисловие

В понимании большинства людей слово меломан чаще всего ассоциируется с человеком, не просто любящим и коллекционирующим музыку, а еще и ценящим качественную музыку, причем не только в художественно-эстетическом плане, но еще и качество записи самой фонограммы. Подумать только, еще несколько лет назад эталоном качества музыки считался аудио компакт диск, компьютер же даже в мечтах не мог конкурировать с качеством CD. Однако, время — большой шутник, и часто любит переворачивать все с ног на голову. Прошло, казалось бы, совсем немного времени, какой-то год или два и… всё, компакт диск на PC отступил на второй план. Не спрашивайте "почему?", Вы ведь сами знаете ответ на этот вопрос. Всему виною революция в мире звука на компьютере — аудио компрессия (здесь и далее под аудио компрессией подразумевается сжатие с потерями, для уменьшения размера аудио файла), которая позволила хранить музыку на жестком диске, много музыки! Более того, появилась возможность обмениваться ею через Интернет. Вышли новые звуковые карты, способные "выжать" чуть ли не студийное качество из, казалось бы, бесполезной в плане музыки "железки". Сегодня, имея даже не очень шустрый по производительности компьютер, купив звуковую карту Creative SoundBlaster Live! и вспомнив, что еще с советских времен имеется хороший усилитель и добротная акустика, Вы получите ни что иное, как музыкальный центр высокого качества, звучание которого уступает разве что очень дорогой аудио аппаратуре (средней или даже высшей Hi-Fi категории). Прибавьте к этому общедоступность музыкальных файлов, и Вы поймете, что у Вас в руках — сила. И тогда происходит переворот, и Вы понимаете, что компакт диск — это уже и не так удобно, завораживает Вас совсем другое — магические знаки "MP3". Вы не можете ни есть, ни спать — перед Вами неразрешимый на первый взгляд вопрос "курицы и яйца": чем "сжимать" и, самое главное, — как "сжимать"…

Из существующих на сегодня форматов компрессии аудио заслуживающими внимания, на мой взгляд, являются три: MP3 (или MPEG-1 Audio Layer III), LQT (как представитель семейства MPEG-2 AAC / MPEG-4) и совершенно новый формат OGG (Ogg Vorbis), разрабатываемый группой энтузиастов:

  • На сегодняшний день MP3 — самый распространенный из них (в первую очередь потому, что он бесплатный). Напомню, что именно благодаря формату МР3 и произошло победоносное шествие сжатого аудио. Однако, как часто бывает с пионерами, он постепенно сдает позиции и уступает место более новым и качественным форматам.
  • Второй формат, LQT, является представителем нового направления алгоритмов аудио кодирования, представителем семейства AAC. Это достаточно качественный, но коммерческий и строго засекреченный формат.
  • OGG стал широко известен общественности этим летом и на данный момент бурно развивается, в скором времени (с релизом кодера и декодера) должен побить MP3 лучшим качеством звучания при меньшем объеме файлов.

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

Условие задачи

Я решил "столкнуть лбами" три указанных формата на предмет получения максимально качественного звука при минимальном размере файла. Для теста были выбраны несколько семплов (здесь семпл — вырезанный из PCM файла небольшой фрагмент) из композиций двух типов. Первый — очень плотного и громкого звучания с нормализацией по амплитуде (уплотнение звука "по вертикали", чтобы он с 24 битного мастера уместился в 16 битах) и компрессией динамического диапазона (чтобы при этом звучание всех инструментов было всегда громким). В качестве первого типа (как и в моих прошлых тестах) была выбрана композиция Crush On You из альбома Have A Nice Day группы Roxette, исследовалось три семпла по 15-20 секунд с разных участков композиции. Второй семпл — чистый и прозрачный (легкая оркестровая или акустическая аранжировка). В качестве второго типа была взята композиция Mano a Mano с альбома Tango известного пианиста Richard Clayderman.

Почему именно эти записи? В семплах Roxette имеет место очень сильная динамическая компрессия (значение амплитуды очень часто равно максимуму (что плохо) и приводит к перегрузке воспроизводящей аппаратуры и сильным искажениям).

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

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

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

Чем "жмем"

Мои исследования эталонного качества для разных битрейтов и кодеров формата MP3 выражены в программе OrlSoft MPeg eXtension . Параметры кодирования подобраны по результатам тестов.

Безусловный лидер качества на высоком битрейте — кодер LAME. Кодеры от Fraunhofer IIS по-прежнему хороши только для низких битрейтов — для 128 и 160 кбит/с. Про другие я даже говорить не буду. Только НИ В КОЕМ СЛУЧАЕ не связывайтесь с кодерами, основанными на коде XING (самый известный представитель — Audio Catalyst) — эти самые плохие, звук — просто ужас.

Для большинства пользователей формата MP3 проблема качественного звука обычно ставится следующим образом: "256 или 320? а может попробовать VBR?". И этот вопрос мучает их изо дня в день. Не все записи хорошо звучат в 256 — имеют место сильно слышимые и видимые (по измерениям) потери в области верхних частот. При использовании режима VBR (так называемый поток с переменным битрейтом) часто бывает, что музыка звучит на слух лучше, чем 256, но это нельзя брать за общее правило. Кодируйте мало ценные записи, либо не очень качественные — не ошибетесь. Параметры VBR у меня подобраны для получения максимального для VBR качества.

Для коммерческого формата LQT существует только фирменный кодер от авторов — Liquifier Pro. Им и жмем. Отмечу, что формат LQT изначально основан на VBR кодировании, поэтому для него существует просто несколько режимов типа "плохо", "хорошо" и "отлично". Естественно, для наших тестов берем режим "отлично" (Audiophile), в результате чего получается поток от 192 до 256, чаще всего 200-220 кбит/с. Напомню, что формат LQT основан на семействе алгоритмов MPEG-2 AAC. Более того, это наиболее качественная на сегодня реализация AAC (проверено на аналогах).

Формат OGG родственник формата MP3, однако содержит в себе иную психоакустическую модель и некоторые отсутствующие у MP3 технические новинки. Начать хотя бы с того, что OGG изначально поддерживает только режим VBR. Пользователь задает ориентировочную скорость потока, а кодер пытается сжать максимально ближе к нему. Диапазон изменения чрезвычайно широк: от 8 до 512 кбит/с, причем он значительно более дискретный, чем у MP3. Верхняя планка составляет целых 512 кбит/с, в то время как MP3 кодеры на сегодня реально "тянут" только до 320. Вы спросите "а разве бывает что и 320 мало?". Да, бывает, но редко.

Семплы Roxette

Ну вот, мы и подошли к самому интересному. Начнём с моих слуховых ощущений.

Для МР3 на потоке 256 кбит/с явно слышны нарушения звучания верхних частот. Мало того, что в звуке отсутствует немалая их часть, так еще и примешивается сильное искажение, хрип, металлический лязг и прочие "прелести". Это знак к тому, что 256 явно не хватает, следовательно, надо попробовать повыше. Берем сжатый в 320 семпл. Звук значительно изменился — это совсем другое дело: верха на месте, на слух никакой разницы не обнаружено. Для чистоты эксперимента посмотрим, что же получится в режиме плавающей скорости потока. Получаем средний битрейт в 290 кбит/с, из чего напрашивается вывод, что 256 для исследуемого семпла маловато будет. Действительно, на слух семпл, закодированный в режиме VBR, звучит чуть-чуть лучше, чем 256, однако явно не дотягивает до звучания 320. В случае применения МР3, для качественного сжатия подходит только кодирование в режиме 320 кбит/с, т.е. на максимуме возможностей.

Берем OGG как "модифицированный MP3". Для кодера существует пять ориентировочных битрейтов: 128, 160, 192, 256 и 350. Что ж, попробуем 192 и 256. Битрейт 350 брать не будем, т.к. нам уже известно, что MP3 при 320 кбит/с передает явно прекрасное качество, лучше вроде бы и не надо. Для режима 192 получаем средний поток в 226, а для режима 256 — целых 315 кбит/с. Вот вам и точность. Столь большое отклонение от ориентира — это сигнал к очень сложно кодируемому звуковому материалу, при более простом по плотности семпле точность будет выше. Честно говоря, я долго пытался оценить 320 MP3 и 315 OGG и пришел к выводу, что оба они звучат практически аналогично исходному звучанию. Но они основаны на разных психоакустических моделях и окраска звучания у них разная. Лично мне чуть больше понравился все-таки MP3. Однако, это действительно спорный вопрос — ведь кодер OGG пока только бета версия. Когда будет релиз, думаю, он должен обогнать MP3 в качестве. Сравнивая их по отдельности с оригиналом, я склонился к тому, что OGG все-таки ближе по звучанию к оригиналу, но вот с верхними частотами у этого кодера что-то не так. Из-за этого MP3 и звучит немного лучше. Думаю, не надо говорить, что в режиме 350 (средний битрейт получился в 365) OGG "идеально" повторяет оригинал.

Теперь про малоизвестный, но широко рекламируемый как "самый качественный" формат — формат LQT. И, что самое главное, он действительно звучит очень круто в целом, однако, прислушавшись, я понял, что мне не понравилось в его звучании. Он не искажает верхние частоты, как MP3 на 256 кбит/с, но размазывает звук, причем сильно размазывает. Резкие звуки размываются во времени. Да, это плохо. Но дело в том, что сравнивать LQT на битрейте всего в 230кбит/с с MP3 на таком же битрейте бесполезно, МР3 проигрывает по общему звучанию. Придраться, конечно, есть к чему. МР3 теряет и искажает верхние частоты, LQT же в свою очередь несколько "проваливает" средние частоты и размазывает верхние. В общем, тут кому что больше понравится. Но это — тема уже для другой статьи. Сегодня у нас разговор только про высшие битрейты. Да, LQT дает хорошее качество, но отнюдь не супер. По всей видимости, здесь сказывается недостаток скорости потока, то есть, если в LQT появится режим большего битрейта, он побьет даже 320 кбит/с MP3 на записях типа исследуемой.

Это были мои чисто субъективные впечатления. Давайте теперь перейдем к более объективным тестам. Исследуем АЧХ (то есть амплитудно-частотную характеристику ) семплов, признанных лучшими (320 для MP3, 315 для OGG и 230 для LQT). Представленная диаграмма — так называемый "сонарм" — частотно-временное представление звука. По горизонтали располагается шкала времени, по вертикали — линейная шкала частот.

Внимательно присмотрелись? Вот вам и ясное подтверждение моих слов: новейший формат Ogg Vorbis в режиме 256 явно недотягивает "по верхам" — урезание частот видно невооруженным взглядом. "Супер коммерческий" формат LQT передает диапазон частот по верхам вроде как даже лучше, чем LAME, но общее качество хуже. Дело в том, что в LQT нет режима чистого стерео — там, по сути, всегда Joint-Stereo (кодер сначала сжимает левый канал, а потом кодирует только разницу между левым и правым). Из-за этого и происходит размазка верхов при недостатке битрейта, что прекрасно видно на иллюстрациях, плюс сие заключение легко подтверждается исследованием сигнала в MS-матрице, т.е. при переводе его в режим центральный канал + стерео. Что можно сказать про семпл LAME… все просто замечательно — чуть-чуть урезаются верхние частоты, но это терпимо; видимых провалов также не отмечено.

Подытожим. На финишной прямой для семпла Roxette форматы OGG на 256 кбит/с и LQT сошли с дистанции, семпл OGG на 350 кбит/с не уступает лидеру. Однако не будем хоронить новый формат раньше времени — подождем релиза. Вот тогда уже и проведем тесты еще раз: OGG 256 против LAME 320.

Семплы Richard Clayderman

C семплами Roxette вроде все понятно — плотный звук пока лучше сжимать кодером LAME в режиме 320 кбит/с. А как насчет более прозрачного звука? Попробуем сначала сжать в режиме 256 кбит/с и все, по идее, должны бы быть довольны. Результат: низкие частоты вроде на месте, да и средние тоже, а вот верхние частоты… не стало верхних частот! Они есть, но в них не осталось того красивого звучания, не обратить внимание на которое в данной записи очень сложно. Высокие частоты в целом на месте и сильных потерь нет, однако звук "тарелок" стал какой-то синтетический, резкий и весьма неприятный. Такой звук не имеет права претендовать на звание качественного. Что ж, придется снова использовать 320, а ведь как хотелось сжать в 256… Если сравнивать 320 со звучанием 256, передача верхних частот стала значительно лучше. Однако, при сравнении с оригиналом, слышно, что запись по-прежнему не является удовлетворительной в плане качества. После сравнения еще нескольких семплов, становится очевидно, что это погрешности психоакустической модели. Даже в 320 кбит/с MP3 не передает нормально верхние частоты на исследуемом типе записей. Верхние частоты становятся более резкими, металлическими, от них так и веет синтетикой и, как ни странно, они кажутся более громкими (измерения АЧХ этого не демонстрируют — чисто слуховой эффект).

Исследуем теперь Ogg Vorbis. Как и в предыдущем тесте, берем семплы, сжатые в режиме 256 кбит/с. После неудачи с MP3 сложно поверить в полученный результат — звучание Ogg Vorbis лучше по всем параметрам и не идет ни в какое сравнение с тем, что выдает LAME на 320 кбит/с! Сравнивая с оригиналом, также очень сложно найти разницу. Ogg Vorbis на битрейте 287 побил LAME на битрейте 320. Именно об этом я и говорил в начале статьи: формат OGG вполне может победить MP3.

Хорошо, а что нам может сказать титулованный формат LQT на битрейте всего в 252? Но и здесь получается шокирующий результат — чрезвычайно близкое соответствие оригиналу! По-крайней мере, разница настолько мала, что можно считать ее несущественной. Еще, обратите внимание на интересный факт: при кодировании семплов Roxette средний битрейт получался порядка 230 кбит/с, а на, казалось бы, более простых семплах Clayderman — 250 кбит/с. Это говорит о том, что LQT значительно лучше адаптирован под реальное звучание музыки, в нем более точно учитываются все нюансы. Великолепный формат. Вот ему бы нормальный кодер без выкрутасов и битрейт чуть-чуть повыше, чтобы смог кодировать более сложные семплы.

Это были мои субъективные "слуховые" исследования. Теперь посмотрим на АЧХ.

И снова анализ АЧХ сигналов только подтверждает мои выводы по результатам прослушивания: LQT выдает просто выдающийся результат, на сей раз лучше LAME. Прекрасная передача частотного диапазона, а потери на уровне 21 кГц это удаленный высокочастотный шум, что даже приветствуется. LAME отстает, но не сильно. Как и ожидалось, с передачей частотного диапазона у MP3 все нормально. А вот АЧХ семпла Ogg Vorbis принесло разочарование: посмотрите, какое урезание частот. Но звучит он лучше, чем можно было бы подумать, взглянув на его АЧХ. По всей видимости, за счет урезания некоторых частот получается возможным более точно передать общую звуковую картину.

И что же мы получаем в итоге? Два лидера: LAME и LQT на максимальном битрейте. OGG очень сильно наступает на пятки MP3 и победит в дальнейшем, если его разработчики доведут свою идею до финального воплощения: меньший размер и лучшее качество.

Исследование дельта-сигналов

Формат MP3 за счет высокого битрейта лучше на большинстве записей. Однако он сдает позиции, когда мы имеем дело с очень качественным звуком. Здесь LQT — абсолютный фаворит. Но разница между 256 и 320 не такая уж и большая, поэтому ею чаще всего можно поступиться ради более удобного и распространенного формата. Многие, да и я в том числе, так и делают в своей фонотеке, а особо качественные записи просто покупают на дисках.

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

Громкость разностного сигнала доходит до -25дБ, а его АЧХ внешне сильно напоминает широкополосный шум. Если прослушать дельта-сигнал, он звучит как широкополосный набор искажений, т.е. в нем явно слышна разница психоакустических моделей MP3 и LQT.

Сравнив по той же схеме MP3 с форматом OGG, ничего нового не получили (разница, конечно, меньше, но она все же значительная):

Аналогичные результаты получаются и для пары LQT и OGG.

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

Заключение

Что ж, попытаемся сделать некоторые окончательные выводы, представив их в виде практических рекомендаций:

  1. LAME — лучший представитель кодеров формата MP3, выдает практически максимум того, что можно получить из MP3. Для всех очень громких и "плотных" записей я бы рекомендовал использовать LAME на 320.
  2. OGG — некоторая структурная модификация формата MP3 с новой психоакустической моделью, математическая обработка и практическая реализация которой в корне отличается от MP3. Для малоценных и низкокачественных записей пойдет OGG в режиме 192 кбит/с (либо LQT в режиме 128 Transparent, в среднем получается 160-180 кбит/с).
  3. В отличие от MP3 и OGG, которые являются представителями кодеров формата MPEG-1, формат LQT базируется на спецификации MPEG-2 AAC. Формат AAC передает значительно лучшее качество на более низких битрейтах за счет принципиально другой обработки звука. Для записей средней ценности рекомендую LQT (на максимуме), либо на выбор (разница между ними невелика): OGG в режиме 256 кбит/с, LAME на 256. VBR режим кодера LAME лучше не использовать, он заметно хуже.
  4. Для очень качественных записей, на которых даже при кодировании в 320 кбит/с ясно слышно отсутствие чего-либо значительного в звучании семпла, попробовать закодировать семпл кодером Ogg Vorbis на 350 кбит/с.
  5. Если сжатый с потерями звук Вас всё-таки не устроит, придется покупать понравившиеся композиции на CD-DA диске.

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

Чем более объем памяти WT-карты, тем реалистичнее звучание (ибо в памяти хранится больше образцов, записанных с более высоким разрешением). Стандарт General MIDI описывает более 200 инструментов, для хранения образцов их звучания (таблиц) требуется не менее 8 Мбайт памяти (минимум 20 Кбайт для каждого образца).

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

Типовая схема подключения внешних устройств к IBM PC-ориентированной звуковой плате (карте ) приведена на рис.4.8.

Для сокращения потока данных используются иные (отличные от PCM) методы кодирования аналогового сигнала. Например, известна существенно сокращающая объем хранимых данных техника кодирования, основанная на известных характеристиках аналогового сигнала; при т.н. -кодировании аналоговый сигнал преобразуется в цифровой код, определяемый логарифмом величины сигнала (а не его линейным преобразованием). Недостаток метода - необходимость иметь априорную информацию о характеристиках исходного сигнала.

Известны методы преобразования, не требующие априорной информации об исходном сигнале. При дифференциальной импульсно-кодовой модуляции (DPCM, Differential Pulse Code Modulation ) сохраняется только разность между текущим и предшествующим уровнями сигнала (разница требует для цифрового представления меньшего количества бит, чем полная величина амплитуды). При дельта-модуляции (DM, Delta Modulation ) каждая выборка состоит всего из одного бита, определяющего знак изменения исходного сигнала (увеличение или уменьшение); дельта-модуляция требует повышенной частоты сэмплинга. Технологии дифференциальной импульсно-кодовой модуляции связаны с накапливающейся со временем ошибкой, поэтому применяются специальные меры периодической калибровки АЦП.

Наибольшее распространение при записи звука получила адаптивная импульсно-кодовая модуляция (ADPCM, Adaptive Pulse Code Modulation ), использующая 8- или 4-разрядное кодирование для разности сигналов. Технология впервые была применена фирмой Creative Labs и обеспечивает сжатие данных до 4:1.

Однако часто применяются иные (программные) методы сжатия/распаковки аудиоинформации; среди них в последнее время наиболее популярен формат MP3 , разработанный институтом Fraunhofer IIS (Fraunhofer Institutе Integrierte Schaltungen , www.iis.fhg.de) и фирмой THOMSON (полная спецификация формата MP3 опубликованы на сайте www.mp3tech.org). Полное название стандарта MP3 звучит MPEG-Audio Layer-3 (где MPEG суть Moving Picture Expert Group , не путать с предназначенным для использовании в телевидении высокой четкости стандартом MPEG-3).

MP3-кодирование данных происходит посредством выделения независимых отдельных блоков данных - фреймов. Для этого исходный сигнал при кодировании разбивается на равные по продолжительности участки, именуемые фреймами и кодируемые отдельно (для дополнительного снижения объема данных применяется сжатие с применением алгоритма Хеффмена ); при декодировании сигнал формируется из последовательности декодированных фреймов. Процесс кодирования требует ощутимого времени, декодирование (при воспроизведении) осуществляется `на лету".

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

Аудиоинфоpмация, сжатая по такой технологии, может передаваться потоком (streaming), а может храниться в файлах формата MP3 или WAV-MP3. Отличие второго от первого состоит в наличии дополнительного заголовка WAV-файла, что позволяет при наличии MP3 - кодека (codec, кодер и декодер в комплексном исполнении) в системе использовать для работы с таким файлом стандартные средства Windows. Параметры компрессии при кодировании файла можно варьировать в широких пределах. Качество, неотличимое большинством рядовых слушателей от качества CD, достигается при скорости передачи (bitrate, битрейт ) 112128 Кбайт в секунду; при этом сжатие составляет примерно 14:1 относительно исходного объема. Специалисты обычно требуют скорости передачи 256320 Кбайт/сек (это соответствует всего лишь двойной скорости CD-проигрывателя, но для большинства отечественных InterNet - линий недоступна).

Принципиальной особенностью MPEG-кодирования (как видео-, так и аудиоинформации) является компрессия с потерями . После упаковки и распаковки звукового файла методом MP3 результат не идентичен оригиналу `бит в бит". Напротив, упаковка целенаправленно исключает из упаковываемого сигнала несущественные компоненты, что и приводит к чрезвычайному возрастанию коэффициента сжатия (сжатие до 96:1 при качестве телефонного канала).

Для MP3 также написано множество удобного программного обеспечения. Налажено производство аппаратных (карманных и автомобильных) MP3 плееров (MP3 поддерживает до 5 каналов).

На рубеже 19981999 г. фирма XingTech (www.xingtech.com) первая использовала технологию переменного битрейта (VBR, Variable Bite Rate ). В случае VBR задается максимальный допустимый уровень потерь, а кодер выбирает минимальный битрейт, достаточный для выполнения поставленной задачи. Стоящие рядом в конечном потоке фреймы могут оказаться в итоге закодированными с разными параметрами.

По расчетам специалистов MP3 останется актуальным в ближайшее десятилетие (даже несмотря на существование форматов AAG и VQF и продвигаемого MS формата WMA ). О существовании иных кодеров (преобразователей информации из одного формата в другой) см. www.sulaco.org/mp3/free.html и www.xiph.org.

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

Для кодирования аудиообъектов MPEG-4 предлагает наборы инструментов как для `живых" звуков, так и для синтезированных. MPEG-4 устанавливает синтаксис двоичных потоков и процесс декодирования в терминах наборов инструментов, что позволяет применять различные алгоритмы сжатия. Диапазон предлагаемых стандартом скоростей потока для кодирования живых звуков - от 2 до 128 Кбайт/сек и выше. При кодировании с переменным потоком минимальная средняя скорость может оказаться еще меньше (порядка 1,2 Кбайт/сек). Для звука высшего качества применяется алгоритм AAC, который дает качество лучше, чем у CD при потоке в 10 с лишним раз меньше. Другой возможный алгоритм кодирования живого звука - TwinVQ . Для кодирования речи предлагаются алгоритмы HVXC (Harmonic Vector eXcitation Coding ) для скоростей потока 24 Кбайт/сек и CELP (Code Excited Linear Predictive ) для скоростей 424 Кбайт/сек.

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

Интересная часть `звуковой" составляющей - средства синтеза произвольных звуков и музыки. MPEG-4 предлагает в качестве стандарта подход, разработанный в колыбели многих передовых технологий - MIT Media Lab . и названный SA (Structured Audio , Структурированный Звук). Это не конкретный метод синтеза, а формат описания методов синтеза, в котором можно задать любой из существующих методов (а также, как утверждается, будущих). Для этого предлагаются два языка - SAOL (Structured Audio Orchestra Language ) и SASL (Structured Audio Score Language ). Первый задает оркестр, а второй - то, что этот оркестр должен играть. Оркестр состоит из инструментов, каждый инструмент представлен сетью элементов цифровой обработки сигналов - синтезаторов, цифровых фильтров, которые все вместе и синтезируют нужный звук. С помощью SAOL можно запрограммировать практически любой нужный инструмент, природный или искусственный звук. Сначала в декодер загружается набор инструментов, а затем поток данных SASL заставляет этот оркестр играть, управляя процессом синтеза; таким образом обеспечивается одинаковое звучание на всех декодерах при очень низком входном потоке и высокой точности управления. С появлением MPEG-4 фактически обретает более реальные и понятные очертания идея ITV (Interactive TeleVision, Интерактивное Телевидение ), о котором спорят уже несколько лет и под которым каждый понимает нечто свое (от простого `видео-по-запросу" до детективов с многовариантным развитием сюжета и участием зрителя).

Данные о MPEG-4 приведены в основном для информации о современных тенденциях записи и синтеза медиаданных, интересующихся отсылаем к cselt.it/mpeg и www.mpeg.org. В конце 2000 г. группа разработчиков MPEG планировала объявить об окончании работы над стандартом MPEG-7 (официальное название - Multimedia Content Description Interface ).

Итак, как мы уже знаем, для передачи звука с качеством аудио-компакт-дисков требуется пропускная способность, равная 1,411 Мбит/с. Понятно, что для практической передачи подобных данных через Интернет требуется значительное сжатие. Для этого были разработаны различные алгоритмы сжатия оцифрованного звука. Одним из самых популярных форматов является аудио-MPEG, имеющий три уровня (разновидности). Самым известным и качественным является MP3 (MPEG layer 3 - MPEG 3-го уровня). В Интернете можно найти огромное количество записей в MP3, не все из которых на самом деле являются легальными. Это привело к множеству судебных разбирательств, инициированных ущемленными в своих законных правах артистами и обладателями авторских прав. MP3 - это часть стандарта MPEG, предназначенного для сжатия видеосигнала. Методы сжатия движущихся изображений мы рассмотрим позднее в этой главе, а сейчас обратимся к сжатию звука.

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

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

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

Чтобы перейти от качественного описания этих эффектов к количественным, представим себе проведение некого эксперимента 1. Человек, находящийся в тихом помещении, надевает наушники, соединенные со звуковой картой компьютера. Компьютер генерирует звук (чистую синусоидальную звуковую волну) с частотой 100 Гц, сила которого постепенно возрастает. Испытуемый должен нажать клавишу на клавиатуре, как только он услышит звук. Компьютер запоминает силу звука, при которой была нажата клавиша, и повторяет эксперимент на частотах 200 Гц, 300 Гц и т. д., доходя до верхнего предела слышимых частот. Эксперимент необходимо провести над большим количеством испытуемых. На рис. 7.27, а показан график с логарифмическим масштабом на обеих осях, показывающий усредненную зависимость порога слышимости от частоты звука. Наиболее очевидный вывод, который можно сделать при взгляде на эту кривую, состоит в том, что нет никакой необходимости когда бы то ни было кодировать частоты, амплитуда которых ниже порога слышимости.

Например, если сила звука на частоте 100 Гц равна 20 дБ, этот звук можно не кодировать, и качество звучания при этом не ухудшится, так как уровень 20 дБ при 100 Гц находится ниже порога слышимости (рис. 7.27, а).

Теперь рассмотрим эксперимент 2. Пусть компьютер повторяет действия эксперимента 1, но на этот раз на каждую тестовую частоту будет накладываться синусоидальная звуковая волна постоянной амплитуды с частотой, скажем, 150 Гц. Мы обнаружим, что порог слышимости для частот, расположенных вблизи 150 Гц, резко возрастает. Это отражено на графике на рис. 7.27, б.


Рис. 7.27. Порог слышимости как функция частоты (а); эффект маскирования (б)

Из последнего наблюдения можно сделать следующий вывод: зная, какие сигналы маскируются более мощными сигналами на близлежащих частотах, мы можем пренебречь соответствующими частотами и не кодировать их, экономя тем самым биты. Из рис. 7.27, б очевидно, что сигналом с частотой 125 Гц мо^ п ° полностью пренебречь, и никто не заметит разницы. Знание свойств времени° г ° маскирования позволяет даже после прекращения звучания громкого сип* 2 ^ в каком бы то ни было частотном диапазоне в течение некоторого времени (пока ухо настраивается на меньшую мощность звука) продолжать пренебрегать кодированием этой частоты. Суть алгоритма MP3 состоит в разложении сигнала в ряд Фурье для получения силы звука на каждой из частот с последующей передачей исключительно немаскированных частот, кодируемых минимально возможным числом бит.

Теперь, зная основной принцип, мы можем рассмотреть, как производится само кодирование. Сжатие звука выполняется путем замеров формы сигналов, производимых с частотой 32 000, 44 100 или 48 000 раз в секунду. Замеры могут сниматься по одному или двум каналам в одной из четырех комбинаций:

1. Монофонический звук (один входной поток).

2. Двойной монофонический звук (например, звуковая дорожка на английском

и японском).

3. Разъединенное стерео (каждый канал сжимается отдельно).

4. Объединенное стерео (учитывается межканальная избыточность сигнала).

Для начала выбирается желаемая выходная битовая скорость. С помощью алгоритма MP3 можно сжать записанную на компакт-диск стереофоническую запись рок-н-ролла до 96 Кбит/с с потерей качества, едва заметной даже для фанатов рок-н-ролла, не лишенных слуха. Если мы хотим «перегнать в MP3» фортепианный концерт, нам понадобится битовая скорость по крайней мере 128 Кбит/с. Чем обусловлена такая разница? Дело в том, что соотношение сигнал/шум в рок-н- ролле гораздо выше, чем в фортепианном концерте (только в техническом смысле, разумеется). Можно, впрочем, выбрать меньшую битовую скорость и получить более низкое качество воспроизведения.

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

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

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

Лучшие статьи по теме