English version

ITU-T G.722.1 Аудио кодек от 16 кбит/с до 32 кбит/с

ITU-T В рекомендации ITU-T G.722.1 дается описание алгоритма цифрового широкополосного аудио кодека, который позволяет кодировать аудио сигналы в полосе частот от 50 Гц до 7 кГц со скоростью цифрового потока от 16 кбит/с до 32 кбит/сек.

Отсчёты входного сигнала для кодера должны быть представлены в формате 16 бит с частотой дискретизации 16 кГц.

Кодек выполнен на основе MLT-преобразовани (Modulated Lapped Transform) и оперирует с кадрами аудиоданных длиной 20 мс (320 отсчётов). MLT-преобразование проводится на кадрах длиной 640 отсчётов с 50 процентным перекрытием между кадрами. Таким образом, общая алгоритмическая задержка равна 40 мс. Дополнительные задержки в практическом приложении этого алгоритма возникают по следующим причинам:

  • процессы кодирования и декодирования требуют некоторого времени;
  • задержка при передаче по каналу;
  • задержка мультиплексирования при комбинировании аудиоданных с другими видами данных;
  • буферизация данных.

Каждые 20 мс кадр из 640 последних отсчётов аудиоданных подаётся на блок MLT-преобразования. Каждый такой кадр преобразуется в 320 mlt-коэффициентов, затем каждый фрейм mlt-коэффициентов кодируетс независимо, т.е. никакой информации о предыдущих фреймах не сохраняется. MLT-преобразование представляет собой один из видов быстрого дискретного косинусного преобразования. После MLT-преобразования фрейм mlt-коэффициентов подаётся на блок вычисления и квантования огибающей mlt-спектра. В этом блоке mlt-спектр, представленный 320 mlt-коэффициентами, делится на 14 блоков по 20 mlt-коэффициентов. Каждый блок описывает полосу в 500 Гц. Сорок mlt-коэффициентов, представляющих частотный диапазон выше 7кГц, не используются. Огибающая mlt-спектра внутри каждой полосы определяетс как среднеквадратическое значение 20 mlt-коэффициентов соответствующего блока. Полученные 14 среднеквадратических значений квантуются, кодируютс при помощи кода Хаффмана переменной длины и передаются мультиплексору. Используя квантованную огибающую mlt-спектра и учитывая количество неиспользованных бит, оставшихся после её кодирования, при помощи процедуры категоризации (categorization procedure) генерируются 16 возможных наборов параметров для квантования и кодирования mlt-коэффициентов. Правила генерации этих наборов параметров (процедура категоризации) однозначно определены и используютс также в декодере. Каждый набор параметров предусматривает различное число бит для кодирования одних и тех же mlt-коэффициентов. Затем mlt-коэффициенты квантуются и кодируются при помощи кода Хаффмана переменной длины 16-ю различными способами, используя соответствующие параметры, определённые в процедуре категоризации. После этого выбирается лучший из способов по критерию, указанному ниже, и номер выбранного способа кодируется четырьм битами для передачи декодеру. Для каждого способа вычисляется полное число бит, необходимое для кодирования всего фрейма аудиоданных (с учётом числа бит, необходимого для кодирования огибающей mlt-спектра и номера выбранного способа). Размер фрейма на выходе кодера должен быть постоянным и составлять 480 или 640 бит для скорости цифрового потока 24 кбит/с или 32 кбит/с соответственно. Поэтому из 16 способов кодирования mlt-коэффициентов выбираетс тот, у которого полное число бит, необходимое для кодирования фрейма аудиоданных (вычислялось ранее), не превышает 480 (или 640) и наиболее близко к этому значению. Кодовые последовательности, представляющие огибающую mlt-спектра, номер выбранного способа кодирования mlt-коэффициентов и кодированные выбранным способом mlt-коэффициенты, пакуются в битовый поток для передачи декодеру. Если число бит, необходимое для кодирования фрейма аудиоданных, при выбранном способе кодирования оказывается меньше 480 (или 640), биты в конце выходного фрейма, оставшиеся неиспользованными, устанавливаютс в единицы.

