Методы сжатия звука. Намечается ли новое тестирование? Типы битрейта MP3

Инструмент 24.04.2019
Инструмент

Некоторые методы сжатия звуковых данных (доп. к Лекции 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-файлов. Известные как “модули программ воспроизведения”, они хранят в себе не только “электронные ноты”, но и образцы оцифрованного звука, которые используются как шаблоны индивидуальных нот. Таким способом достигается однозначность воспроизведения звука. К недостаткам формата следует отнести большие затраты времени при наложении друг на друга шаблонов одновременно звучащих нот.

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

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

Статистические методы присваивают коды переменной длины звуковым сэмплам в соответствии с их частотностью. При 8-битном сэмплировании имеется всего 256 различных сэмплов, поэтому в большом звуковом файле сэмплу могут быть распределены равномерно. Такой файл не удастся хорошо сжать методом Хаффмана. При 16-битном сэмплировании допускается более 65000 звуковых фрагментов. В этом случае, возможно, что некоторые сэмплы будут встречаться чаще, а другие - реже. При сильной асимметрии вероятностей хороших результатов можно добиться с помощью арифметического кодирования.

Методы, основанные на словарном подходе, предполагают, что некоторые фразы будут встречаться часто на протяжении всего файла. Это происходит в текстовом файле, в котором отдельные слова или их последовательности повторяются многократно. Звук, однако, является аналоговым сигналом и значения конкретных сгенерированных сэмплов в большой степени зависит от работа АЦП. Например, при 8-битном сэмплировании, волна в 8 мВ становится числовым сэмплом, равным 2, но близкая ей волна, скажем, в 7.6 мВ или 8.5 мВ может стать другим числом. По этой причине, речевые фрагменты, содержащие совпадающие фразы и звучащие для нас одинаково, могут слегка отличаться при их оцифровывании. Тогда они попадут в словарь в виде разных фраз, что не даст ожидаемого сжатия. Таким образом, словарные методы не очень подходят для сжатия звука.

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

Идея подавления пауз заключается в рассмотрении малых сэмплов, как если бы их не было (то есть, они равны нулю). Такое обнуление будет порождать серии нулей, поэтому метод подавления пауз, на самом деле, является вариантом RLE, приспособленным к сжатию звука. Этот метод основан на особенности звукового восприятия, которое состоит в терпимости уха человека к отбрасыванию еле слышных звуков. Аудиофайлы, содержащие длинные участки тихого звука будут лучше сжиматься методом подавления пауз, чем файлы, наполненные громкими звуками. Этот метод требует участие пользователя, который будет контролировать параметры, задающие порог громкости для сэмплов. При этом необходимы еще два параметра, они не обязательно контролируются пользователем. Один параметр служит для определения самых коротких последовательностей тихих сэмплов, обычно, это 2 или 3. А второй задает наименьшее число последовательных громких сэмплов, при появлении которых прекращается тишина или пауза. Например, после 15 тихих сэмплов может последовать 2 громких, а затем 13 тихих, что будет определено как одна большая пауза длины 30, а аналогичная последовательность из 15, 3 и 12 сэмплов, станет двумя паузами с коротким звуком между ними.

Уплотнение основано на том свойстве, что ухо лучше различает изменения амплитуды тихих звуков, чем громких. Типичное АЦП звуковых карт компьютеров использует линейное преобразование при переводе напряжения в числовую форму. Если амплитуда была конвертирована в число , то амплитуда будет переведена в число . Метод сжатия на основе уплотнения сначала анализирует каждый сэмпл звукового файла и применяет к нему нелинейную функцию для сокращения числа бит, назначенных этому сэмплу. Например, при 16-битных сэмплах, кодер с уплотнением может применять следующую простую формулу

(6.1)

для сокращения каждого сэмпла. Эта формула нелинейно отображает 16-битные сэмплы в 15-битные числа интервала , причем маленькие (тихие) сэмплы меньше подвергаются искажению, чем большие (громкие). Табл. 6.7 иллюстрирует нелинейность этой функции. На ней показано 8 пар сэмплов, причем в каждой паре разность между сэмплами равна 100. Для первой пары разность между их образами равна 34, а разность между образами последней (громкой) пары равна 65. Преобразованные 15-битные числа могут быть приведены к исходным 16-битным сэмплам с помощью обратной формулы

. (6.2)

Разность

Разность

Табл. 6.7. Отображение 16-битных сэмплов в 15-битные числа.

Сокращение 16-битных сэмплов до 15-битных чисел не дает существенного сжатия. Лучшее сжатие получается, если в формулах (6.1) и (6.2) заменить число 32767 меньшим. Например, если взять число 127, то 16-битные сэмплы будут представлены 8-битными числами, то есть, коэффициент сжатия буде равен 0.5. Однако, декодирование будет менее аккуратным. Сэмпл 60100 будет отображен в число 113, а при декодировании по формуле (6.2) получится сэмпл 60172. А маленький 16-битный сэмпл 1000 будет отображен в 1.35, что после округления даст 1. При декодировании числа 1 получится 742, что сильно отличается от исходного сэмпла. Здесь коэффициент сжатия может быть параметром, непосредственно задаваемым пользователем. Это интересный пример метода сжатия, при котором коэффициент сжатия известен заранее.

На практике нет необходимости обращаться к уравнениям (6.1) и (6.2), поскольку результат отображения можно заранее приготовить в виде таблицы. Тогда и кодирование, и декодирование будут делаться быстро.

Уплотнение не ограничивается уравнениями (6.1) и (6.2). Более изощренные методы, такие как -правило и -правило, широко применяются на практике и входят во многие международные стандарты сжатия.

Наиболее известны Audio MPEG, PASC и ATRAC. Все они используют так называемое "кодирование для восприятия" (perceptual coding) при котором из звукового сигнала удаляется информация, малозаметная для слуха. В результате, несмотря на изменение формы и спектра сигнала, его слуховое восприятие практически не меняется, а степень сжатия оправдывает незначительное уменьшение качества. Такое кодирование относится к методам сжатия с потерями (lossy compression), когда из сжатого сигнала уже невозможно точно восстановить исходную волновую форму. Приемы удаления части информации базируются на особенности человеческого слуха, называемой маскированием: при наличии в спектре звука выраженных пиков (преобладающих гармоник) более слабые частотные составляющие в непосредственной близости от них слухом практически не воспринимаются (маскируются). При кодировании весь звуковой поток разбивается на мелкие кадры, каждый из которых преобразуется в спектральное представление и делится на ряд частотных полос. Внутри полос происходит определение и удаление маскируемых звуков, после чего каждый кадр подвергается адаптивному кодированию прямо в спектральной форме. Все эти операции позволяют значительно (в несколько раз) уменьшить объем данных при сохранении качества, приемлемого для большинства слушателей. Каждый из описанных методов кодирования характеризуется скоростью битового потока (bitrate), с которой сжатая информация должна поступать в декодер при восстановлении звукового сигнала. Декодер преобразует серию сжатых мгновенных спектров сигнала в обычную цифровую волновую форму.

Audio MPEG - группа методов сжатия звука, стандартизованная MPEG (Moving Pictures Experts Group - экспертной группой по обработке движущихся изображений). Методы Audio MPEG существуют в виде нескольких типов - MPEG-1, MPEG-2 и т.д.; в настоящее время наиболее распространен тип MPEG-1. Существует три уровня (layers) Audio MPEG-1 для сжатия стереофонических сигналов: 1 - коэффициент сжатия 1:4 при потоке данных 384 кбит/с; 2 - 1:6..1:8 при 256..192 кбит/с; 3 - 1:10..1:12 при 128..112 кбит/с. Минимальная скорость потока данных в каждом уровне определяется в 32 кбит/с; указанные скорости потока позволяют сохранить качество сигнала примерно на уровне компакт-диска. Все три уровня используют входное спектральное преобразование с разбиением кадра на 32 частотные полосы. Наиболее оптимальным в отношении объема данных и качества звука признан уровень 3 со скоростью потока 128 кбит/с и плотностью данных около 1 Мб/мин. При сжатии с более низкими скоростями начинается принудительное ограничение полосы частот до 15-16 кГц, а также возникают фазовые искажения каналов (эффект типа фэйзера или фленжера). Audio MPEG используется в компьютерных звуковых системах, CD-i/DVD, "звуковых" дисках CD-ROM, цифровом радио/телевидении и других системах массовой передачи звука. комплект MPEG-1 предусмотрен для кодирования сигналов, оцифрованных с частотой дискретизации 32, 44.1 и 48 КГц. Как было указано выше, комплект MPEG-1 имеет три уровня (Layer I, II и III). Эти уровни имеют различия в обеспечиваемом коэффициенте сжатия и качестве звучания получаемых потоков. Layer I позволяет сигналы 44.1 КГц / 16 бит хранить без ощутимых потерь качества при скорости потока 384 Кбит/с, что составляет 4-х кратный выигрыш в занимаемом объеме; Layer II обеспечивает такое же качество при 194 Кбит/с, а Layer III - при 128 (или 112). Выигрыш Layer III очевиден, но скорость компрессии при его использовании самая низкая (надо отметить, что при современных скоростях процессоров это ограничение уже не заметно). Фактически, Layer III позволяет сжимать информацию в 10-12 раз без ощутимых потерь в качестве. - Стандарт MPEG-2 был специально разработан для кодирования ТВ сигналов вещательного телевидения. В апреле 1997 этот комплект получил «продолжение» в виде алгоритма MPEG-2 AAC (MPEG-2 Advanced Audio Coding - продвинутое аудио кодирование).

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

Стандарт MPEG-7 вообще в корне отличается от всех иных стандартов MPEG. Стандарт разрабатывается не для установления каких-то рамок для передачи данных или типизации и описания данных какого-то конкретно рода. Стандарт предусмотрен как описательный, предназначенный для регламентации характеристик данных любого типа, вплоть до аналоговых. Использование MPEG-7 предполагается в тесной связи с MPEG-4.

Для удобства обращения со сжатыми потоками, все алгоритмы MPEG разработаны таким образом, что позволяют осуществлять декомпрессию (восстановление) и воспроизведение потока одновременно с его получением (download ) - потоковая декомпрессия «на лету» (stream playback ). Эта возможность очень широко используются в интернете, где скорость передачи информации ограничена, а с использованием подобных алгоритмов появляется возможность обрабатывать информацию прямо во время ее получения не дожидаясь окончания передачи.

PASC Precision Adaptive Sub-band Coding - точное адаптивное внутриполосное кодирование) - частный случай Audio MPEG-1 Layer 1 со скоростью потока 384 кбит/с (сжатие 1:4). Применяется в системе DCC.

