Масштабируемое кодирование речи и аудио с использованием комбинаторного кодирования mdct-спектра

Иллюстрации

Показать все

Изобретение относится к кодерам и декодерам, в частности к эффективному способу кодирования спектра модифицированного дискретного косинусного преобразования (MDCT) как части масштабируемого речевого и аудиокодека. Техническим результатом является уменьшение размера хранимой или передаваемой информации при эффективной реализации кодирования MDCT-спектра. Указанный результат достигается тем, что в способе для кодирования в масштабируемом речевом и аудиокодеке, имеющем несколько слоев, получают остаточный сигнал из слоя кодирования на основе линейного прогнозирования с возбуждением по коду (CELP), при этом слой кодирования на основе CELP содержит один или два предыдущих слоя в масштабируемом и аудиокодеке и при этом остаточный сигнал является разностью между исходным аудиосигналом и восстановленной версией исходного аудиосигнала, преобразуют остаточный сигнал из предыдущего слоя в слое преобразования типа дискретного косинусного преобразования (DCT), чтобы получать соответствующий спектр преобразования, имеющий множество спектральных линий, и кодируют спектральные линии спектра преобразования с использованием технологии комбинаторного позиционного кодирования. 10 н. и 30 з.п. ф-лы, 13 ил., 1 табл.

Реферат

Настоящая заявка на патент испрашивает приоритет согласно предварительной заявке США №60/981814, озаглавленной "Low-Complexity Technique for Encoding/Decoding of Quantized MDCT Spectrum in Scalable Speech+Audio Codecs", поданной 22 октября 2007 года, переуступленной правопреемнику настоящей заявки и явно включенной в состав данного документа посредством ссылки.

Область техники, к которой относится изобретение

Последующее описание в общем относится к кодерам и декодерам и в частности к эффективному способу кодирования спектра модифицированного дискретного косинусного преобразования (MDCT) как части масштабируемого речевого и аудиокодека.

Уровень техники

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

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

Линейное прогнозирование с возбуждением по коду (CELP) является классом алгоритмов, включающих в себя алгебраическое CELP (ACELP), ослабленное CELP (RCELP), с низкой задержкой (LD-CELP) и линейное прогнозирование с возбуждением по векторной сумме (VSELP), которые широко используются для кодирования речи. Один принцип в основе CELP называется анализом через синтез (AbS) и означает, что кодирование (анализ) выполняется посредством перцепционной оптимизации декодированного (синтез) сигнала в замкнутом контуре. В теории лучший поток CELP должен формироваться посредством опробования всех возможных наборов двоичных знаков и выбора того из них, который формирует оптимально звучащий декодированный сигнал. Очевидно, что это невозможно на практике по двум причинам: его очень сложно реализовать и критерий выбора "оптимального звучания" подразумевает слушателя-человека. Чтобы достигать кодирования в реальном времени с использованием ограниченных вычислительных ресурсов, поиск CELP подразделяется на меньшие, более управляемые, последовательные поиски с использованием перцепционной весовой функции. Как правило, кодирование включает в себя: (a) вычисление и/или квантование (обычно как пар спектральных линий) коэффициентов кодирования с линейным прогнозированием для входного аудиосигнала, (b) использование таблиц кодирования, чтобы выполнять поиск наилучшего совпадения, чтобы формировать кодированный сигнал, (c) формирование сигнала ошибки, который является разностью между кодированным сигналом и действительным входным сигналом, и (d) дополнительное кодирование такого сигнала ошибки (обычно в MDCT-спектре) в одном или более слоев, чтобы повышать качество восстановленного или синтезированного сигнала.

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

Раскрытие изобретения

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

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

В одном примере предоставляется способ для кодирования MDCT-спектра в масштабируемом речевом и аудиокодеке. Такое кодирование спектра преобразования может выполняться посредством аппаратных средств кодера, программного обеспечения для кодирования и/или комбинации означенного и может быть осуществлено в процессоре, схеме обработки и/или машиночитаемом носителе. Остаточный сигнал получается из слоя кодирования на основе линейного прогнозирования с возбуждением по коду (CELP), при этом остаточный сигнал - это разность между исходным аудиосигналом и восстановленной версией исходного аудиосигнала. Восстановленная версия исходного аудиосигнала может получаться посредством следующего: (a) синтезирование кодированной версии исходного аудиосигнала из слоя кодирования на основе CELP, чтобы получать синтезированный сигнал, (b) повторный ввод предыскажений в синтезированный сигнал и/или (c) повышающая дискретизация сигнала после повторного ввода предыскажений, чтобы получать восстановленную версию исходного аудиосигнала.

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

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

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

