УСТРОЙСТВО И СПОСОБ КВАНТОВАНИЯ И ОБРАТНОГО КВАНТОВАНИЯ LPC-ФИЛЬТРОВ В СУПЕРКАДРЕ
DEVICE AND METHOD FOR QUANTISING AND INVERSE QUANTISING LPC FILTERS IN SUPER-FRAME

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к области кодирования и декодирования звукового сигнала, например аудиосигнала. В частности, настоящее изобретение относится к устройству и способу квантования и обратного квантования LPC-фильтров (фильтров коэффициентов линейного предсказания), например, в суперкадре.
УРОВЕНЬ ТЕХНИКИ
В различных областях применения, таких как, например, проведение телеконференций, передача мультимедийной информации и беспроводная связь, растет потребность в эффективных способах цифрового кодирования речевой и звуковой информации, обеспечивающих хорошее субъективное качество и скорость передачи битов.
Кодер речи осуществляет преобразование речевого сигнала в цифровой поток битов, который передают по каналу связи или сохраняют на носителе информации. Речевой сигнал, подлежащий кодированию, преобразовывают в цифровую форму, а именно производят выборку и квантование с использованием, например, 16 битов на каждую выборку. Проблемой для кодера речи является представление цифровых выборок посредством меньшего количества битов, сохраняя при этом хорошее субъективное качество речевого сигнала. Декодер речи или синтезатор осуществляют преобразование переданного или сохраненного потока битов обратно в звуковой сигнал.
Кодирование с линейным предсказанием с кодовым возбуждением (CELP-кодирование) является одним из наилучших способов достижения хорошего компромисса между субъективным качеством и скоростью передачи битов. Способ CELP-кодирования является основой для нескольких стандартов кодирования речи, применяемых как для беспроводных линий связи, так и для проводных линий связи. При CELP-кодировании производят выборку речевого сигнала и выполняют его обработку в виде последовательных блоков из  выборок, обычно именуемых кадрами, где  - заданное количество выборок, обычно соответствующее 10-30 мс речевого сигнала. Вычисление и передачу фильтра линейного предсказания (LP-фильтра) производят в каждом кадре; LP-фильтр также известен как LPC-фильтр (фильтр коэффициентов линейного предсказания). При вычислении LPC-фильтра обычно используют упреждающий сегмент речевого сигнала длительностью, например, 5-15 мс из последующего кадра. Кадр из  выборок разделяют на блоки меньшего размера, именуемые подкадрами. В каждом подкадре сигнал возбуждения обычно получают из двух составляющих: прошлого возбуждения и нового возбуждения по фиксированной кодовой книге. Прошлое возбуждение часто именуют возбуждением по адаптивной кодовой книге или по пошаговой кодовой книге. Параметры, характеризующие сигнал возбуждения, кодируют и передают в декодер, где сигнал возбуждения восстанавливают и используют в качестве входного сигнала LPC-фильтра.
В таких областях применения, как, например, потоковая и широковещательная передача мультимедийной информации, может оказаться необходимым, чтобы кодирование речи, музыки и смешанного контента выполнялось с низкой скоростью передачи битов. Для этого были разработаны модели кодирования, в которых CELP-кодирование, оптимизированное для речевых сигналов, сочетают с кодированием с преобразованием, оптимизированным для звуковых сигналов. Примером таких моделей является кодек AMR-WB+ (расширенный адаптивный многоскоростной широкополосный кодек) [1], который обеспечивает переключение между CELP-кодированием и TCX-кодированием (кодированием с преобразованием кодированного возбуждения). Для повышения качества музыкального и смешанного контента используют длинную задержку для учета более высокой разрешающей способности по частоте в области преобразования. В кодеке AMR-WB+ используют так называемый суперкадр, который состоит из четырех кадров CELP (обычно длительностью 80 мс).
Несмотря на то, что в кодеке AMR-WB+ параметры CELP-кодирования передают один раз через каждые 4 кадра, квантование LPC-фильтра выполняют отдельно в каждом кадре. К тому же, в случае кадров CELP LPC-фильтр квантуют с постоянным количеством битов в каждом кадре.
Для преодоления вышеизложенного недостатка существует потребность в создании способа, в котором используют квантование LPC-фильтров с переменной скоростью передачи битов, в котором используют структуру с суперкадрами для сокращения количества битов, задействованных в квантовании LPC-фильтров. К тому же, такой способ будет соответствовать моделям кодирования речевой и звуковой информации, в которых используют обе структуры: структуру с суперкадрами и многорежимную структуру, например кодек AMR-WB+ [1] и кодек USAC (унифицированный кодек для речевой и звуковой информации), разрабатываемые в Экспертной группе по вопросам движущихся изображений (MPEG).
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Согласно первому аспекту настоящего изобретения, предложен способ квантования, в суперкадре, включающем в себя последовательность кадров, LPC-фильтров, вычисленных во время кадров из этой последовательности, причем способ квантования LPC-фильтров содержит: выполняют первое квантование одного из LPC-фильтров с использованием абсолютного квантования; и выполняют квантование остальных LPC-фильтров с использованием режима квантования, выбранного из группы, состоящей из абсолютного квантования и дифференциального квантования относительно, по меньшей мере, одного ранее квантованного фильтра из LPC-фильтров.
Согласно второму аспекту настоящего изобретения, предложено устройство для квантования, в суперкадре, включающем в себя последовательность кадров, LPC-фильтров, вычисленных во время кадров из этой последовательности, причем устройство квантования LPC-фильтров содержит: средство первого квантования одного из LPC-фильтров с использованием абсолютного квантования; и средство квантования других LPC-фильтров с использованием режима квантования, выбранного из группы, состоящей из абсолютного квантования и дифференциального квантования относительно, по меньшей мере, одного ранее квантованного фильтра из LPC-фильтров.
Согласно третьему аспекту настоящего изобретения, предложен способ обратного квантования, по меньшей мере, одного LPC-фильтра в суперкадре, включающем в себя последовательность кадров, каждый из которых поставлен в соответствие LPC-фильтру, причем один из LPC-фильтров квантован первым с использованием абсолютного квантования, а после этого квантованы другие LPC-фильтры с использованием способа квантования, выбранного из группы, состоящей из абсолютного квантования и дифференциального квантования относительно, по меньшей мере, одного ранее квантованного фильтра из LPC-фильтров, при этом способ обратного квантования, по меньшей мере, одного LPC-фильтра содержит этапы, на которых: принимают, по меньшей мере, LPC-фильтр, квантованный первым; выполняют обратное квантование LPC-фильтра, квантованного первым, с использованием абсолютного обратного квантования; и если принят какой-либо иной квантованный LPC-фильтр, чем LPC-фильтр, квантованный первым, то выполняют обратное квантование упомянутого квантованного LPC-фильтра с использованием одного из следующих способов квантования: абсолютного обратного квантования и дифференциального обратного квантования относительно, по меньшей мере, одного ранее принятого квантованного LPC-фильтра.
Согласно четвертому аспекту настоящего изобретения, в нем предложено устройство для обратного квантования, по меньшей мере, одного LPC-фильтра в суперкадре, включающем в себя последовательность кадров, каждый из которых поставлен в соответствие LPC-фильтру, причем первым квантован один из LPC-фильтров с использованием абсолютного квантования, а после этого квантованы другие LPC-фильтры с использованием способа квантования, выбранного из группы, состоящей из абсолютного квантования и дифференциального квантования относительно, по меньшей мере, одного ранее квантованного фильтра из LPC-фильтров, и при этом устройство для обратного квантования, по меньшей мере, одного LPC-фильтра содержит: средство приема, по меньшей мере, LPC-фильтра, квантованного первым; средство обратного квантования LPC-фильтра, квантованного первым, с использованием абсолютного обратного квантования; и средство обратного квантования квантованного LPC-фильтра с использованием одного из следующих способов квантования: абсолютного обратного квантования и дифференциального обратного квантования относительно, по меньшей мере, одного ранее принятого квантованного LPC-фильтра, если принят какой-либо иной квантованный LPC-фильтр, чем LPC-фильтр, квантованный первым.
Вышеизложенные и другие аспекты, преимущества и отличительные признаки настоящего изобретения станут более очевидными при прочтении изложенного ниже неограничивающего описания иллюстративных вариантов осуществления, приведенных в качестве примера, со ссылкой на сопроводительные чертежи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На приложенных чертежах изображено следующее.
Фиг.1 - блок-схема, на которой проиллюстрирован абсолютный квантователь LPC-фильтра и дифференциальный квантователь LPC-фильтра по множеству образцов и способ квантования.
Фиг.2 - диаграмма, на которой проиллюстрирована схема квантования без обратной связи.
Фиг.3 - схема последовательности операций, на которой проиллюстрированы устройство и способ определения LPC-фильтров, подлежащих передаче, в конфигурации, в которой используют четыре (4) LPC-фильтра и производят их передачу в суперкадре.
Фиг.4А - типичное окно LPC-анализа и типичное положение центра LPC-анализа, когда производят оценку одного LPC-фильтра в каждом кадре (или суперкадре) в кодеке, основанном на LPC, где LPC0 соответствует последнему LPC-фильтру, вычисленному во время предыдущего кадра (или суперкадра).
Фиг.4Б - типичное окно LPC-анализа, когда производят оценку четырех (4) LPC-фильтров в каждом кадре (или суперкадре) в кодеке, основанном на LPC, где центр окна LPC-анализа расположен в конце кадра.
Фиг.5 - схема последовательности операций, на которой проиллюстрирован пример схемы апостериорного ("out-of-the-loop") квантования.
Фиг.6 - принципиальная блок-схема алгебраического LPC-квантователя с весовой обработкой и способа квантования.
Фиг.7 - принципиальная блок-схема алгебраического LPC-квантователя с обратной весовой обработкой и способа обратного квантования.
Фиг.8 - принципиальная блок-схема квантователя и способа квантования; и
Фиг.9 - принципиальная блок-схема декодера и способа декодирования.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Дифференциальное квантование с выбором возможных образцов
Используется дифференциальное квантование с выбором между несколькими возможными образцами. В частности, выполняют дифференциальное квантование LPC-фильтра относительно нескольких возможных образцов.
Известно, что последовательные LPC-фильтры имеют определенную степень корреляции. Для целесообразного использования этой корреляции в LPC-квантователях обычно используют предсказание. Вместо квантования вектора коэффициентов линейного предсказания (LPC-вектора) непосредственно представляющего LPC-фильтр, дифференциальный (или предиктивный) квантователь сперва вычисляет предсказанное значение этого LPC-вектора, а затем квантует разность (часто именуемую разностью предсказания) между исходным вектором LPC и предсказанным LPC-вектором.
Предсказание обычно основано на предыдущих значениях LPC-фильтра. Обычно используют предикторы двух типов: предикторы на основе метода скользящего среднего (MA) и предикторы на основе авторегрессии (AR). Несмотря на то, что AR-предикторы часто являются более эффективными при уменьшении L2-нормы (среднеквадратичного значения) данных, подлежащих квантованию, чем MA-предикторы, последние иногда являются полезными, поскольку в меньшей степени подвержены распространению ошибок в случае наличия ошибок при передачи [2].
Так как L2-норма невязки предсказания является в среднем более низкой, чем L2-норма исходного LPC-вектора (отношение между двумя в зависимости от степени предсказуемости LPC-фильтра), дифференциальный (или предиктивный) квантователь может достичь той же самой степени эффективности, что и абсолютный квантователь, но при более низкой скорости передачи битов.
В среднем, предсказание действительно является эффективным при уменьшении L2-нормы данных, подлежащих квантованию. Однако этот характер поведения не является постоянным; предсказание является намного более эффективным во время устойчивых сегментов сигнала, чем во время переходных сегментов. Предсказание даже может привести к увеличенным значениям L2-нормы, когда происходит быстрое изменение LPC-фильтров. Некоторое улучшение функционирования может быть достигнуто при учете двух различных предикторов, одного - для хорошо предсказуемых сегментов, а другого - для менее предсказуемых сегментов [3, 4]. Как упомянуто в приведенном выше описании, в этом способе используют только прошлые значения LPC-фильтра.
Для преодоления этой проблемы предложено выполнять дифференциальное квантование LPC-фильтра относительно образца, например образцового фильтра, выбранного из нескольких возможных образцов. Возможные образцовые фильтры представляют собой уже квантованные прошлые или будущие LPC-фильтры (следовательно, имеющиеся как в декодере, так и в кодере) или результаты различных операций экстраполяции или интерполяции, примененных к уже квантованным прошлым или будущим LPC-фильтрам. Выбирают образцовый фильтр, который обеспечивает меньшее искажение при заданной скорости передачи или при более низкой скорости передачи битов для заданного целевого уровня искажений.
n
На Фиг.1 изображена блок-схема, на которой проиллюстрированы устройство и способ квантования LPC-фильтра по множеству образцов. Заданный LPC-фильтр 101, представленный вектором коэффициентов линейного предсказания, вводят в устройство и в способ квантования LPC-фильтра по множеству образцов. Выполняют дифференциальное квантование введенного LPC-фильтра 101 относительно образца, выбранного из нескольких возможных образцов 1, 2, …, . Возможные образцы включают в себя:
- прошлые или будущие квантованные LPC-фильтры;
- результат операций экстраполяции или интерполяции, примененных к прошлым или будущим квантованным LPC-фильтрам; или
- любое квантованное значение, имеющееся как в кодере, так и в декодере.
В качестве примера, не являющегося ограничивающим признаком, может быть выполнено дифференциальное квантование входного LPC-фильтра 101 относительно предыдущего квантованного LPC-фильтра, последующего квантованного LPC-фильтра или среднего значения этих двух квантованных LPC-фильтров: предыдущего и последующего. Образец также может представлять собой LPC-фильтр, квантованный с использованием абсолютного квантователя, или результат интерполяции, экстраполяции или предсказания (AR или MA) любого вида, примененный к уже квантованным LPC-фильтрам.
1
2
n
1
2
n
1
2
n
n
Операции 102 и 103, 103, …, 103: по-прежнему со ссылкой на Фиг.1, входной LPC-фильтр 101 подают в абсолютный квантователь (Операция 102) и в дифференциальные квантователи (операции 103, 103, …, 103). Абсолютный квантователь (операция 102) квантует абсолютное значение (не разность) входного LPC-фильтра 101. Дифференциальные квантователи (операции 103, 103, …, 103) предназначены для дифференциального квантования входного LPC-фильтра 101 относительно соответствующих образцов 1, 2, …, .
n
Операция 104: устройство и способ квантования LPC-фильтра по множеству образцов из Фиг.1 содержат средство выбора, предназначенное для выбора из образцов 1, 2, …,  того образца, который обеспечивает самый низкий уровень искажений при заданной скорости передачи битов или при самой низкой скорости передачи битов для заданного целевого уровня искажений. В частности, средство выбора (операция 104) использует такой критерий выбора, который минимизирует скорость передачи битов для достижения определенного целевого уровня искажений, или который минимизирует уровень искажений, созданный при заданной скорости передачи битов.
n
При операции 104 может быть произведен выбор образца из образцов 1, 2, …,  для фактического использования в способе дифференциального квантования в схеме с обратной связью или без обратной связи.
В схеме с обратной связью проводят пробные испытания всех возможных образцов и выбирают тот образец, который оптимизирует определенный критерий искажений или скорость передачи битов. Например, в схеме с обратной связью выбор может быть основан на минимизации взвешенной среднеквадратической ошибки между входным LPC-вектором и квантованным LPC-вектором, соответствующим каждому образцу. Также может использоваться спектральное искажение между входным LPC-вектором и квантованным LPC-вектором. В альтернативном варианте квантование с использованием возможных образцов может быть выполнено таким образом, что при этом уровень искажений поддерживается ниже определенного порогового значения, и выбирают тот образец, который не только удовлетворяет этому критерию, но и использует меньшее количество битов. Как будет объяснено в приведенном ниже описании, для квантования масштабированного вектора невязки (разности между входным LPC-вектором и образцом) может использоваться алгебраический векторный квантователь с переменной скоростью передачи битов, который использует определенный ресурс битов на основании энергии масштабированного вектора невязки. В этом случае выбирают тот образец, который дает меньшее количество битов.
В схеме без обратной связи при операции 104 средство выбора задает образец на основании значения коэффициентов линейного предсказания входного LPC-фильтра, подлежащего квантованию, и коэффициентов линейного предсказания имеющихся образцовых LPC-фильтров. Например, вычисляют L2-норму вектора невязки для всех образцов и выбирают тот образец, который дает меньшее значение.
n
1
1
2
n
2
Операция 105: после выбора одного из образцов 1, 2, …,  при операции 104 передатчик (операция 105) передает или сообщает в декодер (не показан) квантованный LPC-фильтр (не показан) и индекс, указывающий режим квантования (подоперация 105), например абсолютное или дифференциальное квантование. К тому же, когда используют дифференциальное квантование, то передатчик (операция 105) сообщает или передает в декодер индексы, характеризующие выбранный образец и соответствующий дифференциальный квантователь из операций 103, 103, …, 103 (подоперация 105). Для такого оповещения в декодер передают несколько особых битов.
Использование нескольких различных возможных образцов делает дифференциальное квантование более эффективным с точки зрения снижения L2-нормы невязки предсказания по сравнению с ограничением только лишь прошлыми значениями, как при обычном предсказании. К тому же, для заданного целевого уровня искажений этот способ является более эффективным с точки зрения средней скорости передачи битов.
Абсолютное или дифференциальное квантование с переключением
n
n
1
2
n
1
2
n
Согласно второму объекту настоящего изобретения, используют абсолютное/дифференциальное (или предиктивное) квантование с переключением. На Фиг.1 проиллюстрирован пример абсолютной/дифференциальной схемы, в которой производят выбор между одним абсолютным квантователем (операция 102) и  дифференциальными квантователями (операции 103, 103, …, 103) с использованием соответствующих различных образцов 1, 2, …, . И вновь, при операции 104 средством выбора может быть произведен выбор квантователя из абсолютного квантователя и дифференциальных квантователей (операции 102 и 103, 103, …, 103), где выбранный квантователь, согласно критерию выбора, минимизирует уровень искажений, создаваемый при заданной скорости передачи битов, или минимизирует скорость передачи битов для достижения целевого уровня искажений.
1
2
n
Некоторые LPC-фильтры могут быть закодированы с использованием абсолютного квантователя (операция 102). Другие LPC-фильтры кодируют путем дифференциального кодирования относительно одного или нескольких образцовых LPC-фильтров в дифференциальных квантователях (операции 103, 103, …, 103).
1
2
n
Абсолютный квантователь (операция 102) может быть использован в качестве страховочного решения для LPC-фильтров, которые в противном случае являются дифференциально квантованными, например, в случае больших отклонений LPC или в тех случаях, когда абсолютный квантователь (операция 102) является более эффективным, чем дифференциальные квантователи (операции 103, 103, …, 103), с точки зрения скорости передачи битов. Образцовый LPC-фильтр может (все образцовые LPC-фильтры могут) находиться в пределах одного и того же суперкадра во избежание введения зависимостей между суперкадрами, что обычно приводит к возникновению проблем в случае ошибок при передаче (потерь пакетов или разрушений кадров).
Как объяснено в приведенном выше описании, использование предсказания при квантовании LPC приводит к уменьшенной L2-норме данных, подлежащих квантованию, и, следовательно, к снижению средней скорости передачи битов для достижения определенного уровня производительности. Однако предсказание не всегда является одинаково эффективным. В переключаемом LPC [3, 4] выполняют предварительную классификация LPC-фильтра и используют различные предикторы в зависимости от предсказуемости LPC-фильтра, подлежащего квантованию. Однако этот способ был разработан применительно к фиксированной скорости передачи битов, поскольку два дифференциальных квантователя требуют одинакового количества битов для кодирования LPC-фильтра.
1
2
n
1
2
n
n
Также может быть предусмотрено наличие одного или нескольких абсолютных квантователей (операция 102). Кроме того, может быть предусмотрено наличие одного или нескольких дифференциальных (предиктивных) квантователей (операции 103, 103, …, 103). Несколько дифференциальных квантователей (операции 103, 103, …, 103) включают в себя несколько возможных образцов, таких как, например, 1, 2, …, , и/или дифференциальные квантователи нескольких размеров и/или структур.
1
2
n
Как описано в приведенном выше описании, когда используют несколько дифференциальных квантователей (операции 103, 103, …, 103), то выбор фактического дифференциального квантователя, подлежащего использованию, может быть выполнен способом выбора без обратной связи или с обратной связью.
Когда дифференциальное квантование не способно обеспечить достижение целевого уровня искажений, или когда абсолютное квантование требует меньшего количества битов, чем дифференциальное квантование, для достижения этого уровня искажений, то в качестве страховочного решения используют абсолютное квантование. Для того чтобы указать декодеру (не показан) фактически используемый квантователь, посредством передатчика передают (операция 105) один или несколько битов, в зависимости от количества возможных абсолютных и дифференциальных квантователей.
Абсолютное/дифференциальное квантование объединяет преимущества предиктивного квантования (снижение скорости передачи битов, связанное со снижением L2-нормы данных, подлежащих квантованию) с универсальностью абсолютного квантования (которое используют в качестве страховки в том случае, если дифференциальное (или предиктивное) квантование не обеспечивает достижения целевого, например незаметного, уровня искажений).
1
2
n
Когда содержатся несколько дифференциальных квантователей (операции 103, 103, …, 103), то эти дифференциальные квантователи могут использовать либо один и тот же предиктор, либо различные предикторы. В частности, но не исключительно, эти несколько дифференциальных квантователей могут использовать одинаковые коэффициенты предсказания или различные коэффициенты предсказания.
Декодер содержит средство приема и извлечения из потока битов, которым является, например, демультиплексор, (a) квантованного LPC-фильтра и (b) индекса (индексов) или информации:
- о режиме квантования для определения того, был ли LPC-фильтр квантован с использованием абсолютного квантования или дифференциального квантования; и
- об образце из множества возможных образцов, которые были использованы для квантования LPC-фильтра.
Если информация о режиме квантования указывает, что LPC-фильтр был квантован с использованием абсолютного квантования, то для обратного квантования квантованного LPC-фильтра предоставляют обратный абсолютный квантователь (не показан). Если же информация о режиме квантования указывает, что LPC-фильтр был квантован с использованием дифференциального квантования, то тогда обратный дифференциальный квантователь (не показан) выполняет обратное дифференциальное квантование дифференциально квантованного LPC-фильтра по множеству образцов с использованием образца, соответствующего извлеченной информации об образце.
Схема апостериорного (out-of-the-loop) квантования
Кодек AMR-WB+ представляет собой гибридный кодек, который обеспечивает переключение между моделью кодирования во временной области, основанной на алгоритме ACELP-кодирования (кодирования с линейным предсказанием с алгебраическим кодовым возбуждением), и моделью кодирования в области преобразования, именуемой TCX. Кодек AMR-WB+ выполняется следующим образом [1]:
- входной сигнал разделяют на суперкадры из четырех (4) кадров;
- каждый суперкадр кодируют с использованием комбинации из четырех (4) возможных режимов кодирования, причем каждый режим кодирования охватывает различную длительность:
- ACELP (охватывает длительность, равную одному (1) кадру);
- TCX256 (охватывает длительность, равную одному (1) кадру);
- TCX512 (охватывает длительность, равную двум (2) кадрам); и
- TCX1024 (охватывает длительность, равную четырем (4) кадрам).
Следовательно, имеется 26 возможных комбинаций режимов для кодирования каждого суперкадра.
Для конкретного суперкадра комбинация режимов, которая минимизирует общую взвешенную ошибку, определяется процедурой выбора режима "с обратной связью". В частности, вместо тестирования этих 26 комбинаций, выбор режима выполняют путем одиннадцати (11) пробных испытаний (поиск по дереву, см. таблицу 1). В кодеке AMR-WB+ выбор режима с обратной связью основан на минимизации среднеквадратичной ошибки между входным сигналом и сигналом кодека во взвешенной области (или на максимизации отношения сигнал - шум квантования).
<b>Таблица 1</b>11 пробных испытаний для выбора режима с обратной связью в кодеке AMR-WB+
Пробное испытание
Кадр 1
Кадр 2
Кадр 3
Кадр 4
1
ACELP
2
TCX256
3
ACELP
4
TCX256
5
TCX512
6
ACELP
7
TCX256
8
ACELP
9
TCX256
10
TCX512
11
TCX1024
LPC-фильтры являются одним из различных параметров, передаваемых кодеком AMR-WB+. Ниже описаны некоторые ключевые элементы, относящиеся к квантованию и передаче этих LPC-фильтров.
Несмотря на то, что различные режимы кодирования не охватывают одинаковое количество кадров, количество LPC-фильтров, передаваемых в декодер, является одним и тем же для всех режимов кодирования и равно 1. Передается только тот LPC-фильтр, который соответствует концу охваченного сегмента. В частности, в случае TCX1024 вычисляют и передают один (1) LPC-фильтр в течение длительности четырех (4) кадров. В случае TCX512 вычисляют и передают один (1) LPC-фильтр в течение длительности двух (2) кадров. В случае TCX256 или ACELP вычисляют и передают один (1) LPC-фильтр в течение длительности одного (1) кадра.
В кодеке AMR-WB+ используется предиктивный LPC-квантователь (на основе скользящего среднего значения первого порядка). Функционирование последнего квантователя зависит от предварительно переданного LPC-фильтра и, следовательно, от предварительно выбранного режима кодирования. Следовательно, поскольку точная комбинация режимов не известна до тех пор, пока не будет закодирован весь суперкадр, некоторые LPC-фильтры кодируются несколько раз, прежде чем будет определена конечная комбинация режимов.
Например, LPC-фильтр, расположенный в конце кадра 3, передается в декодер только тогда, когда третий кадр закодирован как ACELP или TCX256. Он не передается, когда кадры 3 и 4 закодированы совместно с использованием TCX512. Что касается LPC-фильтра, расположенного в конце кадра 2, то он передается при всех комбинациях режимов, кроме TCX1024. Следовательно, предсказание, выполненное при квантовании последнего LPC-фильтра суперкадра, зависит от комбинации режимов для всего суперкадра.
Принцип раскрытого способа заключается в том, что порядок, в котором выполняется квантование LPC-фильтров, выбран таким образом, чтобы после того, как было окончательно принято решение относительно обратной связи, передача информации о квантовании, соответствующей ненужным LPC-фильтрам, могла быть пропущена без какого-либо влияния на передачу и декодирование в декодере других фильтров. Для каждого LPC-фильтра, подлежащего квантованию с использованием описанной выше стратегии дифференциального квантования, это налагает некоторые ограничения на возможные образцовые LPC-фильтры.
Приведенный ниже пример дан со ссылкой на Фиг.2.
Операция 1 на Фиг.2: во избежание каких-либо зависимостей между суперкадрами, квантование, по меньшей мере, одного LPC-фильтра выполняется с использованием абсолютного LPC-квантователя. Поскольку фильтр LPC4 кадра 4 из суперкадра всегда передается при любой комбинации режимов кодирования, определенной посредством процедуры выбора с обратной связью, то удобно квантовать этот фильтр LPC4 с использованием абсолютного квантователя.
Операция 2 на Фиг.2: следующим LPC-фильтром, подлежащим квантованию, является фильтр LPC2 кадра 2 из суперкадра, который передается для всех комбинаций режимов за исключением TCX1024. Дифференциальный квантователь может использоваться, например, для кодирования разности между фильтром LPC2 и версией фильтра LPC4, квантованной путем абсолютного квантования. В качестве страховочного решения, например в случае больших отклонений LPC или когда абсолютный LPC-квантователь является более эффективным, чем дифференциальный квантователь, с точки зрения скорости передачи битов и/или уровня искажений, также может быть использован тот же самый абсолютный квантователь, который был использован для кодирования фильтра LPC4.
Операция 3 на Фиг.2: остальные два LPC-фильтра (фильтр LPC1 кадра 1 из суперкадра и фильтр LPC3 кадра 3 из суперкадра) также квантуют с использованием той же самой стратегии дифференциального/абсолютного квантования. Оба LPC-фильтра могут быть квантованы относительно квантованной версии фильтра LPC2. Ниже приведено описание некоторых альтернативных стратегий.
На Фиг.5 изображена схема последовательности операций, на которой более подробно проиллюстрирован пример схемы апостериорного квантования.
Операция 501: абсолютный квантователь квантует фильтр LPC4.
Операция 502: операция 502 является необязательной и используется при первом кодировании кадра на основании LPC после кодирования кадра не на основании LPC. Абсолютный квантователь квантует фильтр LPC0, или дифференциальный квантователь выполняет дифференциальное квантование фильтра LPC0 относительно квантованного фильтра LPC4. Фильтр LPC0 является последним LPC-фильтром (LPC4) из предыдущего суперкадра и может быть использован в качестве возможного образца для квантования фильтров LPC1 - LPC4.
Операция 503: абсолютный квантователь квантует фильтр LPC2, или дифференциальный квантователь выполняет дифференциальное квантование фильтра LPC2 относительно квантованного фильтра LPC4, используемого в качестве образца.
Операция 504: абсолютный квантователь квантует фильтр LPC1, дифференциальный квантователь выполняет дифференциальное квантование фильтра LPC1 относительно квантованного фильтра LPC2, используемого в качестве образца, или дифференциальный квантователь выполняет дифференциальное квантование фильтра LPC1 относительно фильтра (квантованный фильтр LPC2 + квантованный фильтр LPC0)/2, используемого в качестве образца.
Операция 505: абсолютный квантователь квантует фильтр LPC3, дифференциальный квантователь выполняет дифференциальное квантование фильтра LPC3 относительно квантованного фильтра LPC2, используемого в качестве образца, дифференциальный квантователь выполняет дифференциальное квантование фильтра LPC3 относительно квантованного фильтра LPC4, используемого в качестве образца, или дифференциальный квантователь выполняет дифференциальное квантование фильтра LPC3 относительно фильтра (квантованный фильтр LPC2 + квантованный фильтр LPC4)/2, используемого в качестве образца.
На Фиг.3 изображена схема последовательности операций, на которой проиллюстрировано определение LPC-фильтров, подлежащих передаче, в конфигурации, в которой могут быть вычислены и переданы в суперкадре четыре (4) LPC-фильтра.
Прежде всего, следует иметь в виду, что квантованный фильтр LPC1 передается только тогда, когда для первой половины суперкадра выбран режим ACELP и/или TCX256. Аналогичным образом, фильтр LPC3 передается только тогда, когда для второй половины этого суперкадра используются ACELP и/или TCX256.
Операция 301: выполнят квантование фильтра LPC1 кадра 1 из суперкадра, фильтра LPC2 кадра 2 из суперкадра, фильтра LPC3 кадра 3 из суперкадра и фильтра LPC4 кадра 4 из суперкадра с использованием, например, стратегии квантования, проиллюстрированной и описанной применительно к Фиг.2 и Фиг.5. Разумеется, возможны и другие стратегии квантования.
Операция 302: производят выбор режимов кодирования с обратной связью, как описано выше.
Операция 303: квантованный фильтр LPC4 передается в декодер, например, передатчиком 105 из Фиг.1. Декодер содержит:
- средство приема и извлечения из принятого потока битов, которым является, например, демультиплексор, квантованного фильтра LPC4; и
- обратный абсолютный квантователь, в который подан квантованный фильтр LPC4, для обратного квантования квантованного фильтра LPC4.
Операция 304: Если суперкадр закодирован с использованием режима TCX1024, то дополнительная передача не требуется.
Операция 305: если первый, второй, третий и четвертый кадры суперкадра не являются закодированными с использованием режима TCX1024, то в декодер передают квантованный фильтр LPC2 и индекс, указывающий один из режимов квантования: режим абсолютного квантования и режим дифференциального квантования, например, посредством передатчика 105 из Фиг.1. Декодер содержит:
- средство приема и извлечения из принятого потока битов, которым является, например, демультиплексор, квантованного фильтра LPC2 и индекса, указывающего один из режимов квантования: режим абсолютного квантования и режим дифференциального квантования; и
- обратный абсолютный квантователь, в который подан квантованный фильтр LPC2 и индекс, указывающий режим абсолютного квантования, для обратного квантования квантованного фильтра LPC2, или обратный дифференциальный квантователь, в который подан квантованный фильтр LPC2 и индекс, указывающий режим дифференциального квантования, для обратного квантования квантованного фильтра LPC2.
Операция 306: если кадры 1 и 2 из суперкадра закодированы с использованием режима TCX512, то квантованный фильтр LPC1 не передают в декодер.
Операция 307: если кадры 1 и 2 из суперкадра не закодированы с использованием режима TCX512, то есть, если кадры 1 и 2 из суперкадра закодированы с использованием режима ACELP или TCX256, то в декодер передают квантованный фильтр LPC1 и индекс, указывающий один из режимов квантования: режим абсолютного квантования, режим дифференциального квантования относительно квантованного фильтра LPC2, используемого в качестве образца, и режим дифференциального квантования относительно фильтра (квантованный фильтр LPC2 + квантованный фильтр LPC0)/2, используемого в качестве образца, например, посредством передатчика 105 из Фиг.1. Декодер содержит:
- средство приема и извлечения из принятого потока битов, которым является, например, демультиплексор, квантованного фильтра LPC1 и индекса, указывающего один из режимов квантования: режим абсолютного квантования, режим дифференциального квантования относительно квантованного фильтра LPC2, используемого в качестве образца, и режим дифференциального квантования относительно фильтра (квантованный фильтр LPC2 + квантованный фильтр LPC0)/2, используемого в качестве образца; и
- обратный абсолютный квантователь, в который подан квантованный фильтр LPC1 и индекс, указывающий один из режимов квантования: режим абсолютного квантования, режим дифференциального квантования относительно квантованного фильтра LPC2, используемого в качестве образца, и режим дифференциального квантования относительно фильтра (квантованный фильтр LPC2 + квантованный фильтр LPC0)/2, используемого в качестве образца, для обратного квантования квантованного фильтра LPC1.
Операция 308: если кадры 3 и 4 из суперкадра закодированы с использованием режима TCX512, то квантованный фильтр LPC3 не передается в декодер.
Операция 309: если кадры 3 и 4 из суперкадра не закодированы с использованием режима TCX512, то есть если кадры 3 и 4 из суперкадра закодированы с использованием режима ACELP или TCX256, то в декодер передается квантованный фильтр LPC3 и индекс, указывающий один из режимов квантования: режим абсолютного квантования, режим дифференциального квантования относительно квантованного фильтра LPC2, используемого в качестве образца, режим дифференциального квантования относительно квантованного фильтра LPC4, используемого в качестве образца, и режим дифференциального квантования относительно фильтра (квантованный фильтр LPC2 + квантованный фильтр LPC4)/2, используемого в качестве образца, например, посредством передатчика 105 из Фиг.1. Декодер содержит:
- средство приема и извлечения из принятого потока битов, которым является, например, демультиплексор, квантованного фильтра LPC3 и индекса, указывающего один из режимов квантования: режим абсолютного квантования, режим дифференциального квантования относительно квантованного фильтра LPC2, используемого в качестве образца, режим дифференциального квантования относительно квантованного фильтра LPC4, используемого в качестве образца, и режим дифференциального квантования относительно фильтра (квантованный фильтр LPC2 + квантованный фильтр LPC4)/2, используемого в качестве образца; и
- обратный абсолютный квантователь, в который подан квантованный фильтр LPC3 и индекс, указывающий один из режимов квантования: режим абсолютного квантования, режим дифференциального квантования относительно квантованного фильтра LPC2, используемого в качестве образца, режим дифференциального квантования относительно квантованного фильтра LPC4, используемого в качестве образца, и режим дифференциального квантования относительно фильтра (квантованный фильтр LPC2 + квантованный фильтр LPC4)/2, используемого в качестве образца, для обратного квантования квантованного фильтра LPC3.
Некоторыми преимуществами вышеописанного технического решения являются, в том числе, следующие:
- квантование всего набора LPC-фильтров до выбора режимов кодирования с обратной связью уменьшает сложность;
- использование дифференциального квантователя в схеме глобального квантования сберегает часть скорости передачи битов, сохраняя то, что было достигнуто, например, посредством предиктивного квантователя в исходной схеме квантования согласно кодеку AMR-WB+.
1
2
n
Приведенные ниже варианты могут использоваться для построения образцовых LPC-фильтров, используемых в дифференциальных квантователях (такие операции, как, например, 103, 103, …, 103):
- если зависимость между суперкадрами не является проблемой, то последний LPC-фильтр (LPC4) из предыдущего суперкадра (LPC0) может быть использован в качестве возможного образца для кодирования фильтров LPC1-LPC4;
- когда имеются различные образцовые LPC-фильтры, например фильтры LPC0 и LPC4, при кодировании фильтра LPC2, то в декодер может быть передана особая комбинация битов для указания того, какой из образцов фактически используется. Например, выбор образца может быть выполнен так, как описано выше со ссылкой на Фиг.1, например, на основе результатов измерения расстояния или скорости передачи битов;
- когда имеются различные образцовые LPC-фильтры, то могут быть получены дополнительные вторичные образцовые LPC-фильтры путем применения различных схем экстраполяции или интерполяции к уже имеющимся образцовым LPC-фильтрам. Может быть передана особая комбинация битов для указания фактической стратегии интерполяции или экстраполяции, выбранной кодером. Например, может быть выполнено дифференциальное квантование фильтра LPC3 относительно квантованных версий любого из следующих фильтров: фильтра LPC2 или фильтра LPC4, или даже относительно интерполированного значения (например, среднего значения) между этими двумя квантованными фильтрами LPC2 и LPC4 (см. операцию 505 на Фиг.5).
Описанная выше схема "апостериорного" квантования может быть расширена на кодирование более четырех LPC-фильтров: например, для квантования и передачи фильтра LPC0 вместе с суперкадром. В этом случае фильтр LPC0, соответствующий последнему LPC-фильтру (LPC4), вычисленному во время предыдущего суперкадра, может быть, в качестве примера, не являющегося ограничивающим признаком, квантован относительно фильтра LPC4, поскольку этот фильтр LPC4 всегда имеется в качестве образца. Квантованный фильтр LPC0 передается в декодер вместе с индексом, указывающим один из режимов квантования: режим абсолютного квантования и режим дифференциального квантования. Декодер содержит:
- средство приема и извлечения из принятого потока битов, которым является, например, демультиплексор, квантованного фильтра LPC0 и индекса, указывающего один из режимов квантования: режим абсолютного квантования и режим дифференциального квантования; и
- обратный абсолютный квантователь, в который подан квантованный фильтр LPC0 и индекс, указывающий режим абсолютного квантования, для обратного квантования квантованного фильтра LPC0, или обратный дифференциальный квантователь, в который подан квантованный фильтр LPC0 и индекс, указывающий режим дифференциального квантования, для обратного квантования квантованного фильтра LPC0.
Передача фильтра LPC0 в декодер является полезной для инициализации кодека, основанного на LPC, в случае переключения из режима кодирования, не основанного на LPC, в режим кодирования, основанный на LPC. Примерами режимов кодирования, не основанных на LPC, являются следующие: импульсно-кодовая модуляция (PCM) и кодирование с преобразованием, используемое, например, кодеком MP3 и усовершенствованным кодеком для звука AAC. Примерами режимов кодирования, основанных на LPC, являются следующие: линейное предсказание с кодовым возбуждением (CELP) и алгебраическое CELP (ACELP), используемое в кодеке AMR-WB+ [1].
В кодеках, основанных на LPC, производят оценку и передачу в декодер одного или нескольких LPC-фильтров для каждого кадра (или для каждого суперкадра). Когда оценивается и передается один-единственный LPC-фильтр для каждого кадра, то этот LPC-фильтр чаще всего оценивается с использованием окна LPC-анализа с центром в конце кадра, как изображено на чертеже Фиг.4А. Когда передается несколько LPC-фильтров для каждого (или для каждого суперкадра, как в кодеке AMR-WB+), то они чаще всего оцениваются через равные интервалы по длине кадра, как изображено на Фиг.4Б. Фильтр LPC0 на Фиг.4А и Фиг.4Б фактически является последним LPC-фильтром предыдущего кадра (или суперкадра), который квантован и передан в декодер.
В типичных кодеках, основанных на LPC, обычно используют интерполированные значения для LPC-фильтров. Например, в примере на Фиг.4А в кодеке, основанном на LPC, кадр обычно разделяют на четыре (4) подкадра и используют различный интерполированный LPC-фильтр для каждого подкадра, причем LPC-фильтр первого подкадра является более близким к фильтру LPC0, а LPC-фильтр 4 подкадра является более близким к фильтру LPC1.
В кодеке, который переключается из режима кодирования, не основанного на LPC, в режим кодирования, основанный на LPC, фильтр LPC0, используемый для работы кодека, основанного на LPC, обычно не доступен в первом кадре после переключения из режима кодирования, не основанного на LPC, в режим кодирования, основанный на LPC.
В этом контексте, предложено предоставлять значение для фильтра LPC0, доступное как в кодере, так и в декодере, при кодировании и декодировании первого кадра после переключения из режима кодирования, не основанного на LPC, в режим кодирования, основанный на LPC. В частности, значение фильтра LPC0 получают в декодере из параметров, переданных из кодера.
Согласно первому техническому решению, фильтр LPC0 определяют в кодере (с использованием LPC-анализа, хорошо известного для специалистов в данной области техники, имеющих средний уровень квалификации), квантуют и передают в декодер после того, как было принято решение о переключении из режима кодирования, не основанного на LPC, в режим кодирования, основанный на LPC. Декодер использует переданное квантованное значение и фильтр LPC0. Для эффективного квантования фильтра LPC0 может использоваться описанная выше схема апостериорного квантования, расширенная до более чем четырех (4) LPC-фильтров.
Ниже приведено описание второго и третьего технических решений для оценки фильтра LPC0 в декодере по переданным параметрам:
- оценка фильтра LPC0 по другим переданным LPC-фильтрам с использованием, например, экстраполяции; и
- оценка фильтра LPC0 по другим переданным параметрам. Например, фильтр LPC0 может быть оценен путем применения обычной процедуры LPC-анализа к прошлому декодированному сигналу, в частности к сигналу с выхода переключаемого декодера, до переключения из режима кодирования, не основанного на LPC, в режим кодирования, основанный на LPC.
Квантование посредством унифицированного алгебраического векторного квантователя
Принцип стохастического векторного квантования заключается в поиске кодовой книги векторов для ближайшего соседа (обычно с точки зрения евклидова расстояния или взвешенного евклидова расстояния) вектора, подлежащего квантованию. При квантовании LPC-фильтров в области LSF (линейных спектральных частот) или ISF (иммитансных спектральных частот) обычно используют взвешенное евклидово расстояние, причем каждый компонент вектора умножен на различный весовой коэффициент в зависимости от его величины и от величины других компонентов [5]. Цель этой весовой обработки состоит в том, чтобы характер поведения минимизации евклидова расстояния был как можно более близким к минимизации спектрального искажения, насколько это возможно. В отличие от стохастического квантователя, унифицированный алгебраический векторный квантователь не выполняет исчерпывающий поиск кодовой книги. Следовательно, трудно ввести весовую функцию в процедуру вычисления расстояния.
В качестве примера, не являющегося ограничивающим признаком, в предложенном здесь техническом решении квантование LPC-фильтров осуществляют в области LSF. Следовательно, предусмотрено надлежащее средство преобразования LPC-фильтра в области квантования LSF для формирования входного вектора LSF. В частности, вектор невязки LSF, то есть разность между входным вектором LSF и первым приближением этого входного вектора LSF, трансформируют с использованием весовой функции, вычисленной из первого приближения, где в этом первом приближении используют стохастический абсолютный квантователь входного вектора LSF, дифференциальный квантователь входного вектора LSF, интерполятор входного вектора LSF, или иной элемент, который дает оценочное значение входного вектора LSF, подлежащего квантованию. Термин "трансформация" означает, что к компонентам вектора невязки LSF применяют различные весовые коэффициенты. Поскольку первое приближение также имеется в декодере, то в декодере также могут быть вычислены обратные весовые коэффициенты, и к квантованному вектору невязки LSF может быть применена обратная трансформация. Трансформация вектора невязки LSF согласно модели, которая минимизирует спектральное искажение, полезна тогда, когда квантователь является унифицированным. Квантованные LSF, принятые в декодере, представляют собой комбинацию первого приближения с уточненным квантованием с переменной скоростью передачи битов, например AVQ (алгебраическим векторным квантованием), которое подвергают обратной трансформации в декодере.
Некоторыми преимуществами предложенного технического решения являются следующие.
- При хорошей весовой функции унифицированный квантователь может обеспечивать относительно единообразное спектральное искажение.
- Преимуществами векторного квантования с переменной скоростью передачи битов, например AVQ (алгебраического векторного квантования) по сравнению с SVQ (стохастическим векторным квантованием), являются меньшее количество таблиц (меньший объем памяти), меньшая сложность и более высокая гранулярность скорости передачи битов.
- Другим преимуществом в пользу векторного квантования с переменной скоростью передачи битов, например AVQ (алгебраического векторного квантования), является его неограниченный размер кодовой книги; это гарантирует одно и то же спектральное искажение для сигнала любого типа.
Общий принцип квантования конкретного LPC-фильтра приведен на Фиг.6. В этом примере, не являющемся ограничивающим, LPC-фильтр квантуют в области LSF.
Операция 601: вычислитель вычисляет первое приближение 608 входного вектора 607 LSF.
Операция 602: блок вычитания вычитает первое приближение 608 из операции 601 из входного вектора 607 LSF для получения вектора 609 невязки LSF.
Операция 603: вычислитель получает весовую функцию 610 LSF из первого приближения 608 из операции 601.
Операция 604: умножитель, или блок трансформации, применяет весовую функцию 610 LSF из операции 603 к вектору 609 невязки LSF из операции 602.
Операция 605: квантователь с переменной скоростью передачи битов, например алгебраический векторный квантователь (AVQ), квантует результирующий взвешенный вектор 611 невязки LSF для обеспечения квантованного взвешенного вектора 612 невязки LSF.
Операция 606: в ответ на первое приближение 608 из операции 601 и квантованный взвешенный вектор 612 невязки LSF из операции 605 мультиплексор выполняет мультиплексирование и передачу соответствующих закодированных индексов 613.
Первое приближение (операция 601) может быть вычислено различными способами. В качестве не ограничивающего примера, вычислителем первого приближения 608 может являться абсолютный стохастический векторный квантователь входного вектора 607 LSF с малым количеством битов или дифференциальный квантователь входного вектора 607 LSF с использованием образца, как объяснено выше, где первым приближением является сам образец. Например, при квантовании вектора LPC1 так, как показано на Фиг.5, операция 504, вычислителем первого приближения 608 может являться абсолютный квантователь с 8 битами, или квантованный фильтр LPC2, или (квантованный фильтр LPC2 + квантованный фильтр LPC0)/2.
Вычисление и предназначение весовой функции (операция 603) описаны ниже.
Соответствующий обратный квантователь проиллюстрирован на Фиг.7.
Операция 701: выполняют демультиплексирование закодированных индексов 707 из кодера посредством демультиплексора.
Операция 702: демультиплексированные закодированные индексы включают в себя первое приближение 708.
Операция 703: поскольку первое приближение имеется как в декодере, так и в кодере (операция 702), то вычислитель может использоваться для вычисления обратной весовой функции 709 LSF.
Операция 704: декодированные индексы 710, отображающие квантованный взвешенный вектор невязки LSF, подают в обратный векторный квантователь с переменной скоростью передачи битов, например, в алгебраический обратный векторный квантователь (обратный AVQ), для восстановления взвешенного вектора 711 невязки LSF.
Операция 705: умножитель умножает взвешенный вектор 711 невязки LSF из операции 704 на обратную весовую функцию 709 LSF из операции 703 для восстановления вектора 712 невязки LSF.
Операция 706: сумматор суммирует первое приближение 708 из операции 702 с вектором 712 невязки LSF из операции 705 для формирования декодированного вектора 713 LSF. Декодированный вектор 713 LSF представляет собой комбинацию первого приближения из операции 702 с уточнением обратного квантования с переменной скоростью передачи битов (операция 704), умноженную на обратную весовую функцию (операция 705) в декодере.
Первое приближение
Как объяснено выше, квантование конкретного LPC-фильтра может быть выполнено с использованием нескольких режимов квантования, включая абсолютное квантование и дифференциальное квантование, с использованием нескольких образцов. Первое приближение зависит от режима квантования. В случае абсолютного квантования для первого приближения может быть использован векторный квантователь с малым количеством битов (например, 8 битами). В случае дифференциального квантования первое приближение само является образцом. Например, при квантовании вектора LPC3, как проиллюстрировано на Фиг.5 (операция 505), первым приближением может являться одно из следующих:
- 8-битовое векторное квантование (VQ) (абсолютное квантование);
- квантованный фильтр LPC2 (дифференциальное квантование с использованием квантованного фильтра LPC2 в качестве образца);
- квантованный фильтр LPC4 (дифференциальное квантование с использованием квантованного фильтра LPC4 в качестве образца); или
- среднее значение квантованных фильтров LPC2 и LPC4 (дифференциальное квантование с использованием фильтра (квантованный фильтр LPC2 + квантованный фильтр LPC4)/2 в качестве образца).
p
p
В качестве примера, не являющегося ограничивающим признаком, в случае LPC-фильтра -го порядка, выраженного посредством параметров LSF, в режиме абсолютного квантования первое приближение вычисляют с использованием -мерного 8-битового стохастического векторного квантователя, примененного к входному вектору LSF. При поиске кодовой книги используют взвешенное евклидово расстояние, в котором каждый компонент разности между входным вектором LSF и записью в кодовой книге, возведенной в квадрат, умножают на весовой коэффициент . Например, весовой коэффициент  может быть задан следующим выражением:
i
p
, =0, ... , -1 ,
где
,
где  представляет собой входной вектор LSF, подлежащий квантованию,  - порядок анализа линейного предсказания (LP), а  - внутренняя частота дискретизации кодека, основанного на LPC (в герцах (Гц)).
В режимах дифференциального квантования первое приближение основано на уже квантованных LPC-фильтрах.
Как объяснено со ссылкой на Фиг.5, набор LPC-фильтров квантуют в следующем порядке: LPC4, LPC2, LPC1 а затем LPC3. При необходимости после фильтра LPC4 квантуют необязательный фильтр LPC0. Следовательно, дифференциальное квантование фильтра LPC2 может быть выполнено только относительно LPC4, в то время как дифференциальное квантование фильтра LPC3 может быть выполнено относительно LPC2, LPC4 или комбинации обоих фильтров: LPC2 и LPC4; LPC1 не считается хорошим выбором, поскольку он не является соседним с LPC3.
Для каждого первого приближения  вектор невязки LSF вычисляют следующим образом:
.
Как показано на Фиг.6, вектор 609 невязки LSF из операции 602 умножают на весовой коэффициент (операция 604) с весовой функцией 610 из операции 603, вычисленной на основании первого приближения  для получения трансформированного вектора 611 невязки LSF (операция 604). Трансформированный вектор 611 невязки LSF затем квантуют с использованием квантователя с переменной скоростью передачи битов, например, алгебраического векторного квантователя (операция 605).
Например, весовые коэффициенты, применяемые к компонентам -го вектора невязки LSF, могут быть заданы следующим соотношением:
i
p
, =0, ... , -1 ,
где
,
где  - первое приближение,  - внутренняя частота дискретизации кодека, основанного на LPC, выраженная в герцах (Гц), а  - масштабный коэффициент, который зависит от режима квантования. Значение  выбрано таким образом, чтобы получить определенное целевое спектральное искажение и/или определенную целевую среднюю скорость передачи битов после квантования трансформированного вектора невязки LSF квантователем с переменной скоростью передачи битов. В качестве примера, не являющегося ограничивающим признаком, векторный квантователь с переменной скоростью передачи битов производит выбор скорости передачи битов для определенного вектора на основании его средней энергии.
В иллюстративном примере четыре (4) LPC-фильтра в суперкадре, а также необязательный фильтр LPC0 квантуют согласно Фиг.5. В таблице 2 показан используемый масштабный коэффициент для каждого режима квантования и кодирование индекса режима, использованное в этом примере. Следует отметить, что режим квантования определяет, какой режим квантования используется: абсолютное квантование или дифференциальное квантование, и в случае дифференциального квантования он определяет используемый образцовый фильтр. Как объяснено выше, образцовый фильтр, используемый при дифференциальном квантовании, фактически является первым приближением для квантования с переменной скоростью передачи битов.
<b>Таблица 2</b>Возможные режимы квантования: абсолютное и относительное, и соответствующая передача потока битов, масштабный коэффициент и весовая функция
<b>Фильтр</b>
<b>Режим квантования</b>
<b>Первое приближение</b>
<b>Закодированный режим</b>
<img file="00000022.tif" he="4" wi="4" img-content="undefined" img-format="tif" />
LPC4
Абсолютное
8-битовое векторное квантование (VQ)
(отсутствует)
60
LPC0
Абсолютное
8-битовое VQ
0
60
Относительное LPC4
Квантованный LPC4
1
63
LPC2
Абсолютное
8-битовое VQ
0
60
Относительное LPC4
Квантованный LPC4
1
63
LPC1
Абсолютное
8-битовое VQ
00
60
Относительное (LPC0+LPC2)/2 (Примечание 1)
Квантованный (LPC0+LPC2)/2
01
65
Относительное LPC2
Квантованный LPC2
10
64
LPC3
Абсолютное
8-битовое VQ
10
60
Относительное (LPC2+LPC4)/2
Квантованный (LPC2+LPC4)/2
0
65
Относительное LPC2
Квантованный LPC2
110
64
Относительное LPC4
Квантованный LPC4
111
64
Примечание 1: в этом режиме отсутствует AVQ-квантователь второй ступени
На Фиг.8 изображена принципиальная блок-схема, поясняющая процедуру квантования, описанную выше.
1
2
n
1
2
n
1
2
n
Операции 801, 801, 801, …, 801: входной вектор 800 LSF подают в абсолютный квантователь (операция 801) для выполнения, например, 8-битового абсолютного векторного квантования входного вектора 800 LSF. Входной вектор LSF также подают в дифференциальные квантователи (операции 801, 801, …, 801) для выполнения дифференциального квантования входного вектора 800 LSF. Как объяснено выше со ссылкой на Фиг.1, дифференциальные квантователи используют, соответственно, различные образцы. 8-битовый VQ (векторный квантователь) из операции 801 и образцы из операций 801, 801, …, 801 представляют первое приближение.
1
2
n
1
2
n
При операциях 802, 802, 802, …, 802 вычислитель вычисляет вектор невязки LSF из вектора первого приближения из операций, соответственно, 801, 801, 801, …, 801. Вектор невязки вычисляют как разность между входным вектором и первым приближением. Это соответствует операциям 601 и 602 из Фиг.6.
1
2
n
1
2
n
При операциях 803, 803, 803, …, 803 вычислитель вычисляет весовую функцию для трансформирования вектора невязки LSF из операций, соответственно 802, 802, 802, …, 802. Это соответствует операциям 601 и 603 из Фиг.6.
1
2
n
1
2
n
1
2
n
При операциях 804, 804, 804, …, 804 блок трансформации умножает вектор невязки LSF из операций, соответственно, 802, 802, 802, …, 802 на весовую функцию из операций, соответственно, 803, 803, 803, …, 803.
1
2
n
1
2
n
При операциях 805, 805, 805, …, 805 квантователь с переменной скоростью передачи битов, например алгебраический векторный квантователь (AVQ), квантует результирующий взвешенный вектор невязки LSF из операций, соответственно, 804, 804, 804, …, 804 для обеспечения квантованного взвешенного вектора невязки LSF.
n
n
1
2
n
1
2
n
При операции 806 средство выбора производит выбор режима квантования из режима абсолютного квантования (операция 801) и режима дифференциального квантования с использованием одного из образцов 1, 2, …,  (Операции 801, 801, …, 801). Например, при операции 806 может быть выбран такой режим квантования (операции 801, 801, 801, …, 801), который дает меньшее искажение при заданной скорости передачи битов или при более низкой скорости передачи битов для целевого уровня искажений. Что касается выбора из 8-битового VQ и образцов 1, 2, …, , то выбор может быть произведен в схеме с обратной связью или без обратной связи. В схеме с обратной связью проводят пробные испытания всех возможных образцов и выбирают тот образец, который оптимизирует определенный критерий искажений или скорость передачи битов, например меньшее искажение для заданной скорости передачи битов или более низкая скорость передачи битов для целевого уровня искажений. В схеме без обратной связи при операции 806 задают образец на основании значения коэффициентов линейного предсказания LPC-фильтра, подлежащего квантованию, и коэффициентов линейного предсказания имеющихся образцовых LPC-фильтров.
Операция 807: после выбора при операции 806 передатчик (операция 807) сообщает или передает в декодер (не показан) индекс, указывающий:
1
- режим квантования (подоперация 807), например режим абсолютного квантования или режим дифференциального квантования; и
1
2
n
2
- в случае дифференциального квантования, выбранный образец и соответствующий дифференциальный квантователь из операций 801, 801, …, 801 (подоперация 807).
Для такого оповещения в декодер передают несколько особых битов.
Алгебраический векторный квантователь
1
2
n
Возможный алгебраический векторный квантователь (AVQ), используемый, например, при операции 605 из Фиг.6 и при операциях 805, 805, 805, …, 805 из Фиг.8, основан на векторном квантователе с использованием 8-мерной решетки , который используют для квантования спектра в режимах TCX кодека AMR-WB+ [1].
Для LPC 16-го порядка каждый взвешенный вектор невязки LSF разделяют на два 8-мерных субвектора  и . Каждый из этих двух субвекторов квантуют с использованием подхода, содержащего три операции, который описан ниже.
Не все векторы LSF имеют одинаковую чувствительность к ошибке квантования, вследствие чего определенная ошибка квантования, приложенная к одному вектору LSF, может оказывать большее влияние на спектральное искажение, чем та же самая ошибка квантования, приложенная к другому вектору LSF. Операция весовой обработки дает одинаковую относительную чувствительность всем взвешенным векторам LSF. AVQ имеет особенность, заключающуюся в том, что он вносит одинаковый уровень ошибки квантования для взвешенных векторов LSF (единообразную ошибку квантования). При выполнении обратного квантования обратная весовая обработка, которую применяют к взвешенным векторам LSF, подвергнутым обратному квантованию, также, очевидно, применяется и к ошибке квантования. Таким образом, первоначально единообразная ошибка квантования распределена среди квантованных векторов LSF, причем более чувствительные векторы LSF получают меньшую ошибку квантования, а менее чувствительные векторы LSF получают более значительную ошибку квантования. В результате, минимизировано влияние ошибки квантования на спектральное искажение.
Как объяснено в [1], в квантователе  используют неизменное и заданное квантование. Вследствие этого, скорость передачи битов, необходимая для кодирования субвектора, возрастает при увеличении амплитуды этого субвектора.
Масштабный коэффициент  регулирует амплитуду взвешенных векторов LSF. Следовательно, масштабный коэффициент  также регулирует как скорость передачи битов, необходимую для квантования вектора LSF, так и среднее спектральное искажение.
RE
Первая операция: поиск ближайшего соседа в решетке
8
В этой первой операции 8-мерный субвектор  округляют как узел в решетке  для получения его квантованной версии . До рассмотрения процедуры квантования стоит рассмотреть свойства этой решетки. Решетка  определена следующим образом:
то есть как объединение решетки  и версии , сдвинутой на вектор (1,1,1,1,1,1,1,1). Следовательно, поиск ближайшего соседа в решетке
эквивалентен поиску ближайшего соседа в решетке , затем поиску ближайшего соседа в двумерной решетке  + (1,1,1,1,1,1,1,1), и, наконец, выбору наилучшего из этих двух узлов решетки. Решетка  представляет собой решетку , масштабированную с коэффициентом 2, причем решетка  задана следующим образом:
То есть все узлы в решетке  являются целыми числами с ограничением, что сумма всех компонентов является четной. Это также означает, что сумма компонентов узла в решетке  равна целому числу, кратному 4.
Непосредственным результатом этого определения решетки  является разработка быстрого алгоритма поиска ближайшего соседа 8-мерного субвектора  по всем узлам решетки в решетке . Это может быть сделано путем применения описанных ниже операций. Компоненты субвектора  представляют собой значения с плавающей запятой, и результат квантования, которым является , представляет собой вектор из целочисленных значений.
1.
2. Округление каждого компонента  до ближайшего целого числа для генерации
3.
S
4. Вычисление  как суммы компонентов
S
5. Если  не равно целому числу, кратному 4 (возможны отрицательные величины), то один из его компонентов изменяют следующим образом:
- находят местоположение , где значение  является наибольшим
- если , то
- если , то
6. , где  обозначает вектор, в котором все компоненты равны 1
7. Округление каждого компонента  до ближайшего целого числа для генерации
8.
9. Вычисление  как суммы компонентов
10. Если  не равно целому числу, кратному 4 (возможны отрицательные величины), то один из его компонентов изменяют следующим образом:
<mrow><mi>a</mi><mi>b</mi><mi>s</mi><mrow><mo>(</mo><mrow><msub><mi>z</mi><mi>k</mi></msub><mrow><mo>(</mo><mi>I</mi><mo>)</mo></mrow><mo>−</mo><mi>y</mi><msub><mn>2</mn><mi>k</mi></msub><mrow><mo>(</mo><mi>I</mi><mo>)</mo></mrow></mrow><mo>)</mo></mrow></mrow>
<mrow><mi>a</mi><mi>b</mi><mi>s</mi><mrow><mo>(</mo><mrow><msub><mi>z</mi><mi>k</mi></msub><mrow><mo>(</mo><mi>I</mi><mo>)</mo></mrow><mo>−</mo><mi>y</mi><msub><mn>2</mn><mi>k</mi></msub><mrow><mo>(</mo><mi>I</mi><mo>)</mo></mrow></mrow><mo>)</mo></mrow></mrow>
- находят местоположение , где значение
является наибольшим
- если , то
- если , то
11.
12. Вычисление  и
13. Если , то наилучшим узлом решетки (ближайшим соседом в решетке) является , а в противном случае - наилучшим узлом решетки является .
, где  - наилучший узел решетки, выбранный выше.
Вторая операция: вычисление индексов
В первой операции каждый 8-мерный субвектор  был округлен как узел в решетке . Результатом является , квантованная версия . В данной второй операции вычисляют индекс для каждого  для его передачи в декодер. Вычисление этого индекса выполняют следующим образом.
Вычисление индекса для заданного узла в решетке  основано на двух основных принципах:
m
m
4n
1. Все узлы в решетке  лежат на концентрических сферах радиуса , где =0, 1, 2, 3 и т.д., а каждый узел решетки на конкретной сфере может быть сгенерирован путем перестановки координат опорных точек, именуемых ведущими точками (leaders). На сфере имеется очень мало ведущих точек по сравнению с общим количеством узлов решетки, которые лежат на сфере. Кодовые книги для различных скоростей передачи битов могут быть созданы путем включения в их состав только лишь сфер до заданного номера . Для больших подробностей см. ссылку [6], где кодовые книги , , , ,  и  построены, соответственно, с 0, 4, 8, 12, 16 и 20 битами. Следовательно, кодовая книга  требует наличия  битов для индексации любого узла в этой кодовой книге.
C
C
M
M
z
ν
2. Из базовой кодовой книги  (то есть кодовой книги, содержащей все узлы решетки из заданного набора сфер до номера m) может быть сгенерирована расширенная кодовая книга путем умножения элементов базовой кодовой книги  на коэффициент  и добавления кодовой книги второго этапа, именуемой расширением Вороного (Voronoi extension). Это построение задано выражением , где  - масштабный коэффициент,  - точка в основной кодовой книге, а  - расширение Вороного. Расширение вычислено таким образом, что любая точка  также является узлом в решетке . Расширенная кодовая книга включает в себя узлы решетки, которые расположены дальше от начала координат, чем обеспечивается базовой кодовой книгой.
C
В данном случае базовой кодовой книгой  в LPC-квантователе может являться любая кодовая книга , ,  или  из ссылки [6]. Когда конкретный узел  решетки не содержится в этих базовых кодовых книгах, то применяют расширение Вороного, используя в этом случае только лишь кодовую книгу  или . Следует отметить, что здесь , но .
Затем выполняют вычисление индекса для каждого узла  решетки, полученного при первой операции, согласно следующим операциям.
с
Проверяют, содержится ли
в базовой кодовой книге
k
C
. Это подразумевает проверку того, является ли  элементом кодовых книг , ,  или  из ссылки [6].
- Если  является элементом базовой кодовой книги , то в этом случае индексом, используемым для кодирования , является номер  кодовой книги плюс индекс  кодового вектора  в кодовой книге . Номер  кодовой книги кодируют так, как описано в третьей операции. Индекс  указывает ранг кодового вектора , то есть перестановку, которая должна быть применена к конкретной ведущей точке для получения  (см. [7]). Если  = 0, то для  биты не используют. В противном случае для индекса  используют  битов.
- Если  отсутствует в базовой кодовой книге, то применяют расширение Вороного посредством следующих подопераций, используя в этом случае только лишь кодовую книгу  или  в качестве базовой кодовой книги.
r
Устанавливают порядок расширения =1 и масштабный коэффициент .
k
k
r
M
k
Вычисляют индекс  Вороного узла  решетки. Индекс  Вороного зависит от порядка  расширения и от масштабного коэффициента . Индекс Вороного вычисляют посредством операций "по модулю", так что  зависит только от относительного местоположения  в масштабированной и смещенной области Вороного:
,
M
k
M
где  - порождающая матрица, а  - покомпонентная операция "по модулю ". Следовательно, индекс  Вороного представляет собой вектор целых чисел, причем каждый компонент заключен в интервале от 0 до -1.
ν
k
Вычисляют кодовый вектор  Вороного из индекса  Вороного. Это может быть реализовано с использованием алгоритма, описанного в ссылке [8].
w
w
w
z
w
Вычисляют вектор  разности, . Этот вектор  разности всегда принадлежит масштабированной решетке , где  - решетка . Вычисляют , то есть применяют обратное масштабирование к вектору  разности. Кодовый вектор  принадлежит решетке , так как  принадлежит .
z
C
Проверяют, содержится ли  в базовой кодовой книге  (то есть в  или ).
z
C
r
M
z
C
r
z
r
r
Если  отсутствует в базовой кодовой книге , то выполняют приращение порядка  расширения на 1, умножают масштабный коэффициент  на 2 и возвращаются к подоперации . В противном случае, если  содержится в базовой кодовой книге , то были найдены порядок  расширения и масштабный коэффициент , являющиеся достаточно большими для кодирования индекса . Индекс сформирован из трех частей: 1) номера  кодовой книги в виде унарного кода, определенного ниже; 2) ранга  для  в соответствующей базовой кодовой книге (или , или ); и 3) 8-ми индексов вектора  индекса Вороного, вычисленных при подоперации , где каждый индекс требует ровно  битов ( - порядок расширения Вороного, установленный при подоперации ). Номер  кодовой книги закодирован так, как описано в третьей операции.
В таком случае узел  решетки описывается следующим выражением:
.
Третья операция: кодирование номеров кодовых книг с переменной длиной
Номера  кодовых книг кодируют с использованием кода переменной длины, который, как указано в таблице 3, зависит от местоположения LPC-фильтра и от режима квантования.
<b>Таблица 3</b>Кодирование режимов для номеров <i>n</i><sub>k</sub> кодовых книг
<b>Фильтр</b>
<b>Режим квантования</b>
<b>Режим для <i>n</i></b><sub>k</sub>
LPC4
Абсолютное
0
LPC0
Абсолютное
0
Относительное LPC4
3
LPC2
Абсолютное
0
Относительное LPC4
3
LPC1
Абсолютное
0
Относительное (LPC0+LPC2)/2
1
Относительное LPC2
2
LPC3
Абсолютное
0
Относительное (LPC2+LPC4)/2
1
Относительное LPC2
2
Относительное LPC4
2
Режимы 0 и 3 для :
Номер  кодовой книги кодируют как код переменной длины следующим образом:
код для  равен 00
код для  равен 01
код для  равен 10
Другие: код для  равен 11, после которого следуют:
0
10
110
1110
11110
и т.д.
Режим 1 для :
Номер  кодовой книги кодируют как унарный код следующим образом:
унарный код для  равен 0
унарный код для  равен 10
унарный код для  равен 110
унарный код для  равен 1110
и т.д.
Режим 2 для :
Номер  кодовой книги кодируют как код переменной длины следующим образом:
код для  равен 00
код для  равен 01
код для  равен 10
Другие: код для  равен 11, после которого следуют:
0
10
110
и т.д.
Принятие решения относительно режима квантования
Для каждого вектора LSF пробуют каждый из всех возможных режимов абсолютного и дифференциального квантования, как описано в Таблице 2, и выбирают, например, режим квантования, требующий минимального количества битов. Закодированный режим квантования и соответствующий набор индексов квантования передают в декодер.
Как упомянуто в приведенном выше описании, фактическое количество квантованных LPC-фильтров, переданных из кодера в декодер, не является неизменным, а, наоборот, зависит от решения относительно ACELP/TCX, принятого в кодере. Например, длинное TCX-кодирование (TCX1024) требует передачи только лишь квантованного фильтра LPC4, в то время как любая комбинация, включающая в себя ACELP или короткое TCX-кодирование (TCX256), требуют передачи всех четырех (4) квантованных LPC-фильтров LPC1-LPC4. Фактически передают только те квантованные LPC-фильтры, которые требует конфигурация режима ACELP/TCX.
Способ декодирования в алгебраическом векторном квантователе
Как упомянуто здесь выше, фактическое количество квантованных LPC-фильтров, закодированных в потоке битов, зависит от комбинации режимов ACELP/TCX в суперкадре. Комбинацию режимов ACELP/TCX извлекают из потока битов и определяют режимы кодирования, mod[k] для k=0-3, для каждого из четырех (4) кадров, из которых состоит суперкадр. Для ACELP значение режима равно 0, для TCX256 оно равно 1, для TCX512 оно равно 2, для TCX1024 оно равно 3.
В дополнение квантованным LPC-фильтрам суперкадра, количество которых составляет от одного (1) до четырех (4), для первого суперкадра каждого сегмента передают вышеописанный необязательный квантованный фильтр LPC0, закодированный с использованием кодека, основанного на линейном предсказании.
Порядком, в котором квантованные LPC-фильтры находятся в потоке битов, обычно является следующий порядок следования: LPC4, необязательный LPC0, LPC2, LPC1 и LPC3.
Условие наличия конкретного LPC-фильтра в потоке битов приведено в таблице 4.
<b>Таблица 4</b>Условие наличия конкретного LPC-фильтра в потоке битов
LPC-фильтр
Имеется, если
LPC0
1-й суперкадр закодирован с использованием линейного предсказания (LP)
LPC1
mod[0]<2
LPC2
mod[2]<3
LPC3
mod[2]<2
LPC4
Всегда
На Фиг.9 изображена принципиальная блок-схема способа декодирования.
Операции 901 и 902: декодер содержит средство приема и извлечения, которым является, например, демультиплексор, из принятого потока битов индексов квантования, соответствующих каждому из квантованных LPC-фильтров, необходимых для комбинации режимов ACELP/TCX. Для конкретного квантованного LPC-фильтра средство определения режима квантования извлекает из потока битов, принятого из кодера, индекс или информацию относительно режима квантования и определяет, является ли режим квантования режимом абсолютного квантования или режимом дифференциального квантования, как указано в таблице 2.
Операции 903 и 905: когда при операциях 901 и 902 определено, что режимом квантования является режим абсолютного квантования, то устройство извлечения извлекает из потока битов индекс или индексы, соответствующий (соответствующие) первому приближению, квантованному путем стохастического векторного квантования (VQ) (операция 903). Затем вычислитель вычисляет первое приближение путем обратного квантования (операция 905).
Операции 904 и 905: когда при операциях 901 и 902 определено, что режимом квантования является режим дифференциального квантования (а не режим абсолютного квантования), то устройство извлечения извлекает из потока битов индексы или информацию, характеризующие (характеризующую) образец из множества возможных образцов, например LPC-вектор образца (операция 904). Затем вычислитель вычисляет из этой информации первое приближение так, как описано со ссылкой на таблицу 2 (операция 905).
При операции 906 устройство извлечения информации о VQ извлекает из потока битов, принятого из кодера, информацию о VQ с переменной скоростью передачи битов, например информацию об AVQ. В частности, в качестве примера, не являющегося ограничивающим признаком, из потока битов извлекают информацию об AVQ для двух субвекторов  невязки LSF. Информация об AVQ обычно содержит два закодированных номера кодовых книг и соответствующие индексы AVQ. Единственным исключением является то, когда выполняют дифференциальное квантование фильтра LPC1 относительно фильтра (квантованный фильтр LPC0 + квантованный фильтр LPC2)/2, поскольку в этом случае в потоке битов отсутствует какая-либо информация об AVQ. В случае последнего исключения в качестве первого приближения из операции 905 выводят квантованный вектор 909 LSF.
Операция 907: обратный алгебраический векторный квантователь принимает извлеченную информацию об AVQ из операции 906 для обратного квантования или для обратной весовой обработки и восстановления вклада AVQ.
Декодирование индексов AVQ
Декодирование LPC-фильтров включает в себя декодирование извлеченной информации AVQ, например параметров AVQ, описывающих каждый квантованный субвектор  взвешенного вектора невязки LSF. В вышеизложенном примере каждый субвектор  имеет размерность, равную 8. Параметры AVQ для каждого субвектора  описаны во второй операции вышеописанного алгебраического векторного квантования. Для каждого квантованного субвектора  кодер посылает в декодер три набора двоичных индексов:
a) номер  кодовой книги, переданный с использованием статистического кода, описанного в третьей операции алгебраического векторного квантования, которое описано выше;
z
z
б) ранг  выбранного узла  решетки в базовой кодовой книге, который указывает, какая перестановка должна быть применена к конкретной ведущей точке (см. вторую операцию вышеописанного алгебраического векторного квантования) для получения узла  решетки; и
k
ν
k
r
n
M
k
в) если квантованный субвектор  (узел решетки в решетке ) отсутствовал в базовой кодовой книге, то 8 индексов вектора  индексов расширения Вороного, вычисленных при подоперации  второй операции вышеописанного алгебраического векторного квантования; из индексов расширения Вороного может быть вычислен вектор  расширения согласно ссылки [8]. Количество битов в каждом компоненте вектора  индексов задано порядком  расширения, который может быть получен из значения кода индекса . Масштабный коэффициент  расширения Вороного задан выражением .
M
ν
z
Затем, исходя из масштабного коэффициента , вектора  расширения Вороного (узла решетки в решетке ) и узла  решетки в базовой кодовой книге (также узла решетки в решетке ), может быть вычислен каждый масштабированный квантованный субвектор  с использованием следующего соотношения:
n
M
z
k
n
k
k
Когда расширение Вороного отсутствует (то есть <5, =1 и =0), то базовой кодовой книгой является любая кодовая книга , ,  или  из [6]. В этом случае не требуются какие-либо биты для передачи вектора . В противном случае, когда используют расширение Вороного, поскольку  является достаточно большим, то в качестве базовой кодовой книги используют только  или  из [6]. Выбор  или  является неявным при значении  номера кодовой книги, как описано во второй операции вышеописанного алгебраического векторного квантования.
Операция 908: сумматор суммирует первое приближение из операции 905 с вкладом AVQ из операции 907, подвергнутым обратной весовой обработке, для реконструкции и восстановления квантованного вектора 909 LSF.
Несмотря на то, что в приведенном выше описании настоящее изобретение было описано посредством иллюстративных вариантов его осуществления, эти варианты осуществления изобретения могут быть по желанию изменены в рамках объема прилагаемой формулы изобретения, не выходя за пределы сущности и предмета настоящего изобретения.
Ссылки
[1] 3GPP Technical Specification TS 26.290, "Audio Codec Processing Functions; Extended Adaptive Multi-Rate - Wideband (AMR-WB+) Codec; Transcoding Functions," June 2005.
[2] J. Skoglund, J. Linden, "Predictive VQ for Noisy Channel Spectrum Coding: AR Or MA?," IEEE 1997 International Conference on Acoustics, Speech, and Signal Processing (ICASSP'97), pp. 1351-1354, Munich, Germany, April 21-24, 1997.
[3] H. Zarrinkoub, P. Mermelstein, "Switched Prediction and Quantization of LSP Frequencies," IEEE 1996 International Conference on Acoustics, Speech, and Signal Processing (ICASSP'96), Vol. 2, pp.757-760, 7-10 May 1996.
[4] A. V. McCree, "Method for Switched-Predictive Quantization", патент США № 6,122,608.
[5] R. Laroia, N. Phamdo, and N. Farvardin, "Robust and Efficient Quantization of Speech LSP Parameters Using Structured Vector Quantizers," IEEE Int. Conf. on Acoustics, Speech and Signal Processing (ICASSP'1991), pp. 641-644, Washington, DC, April 14-17, 1991.
[6] M. Xie and J.-P. Adoul, "Embedded Algebraic Vector Quantization (EAVQ) with Application to Wideband Audio Coding," IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP), Atlanta, GA, USA, Vol. 1, pp. 240-243, 1996.
[7] P. Rault, C. Guillemot, "Indexing Algorithm for Zn, An, Dn and Dn++ Lattice Vector Quantizers, IEEE Transactions on Multimedia, Vol. 3, No. 4, December 2001.
[8] J .H. Conway and N.J.A. Sloane, "A Fast Encoding Method for Lattice Codes and Quantizers," IEEE Trans. Inform. Theory, Vol. IT-29, No. 6, pp. 820-824, Nov. 1983.