ATRAC Adaptive TRansform Acoustic Coding - акустическое кодирование адаптивным преобразованием) базируется на стереофоническом звуковом формате с 16-разрядным квантованием и частотой дискретизации 44.1 кГц. ATRAC (Adaptive TRansform Acoustic Coding) разделяет 16-битный 44,1 кГц цифровой аудио сигнал на 52 частотных диапазона (после быстрого преобразования Фурье). Диапазоны с низкими частотами передаются более точно, чем с высокими. Алгоритм использует психо-акустическое кодирование, где применяется эффект маскировки и порог слышимости звука, в результате чего часть информации может быть отброшена и выходящий поток данных имеет размер в 1/5 оригинального. Каждый канал обрабатывается независимо (портативный MD привод Sony MZ-1 использует один чип ATRAC кодера/декодера на канал). Другой алгоритм кодирования, PASC (Precision Adaptive Sub-band Coding - сейчас используется Philips в DCC ) разделяет цифровой сигнал на промежутки равного размера и удаляет часть информации (уменьшая поток до 1/4 оригинального). PASC является алгоритмом MPEG Layer 1 (его можно распаковать проигрывателями MPEG Layer 1 после небольшой предварительной коррекции).
Оба алгоритма выполняют сжатие данных, обеспечивая хранение 16-битного звукового потока. Цель алгоритма - сжать поток для уменьшения занимаемого им пространства на диске. Существует огромного множество алгоритмов сжатия. Некоторые алгоритмы сжимают данные без потерь (они используются, к примеру, в архиваторах), при этом информация после декомпрессии не отличается от оригинала. PASC и ATRAC относятся к алгоритмам с потерей части информации, они не пытаются сохранить каждый бит входящих данных, они просто стараются выделить и сохранить акустически "важные" биты. Поэтому важно найти звуки, которые будут замаскированы человеческой слуховой системой, которые человек не сможет услышать даже при их воспроизведении. Оба алгоритма сжатия звука прекрасно справляются с этой задачей. Какой звуковой поток записывается на минидиск после сжатия ATRAC? Для стерео сигнала - 292162,5 бит/с. ATRAC сжимает 512 входящих 16-битовых семплов (1024 байта) в "звуковые группы" ATRAC (212 байт), в результате получается коэффициент сжатия 4,83:1. - 44100 семплов/с (входящий поток одного канала) - 512 семплов на звуковую группу (получаем 86,133 звуковых групп/с/канал) - 2 канала (получаем 172,266 звуковых групп/с)
- 212 байт/звуковую группу (получаем 36,5 кбайт/с в стерео) - 8 бит/байт (получаем кбит/с) - 292162,5 бит/с ATRAC (используется в MDLP) работает на 132 кбит/с (LP2) и 66 кбит/с (LP4).