где n - длина двоичной строки, k - число выбранных спектральных линий, которые должны быть кодированы, и wj представляет отдельные биты двоичной строки.

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

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

где n - длина двоичной строки, k - число выбранных спектральных линий, которые должны быть кодированы и wj представляет отдельные биты двоичной строки.

Индекс декодируется посредством выполнения в обратном порядке технологии комбинаторного позиционного кодирования, используемой для того, чтобы кодировать множество спектральных линий спектра преобразования. Версия остаточного сигнала синтезируется с использованием декодированного множества спектральных линий спектра преобразования в слое обратного преобразования типа обратного дискретного косинусного преобразования (IDCT). Синтезирование версии остаточного сигнала может включать в себя применение обратного преобразования DCT-типа к спектральным линиям спектра преобразования, чтобы формировать версию остаточного сигнала во временной области. Декодирование спектральных линий спектра преобразования может включать в себя декодирование позиций выбранного поднабора спектральных линий на основе представления позиций спектральных линий с использованием технологии комбинаторного позиционного кодирования для позиций ненулевых спектральных линий. Слой обратного преобразования DCT-типа может быть слоем обратного модифицированного дискретного косинусного преобразования (IMDCT), и спектр преобразования - это MDCT-спектр.

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

Краткое описание чертежей

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

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

Фиг.2 является блок-схемой, иллюстрирующей передающее устройство, которое может быть выполнено с возможностью осуществлять эффективное кодирование аудио согласно одному примеру.

Фиг.3 является блок-схемой, иллюстрирующей приемное устройство, которое может быть выполнено с возможностью осуществлять эффективное декодирование аудио согласно одному примеру.

Фиг.4 является блок-схемой масштабируемого кодера согласно одному примеру.

Фиг.5 является блок-схемой, иллюстрирующей процесс кодирования MDCT-спектра, который может реализовываться посредством кодера.

Фиг.6 является схемой, иллюстрирующей один пример того, как кадр может выбираться и разделяться на области и подполосы, чтобы упрощать кодирование MDCT-спектра.

Фиг.7 иллюстрирует общий подход для кодирования аудиокадра эффективным способом.

Фиг.8 является блок-схемой, иллюстрирующей кодер, который может эффективно кодировать импульсы в MDCT-аудиокадре.

Фиг.9 является блок-схемой последовательности операций, иллюстрирующей способ для получения вектора формы для кадра.

Фиг.10 является блок-схемой, иллюстрирующей способ для кодирования спектра преобразования в масштабируемом речевом и аудиокодеке.

Фиг.11 является блок-схемой, иллюстрирующей пример видеодекодера.

Фиг.12 является блок-схемой, иллюстрирующей способ для кодирования спектра преобразования в масштабируемом речевом и аудиокодеке.

Фиг.13 является блок-схемой, иллюстрирующей способ для декодирования спектра преобразования в масштабируемом речевом и аудиокодеке.

Осуществление изобретения

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

Обзор

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

Система связи

Фиг.1 является блок-схемой, иллюстрирующей систему связи, в которой могут реализовываться один или более признаков кодирования. Кодер 102 принимает поступающий входной аудиосигнал 104 и формирует и кодированный аудиосигнал 106. Кодированный аудиосигнал 106 может быть передан по каналу передачи (к примеру, беспроводному или проводному) в декодер 108. Декодер 108 пытается восстанавливать входной аудиосигнал 104 на основе кодированного аудиосигнала 106, чтобы формировать восстановленный выходной аудиосигнал 110. В целях иллюстрации, кодер 102 может работать в передающем устройстве, тогда как устройство декодера может работать в приемном устройстве. Тем не менее, должно быть очевидным, что все такие устройства могут включать в себя как кодер, так и декодер.

Фиг.2 является блок-схемой, иллюстрирующей передающее устройство 202, которое может быть выполнено с возможностью осуществлять эффективное кодирование аудио согласно одному примеру. Входной аудиосигнал 204 захватывается посредством микрофона 206, усиливается посредством усилителя 208 и преобразуется посредством аналого-цифрового преобразователя 210 в цифровой сигнал, который отправляется в модуль 212 кодирования речи. Модуль 212 кодирования речи выполнен с возможностью осуществлять многослойное (масштабированное) кодирование входного сигнала, где, по меньшей мере, один такой слой заключает в себе кодирование остатка (сигнала ошибки) в MDCT-спектре. Модуль 212 кодирования речи может выполнять кодирование, как поясняется в связи с фиг.4, 5, 6, 7, 8, 9 и 10. Выходные сигналы из модуля 212 кодирования речи могут отправляться в модуль 214 кодирования тракта передачи, где канальное декодирование выполняется и результирующие выходные сигналы отправляются в схему 216 модуляции и модулируются, чтобы отправляться через цифроаналоговый преобразователь 218 и RF-усилитель 220 в антенну 222 для передачи кодированного аудиосигнала 224.

