47370 (665778), страница 6
Текст из файла (страница 6)
Оценки периода основного тона и импульсного отклика используются при работе предсказателя тона пятого порядка. Период тона вычисляется как приращение относительной оценки периода основного тона. На декодер передаются тоновый период и разностные величины. На следующем этапе аппроксимируются непериодические составляющие возбуждения. Для высокой скорости используется многоимпульсное возбуждение с квантованием и алгоритмом максимального правдоподобия (MP-MLQ), а для низких скоростей – алгебраическое кодовое возбуждение.
Рекомендации ITU-T G.729 содержат описание алгоритма кодирования речевых сигналов на скорости 8 кбит/с с использованием алгебраического линейного предсказания с кодовым возбуждением с сопряженной структурой (CS-ACELP).
Подобный кодер создан для работы с цифровыми сигналами, полученными после предварительной обработки аналогового входного сигнала фильтром низкой частоты, дискретизации с частотой 8 кГц и дальнейшем преобразованием в линейную ИКМ для подачи на вход кодера. Выходной сигнал декодера конвертируется обратно в аналоговый сигнал подобным же образом. Другие характеристики входа/выхода определяются аналогично рекомендациями G.711 для ИКМ последовательностей со скоростью 64 кбит/с. После декодирования данные должны быть преобразованы из 16-битовой линейной ИКМ в требуемый формат.
Кодер CS-ACELP основан на модели с линейным предсказанием с кодовым возбуждением (CELP) и работает с фреймами речи по 10 мс, соответствующих 80 выборкам. Каждый фрейм речевого сигнала длительностью 10 мс анализируется для выделения параметров CELP-модели (коэффициенты фильтра линейного предсказания, индексы адаптивной и фиксированной кодовых книг и коэффициенты усиления). Эти параметры кодируются и передаются на приемную сторону. Распределение бит параметров кодера показано в табл. 3.1.
Таблица 3.1
Распределение бит для алгоритма CS-ACELP на скорости 8 кбит/с (фреймы по 10 мс)
Параметр | Кодовое слово | Субфрейм 1 | Субфрейм 2 | В целом на фрейм |
Пары линейного спектра | LU, L1, L2, L3 | |||
Задержка адаптивной кодовой книги | P1, Р2 | 8 | 5 | 13 |
Проверка задержки тона | Р0 | 1 | 1 | |
Индекс фиксированной кодовой книги | CT, С2 | 13 | 13 | 26 |
Запись фиксированной кодовой книги | S1, S2 | 4 | 4 | 8 |
Усиления кодовой книги (этап 1) | GA1, GA2 | 3 | 3 | 6 |
Усиления кодовой книги (этап 2) | GBl, GB2 | 4 | 4 | 8 |
Всего | 80 |
На стороне декодера эти параметры используются для восстановления параметров возбуждения и фильтра синтеза. Как показано на рис. 3.3, речь восстанавливается при фильтрации этого возбуждения фильтром кратковременного синтеза, который основан на фильтре линейного предсказания десятого порядка. Долговременный фильтр (или фильтр синтеза тона) выполняется с использованием адаптивной кодовой книги. После синтеза речи происходит дополнительное сглаживание в постфильтре.
Входной сигнал поступает на фильтр высоких частот и масштабируется в блоке предварительной обработки, после чего подвергается последующему анализу. Анализ с линейным предсказанием (LP-анализ) выполняется один раз для фрейма длительностью 10 мс с целью вычисления коэффициентов фильтра линейного предсказания, которые затем преобразуются в пары линейного спектра (Line Spectrum Pairs, LSP) и квантуются (18 бит) с использованием двухэтапного векторного квантования с предсказанием.
Сигнал возбуждения выбирается с использованием поисковой процедуры «анализ через синтез», при которой ошибка между исходной и восстанавливаемой речью минимизируется в соответствии с измерением взвешенных искажений. Это выполняется путем фильтрации сигнала ошибки фильтром взвешивания, коэффициенты которого извлечены из неквантованного LP-фильтра.
Параметры возбуждения (параметры фиксированной и адаптивной кодовых книг) определены для субфрейма длительностью 5 мс (40 выборок). Коэффициенты квантованного и неквантованного фильтра с линейным предсказанием используются для второго субфрейма, в то время как в первом субфрейме используются интерполированные коэффициенты LP-фильтра.
Задержка основного тона оценивается один раз для фрейма длиной 10 мс на основе взвешенного речевого сигнала. Затем для каждого субфрейма повторяются следующие операции. Искомый сигнал вычисляется при фильтрации остаточного линейного предсказания во взвешивающем фильтре синтеза
. При фильтрации ошибки начальные состояния этих фильтров обновляются. Это эквивалентно результату выделения нулевого входного отклика взвешивающего фильтра синтеза из взвешенного речевого сигнала. Вычисляется импульсная характеристика
взвешивающего фильтра синтеза, после чего выполняется анализ тона для нахождения задержки адаптивной кодовой книги путем анализа значения задержки вблизи основного тона с использованием искомого сигнала
и импульсной характеристики
. Задержка тона кодируется восемью битами в первом субфрейме и пятью битами во втором субфрейме. Искомый сигнал
используется при поиске фиксированной кодовой книги для нахождения оптимального возбуждения. Семнадцатибитовая алгебраическая кодовая книга используется для возбуждения фиксированной кодовой книги. Коэффициенты усиления вкладов адаптивной и фиксированной кодовых книг — это векторы, квантованные семью битами.
Индексы параметров кодовых книг выделяются из принятого потока бит и декодируются для получения следующих параметров кодера, соответствующих речевому фрейму длиной 10 мс: LP-коэффициенты (коэффициенты линейного предсказания), две частичные задержки тона, два вектора фиксированной кодовой книги и два набора коэффициентов адаптивной и фиксированной кодовых книг. Коэффициенты LSP интерполируются и преобразуются в коэффициенты LP-фильтра для каждого субфрейма. Для каждого субфрейма выполняются следующие шаги:
восстанавливается возбуждение путем добавления векторов адаптивной и фиксированной кодовых книг с соответствующими им коэффициентами усиления;
восстанавливается речь путем пропускания через фильтр LP-синтеза;
восстанавливаемый речевой сигнал пропускается через ступень постобработки, которая включает адаптивный постфильтр, состоящий из долговременного и кратковременного постфильтров синтеза, фильтр высоких частот и операцию масштабирования.
Кодер кодирует речь и другие аудиосигналы по фреймам длительностью 10 мс. В результате осуществляется задержка 5 мс, что приводит в результате к общей алгоритмической задержке 15 мс. Все дополнительные задержки при практическом исполнении такого кодера обусловлены следующими причинами:
временем обработки, необходимым для операции кодирования и декодирования;
временем передачи по линиям связи;
задержкой мультиплексирования, когда аудиоданные объединяются с другими данными.
Таким образом, рекомендация G.729 предусматривает фреймы возбуждения по 5 мс и формирует четыре импульса. Фрейм из 40 выборок разделяется на четыре части. Первые три имеют восемь возможных позиций для импульсов, четвертая — шестнадцать. Из каждой части выбирается по одному импульсу. В результате образуется четырехимпульсный ACELP возбуждения кодовой страницы (табл. 3.2).
Таблица 3.2
Параметры кодеров
Параметры кодера | Кодер | ||
G.729 | G.729A | G.723.1 | |
Скорость бит, кбит/с | 8 | 8 | 5,3…6,3 |
Размер фрейма, мс | 10 | 10 | 30 |
Размер подфрейма, мс | 5 | 5 | 7,5 |
Алгебраическая задержка, мс | 15 | 15 | 37,5 |
Быстродействие, млн. оп./с | 20 | 10 | 14…20 |
Объем ПЗУ, байт | 5,2 К | 4 К | 4,4 К |
Качество | Хорошее | Хорошее | Хорошее |
Для режима 5,3 кбит/с рекомендация G.723.1 предусматривает фреймы возбуждения длительностью 7,5 мс и также использует четырехимпульсное ACELP-возбуждение кодовой страницы. Для скорости 6,3 кбит/с используется технология многоимпульсного возбуждения с квантованием и алгоритмом максимального правдоподобия (MP-MLQ). В этом случае позиции фреймов группируются в подгруппы с четными и нечетными номерами. Для определенного номера импульса из четной последовательности (пятый или шестой в зависимости от того, является ли сам фрейм четным или нечетным) используется последовательный многоимпульсный поиск. Похожий поиск повторяется для подфреймов с нечетными номерами. Для возбуждения выбирается группа с минимальными общими искажениями.
На стороне декодера информация кодера с линейным предсказанием (LPC) и информация адаптивной и фиксированной кодовой книг демультиплексируется и используется для реконструкции выходного сигнала. Для этих целей используется адаптивный постфильтр. В случае кодера G.723.1 сигнал возбуждения перед прохождением через фильтр синтеза LPC пропускается через LT (long-term — долговременный) постфильтр и ST (short-term — кратковременный) постфильтр.
-
LD-CELP (Long-Delay CELP). Рекомендация G.728
В Рекомендации содержится описание алгоритма кодирования речевых сигналов на скорости 16 кбит/с с помощью линейного предсказания с кодированием сигнала возбуждения с малой задержкой. Алгоритм LD-CELP описывает работу кодера и декодера.
В алгоритме LD-CELP сохранена суть метода CELP, представляющего собой метод «анализа через синтез» путем поиска сигналов в кодовой книге. Для получения алгоритмической задержки порядка 0,625 мс используется адаптация предсказателей и уровней сигнала возбуждения по выходу. Передается только индекс сигнала возбуждения, найденный в кодовой книге. Обновление коэффициентов предсказания производится с помощью LPC-анализа ранее квантованной речи. Уровень возбуждения обновляется с помощью информации, содержащейся в ранее квантованном сигнале возбуждения. Размер блока для адаптации вектора сигнала возбуждения и уровня составляет всего лишь пять отсчетов. Обновление взвешивающего фильтра, учитывающего восприятие, производится с помощью LPC-анализа неквантованной речи.
После выполнения преобразования сигнала ИКМ по закону А или μ в линейный ИКМ-сигнал входной сигнал делится на блоки по пять последовательных отсчетов. Для каждого входного блока кодер пропускает каждый из 1024 векторов кодовой книги (хранящихся в кодовой книге сигнала возбуждения) через устройство масштабирования уровня сигнала возбуждения и синтезирующий фильтр. Из полученных в результате пропускания всех 1024 векторов-кандидатов квантованного сигнала кодер определяет один, минимизирующий величину взвешенной по частоте среднеквадратической ошибки относительно вектора входного сигнала. 10-битовый индекс, соответствующий наилучшему вектору в кодовой книге, который соответствует наилучшему вектору-кандидату квантованного сигнала, передается в декодер. На следующем этапе для обновления памяти фильтра и подготовки к кодированию следующего вектора сигнала наилучший кодовый вектор проходит через устройство масштабирования уровня сигнала возбуждения и синтезирующий фильтр. Коэффициенты синтезирующего фильтра и уровень сигнала возбуждения периодически обновляются путем адаптации по выходу, базирующейся на квантованном сигнале, масштабированном по уровню, и сигнале возбуждения.