Общие сведения

При первичном кодировании в студийном тракте используется

обычно равномерное квантование отсчетов звукового сигнала (ЗС) с

разрешением ∆А= 16–24 бит/отсчет при частоте дискретизации f = 44,1–96

кГц. В каналах студийного качества обычно ∆А =16 бит/отсчет, f = 48 кГц,

полоса частот кодируемого звукового сигнала ∆F = 20–20000 Гц.

Динамический диапазон такого цифрового канала составляет около 54 дБ.

Если f = 48 кГц и ∆А = 16 бит/отсчет, то скорость цифрового потока при

передаче одного такого сигнала равна V = 48x16 = 768 кбит/с. Это требует

суммарной пропускной способности канала связи при передаче звукового

сигнала форматов 5.1 (Dolby Digital) или 3/2 плюс канал сверхнизких

частот (Dolby Surround, Dolby-Pro-Logic, Dolby THX) более 3,840 Мбит/с.

Но человек способен своими органами чувств сознательно обрабатывать

лишь около 100 бит/с информации. Поэтому можно говорить о присущей

первичным цифровым звуковым сигналам значительной избыточности.

Статистическая избыточность обусловлена наличием

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

Однако даже при использовании достаточно сложных процедур обработки устранение статистической избыточности звуковых сигналов позволяет в конечном итоге уменьшить требуемую пропускную способность канала связи лишь на 15–25% по сравнению с ее исходной величиной, что никак нельзя считать революционным достижением.

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



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

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