Фиг.3 является блок-схемой, иллюстрирующей приемное устройство 302, которое может быть выполнено с возможностью осуществлять эффективное декодирование аудио согласно одному примеру. Кодированный аудиосигнал 304 принимается посредством антенны 306 и усиливается посредством RF-усилителя 308 и отправляется через аналого-цифровой преобразователь 310 в схему 312 демодуляции так, что демодулированные сигналы предоставляются в модуль 314 декодирования тракта передачи. Выходной сигнал из модуля 314 декодирования тракта передачи отправляется в модуль 316 декодирования речи, выполненный с возможностью осуществлять многослойное (масштабированное) декодирование входного сигнала, где, по меньшей мере, один такой слой заключает в себе декодирование остатка (сигнала ошибки) в IMDCT-спектре. Модуль 316 декодирования речи может выполнять декодирование сигналов, как поясняется в связи с фиг.11, 12 и 13. Выходные сигналы из модуля 316 декодирования речи отправляются в цифроаналоговый преобразователь 318. Аналоговый речевой сигнал из цифроаналогового преобразователя 318 отправляется через усилитель 320 на динамик 322, чтобы предоставлять восстановленный выходной аудиосигнал 324.

Архитектура масштабируемого аудиокодека

Кодер 102 (фиг.1), декодер 108 (фиг.1), модуль 212 кодирования речи/аудио (фиг.2) и/или модуль 316 декодирования речи/аудио (фиг.3) могут реализовываться как масштабируемый аудиокодек. Такой масштабируемый аудиокодек может реализовываться, чтобы предоставлять высокопроизводительное широкополосное кодирование речи для подверженных ошибкам каналов передачи данных, с высоким качеством доставляемых кодированных узкополосных речевых сигналов или широкополосных аудио/музыкальных сигналов. Один подход к масштабируемому аудиокодеку состоит в том, чтобы предоставлять итерационные слои кодирования, где сигнал ошибки (остаток) из одного слоя кодируется в последующем слое, чтобы дополнительно улучшать аудиосигнал, кодированный в предыдущих слоях. Например, линейное прогнозирование с возбуждением по таблице кодирования (CELP) основано на принципе кодирования с линейным прогнозированием, в котором таблица кодирования различных сигналов возбуждения поддерживается в кодере и декодере. Кодер находит самый подходящий сигнал возбуждения и отправляет его соответствующий индекс (из фиксированной, алгебраической и/или адаптивной таблицы кодирования) в декодер, который затем использует его, чтобы воспроизводить сигнал (на основе таблицы кодирования). Кодер выполняет анализ через синтез посредством кодирования и последующего декодирования аудиосигнала, чтобы формировать восстановленный или синтезированный аудиосигнал. Кодер затем находит параметры, которые минимизируют энергию сигнала ошибки, т.е. разность между исходным аудиосигналом и восстановленным или синтезированным аудиосигналом. Выходная скорость передачи битов может регулироваться посредством использования большего или меньшего числа слоев кодирования, чтобы удовлетворять требованиям канала и требуемому качеству звучания. Такой масштабируемый аудиокодек может включать в себя несколько слоев, где потоки битов верхнего слоя могут быть отброшены без влияния на декодирование нижних слоев.

Примеры существующих масштабируемых кодеков, которые используют такую многослойную архитектуру, включают в себя ITU-T Recommendation ITU-T и выходящий стандарт ITU-T под кодовым названием G.EV-VBR. Например, кодек со встроенной переменной скоростью передачи битов (EV-VBR) может реализовываться как несколько слоев от L1 (базовый слой) до LX (где X - номер наивысшего расширяющего слоя). Такой кодек может принимать как широкополосные (WB) сигналы, дискретизированные при 16 кГц, так и узкополосные (NB) сигналы, дискретизированные при 8 кГц. Аналогично, вывод кодека может быть широкополосным или узкополосным.

