Главная » Программирование звука » Компрессия IMA ADPCM

0

Ассоциация  изготовителей  и  пользователей  интерактивных  мультимедийных  систем (Interactive Multimedia Association, IMA), в настоящее время вошедшая в состав  Ассоциации  издателей  программных  продуктов  (Software  Publishers  Association)   это  промышленная  организация,  созданная  для  того,  чтобы  установить стандарты  хранения  мультимедийной  информации.  B  отличие  от  многих  международных  стандартов,  разработанных  для  аппаратной  реализации,  стандарты  IMA специально  разработаны  так,  чтобы  их  можно  было  легко  поддерживать  на  настольных компьютерах. Ha настоящий момент IMA уже разработала единый стандарт,  описывающий  компрессию  как  аудио-,  так  и  видеоинформации.  Этот  стандарт  основан  на  ранее  разработанном  компанией  Intel  методе  компрессии  DVI. Этот  метод  компрессии  звука  широко  известен  под  названием  IMA  ADPCM (адаптивная дифференциальная импульсно-кодовая модуляция, АДИКМ).

Хотя  в  этом  стандарте  многие  детали  остались  неописанными,  все  имеющиеся  на  сегодняшний  день  реализации  IMA  ADPCM  работают  приблизительно одинаково.   Поток   аудиоданных   преобразуется   в   последовательность   пакетов. Каждый  пакет  состоит  из  заголовка  (от  2  до  8  байт),  в  котором  записывается информация   о   состоянии   и   последовательности   4-битных   сжатых   отсчетов. B  каждом  4-битном  числе  закодирована  разница  между  двумя  последовательными 16-битными отсчетами несжатых данных.

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

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

Для  работы  IMA  ADPCM необходимо  всего  23  бита  информации  о  состоянии процесса.  Модули  компрессии  записывают  информацию  о  своем  состоянии  в  начале  каждого  пакета,  что  позволяет  модулю  воспроизведения  осуществлять  декомпрессию каждого блока независимо от других блоков. До тех пор, пока размеры

блоков будут относительно небольшие, воспроизведение можно будет начать по-

чти с любого отсчета.

K сожалению, этот стандарт не показывает, как записывать информацию о статусе в файл. Также не стандартизована и обработка стереопотоков. Две распространенные  реализации  IMA  ADPCM,  одна  из  которых  сделана  фирмой  Microsoft, а  вторая   фирмой  Apple,  записывают  слегка  различную  информацию,  немного по-разному трактуемую при воспроизведении.

Источник: Кинтцель Т.  Руководство программиста по работе со звуком = A Programmer’s Guide to Sound: Пер. с англ. М.: ДМК Пресс, 2000. 432 с, ил. (Серия «Для программистов»).

По теме:

  • Комментарии