К настоящему времени достаточное распространение в радиовещании получили также еще нескольких стандартов MPEG, таких, как MPEG-2 ISO/IEC 13818-3, 13818-7 и MPEG-4 ISO/IEC 14496-3. В отличие от этого в США был разработан стандарт Dolby AC-3 (А/52) в качестве альтернативны стандартам MPEG. Несмотря на значительное разнообразие алгоритмов компрессии цифровых аудиоданных, структура кодера, реализующего такой алгоритм обработки сигналов, может быть представлена в виде обобщенной схемы, показанной на рис. 5.1.

Семейство стандартов MPEG

MPEG расшифровывается как «Moving Picture Coding Experts Group», дословно – группа экспертов по кодированию подвижных изображений. MPEG ведет свою историю с января 1988 года. Начиная с первого собрания в мае 1988 года, группа начала расти, и выросла до очень большого коллектива специалистов. Обычно, в собрании MPEG

принимают участие около 350 специалистов из более чем 200 компаний.

Большая часть участников MPEG – это специалисты, занятые в тех или

иных научных и академических учреждениях.

Стандарт MPEG-1

Стандарт MPEG-1 (ISO/IEC 11172-3) включает в себя три алгоритма различных уровней сложности: Layer (уровень) I, Layer II и Layer III. Общая структура процесса кодирования одинакова для всех уровней. Однако, несмотря на схожесть уровней в общем подходе к кодированию, уровни различаются по целевому использованию и внутренним механизмам. Для каждого уровня определен свой цифровой поток (общая ширина потока) и свой алгоритм декодирования.