Пример структуры слоев для кодека (к примеру, EV-VBR-кодека) показан в таблице 1, содержащей пять слоев: от L1 (базовый слой) до L5 (наивысший расширяющий слой). Более низкие два слоя (L1 и L2) могут быть основаны на алгоритме линейного прогнозирования с возбуждением по коду (CELP). Базовый слой L1 может извлекаться из алгоритма кодирования речи на основе широкополосного кодека с переменным многоскоростным кодированием (VMR-WB) и может содержать несколько режимов кодирования, оптимизированных для различных входных сигналов. Таким образом, базовый слой L1 может классифицировать входные сигналы, чтобы лучше моделировать аудиосигнал. Ошибка кодирования (остаток) из базового слоя L1 кодируется посредством улучшающего или расширяющего слоя L2 на основе адаптивной таблицы кодирования и фиксированной алгебраической таблицы кодирования. Сигнал ошибки (остаток) из слоя L2 дополнительно может кодироваться посредством верхних слоев (L3-L5) в области преобразования с использованием модифицированного дискретного косинусного преобразования (MDCT). Вспомогательная информация может отправляться в слое L3, чтобы улучшать маскирование стирания кадров (FEC).

Таблица 1
Слой Скорость передачи битов, кбит/сек Технология Частота дискретизации, кГц
L1 8 Базовый слой CELP (классификация) 12,8
L2 +4 Слой алгебраической таблицы кодирования (улучшающий) 12,8
L3 +4 FEC MDCT 12,8 16
L4 +8 MDCT 16
L5 +8 MDCT 16

Кодек базового слоя L1, по существу, является кодеком на основе CELP и может быть совместимым с одним из ряда известных узкополосных или широкополосных вокодеров, таких как кодек с адаптивным многоскоростным кодированием (AMR), широкополосный AMR-кодек (AMR-WB), широкополосный кодек с переменным многоскоростным кодированием (VMR-WB), усовершенствованный кодек с переменной скоростью (EVRC) или широкополосный EVR-кодек (EVRC-WB).

Слой 2 в масштабируемом кодеке может использовать таблицы кодирования, чтобы дополнительно минимизировать ошибку кодирования с перцепционным взвешиванием (остаток) из базового слоя L1. Чтобы улучшить маскирование стирания кадров (FEC) кодека, вспомогательная информация может вычисляться и передаваться в последующем слое L3. Независимо от режима кодирования базового слоя вспомогательная информация может включать в себя классификацию сигналов.

Допускается, что для широкополосного вывода взвешенный сигнал ошибки после кодирования слоя L2 кодируется с использованием кодирования с преобразованием на основе добавления с перекрытием на основе модифицированного дискретного косинусного преобразования (MDCT) или аналогичного типа преобразования. Таким образом, для кодированных слоев L3, L4 и/или L5 сигнал может быть кодирован в MDCT-спектре. Следовательно, предоставляется эффективный способ кодирования сигнала в MDCT-спектре.

Пример кодера

Фиг.4 является блок-схемой масштабируемого кодера 402 согласно одному примеру. На стадии предварительной обработки до кодирования входной сигнал 404 фильтруется по верхним частотам 406, чтобы подавлять нежелательные низкочастотные компоненты, чтобы формировать фильтрованный входной сигнал SHP(n). Например, фильтр 406 верхних частот может иметь отсечку в 25 Гц для широкополосного входного сигнала и 100 Гц для узкополосного входного сигнала. Фильтрованный входной сигнал SHP(n) затем повторно дискретизируется посредством модуля 408 повторной дискретизации, чтобы формировать повторно дискретизированный входной сигнал S12,8(n). Например, исходный входной сигнал 404 может дискретизироваться при 16 кГц и повторно дискретизируется до 12,8 кГц, что может быть внутренней частотой, используемой для кодирования слоя L1 и/или L2. Модуль 410 ввода предыскажений затем применяет фильтр верхних частот первого порядка, чтобы вводить предыскажения в верхние частоты (и ослаблять низкие частоты) повторно дискретизированного входного сигнала S12,8(n). Результирующий сигнал затем передается в модуль 412 кодера/декодера, который может выполнять кодирование слоя L1 и/или L2 на базе алгоритма на основе линейного прогнозирования с возбуждением по коду (CELP), где речевой сигнал моделируется посредством сигнала возбуждения, проходящего через синтезирующий фильтр с линейным прогнозированием (LP), представляющего спектральную огибающую. Энергия сигнала может вычисляться для каждой перцепционной критической полосы частот и использоваться как часть кодирования слоев L1 и L2. Дополнительно, кодированный модуль 412 кодера/декодера также может синтезировать (восстанавливать) версию входного сигнала. Таким образом, после того как модуль 412 кодера/декодера кодирует входной сигнал, он декодирует его и модуль 416 коррекции предыскажений и модуль 418 повторной дискретизации воссоздают версию входного сигнала 404. Остаточный сигнал x2(n) формируется посредством подсчета разности 420 между исходным сигналом SHP(n) и воссозданным сигналом (т.е. x2(n)=SHP(n)--). Остаточный сигнал x2(n) затем перцепционно взвешивается посредством модуля 424 взвешивания и преобразуется посредством MDCT-модуля 428 в MDCT-спектр или домен, чтобы формировать остаточный сигнал X2(k). Остаточный сигнал X2(k) затем предоставляется в комбинаторный кодер 432 спектра, который кодирует остаточный сигнал X2(k), чтобы формировать кодированные параметры для слоев L3, L4 и/или L5. В одном примере комбинаторный кодер 432 спектра формирует индекс, представляющий ненулевые спектральные линии (импульсы) в остаточном сигнале X2(k). Например, индекс может представлять одну из множества возможных двоичных строк, представляющих позиции ненулевых спектральных линий. Вследствие комбинаторной технологии индекс может представлять ненулевые спектральные линии в двоичной строке в меньшем числе битов, чем длина двоичной строки.