В декодере сперва декодируется огибающая mlt-спектра. Также как и в кодере, по огибающей mlt-спектра и числу оставшихся бит в текущем фрейме при помощи процедуры категоризации вычисляются 16 возможных наборов параметров квантования и кодирования mlt-коэффициентов. Затем декодируется номер выбранного способа кодирования mlt-коэффициентов. После этого mlt-коэффициенты декодируются в соответствии с выбранным способом. Сорок mlt-коэффициентов, представляющих частоты выше 7 кГц устанавливаютс в 0. Затем из восстановленных mlt-коэффициентов при помощи обратного MLT-преобразовани получаются 320 выходных отсчётов временной области. Для выполнения обратного MLT-преобразования в декодере сохраняется некоторая информация о предыдущем фрейме. Если на кодер поступает внешний сигнал о том, что текущий фрейм искажён, кодер использует mlt-коэффициенты предыдущего фрейма. Если предыдущий фрейм также был искажён, все mlt-коэффициенты текущего фрейма обнуляются.


Полное описание рекомендации можно найти в документе (или на сайте ITU):

  • ITU-T Recommendation G.722.1, Coding at 24 kbit/s and 32 kbit/s for hands-free operation in systems with low frame loss.

[наверх] [на главную]


Реализация для семейства TMS320C54x

Алгоритм реализован для ЦПОС семейства TMS320C54x фирмы Texas Instruments.

Реализация удовлетворяет следующим требованиям:

  • функционирует в режиме реального времени;
  • совместима со всеми ЦПОС в рамках семейства TMS320C54x (не используютс специфические особенности старших моделей, таких как TMS320C548, TMS320C549 и пр.);
  • полностью совместима с требованиями стандарта ITU-T G.722.1 – достигнуто побитовое соответствие тестовым векторам;
  • все функции алгоритма составлены с учетом соглашений на вызов языка Си;
  • совместима со стандартом eXpress DSP.

Ресурсоемкость реализации

 

24 кбит/с

G.722.1 кодер

G.722.1 декодер

Вычислительный ресурс (пиковая загрузка), млн.оп./с.

3.2

3.9


 

32 кбит/с

G.722.1 кодер

G.722.1 декодер

Вычислительный ресурс (пиковая загрузка), млн.оп./с.

3.3

4.4


Память

программа, К слов

3

таблицы, К слов

14

данные, К слов

1.5

Всего, К слов

18.5

[наверх] [на главную]

Звук

По следующим звуковым файлам вы сможете оценить качество работы аудио кодека:

Исходная речь (16 кГц, моно)

g7221_in.wav

Скорость кодирования 16 кбит/с при нулевых потерях.

g7221_24_out.wav

Скорость кодирования 24 кбит/с при нулевых потерях.

g7221_24_out.wav

Скорость кодирования 32 кбит/с при нулевых потерях.

g7221_32_out.wav


Исходная музыка (16 кГц, моно)

g7221_in.wav

Скорость кодирования 16 кбит/с при нулевых потерях.

g7221_24_out.wav

Скорость кодирования 24 кбит/с при нулевых потерях.

g7221_24_out.wav

Скорость кодирования 32 кбит/с при нулевых потерях.

g7221_32_out.wav

[наверх] [на главную]

Документация

Можно получить подробную документацию по представленным реализациям алгоритма ITU-T G.722.1, описание API реализаций, подробные инструкции по встраиванию алгоритма в систему обработки речевых сигналов:
ITU-T G.722.1 для TMS320C54x (формат Word)

[наверх] [на главную]


Навигация

Описание рекомендации

Реализация для TMS320C54x

Звук

Документация


По всем вопросам, пожалуйста, обращайтесь по e-mail:

e-mail в графическом файле

Подробная контактная информация представлена в разделе "О Центре"

Copyright © 1999-2010, Центр ЦОС СПб ГУТ