MPEG-1 предназначен для кодирования сигналов, оцифрованных с частотой дискретизации 32, 44.1 и 48 КГц. Как было указано выше, MPEG-1 имеет три уровня (Layer I, II и III). Эти уровни имеют различия в обеспечиваемом коэффициенте сжатия и качестве звучания получаемых потоков.

MPEG-1 нормирует для всех трех уровней следующие номиналы скоростей цифрового потока: 32, 48, 56, 64, 96, 112, 192, 256, 384 и 448 кбит/с, число уровней квантования входного сигнала – от 16 до 24. Стандартным входным сигналом для кодера MPEG-1 принят цифровой сигнал AES/EBU (двухканальный цифровой звуковой сигнал с разрядностью квантования 20–24 бита на отсчет). Предусматриваются следующие режимы работы звукового кодера:

− одиночный канал (моно);

− двойной канал (стерео иди два моноканала);

− joint stereo (сигнал с частичным разделением правого и левого каналов).

Важнейшим свойством MPEG-1 является полная обратная совместимость всех трех уровней. Это означает, что каждый декодер может декодировать сигналы не только своего, но и нижележащих уровней. MPEG-1 оказался первым международным стандартом цифрового сжатия звуковых сигналов и это обусловило его широкое применение во многих областях: вещании, звукозаписи, связи и мультимедийных приложениях. Наиболее широко используется Уровень II, он вошел составной частью в европейские стандарты спутникового, кабельного и наземного цифрового ТВ вещания, в стандарты звукового вещания, записи на DVD, Рекомендации МСЭ BS.1115 и J.52. Уровень III (его еще называют МР3) нашел широкое применение в цифровых сетях с интегральным обслуживанием (ISDN) и в сети Интернет. Подавляющее большинство музыкальных файлов в сети записаны именно в этом стандарте.

Стандарт MPEG-2

MPEG-2 это расширение MPEG-1 в сторону многоканального звука. Следствием совместимости MPEG-2 с MPEG-1 в части кодирования звука стало полное использование трехуровневой системы, разработанной в MPEG-1 для обработки звуковых данных кодерами стандарта MPEG-2. Различия между стандартами начинаются при переходе от двухканалъного звука, принятого за основу в MPEG-1, к многоканальному звуку, поддерживаемому в MPEG-2.

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

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

добавлением нескольких (до 7) языковых каналов со скоростью 64 кбит/с к многоканальному потоку 384 кбит/с. Возможна передача

дополнительных звуковых каналов для людей с ухудшением зрения и слуха.

Система улучшенного кодирования звука ААС. Одной из лучших

современных систем сжатия звука признана система ААС (Advanced Audio Coding – усовершенствованная система кодирования звука),

специфицированная в седьмой части стандарта ISO/IEC 13818. В отличие от других методов сжатия звуковых данных, принятых в MPEG-2, она не обладает свойством обратной совместимости – декодеры MPEG-1 не могут декодировать сигнал ААС.

На данный момент существуют пять разновидностей формата ААС:

2. AT&T а2b ААС;

3. LiquifierPROAAC;

4. Astrid/Quartex ААС;

Все эти модификации несовместимы между собой, имеют собственные кодеры/ декодеры и неодинаковы по качеству.