Параметры из слоев L1-L5 затем могут выступать в качестве выходного потока битов 436 и далее могут использоваться для того, чтобы восстанавливать или синтезировать версию исходного входного сигнала 404 в декодере.

Слой 1 - кодирование классификации: Базовый слой L1 может реализовываться в модуле 412 кодера/декодера и может использовать классификацию сигналов и четыре различных режима кодирования, чтобы повышать производительность кодирования. В одном примере эти четыре различных класса сигналов, которые могут рассматриваться для различного кодирования каждого кадра, могут включать в себя: (1) невокализованное кодирование (UC) для невокализованных речевых кадров, (2) вокализованное кодирование (VC), оптимизированное для квазипериодических сегментов с гладким изменением основного тона, (3) переходный режим (TC) для кадров после вокализованных вступлений, выполненный с возможностью минимизировать распространение ошибки в случае стираний кадров, и (4) общее кодирование (GC) для других кадров. При невокализованном кодировании (UC) адаптивная таблица кодирования не используется и возбуждение выбирается из гауссовой таблицы кодирования. Квазипериодические сегменты кодируются с помощью режима вокализованного кодирования (VC). Выбор вокализованного кодирования обусловливается посредством гладкого изменения основного тона. Режим вокализованного кодирования может использовать технологию ACELP. В кадре после переходного кодирования (TC) адаптивная таблица кодирования в субкадре, содержащем гортанный импульс первого периода основного тона, заменяется фиксированной таблицей кодирования.

В базовом слое L1 сигнал может моделироваться с использованием парадигмы на основе CELP посредством сигнала возбуждения, проходящего через синтезирующий фильтр с линейным прогнозированием (LP), представляющего спектральную огибающую. LP-фильтр может квантоваться в домене спектральных частот иммитанса (ISF) с использованием подхода "страховочной сетки" и многостадийного векторного квантования (MSVQ) для режимов общего и вокализованного кодирования. Анализ основного тона с разомкнутым контуром (OL) выполняется посредством алгоритма отслеживания основного тона, чтобы обеспечивать гладкий контур основного тона. Тем не менее, чтобы повышать устойчивость оценки основного тона, два параллельных контура изменения основного тона могут сравниваться и выбирается дорожка, которая дает в результате более плавный контур.

Два набора параметров LPC оцениваются и кодируются в расчете на каждый кадр в большинстве режимов с использованием окна анализа в 20 мс, один для конца кадра и один для середины кадра. ISF середины кадра кодируются с помощью интерполяционного раздельного VQ с обнаружением коэффициента линейной интерполяции для каждой ISF-подгруппы, так что разность между оцененными и интерполированными квантованными ISF минимизируется. В одном примере, чтобы квантовать ISF-представление LP-коэффициентов, поиск может осуществляться в двух наборах таблиц кодирования (соответствующих слабому и сильному прогнозированию), могут искаться параллельно, чтобы находить прогнозирующий параметр и запись таблицы кодирования, которые минимизируют искажение оцененной спектральной огибающей. Основная причина для этого подхода "страховочной сетки" состоит в том, чтобы уменьшать распространение ошибки, когда стирания кадров совпадают с сегментами, где спектральная огибающая быстро изменяется. Чтобы предоставлять дополнительную устойчивость к ошибкам, слабый прогнозирующий параметр иногда задается равным нулю, что приводит к квантованию без прогнозирования. Тракт без прогнозирования может всегда выбираться, когда его искажение квантования достаточно близко к искажению с прогнозированием или когда его искажение квантования является достаточно небольшим, чтобы предоставлять прозрачное кодирование. Помимо этого в сильно прогнозирующем поиске таблицы кодирования субоптимальный кодовый вектор выбирается, если это не влияет на производительность чистого канала, но ожидаемо понижает распространение ошибки при наличии стираний кадров. ISF UC- и TC-кадров дополнительно систематически квантуются без прогнозирования. Для UC-кадров достаточно битов доступно для того, чтобы предоставлять возможность очень хорошего спектрального квантования даже без прогнозирования. TC-кадры считаются слишком чувствительными к стираниям кадров для прогнозирования, которое должно использоваться несмотря на потенциальное уменьшение производительности чистого канала.

Для узкополосных (NB) сигналов оценка основного тона выполняется с использованием возбуждения L2, сформированного с неквантованными оптимальными усилениями. Этот подход удаляет эффекты квантования усиления и улучшает оценку запаздывания основного тона в слоях. Для широкополосных (WB) сигналов используется стандартная оценка основного тона (возбуждение L1 с квантованными усилениями).

Слой 2 - улучшающее кодирование: В слое L2 модуль 412 кодера/декодера может кодировать ошибку квантования из базового слоя L1 снова с использованием алгебраических таблиц кодирования. В слое L2 кодер дополнительно модифицирует адаптивную таблицу кодирования так, чтобы включать в себя не только предыдущую долю L1, но также и предыдущую долю L2. Адаптивное запаздывание основного тона является одинаковым в L1 и L2, чтобы поддерживать временную синхронизацию между слоями. Усиления адаптивных и алгебраических таблиц кодирования, соответствующие L1 и L2, затем повторно оптимизируются, чтобы минимизировать ошибку кодирования с перцепционным взвешиванием. Обновленные усиления L1 и усиления L2 прогнозным образом векторно квантуются относительно усилений, уже квантованных в L1. Слои CELP (L1 и L2) могут работать на внутренней (к примеру, 12,8 кГц) частоте дискретизации. Вывод из слоя L2 тем самым включает в себя синтезированный сигнал, кодированный в полосе частот на 0-6,4 кГц. Для широкополосного вывода расширение полосы пропускания AMR-WB может использоваться для того, чтобы формировать пропущенную полосу пропускания на 6,4-7 кГц.

Слой 3 - маскирование стирания кадров: Чтобы повышать производительность в условиях стирания кадров (FEC), модуль 414 маскирования ошибок по кадрам может получать вспомогательную информацию из модуля 412 кодера/декодера и использовать ее для того, чтобы формировать параметры слоя L3. Вспомогательная информация может включать в себя информацию класса для всех режимов кодирования. Информация спектральной огибающей предыдущего кадра также может быть передана для переходного кодирования базового слоя. Для других режимов кодирования базового слоя также могут отправляться информация фазы и синхронная по основному тону энергия синтезированного сигнала.

Слои 3, 4, 5 - кодирование с преобразованием: Остаточный сигнал X2(k), вытекающий из CELP-кодирования второй стадии в слое L2, может квантоваться в слоях L3, L4 и L5 с использованием MDCT или аналогичного преобразования со структурой добавления с перекрытием. Таким образом, сигнал остатка или "ошибки" из предыдущего слоя используется посредством последующего слоя, чтобы формировать его параметры (которые направлены на то, чтобы эффективно представлять такую ошибку для передачи в декодер).

MDCT-коэффициенты могут квантоваться посредством использования нескольких технологий. В некоторых случаях MDCT-коэффициенты квантуются с использованием масштабируемого алгебраического векторного квантования. MDCT может вычисляться каждые 20 миллисекунд (мс), и его спектральные коэффициенты квантуются в 8-мерных блоках. Применяется модуль очистки звука (фильтр ограничения шума MDCT-домена), извлекаемый из спектра исходного сигнала. Глобальные усиления передаются в слое L3. Дополнительно, несколько битов используются для высокочастотной компенсации. Оставшиеся биты слоя L3 используются для квантования MDCT-коэффициентов. Биты слоев L4