(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy
.pdfГлава 16. Основные стандарты кодирования речевой информации
где v[n] — реакция фильтра S(z) с импульсной характеристикой h[n]:
M−1
v [n] = G αk δ [n − mk], 0 n 59, |
(16.17) |
k=0 |
|
причем G — коэффициент усиления; δ[n] — функция Дирака, {αk} и {mk}, k = = 0, . . . , M − 1, — знаки (±1) и позиции функций Дирака соответственно; M — число импульсов, равное 6 для четных подкадров и 5 — для нечетных подкадров.
Задача состоит в том, чтобы оценить неизвестные параметры G, {αk} и {mk}, k = 0, . . . , M − 1, которые минимизируют средний квадрат ошибки сигнала:
M−1
err [n] = r [n] − r [n] = r [n] − G αkh [n − mk]. |
(16.18) |
k=0 |
|
Параметр Gmax оценивается следующим образом. Во-первых, функция взаимной корреляции d[j] между передаточной функцией h[n] целевым вектором r[n]
вычисляется так:
59
d [j] = |
r [n] · h [n − j], 0 j 59. |
(16.19) |
||
|
n=j |
|
||
Тогда |
|
|
|
|
Gmax = |
max {|d [j]|}j=0,...,59 |
. |
(16.20) |
|
|
||||
|
|
n! |
|
|
|
59 |
|
|
|
h [n] · h [n]
=0
Это предполагаемое усиление логарифмически квантуется с возможным числом шагов квантования, равным 24, по 3,2 децибела каждый. Вокруг этой квантован-
˜
ной величины G дополнительные значения усиления выбраны в пределах диа-
max
пазона ˜max − ˜max . Конфигурация отсчетов в соотношении (16.18)
G 3,2, G + 6,4
выбирается исходя из минимума среднеквадратичной ошибки.
При низкой скорости кодирования используется линейное предсказание с возбуждением алгебраическим кодом (ACELP).
Используется специальная кодовая книга для установленных значений v[n]. Каждый установленный вектор кода содержит, самое большее, четыре ненулевых импульса. Эти четыре импульса могут принять знаки и позиции, приведенные в табл. 16.2.
Таблица 16.2. ACELP — кодовая книга возбуждения
Значение |
Позиция |
|
|
|
|
±1 |
0, 8, 16, 24, 32, 40, 48, 56 |
|
±1 |
2, 10, 18, 26, 34, 42, 50, |
58 |
±1 |
4, 12, 20, 28, 36, 44, 52(, |
60) |
±1 |
6, 14, 22, 30, 38, 46, 54(, |
62) |
Поиск кодовой книги осуществляется путем минимизации среднеквадратической ошибки между взвешенным речевым сигналом r[n] и синтезированной взвешенной речью:
Eξ = r − GHvξ 2 , |
(16.21) |
16.3. G.723.1 — речевой кодек с двумя скоростями потока — 5,3 и 6,3 кбитов/с
где r — целевой вектор, состоящий из взвешенной речи после вычитания постоянной составляющей и дискретизации, G — коэффициент усиления кодовой книги; vξ — алгебраический код при индексе ξ; H — треугольная матрица Теплица с центральной диагональю h(0), другими диагоналями h(1), . . . , h(L − 1) и с h(n) импульсной передаточной функцией, реализующей взвешенную фильтрацию Si(z).
Оптимальный код при этом максимизирует величину:
|
C2 |
|
dT v |
2 |
|
|
|
|
|
|
|
||
|
ξ |
|
ξ |
|
|
|
τξ = |
|
= |
vξT Φvξ |
|
, |
(16.22) |
εξ |
где d=HT r — корреляция между целевым векторным сигналом r[n] и импульсной передаточной функцией h(n), Φ = HT · H — матрица ковариации импульсной передаточной функции.
Элементы вектора d и матрицы Φ вычисляются по формулам:
59
d (j) = |
r [n] · h [n − j], 0 j 59, |
(16.23) |
n=j |
|
|
|
59 |
|
|
|
|
Φ (i, j) = |
h [n − i] · h [n − j], j i, 0 i 59. |
(16.24) |
n=j
Алгебраическая структура кодовой книги обеспечивает быструю процедуру поиска, так как вектор vξ возбуждения содержит только 4 ненулевых импульса.
Максимум корреляции в уравнении (16.22) достигается при: |
|
|
C = d [m0] + d [m1] + d [m2] + d [m3] , |
(16.25) |
|
где mk — позиция k-го импульса, а d [j] = d[j]s[j] и |
|
|
s [2j] = s [2j + 1] = sign (d [2j]) , |
если |d [2j]| > |d [2j + 1]| , |
|
s [2j] = s [2j + 1] = sign (d [2j + 1]) , |
иначе. |
|
Граница вычислений основана на оценке корреляции C. Максимальная абсолютная корреляция и средняя корреляция при воздействии первых трех импульсов, max3 и av3, находятся до поиска кодовой книги. Порог рассчитывается:
th r3 = av3 + |
max |
− |
av |
3 |
/2. |
(16.26) |
3 |
|
|
|
Четвертая составляющая может быть введена, если значение корреляции (при трех пульсах) превышает thr3.
Последним шагом после расчета последовательности v[n] является квантова-
ние усиления G путем минимизации соотношения |
|
|
˜ |
|
, |
0 j 23. |
|
|
G − Gj |
||||||
По результатам обработки информации в блоках |
предсказателя |
основного то- |
|||||
на и MP-MLQ/ACELP в эквиваленте декодера с |
помощью |
декодера основного |
|||||
тона и декодера возбуждения вклад абсолютной высоты тона u[n] и вклад импульсов возбуждения v[n] суммируются, формируя сигнал:
u[n] + v[n] = e[n], |
(16.27) |
поступающий на блок обновления памяти.
Таким образом, кодеки стандарта G.723.1 можно охарактеризовать как комбинацию АЦП/ЦАП и вокодера. Применение вокодера позволяет снизить скорость
Глава 16. Основные стандарты кодирования речевой информации
передачи данных в канале, что принципиально важно для эффективного использования как в радиотракте, так и в IP-канале. Основной принцип работы вокодера — синтез исходного речевого сигнала посредством адаптивной замены его гармонических составляющих соответствующим набором частотных фонем и согласованными шумовыми коэффициентами. Кодек G.723.1 осуществляет преобразование аналогового сигнала в поток данных со скоростью 64 кбита/с (ИКМ), а затем при помощи многополосного цифрового фильтра/вокодера выделяет частотные фонемы, анализирует их и передает по IP-каналу информацию только о текущем состоянии фонем в речевом сигнале. Данный алгоритм преобразования позволяет снизить скорость кодированной информации до 5,3–6,3 кбитов/с без видимого ухудшения качества речи. Вариант кодирования со скоростью передачи 6,3 кбитов/с предназначен для сетей с пакетной передачей голоса и обеспечивает лучшее качество кодирования по сравнению с вариантом, реализующим скорость передачи 5,3 кбитов/с, но менее адаптирован к использованию в сетях со смешанным типом трафика (голос/данные).
Структурная схема кодека приведена на рис. 16.2. В основе преобразования кода ИКМ, соответствующего стандарту G.726 (при двух правилах кодирования — A-law и μ-law), является использование нелинейной шкалы квантования, различной для разных цифровых потоков — от 40 до 16 кбитов/с [6.31].
При различных цифровых потоках используется различная нормализация входных/выходных характеристик квантования.
Рекомендация описывает алгоритм адаптивной дифференциальной импульс- но-кодовой модуляции при скоростях выходного потока 40, 32, 24 и 16 кбитов/с.
Цифровые потоки со скоростью 24 и 16 кбитов/с предназначены в первую очередь для использования в перегруженных голосовых каналах в цифровом оборудовании мультиплексирования. Цифровые потоки со скоростью выходного потока 40 кбитов/с предназначены для передачи сигналов модемов в цифровом канальном оборудовании мультиплексирования, особенно для модемов, работающих на скоростях свыше 4800 кбитов/с.
Кодер, структура которого приведена на рис. 16.2а, обеспечивает преобразование входного сигнала в равномерную ИКМ-последовательность и вычитание из него предсказанной оценки. Разностный сигнал квантуется с помощью адаптивного квантователя с 31, 15, 7 или 4 уровнями, что реализует 5, 4, 3 или 2 бита на отсчет соответственно, формируя выходной сигнал. Восстановленный исходный сигнал получается из суммы восстановленного с помощью обратного квантования разностного сигнала и оценки сигнала. Оценку сигнала формирует адаптивный предсказатель.
Декодер (рис. 16.2б) включает часть, аналогичную петле обратной связи кодера, обратное преобразование A-law или μ-law ИКМ и синхронную коррекцию кодирования. Синхронная коррекция кодирования предотвращает накопление ошибок, возникающих при определенных условиях в цепочке преобразований
16.5. G.727 — речевой кодек с алгоритмом вложенной АДИКМ
Рис. 16.2. Структурные схемы кодирующего (а) и декодирующего (б) устройств
АДИКМ–ИКМ–АДИКМ. Синхронная коррекция кодирования осуществляется с помощью изменения выходных кодов ИКМ таким образом, чтобы устранить ошибки квантования на следующей стадии кодирования АДИКМ.
Данный алгоритм вложенной АДИКМ является расширением алгоритма, описанного в Рекомендации G.726, и реализует скорости выходного потока 40, 32, 24 и 16 кбитов/с (5, 4, 3 и 2 битах на отсчет) [6.32].
Алгоритмы вложенной АДИКМ реализуют преобразования с переменной скоростью кодированного битового потока и возможностью потери битов вне блоков кодера и декодера. Они состоят из ряда алгоритмов, в которых уровни квантования при низких скоростях являются подмножеством уровней квантования при высоких скоростях. Это позволяет уменьшать количество битов в любой точке сети без необходимости координации взаимодействия между передатчиком и приемником.
Вложенные алгоритмы могут приспосабливаться к непредсказуемым и пульсирующим характеристикам трафика, которые требуют уменьшения перегруженности. Так как необходимость уменьшения нагрузки может возникнуть после кодирования, вложенное кодирование отличается от кодирования с переменной
Глава 16. Основные стандарты кодирования речевой информации
Рис. 16.3. Структурные схемы кодирующего (а) и декодирующего (б) устройств G.727
скоростью выходного потока, когда кодер и декодер должны использовать одинаковое количество битов на отсчет. В обоих случаях декодер должен знать количество битов на отсчет.
Вложенные алгоритмы формируют кодовые слова, содержащие основные биты и биты расширения. Тракт прямой обработки (FF) использует и основные биты, и биты расширения, в то время как тракт обратной связи (FB) использует только основные биты. Блоки обратного квантования/предсказания и кодера,
идекодера используют основные биты. В этой схеме биты расширения могут быть потеряны или отброшены во время перегрузки сети. Однако количество основных битов в тракте обратной связи и кодера, и декодера должны оставаться одинаковыми во избежание рассогласования.
Четыре скорости вложенного АДИКМ — 40, 32, 24 и 16 кбитов/с. Наборы уровней квантования для скоростей 32, 24 и 16 кбитов/с являются подмножествами набора уровней для скорости 40 кбитов/с. Алгоритмы вложенного АДИКМ обозначаются парами (x, y), где x относится к АДИКМ-битам тракта прямой обработки (основным и расширения), а y относится к АДИКМ-битам тракта обратной связи (основным). Например, если y равен двум битам, то пара (5, 2) будет представлять вложенный алгоритм на 40 кбитов/с, (4, 2) — на 32 кбитов/с, (3, 2) — на 24 кбита/с, (2, 2) — на 16 кбитов/с. Скорость выходного битового потока не может быть ниже 16 кбитов/с, потому что минимальное количество основных битов — два.
Рекомендация G.727 позволяет реализовать скорости кодирования 40, 32, 24
и16 кбитов/с при скоростях основных битов 32, 24 и 16 кбитов/с. Это соответствует следующим парам: (5, 2), (4, 2), (3, 2), (2, 2); (5, 3), (4, 3), (3, 3); (5, 4), (4, 4). Структурная схема кодека стандарта G.727 приведена на рис. 16.3.
16.6. G.728 — речевой кодек с выходным потоком 16 кбитов/с и малой задержкой
Речевой кодек G.728 обеспечивает выходной поток 16 кбитов/с при малой задержке, используя линейное предсказание с кодовым возбуждением.
Сущность методики линейного предсказания с кодом возбуждения (CELP) состоит в поиске по кодовой книге с помощью анализа и синтеза. Возбуждающий сигнал выбирается процедурой поиска, использующей закрытый цикл, и пропускается через синтезирующий фильтр. Синтезированный фрагмент сравнивается с сегментом оригинального речевого сигнала, искажения измеряются, процесс повторяется для всех кодовых векторов, содержащихся в кодовой книге. Индекс наилучшей возбуждающей последовательности передается на сторону декодера, который извлекает возбуждающие кодовые векторы из кодовой книги точно таким же образом, что и кодер [6.33].
Для большинства речевых кодеков, таких как, например, CELP, высокая степень сжатия достигается за счет обработки сигнала поблочно, это требует буферизации, составляющей обычно 20–30 мс в зависимости от длины блока. Такой процесс буферизации характерен для большинства низкоскоростных кодеков, это вызывает существенную общую задержку. Задержка очень критична для двустороннего общения в реальном времени. Большие задержки (свыше 150 мс) существенно ухудшают возможность общения. Низкая задержка также желательна еще и потому, что большие задержки усугубляют проблемы возникновения эха в телефонных сетях.
Требование низкой задержки конфликтует с другими желательными характеристиками кодека, такими как высокое сжатие, высокое качество синтезированной речи, низкая вычислительная сложность, устойчивость к канальным ошибкам. Тем не менее снижение задержки с минимальной деградацией других характеристик представляется достижимым, удачной попыткой можно считать технологию LD-CELP кодека G.728.
Для достижения низкой задержки LD-CELP применяет целый ряд стратегий, среди которых: уменьшенная длина блока, рекурсивная автокорреляционная оценка, внешнее предсказание внутри блока, обратное адаптивное линейное предсказание, высокий порядок фильтра предсказания.
На рис. 16.4 приведена структурная схема кодека по стандарту G.728. Методика LD-CELP использует обратную адаптацию предсказателей и уси-
ления для того, чтобы достичь алгоритмической задержки 0,625 мс. Передается только индекс (VQ) в кодовой книге возбуждений. Коэффициенты предсказателя уточняются на основе анализа с линейным предсказанием (LPC) ранее квантованной речи. Усиление возбуждения уточняется на основе информации об усилении ранее квантованного возбуждения. Размер блока вектора возбуждения и адаптации усиления — 5 отсчетов. Взвешивающий фильтр уточняется линейным предсказанием путем анализа неквантованной речи.
После преобразования A-law или μ-law ИКМ к равномерному ИКМ отсчеты кодируемой речи входного сигнала разделяются на блоки и подблоки. Каждый блок состоит из 20 отсчетов или четырех подблоков по 5 отсчетов. Поскольку длина блока невелика, то статистические свойства близких блоков отличаются мало.
Глава 16. Основные стандарты кодирования речевой информации
Рис. 16.4. Структурные схемы кодирующего (а) и декодирующего (б) устройств G.728
Поэтому возможно применять к текущему блоку линейное предсказание (ЛП) коэффициентов, полученных из предыдущего блока. Таким образом, нет необходимости буферизовать блок целиком, достаточно буферизовать только подблок (5 отсчетов).
Так как ЛП-анализ выполняется обратно-адаптивным образом (т. е. ЛП-ко- эффициенты получаются из синтезированной, а не оригинальной речи), то нет необходимости передавать коэффициенты, так как они могут быть получены на стороне декодера таким же образом из синтезированной речи.
Для каждого блока кодер анализирует каждый из 1024 кандидатов — векторов из кодовой книги возбуждений через устройство масштабирования усиления и синтезирующий фильтр. Из полученных 1024 кандидатов — квантованных векторов сигнала кодер выбирает один — минимизирующий частотно-взвешенную среднеквадратичную меру ошибки по отношению к вектору входного сигнала. Десятибитный индекс соответствующего вектора из кодовой книги передается декодеру. Этот наилучший вектор затем пропускается через устройство масштабирования усиления и синтезирующий фильтр для того, чтобы поправить память фильтра для кодирования следующего вектора сигнала. Коэффициенты синтезирующего фильтра и усиление периодически уточняются с использованием ранее квантованного сигнала и масштабированного возбуждения.
Взвешивающий фильтр имеет 10 коэффициентов линейного предсказания, полученных из оригинальной речи. Фильтр обновляется один раз на блок. Текущие коэффициенты рассчитываются из отсчетов предыдущего блока.
16.7. G.729 — речевой кодек со скоростью 8 кбитов/c
Синтезирующий фильтр соответствует авторегрессионному процессу 50-го порядка. Его коэффициенты рассчитываются из синтезированной речи предыдущих фреймов. Фильтр обновляется один раз на блок.
Коэффициент усиления обновляется на каждый подблок с использованием адаптивного линейного предсказателя 10-го порядка. Коэффициенты этого предсказателя обновляются на основе ЛП-анализа значений коэффициента усиления из предыдущих подблоков.
Поиск возбуждающей последовательности производится один раз на подблок. Процедура поиска генерирует ансамбль фильтрованных последовательностей: каждая возбуждающая последовательность используется как вход синтезирующего фильтра для получения выходной последовательности. Выбирается возбуждающая последовательность, минимизирующая ошибку.
Декодер производит восстановление. Синтезированная речь генерируется посредством пропускания возбуждающей последовательности через синтезирующий фильтр без всякого взвешивания. Так как коэффициент усиления и коэффициенты линейного предсказания обратноадаптивны, нет необходимости передавать эти параметры. Также может быть добавлен сглаживающий постфильтр для улучшения качества выходной речи.
После получения каждого десятибитного индекса декодер осуществляет поиск по таблице и извлекает соответствующий вектор из кодовой книги возбуждений. Полученный вектор затем обрабатывается устройством масштабирования усиления и синтезирующим фильтром для получения текущего декодированного вектора сигнала. Коэффициенты синтезирующего фильтра и усиление затем уточняются так же, как и в кодере. Декодированный вектор сигнала проходит через адаптивный постфильтр для улучшения качества восприятия звука. Коэффициенты постфильтра периодически уточняются с помощью информации, имеющейся на декодере. Затем пять отсчетов сигнала преобразуются в A-law или μ-law ИКМ.
Кодер предназначен для работы с цифровым сигналом, полученным после фильтрации в полосе телефонного аналогового сигнала, дискретизации с частотой 8000 Гц и линейного квантования с глубиной 16 битов на отсчет. Кодер использует технологию CS-ACELP (Conjugate-Structure Algebraic-Code-Exited Linear Prediction, сопряженное линейное предсказания с алгебраическим кодом возбуждения), которая основывается на модели CELP (линейное предсказание с кодовым возбуждением). Он оперирует с блоками длительностью 10 мс, что соответствует 80 отсчетам при частоте дискретизации 8 кГц. Для каждого блока речевой сигнал анализируется с целью извлечения параметров CELP-модели (коэффициенты фильтра линейного предсказания — ЛП, индексы и коэффициенты усиления для адаптивной и фиксированной кодовых книг). Эти параметры кодируются и передаются. Размещение битов кодека показано на табл. 16.3.
Глава 16. Основные стандарты кодирования речевой информации
Рис. 16.5. Обобщенная структура кодирующего устройства по стандарту G.729
Таблица 16.3. Размещение битов кодека G.729
Параметр |
1-й подблок |
2-й подблок |
Битов на блок |
|
|
|
|
Коэффициенты ЛП |
|
|
18 |
|
|
|
|
Индекс адаптивной книги |
8 |
5 |
13 |
Бит четности |
1 |
|
1 |
|
|
|
|
Индекс фиксированной книги |
17 |
17 |
34 |
Индексы усиления |
7 |
7 |
14 |
Всего |
|
|
80 |
|
|
|
|
На стороне декодера эти параметры используются для извлечения возбуждающей последовательности и параметров синтезирующего фильтра. Речь реконструируется посредством пропускания возбуждающей последовательности через короткий синтезирующий фильтр линейного предсказания 10-го порядка. Длинный фильтр (фильтр синтеза шага) строится на основе так называемого метода адаптивной кодовой книги. После вычисления восстановленного речевого сигнала он подвергается постфильтрации с целью дальнейшего улучшения качества. Принцип работы кодера поясняется на рис. 16.5.
Входной сигнал речи проходит ВЧ-фильтрацию и масштабирование в блоке предварительной обработки. Затем осуществляется ЛП-анализ в каждом блоке длительностью 10 мс: вычисляются коэффициенты фильтра ЛП. Эти коэффициенты квантуются 18-битным векторным квантователем.
16.7. G.729 — речевой кодек со скоростью 8 кбитов/c
Сигнал возбуждения выбирается с помощью поисковой процедуры анализасинтеза, в процессе выполнения которой минимизируется расхождение между исходным и реконструированным речевым сигналом с использованием взвешенной меры. Эта операция осуществляется с помощью фильтрации сигнала ошибки взвешивающим фильтром, коэффициенты которого определяются параметрами неквантованного ЛП-фильтра. Параметры возбуждения (фиксированной и адаптивной кодовых книг) определяются для подблока длительностью 5 мс (40 отсчетов). Коэффициенты квантованного и неквантованного ЛП-фильтра используются для второго подблока, а для первого используются интерполированные коэффициенты ЛП-фильтра. Задержка шага открытой петли производится для блока на основе взвешенного речевого сигнала. Основной тон оценивается методом открытого цикла один раз в блоке длительностью 10 мс с использованием взвешенного речевого сигнала. Далее для каждого подблока выполняются следующие операции:
–результирующий сигнал x(n) вычисляется с помощью фильтрации остатка ЛП-фильтрации взвешенным синтезирующим фильтром;
–начальные состояния этих фильтров обновляются с помощью фильтрации разницы между остатками ЛП-фильтрации и возбуждением (это эквивалентно обычному подходу, при котором из взвешенного речевого сигнала вычитается отклик на нулевой сигнал);
–вычисляется импульсный отклик взвешенного синтезирующего фильтра h(n);
–для нахождения значений задержки и усиления адаптивной кодовой книги в цепи с отрицательной обратной связью проводится анализ результирующего сигнала x(n) и импульсного отклика h(n), при этом поиск осуществляется в окрестности значения задержки, вычисляемой с помощью прямого предсказания; дробная часть задержки шага используется с точностью 1/3 интервала между отсчетами.
Задержка шага кодируется 8 битами в первом подблоке и дифференциально 5 битами во втором подблоке. Результирующий сигнал x(n) уточняется с помощью вычитания профильтрованного вклада неадаптивной кодовой книги, и уточненный сигнал x (n) используется в неадаптивной кодовой книге для поиска оптимального возбуждения. Адаптивная кодовая книга (17 битов) используется для возбуждения фиксированной кодовой книги. Усиления вкладов адаптивной и фиксированной кодовых книг векторно квантуются (7 битов). Наконец, при помощи полученного сигнала возбуждения уточняются параметры фильтра.
Сигнал в декодере подвергается обратной процедуре обработки (рис. 16.6). Изначально индексы параметров извлекаются из принятого битового потока.
Эти индексы декодируются для получения параметров кодера относящихся к блоку длительностью 10 мс. К ним относятся: коэффициенты фильтра ЛП, две дробных задержки шага, два вектора фиксированной кодовой книги, два индекса адаптивной книги и два набора коэффициентов усиления. Коэффициенты ЛП выделяются путем интерполяции для получения коэффициентов для каждого подблока. Для каждого подблока длительностью 5 мс выполняются следующее шаги:
–сигнал возбуждения конструируется сложением векторов из адаптивной и фиксированной книг, масштабированных соответствующими коэффици-