Стандарт MPEG-4

В качестве средств компрессии звука в MPEG-4 (ISO/IEC 14496-3) используется комплекс нескольких стандартов кодирования звука: улучшенный алгоритм MPEG-2 ААС, алгоритм TwinVQ, а также алгоритмы кодирования речи HVXC и CELP. Кроме того, MPEG-4 предусматривает множество механизмов обеспечения масштабируемости и предсказания. Однако в целом, стандарт MPEG-4 ААС, предусматривающий правила и алгоритмы кодирования звука, является, в общем, продолжением MPEG-2 AAC.

MPEG-4 – аудио предлагает широкий перечень приложений, которые

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

Метод кодирования MPEG-4 CELP. Метод кодирования MPEG-4

CELP предназначен для обработки речевых сигналов. На практике

применяются в основном три основных класса кодеров: кодеры формы,

вокодеры и гибридные кодеры.

Кодеры формы характеризуются способностью сохранять основную

форму речевого сигнала. К кодерам формы относятся кодеры с импульсно

кодовой модуляцией (ИКМ), кодеры с дифференциальной ИКМ (ДИКМ),

адаптивной дифференциальной ИКМ (АДИКМ) и др. Системы передачи с

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

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

Стандарт MPEG-7

Аудио MPEG-7 FCD имеет пять технологий: структура описания звука, которая включает в себя масштабируемые последовательности, дескрипторы нижнего уровня и униформные сегменты тишины; средства описания тембра музыкального инструмента; средства распознавания звука; средства описания голосового материала и средства описания мелодии.

Описание системы аудио MPEG-7. Аудиоструктура содержит

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

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

Сразу после своего появления формат MP3 приобрел огромную

популярность у пользователей персонального компьютера, на аудиодиск

размером 650 Мб можно поместить в 10 раз больше звуковой информации, при этом сохранив приемлемое качество. Созданные таким образом файлы можно без проблем пересылать через Интернет, использовать в переносных устройствах, собирать музыкальные коллекции.

OggVorbis принадлежит к тому же типу форматов аудиосжатия, что и МР3, AAC, VQF, РАС, QDesign AIFF и WMA, т.е. к форматам сжатия с потерями. Психоакустическая модель, используемая в OggVorbis по

принципам действия близка к МР3 и иже с ними, но и только – математическая обработка и практическая реализация этой модели в корне

независимым от всех предшественников.

Главное неоспоримое преимущество формата OggVorbis – это его

полная открытость и бесплатность. WMA и Astrid/Quartex тоже бесплатны, но авторы этих форматов не опубликовали исходные коды своих разработок, a Xiphophorus именно это и сделала. OggVorbis создается в рамках проекта GNU и полностью подчиняется GNU GPL (генеральная публичная лицензия). А это означает, что формат совершенно открыт для коммерческого и некоммерческого использования, его коды можно модифицировать безо всяких ограничений, группа разработчиков оставляет за собой лишь право утверждать новые спецификации формата.

OggVorbis использует математическую психоакустическую модель отличную от МР3, и это сказывается на звучании. MP3 и OggVorbis трудно сравнивать, но в целом звучание OggVorbis гораздо лучше.

При кодировании кодеки OggVorbis используют VBR (variable bitrate), подобно некоторым МР3 кодекам, что позволяет существенно уменьшить размер композиции, при незначительной потере качества.

Что же касается скорости кодирования, то тут пока нет никаких выдающихся результатов. Скорость кодека OggVorbis не быстрее кодека МР3. Разработчики признают, что код кодека совершенно не оптимизирован, так как эта программа была выпущена как можно быстрее для демонстрации спецификации, чтобы не быть голословными. Т.е., в будущем можно ожидать существенного улучшения скоростных характеристик, особенно, когда подключатся сторонние производители.

OggVorbis, как и МР3, изначально разрабатывался как сетевой

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

Формат сжатия звука 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



Рекомендуем почитать

Наверх