Линейное предсказание с возбуждением кода

редактировать
алгоритм кодирования

линейное предсказание с кодовым возбуждением (CELP ) - это алгоритм линейного предсказания речевого кодирования, первоначально предложенный Манфред Р. Шредер и Бишну С. Атал в 1985 году. В то время он обеспечивал значительно лучшее качество, чем существующие алгоритмы с низкой скоростью передачи данных, такие как линейное предсказание с остаточным возбуждением. (RELP) и кодирование с линейным предсказанием (LPC) вокодеры (например, FS-1015 ). Наряду с его вариантами, такими как алгебраический CELP, ослабленный CELP, CELP с малой задержкой и линейное предсказание с возбуждением векторной суммой, он в настоящее время наиболее широко используемый алгоритм кодирования речи. Он также используется в кодировании речи MPEG-4 Audio. CELP обычно используется как общий термин для класса алгоритмов, а не для конкретного кодека.

Содержание

  • 1 Введение
  • 2 Декодер CELP
  • 3 Кодер CELP
    • 3.1 Взвешивание шума
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
    • 6.1 Выбранные показания

Введение

Алгоритм CELP основан на четырех основных идеях:

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

Декодер CELP

Рисунок 1: Декодер CELP

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

e [n] = ef [n] + ea [n] {\ displaystyle e [n] = e_ {f} [n] + e_ {a} [n] \,}{\ displaystyle e [n] = e_ {f} [n] + e_ {a} [n] \,}

где ef [n] {\ displaystyle e_ {f} [n]}e _ {{f}} [n ] - фиксированный (также известный как стохастический или инновационный) вклад в кодовую книгу и ea [n] {\ displaystyle e_ {a} [n]}e _ {{a}} [n] - вклад адаптивной (основного тона ) кодовой книги. Фиксированная кодовая книга - это словарь векторного квантования, который (неявно или явно) жестко закодирован в кодеке. Эта кодовая книга может быть алгебраической (ACELP ) или сохраняться явно (например, Speex ). Записи в адаптивной кодовой книге состоят из отложенных версий возбуждения. Это позволяет эффективно кодировать периодические сигналы, например звонкие звуки.

Фильтр, формирующий возбуждение, имеет всеполюсную модель вида 1 / A (z) {\ displaystyle 1 / A (z)}1 / A (z) , где A (z) {\ displaystyle A (z)}A (z) называется фильтром прогнозирования и получается с использованием линейного прогнозирования (алгоритм Левинсона – Дарбина ). Всеполюсный фильтр используется потому, что он хорошо отображает голосовой тракт человека и потому, что его легко вычислить.

CELP-кодировщик

Основной принцип, лежащий в основе CELP, называется Analysis-by-Synthesis (AbS) и означает, что кодирование (анализ) выполняется путем перцепционной оптимизации декодированного (синтез) сигнал в замкнутом контуре. Теоретически лучший поток CELP можно получить, попробовав все возможные битовые комбинации и выбрав ту, которая дает декодированный сигнал с наилучшим звучанием. Очевидно, что на практике это невозможно по двум причинам: требуемая сложность выходит за рамки любого доступного в настоящее время оборудования, и критерий выбора «наилучшего звучания» предполагает наличие слушателя-человека.

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

Взвешивание шума

Большинство (если не все) современные аудиокодеки пытаются формируют шум кодирования так, чтобы он появлялся в основном в частотных областях, где ухо не может его обнаружить. Например, ухо более устойчиво к шуму в более громких частях спектра и наоборот. Вот почему вместо минимизации простой квадратичной ошибки CELP минимизирует ошибку для перцепционно взвешенной области. Весовой фильтр W (z) обычно получается из LPC-фильтра с помощью расширения полосы пропускания :

W (z) = A (z / γ 1) A (z / γ 2) {\ displaystyle W ( z) = {\ frac {A (z / \ gamma _ {1})} {A (z / \ gamma _ {2})}}}W (z) = {\ frac {A (z / \ gamma _ {1})} {A (z / \ gamma _ {2})}}

где γ 1>γ 2 {\ displaystyle \ gamma _ {1}>\ gamma _ {2}}\gamma _{1}>\ gamma _ {2} .

См. также

  • MPEG-4 Part 3 (CELP как тип аудиообъекта MPEG-4)
  • G.728 - Кодирование речи со скоростью 16 кбит / с с использованием линейного предсказания с малой задержкой и возбуждением кода
  • G.718 - использует CELP для двух нижних уровней для полосы (50–6400 Гц) в двухэтапная структура кодирования
  • G.729.1 - использует кодирование CELP для нижней полосы (50–4000 Гц) в трехступенчатой ​​структуре кодирования
  • Сравнение форматов аудиокодирования
  • CELT - это связанный аудиокодек, который заимствует некоторые идеи из CELP.

Ссылки

  • BS Atal, "История линейного прогнозирования n, "IEEE Signal Processing Magazine, vol. 23, нет. 2, март 2006 г., стр. 154–161.
  • М. Р. Шредер и Б. С. Атал, «Линейное предсказание с кодовым возбуждением (CELP): высококачественная речь при очень низкой скорости передачи данных», в материалах Международной конференции IEEE по акустике, речи и обработке сигналов ( ICASSP), т. 10, pp. 937–940, 1985.

Внешние ссылки

Избранные показания

Последняя правка сделана 2021-05-15 13:37:14
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте