ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ
НАЦИОНАЛЬНЫЙ
СТАНДАРТ
РОССИЙСКОЙ
ФЕДЕРАЦИИ
ГОСТ Р 53556.3— 2012
Звуковое вещание цифровое
КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ
Кодирование речевых сигналов с использованием линейного предсказания — CELP
Часть 3
(MPEG-4 AUDIO)
ISO/IEC 14496-3:2009 (NEQ)
Издание официальное
етиотртенфчвм
2014
ГОСТ Р 53556.3—2012
Предисловие
1 РАЗРАБОТАН Санкт-Петербургским филиалом Центрального научно-исследовательского института связи «Ленинградское отделение» (ФГУП ЛО ЦНИИС)
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 480 «Связь»
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 20 ноября 2012 г. Ns 942-от
4 Настоящий стандарт разработан с учетом основных нормативах положений международного стандарта ИСО/МЭК 14496-3:2009 «Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио» (ISO/IEC 14496-3:2009 «Information technology — Coding of audio-visual objects — Part 3: Audio») [1)
5 ВВЕДЕН ВПЕРВЫЕ
Правила применения настоящего стандарта установлены в ГОСТР1.0—2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты». а официальный текст изменении и поправок—в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячно издаваемом информационном указателе «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования—на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gostru)
© Сгандартинформ. 2014
Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии
ГОСТ Р 53556.3—>2012
Содержание
1 Область применения………… …………………… 1
1.1 Общее описание декодера CELP………………………….. 1
1.2 Функциональные возможности MPEG-4 CELP………………….. 1
2 Термины и определения………………….
3 Синтаксис потока бит……………… …
3.1 Тип объекта CELP………………….
3.2 Тип объекта ER-CELP…………………
4 Семантики……………………….
4.1 Семантики заголовка………………….
4.2 Семантика фрейма………………….
5 Инструменты декодера MPEG-4 CELP……………
5.1 Введение в набор инструментов декодера CELP MPEG-4 . . .
5.2 Конфигурация масштабируемого AAC/CELP……….
5.3 Переменные помощи………………….
5.4 Элементы потока бит для набора инструментов MPEG-4 CELP
5.5 Демультиплексор потока бит CELP……………
5.6 Декодер CELP LPC и интерполятор…………..
5.7 Генератор возбуждения CELP……………..
5.8 Фильтр синтеза CELP LPC……………….
5.9 Инструмент сжатия тишины CELP……………
Приложение А (справочное) Инструменты декодера MPEG-4 CELP .
Приложение В (справочное) Инструменты кодера MPEG-4 CELP………………. 71
Библиография……………………………………. 96
II
ГОСТ Р 53556.3—2012
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Звуковое вещание цифровое КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ Ч а ст ь 3 (MPEG-4 AUDIO)
Кодирование речевых сигналов с использованием линейного предсказания — CELP
Sound broadcasting digital. Coding of signals of sound broadcasting with reduction of redundancy for transfer on digital communication channels. Part 3 (MPEG-4 audio). Code excited linear prectiction
Дата введения — 2013—09—01
1 Область применения
1.1 Общее описание декодера CELP
Здесь дается краткий обзор декодера CELP (Code Excited Linear Prediction (Линейное предсказание с кодированием)).
Декодер CELP прежде всего состоит из генератора возбуждения и фильтра синтеза. Дополнительно декодеры CELP часто включают в свой состав постфильтр, у генератора возбуждения имеется адаптивная книга шифров для моделирования периодических компонент, фиксированные книги шифров для моделирования случайных компонент и декодер усиления, чтобы представлять уровень речевого сигнала. Индексы для книг шифров и коэффициентов усиления предоставляются кодером. Индексы книги шифров (индекс задержки шага для адаптивной книги шифров и индекс формы для фиксированной книги шифров) и индексы усиления (коэффициенты усиления адаптивной и фиксированной книг шифров) используются, чтобы генерировать сигнал возбуждения. Затем он фильтруется фильтром линейного прогнозирующего синтеза (фильтр синтеза LP). Коэффициенты фильтра реконструируются, используя индексы LPC, затем интерполируются коэффициентами фильтра последовательных фреймов анализа. И наконец, опционно может быть применен постфильтр, чтобы улучшить качество речи.
1.2 Функциональные возможности МРЕ<5~4 CELP
MPEG-4 CELP представляет собой универсальный алгоритм кодирования с новыми функциональными возможностями. Обы**4ые кодеры CELP предлагают сжатие при одной битовой скорости и оптимизированы для определении приложена. Сжатие является домой из футео^й. предоставленных CELP MPEG-4. позволяющей использовать один базовый кодер для различных приложений. Это обеспечивает масштабируемость по битовой скорости и полосе пропускания, а также возможность генерировать потоки бит с произвольной битовой скоростью. Кодер CELP MPEG-4 поддерживает две частоты дискретизации, а именно 8 и 16 кГц. Соответствующие полосы пропускания равны 100—3400 Гц для частоты дискретизации 8 кГц и 50— 7000 Гц для частоты дискретизации 16 кГц. Кроме того, заново приняты сжатие молчание и переупорядочение эластичного потока бит ошибок.
1.2.1 Конфигурация кодера CELP MPEG-4
Чтобы генерировать сигнал возбуждения, могут использоваться два различных инструмента. Это инструмент МиШ-Pulse Excitation (Мультиимпульсное возбуждение) (МРЕ) или инструмент Reguiar-Putse Excitation (Возбуждение регулярным импульсом) (RPE). МРЕ используется для дискретизации речи на частотах 8 кГц или 16 кГц. RPE используется только для дискретизации на частоте 16 кГц. Два возможных режима кодирования сведены в таблице 1.
Издание официальное
1
ГОСТ Р 53556.3—2012
Таблица 1 — Режим* кодирования в кодере CELP MPEG-4
Режим кодирован** |
Инструмент возбуждения |
Частота дискретизации |
1 |
RPE |
16 кГц |
1 |
UPE |
8.16 кГц |
1.2.2 Особенности кодера CELP MPEG-4
Кодер CELP MPEG-4 предлагает следующие функциональные возможности в зависимости от режима кодирования (см. таблицу 2).
Таблица 2 — Функциональные возможности кодера CELP MPEG-4
Режим кодирования |
Функциональноете |
1 |
Несколько битовых скоростей, управление RneRate |
1 |
Несколько битовых скоростей, масштабируемость битовой скорости, масштабируемость полосы пропускания, управление FineRate |
Для обоих режимов кодирования доступны сжатие молчания и переупорядочение эласпемого потока битошибок.
Доступные битовые скорости зависят от режима кодирования и частоты дискретизации. Поддерживаются следующие фиксированные битовые скорости (см. таблицы 3.4).
Таблица 3 — Фиксирование битовые скорости для режима I кодера
Битовые скорости для частоты дискретизации 16кГц.битУс
14400. 16000. 18667. 22533
Таблица 4 — Фиксировав те битовые скорости для режима II кодера
Битовые скорости дпя частоты дискретизации В кГц (бят/с) |
Битовые скорости для частоты дискретизации 16 кГц (бмт/с> |
3850. 4250. 4650. 4900. 5200. 5500. 5700. 6000. 6200. 6300. 6600. 6900. 7100. 7300. 7700. 8300. 8700. 9100. 9500. 9900. 10300. 10500. 10700. 11000. 11400. 11800. 12000. 12200 |
10900. 11500. 12100. 12700. 13300. 13900. 14300. 14700. 15900. 17100. 17900. 18700. 19500. 20300. 21100. 13600. 14200. 14800. 15400. 16000. 16600. 17000. 17400. 18600. 19800. 20600. 21400. 22200. 23000. 23800 |
Во время неактивных фреймов используется инструмент сжатия тишины и кодер CELP работает на битовых скоростях, показанных в таблице 5. Битовая скорость зависит от режима кодирования, частоты дискретизации и длины фрейма.
Таблица 5 — Битовые скорости для инструмента сжатия тииыны
Реяли кодирования |
Частота взятии выборок. кГц |
Масштабируемое? * ширины полосы |
Длина фрейма |
Битовая скорость. бит>с |
||
ТХ_Яад |
HD-SID |
LR-SID |
||||
l(RPE) |
16 |
15 |
133 |
2533 |
400 |
|
10 |
200 |
3800 |
600 |
|||
II (МРЕ) |
8 |
On. Off |
40 |
50 |
525 |
150 |
30 |
67 |
700 |
200 |
|||
20 |
100 |
1050 |
300 |
|||
10 |
200 |
2100 |
600 |
2
ГОСТ Р 53556.3—2012
Окончание таблицы 5
Рем* и код и ремни я |
Частота •тяти* амборок. кГц |
Мгсштабируемос?» ширины полосы |
Длина фрейма |
Битовая скорость, бит/с |
||
TXJiag |
HD-SID |
LR-SID |
||||
16 |
0# |
20 |
100 |
1900 |
300 |
|
10 |
200 |
3600 |
600 |
|||
Ол |
40 |
50 |
1050 |
150 |
||
30 |
67 |
1400 |
200 |
|||
20 |
100 |
2100 |
300 |
|||
10 |
200 |
4200 |
600 |
Управление скоростью; обеспечивает управление битовой скоростью малыми шажками (давая возможность работать на варьируемой битовой скорости). Это достигается только за счет управления скоростью передачи параметров LPC, используя комбинации двух элементов потока бит interpolation_flag и флажок LPC_prasent. Для изменения отношения фреймов LPC к общему числу фреймов между 50 % и 100 % можно использовать управление FrieRate. Это позволяет уменьшить битовую скорость относктегъно битовой скорости привязки, как определено в семантике.
Масштабируемость битовой скорости обеспечивается добавлением уровней расширения. Уровни расширения могут быть добавлены с шагом 2000 бит/с для сигналов, дискретизированных с частотой 8 кГц или 4000 бит/с для сигналов, дискретизированных на 16 кГц. С любой битовой скоростью, выбранной из таблицы 4. можно объединить максимум три уровня расширения.
Масштабируемость полосы пропускания с охватом обеих частот дискретизации достигнута включением инструмента расширения полосы пропускания в кодере CELP. Это инструмент расширения, поддерживаемый в Режиме II. который может быть добавлен, если требуется масштабирование с переходом от частоты дискретизации 8 кГц к частоте дискретизации 16 кГц. Полный кодер с масштабируемостью полосы пропускания состоит из основного кодера CELP для частоты дискретизации 8 кГц и инструмента расширения полосы пропускания для обеспечения одного уровня масштабируемости. Основной кодер CELP для частоты дискретизации 8 кГц может включить несколько уровней. Кодер частоты дискретизации 8 кГц с этим инструментом отличается от кодера частоты дискретизации 16 кГц. Обе конфигурации (кодер частоты дискретизации 8 кГц с масштабируемостью полосы пропускания и кодер частоты дискретизации 16 кГц) предлагают большую ясность и естественность декодированной речи, чем дает один только кодер 8 кГц. потому что они разворачивают полосу пропускания до 7 кГц. Дополнительная битовая скорость, требующаяся для инструмента масштабируемости полосы пропускания, может быть выбрана из четырех дискретных шагов для каждой битовой скорости основного уровня, как показано в таблице 6.
Таблица 6 — Битовые скорости для режима масштабируемой полосы пропускания
Битовая скорость основного уровня, бит/с |
Дополнительная битовая скорость, бит/с |
3850 — 4650 |
+9200. +10400. +11600. +12400 |
4900 — 5500 |
+9467. +10667. +11867, +12667 |
5700 — 10700 |
+10000. +11200. +12400. +13200 |
11000— 12200 |
+11600. +12800. +14000. +14800 |
Инструмент сжатия тишины может использоваться, чтобы уменьшить битовую скорость для входных сигналов с небольшой голосовой активностью. В течение таких неактивных периодов декодер заменяет регулярный сигнал возбуждения искусственно сгенерированным шумом. Для периодов голосовой активности всегда используется регулярный процесс синтеза речи. Инструмент сжатия тишины доступен, когда используется тип объекта ER-CELP.
Переупорядочение эластичного потока бит ошибок позволяет эффективно использовать усовершенствованные техники кодироваться канала как неравномерная защита от ошибок (JEP). Основная идея состоит в том. чтобы перестроить контент звукового фрейма в зависимости от его чувствительности кошиб-
3
ГОСТ Р 53556.3—2012
кам в одном или более случаях, принадлежащих различным категориям чувствительности к ошибкам {ESC). Эта перестановка воздействует на данные поэлементно или даже поразрядно. Фрейм эластичного потока бит ошибок строится, связывая эти случаи. Эти функциональные возможности доступны, когда используется тип объекта ER-CELP.
1.2.3 Алгоритмическая задержка режимов CELP MPEG-4
Алгоритмическая задержка кодера CELP исходит из длины фрейма и длины дополнительного пред» видения. Длина фрейма зависит от режима кодирования и битовой скорости. Длина предвидения, которая является информативным параметром, также зависит от режима кодирования. Задержки, представленные ниже, применимы к режимам, где управление FineRate Control выключено (см. таблицы 7. 8. 9). Когда управление FineRate Control включено, вносится дополнительная задержка на один фрейм. Масштабируемость полосы пропускания в кодере режима II требует дополнительного предвидения на 5 мс из-за суб-дискретизации.
Таблица 7 — Задержка и длит фрейма для кодера режима I частоты дискретизации 16 кГц
Битом* скорость для режима 1. бят/с |
Задержка, мс |
Длина фрейма, мс |
14400 |
26.25 |
15 |
16000 |
18.75 |
10 |
18667 |
26.56 |
15 |
22533 |
26.75 |
15 |
Таблица 8 — Задержка и длина фрейма для кодера режима II частоты дискретизации в кГц
Битовая скорость для режима II. 6ит<с |
Задержка, мс |
Длина фрейма, мс |
3850. 4250. 4650 |
45 |
40 |
4900. 5200. 5500. 6200 |
35 |
30 |
5700. 6000. 6300. 6600. 6900. 7100. 7300. 7700. 8300. 8700. 9100. 9500. 9900. 10300. 10500. 10700 |
25 |
20 |
11000. 11400. 11800. 12000. 12200 |
15 |
10 |
Таблица 9 — Задержка и длина фрейма для кодера режима К частоты дискретизации
Битом* скорость для режима II. бит/с |
Задержка, мс |
Длина фрейма, мс |
10900. 11500. 12100. 12700. 13300. 13S00. 14300.14700. 15900. 17100. 17900. 18700. 19500. 20300. 21100 |
25 |
20 |
13600. 14200. 14800. 15400. 16000. 16600. 17000.17400. 18600. 19600. 20600. 21400. 22200. 23000. 23800 |
15 |
10 |
В случае, если сжатие тишины исгюгъэувтся. алгоритмическая задержка такая же. как без сжатия тишины, посколку используются такая же длина фрейма и такая же дистанция дополнительного упреждающего просмотра.
2 Термины и определения
Термины и определения в соответствии с ГОСТ Р 53556.0-2009
4
ГОСТ Р 53556.3—>2012
3 Синтаксис потока бит
3.1 Тип объекта CELP
3.1.1 Синтаксис заголовка
CelpSpecificConfig о
Для типа объекта CELP требуется следующий CelpSpedficConfig () (см. таблицы 10.11.12)
Таблица 10 — Синтаксис CelpSpedbcConfig ()
Синтаксис |
Количество битое |
Мнемосхема |
CelpSpecibcConfig (uint(4) sampKngFrequencytndex) { |
||
isBaseLayer if (isBaseLayer) { CeipHeader (samphngFrequencylndex): } else { isBWSLayer if (isBWSLayer) { CelpBWSenhHeader 0: } else { |
1 |
uimsbf |
CELP-BRS-td:uimcbf } } } |
2 |
uimsbf |
Таблица 11 — Сжтаксис CelpHeader 0
Синтаксис |
Количество битое |
Мнемосхема |
CeipHeader (samphngFrequencylndex) / |
||
> ExatabonMode: |
1 |
ияпсЫ |
SampleRateMode: |
1 |
ияпсЫ |
FineRateControt |
1 |
ияпсЫ |
if (ExatabonMode == RPE) { |
||
RPE Configuration: } if (ExatabonMode == MPE) { |
3 |
ияпсЫ |
MPE_Configurabon: |
5 |
ияпсЫ |
NumEohLayers: |
2 |
ияпсЫ |
BandwidthScalabiMyMode: } } |
1 |
ияпсЫ |
Таблица 12 — Синтаксис CeipBWSenhHeader ()
Синтаксис |
Количество битое |
Мнемосхема |
CelpBWSenhHeader 0 |
||
{ |
||
BWS_conrtgurabon: |
2 |
ияпсЫ |
5
ГОСТ Р 53556.3—2012
3.1.2 Синтаксис фрейма Передача потоков бит CELP
Каждый уровень потока бит аудио CELP MPEG-4 передается а элементарном потоке. В sPacketPayioad должны быть включены следующие динамические данные для Аудио CELP:
Базовый уровень CELP—полезная нагрузка модуля доступа
sIPacketPaytoad
{
CeipBaseFrame ():
}
Уровень расширения CELP—полезная нагрузка модуля доступа
Чтобы анализировать и декодировать уровень расширения CELP. требуется информация, декодированная из базового уровня CELP. Для масштабируемого режима битовой скорости должны быть включены следующие данные для уровня расширения CELP: sIPacketPaytoad {
CelpBRSenhFrame Q;
}
Для масштабируемого режима полосы пропускания должны быть включены следующие данные для уровня расширения CELP. slPacketPayioad {
CelpB WSenhFrama Q:
)
8 случае, если масштабирование битовой скорости и масштабирование полосы пропускания используются одновременно, сначала должны быть переданы все уровни расширения битовой скорости, а затем уровень масштабируемости полосы пропускания (см. таблицы 13.14.15.16.17.18.19.20)
Таблица 13 — Синтаксис CelpBaseFrame 0
Синтаксис |
Количество битое |
Мнемосхема |
CotpBasoFramof) { Calp LPCO: if (ExcitationMode = UPE) { MPE framed; } if ((ExatationMode==RPE) && (Samp/eRatoMode— 16кГц|) { RPE frwnefl: } } |
Таблица 14 — Синтаксис CeJpBRSenbFrame ()
Синтаксис |
Количество битое |
Мнемосхема |
CelpBRSenhFrame{) { for (subframe = 0: subframe < nrof_subframes: subframe**) { sbape_enh_posibons [subframe][enh_layer]; sbape_enh_signs [subframejfenhjayerf: gain enh index (subframe][enh layer]; } } |
4. 12 2,4 4 |
uimcbf uimcbf uimcbf |
6
ГОСТ Р 53556.3—>2012
Таблица 15 — Синтаксис CelpBWSenhFrame 0
СИКТЭКСИС |
Количество |
Мнемосхема |
битов |
||
CelpBWSenhFrame() { BandScalabte_LSP() for (subframe=C: subframe<nrof subframe bws: subframe**) { sbape_bws_delay (subframe): |
||
sbape_bws_positbns (subframe): |
3 |
uimcbf |
sbape_bws_sjgns (subframe): |
22. 26. 30. 32 |
uimcbf |
gain bws ndex /subframe/. |
6.6. 10. 12 |
uimcbf |
} |
11 |
uimcbf |
} |
3.1.2.1 Синтаксис LPC
Таблица 16 — С**-1таксис Ceip_LPC ()
Синтаксис |
Количество битое |
Мнемосхема |
Cefp LPC() { if (FneRaieControi — ON){ mterpofabon_Bag: |
1 |
uimcbf |
LPC Present |
1 |
uimcbf |
if (LPC Present == YES) { LSP VQO: } }else{ LSP VQ() > } |
Таблица 17 — Стмтаксис LSP.VQQ
Синтаксис |
Количество битов |
Мнемосхема |
LSP VQO { if (SampieRataUode == бкГц) / Narrow8and_ LSPO: )etse{ WtieBand LSP(): } } |
Таблица 18 — Синтаксис NarmwBand_LSP 0
Синтаксис |
Количество битов |
Мнемосхема |
NarrowBand LSP() |
||
{ |
||
lpc_rxtces (0): |
4 |
uimcbf |
lpc_ndices [1J: |
4 |
uimcbf |
Ipc ndices [2$ |
7 |
uimcbf |
ipcjntces (3): |
6 |
uimcbf |
Ipc indices (4): |
1 |
uimcbf |
} |
7
ГОСТ Р 53556.3—2012
Таблица 19 — Синтаксис BandScaiabto_LSP {)
СяКТаКСИС |
Количество битов |
Мнемосхема |
BandScaiable LSP() { tpc_rxOcss [Sf: |
4 |
uimcbf |
Ipcjndices [6): |
7 |
uimcbf |
lpc_rx*ces [7J: |
4 |
uimcbf |
lpc_rKtces /8/. |
6 |
uimcbf |
tpc_rxHces /9/: |
7 |
uimcbf |
Ipc indices [10}: |
4 |
uimcbf |
} |
Таблица 20 — Синтаксис Wide8and_LSP 0
Синтаксис |
Количество битое |
Мнемосхема |
|
WideBend_LSPQ |
|||
> /pc_«*ces /D) |
5 |
итгтгсД/ |
|
be indices (H |
5 |
uimcbf |
|
lpc_indices /2j |
7 |
uimcbf |
|
toe indices (3j |
7 |
uimcbf |
|
/pc_«fces [4\ |
1 |
uimcbf |
|
toe indices fSI |
4 |
uimcbf |
|
/pc_«fces /6j |
4 |
uimcbf |
|
toe indices [7l |
7 |
uimcbf |
|
toc.indces /8j |
5 |
uimcbf |
|
toc.indces /9J |
1 |
uimcbf |
|
} |
3.122 Синтаксис возбуждения (см. таблицы 21.22)
Таблица 21 — Синтаксис RPEJrame ()
Синтаксис |
Количество бито* |
Мнемосхема |
RPE framed { for (subframe = 0: subframe < rrof subframes: subframe**) { shape_defay [subframe): |
||
8 |
uimcbf |
|
shape_index /subframe/; |
11 |
uimcbf |
gauvndices /0}[subframe}: |
12 |
uimcbf |
gammdices [1][subframe}: } |
6.3.5 |
uimcbf |
Таблица 22 — СинтаксисMPEJframe()
Синтаксис |
Количество битое |
Мнемосхема |
MPE framed { signai_mode: |
||
2 |
uimcbf |
|
mejndex: for (subframe = 0: subframe < nmf subframes: subframe**) |
б |
uimcbf |
{ |
8.9 |
uimcbf |
в
ГОСТ Р 53556.3—>2012
Окончание таблицы 22
СИНТЭХСИС |
Количество битов |
Мнемосхема |
shape_detay {subframe}: shapeposibons [subframe]: shapesigns [subframe]: gamindex (subframe): } } |
14 323… 12 6.7 |
uimcbf uimcbf uimcbf |
3.2 Тип объекта ER-CELP
3.2.1 Синтаксис заголовка
EnorRosihontColpSpoaficConfig {)
Для типа объекта ER-CELP требуется следующим ErrorR&siltentCefpSpedficConfig 0 (си. таблицы 23.24).
Таблица 23 — Синтаксис ErmrRestbenlCeipSpecificCcnfig ()
Синтахсис |
Количество битое |
Мнемосхема |
ErrorResrbentCetpSpedficConfig (шЛ(4) samptngFrequencylndex) { |
||
isBaseLayer. if (isBaseLayer) { ER SC CeipHeader (sampbngFrequencyindex): > Else { isBWSLayen i (rsBWSLayer) { CelpBWSenhHeader (): } else { |
1 |
uimcbf |
1 |
uimcbf |
|
CELP-BRS-id: } > } |
2 |
uimcbf |
Таблица 24— СинтаксисER_SC_CeipHeader{)
Синтаксис |
Количество |
Мнемосхема |
битое |
||
ER SC CeipHeader (samptngFrequencylndex) { ExdtabonMode: |
||
1 |
uimcbf |
|
SampieRateMode: |
1 |
uimcbf |
FineRateContmt: |
1 |
uimcbf |
SfenceCompresston; if (ExdtabonMode == RPE) { |
1 |
uimcbf |
RPE Configuration. if (ExatationMode == MPE) { |
3 |
uimcbf |
uimcbf |
||
MPE_Configuration; |
5 |
uimcbf |
NumEnhLayers; |
2 |
uimcbf |
BandwidthScalabibtyMode: } ) |
1 |
9
ГОСТ Р 53556.3—2012
3.2.2 Синтаксис фрейма
Чтобы описать чувствительность к ошибке в символе элементов потока бит. введены категории чувствительности к ошибкам (ESC). Чтобы описать отдельные биты элементов, используется следующая система обозначений.
Усиление, х—у
Обозначает усиление элемента от бита х до бита у, в силу чего сначала передается х. Младший бит LSB — нулевой бит и МСВ элемента, который состоит из N бит равен N-1. МСВ всегда первый бит в потоке бит.
Следующий синтаксис является заменой для CeipBaseFrame. Синтаксис для уровня расширения для масштабируемости битовой скорости и полосы пропускания не затронут.
Передача потоков бит CELP
Данные полезной нагрузки для объекта CELP ER передаются как полезная нагрузка sIPacketPayioad в базовом уровне и опционном уровне расширения Elementary Stream (элементарный поток).
Базовый уровень эластичного CELP ошибок — полезная нагрузка модуля доступа
sIPacketPayioad
{
ER__SC_CeipBaseFrame 0;
)
Уровень расширения эластичного CELP ошибок — полезная нагрузка модуля доступа.
Чтобы анализировать и декодировать уровни расширения эластичного CELP ошибок, требуется декодированная информация из базового уровня эластичного CELP ошибок. Для режима масштабируемой битовой скорости должны быть включены следующие данные для уровней расширения эластичного CELP ошибок:
sIPacketPayioad
{
ER_SC_CeipBRSenhFrame 0;
Для режима масштабируемой полосы пропускания должны быть включены следующие данные для уровня расширения эластичного CELP ошибок: sIPacketPayioad {
ER SC^CeipBWSenhFrame 0;
}
3.2.2.1 Базовый уровень CELP (см. таблицы 25.26,27)
Таблица 25 — Синтаксис ER_SC_CelpBaseFrame ()
Синтаксис |
Количество битое |
Мнемосхема |
ER SC CelpBaseFrameO { if (SSenceCompression = OFF) { ER_CelpBaseFrame{): }else{ SC VokxActivity ESC0(); if(TX_Rag = 1) { ER CelpBaseFrameO-}etseif(TX Rag == 2) { SID LSP VО ESC0(): SID Frame ESC0(): ;efce/ff7X Rag == 3) { 5Ю Frame ESC0(): } } } |
10
ГОСТ Р 53556.3—>2012
Таблица 26 — С*мтахсисSC_Vo>csActmty_ESCO()
Синтаксис |
Количество битов |
Мнемосхема |
SC VdcaAdmty ESC0() |
||
{ |
||
ТХ flag; |
2 |
uimcbf |
} |
Таблица 27 — Синтаксис ER_CalpBaseFrame {)
Синтаксис |
Количество битов |
Мнемосхема |
ER CefpBaseFramef) { 4 (ExcdabonModa ~ МРЕ) { if (SampieRateMode == 8кГц) { МРЕ NarrowBand ESCOQ: МРЕ NarrowBand ESC1(): МРЕ NarrowBand ESC2Q: МРЕ NarrowBand ESC3(): МРЕ NarrowBand ESC4Q: } if (SampfeRat&Mode == f бкГц) { МРЕ WidaBand ESC0(); UPE WidaBand ESC IQ: MPE WidaBand ESC2Q: UPE WidaBand ESC3Q; UPE WidaBand ESC4Q; } } if ((ExatadonModa == RPE) && (SanpteRateMode = 16хГи)) { RPE WidaBand ESCOQ: RPE WidaBand ESC1Q: RPE WidaBand ESC2Q: RPE_WideBand_ESC30; rpe WidaBand ESG4{): }: } |
3.2.2.1.1 Синтаксис уэкополооюго МРЕ (см. таблицы 28.29.30.31.32)
Таблица 28 — СинтаксисMPE_NarrowBand_ESCOQ
Синтаксис |
Количество |
Мнемосхема |
битов |
||
МРЕ NarrowBand ESCOQ { if (FmeRateCortrol == ON) { |
||
irrterpolaOon_flag; |
1 |
uimcbf |
LPC Present |
1 |
uimcbf |
} ntc_index. 5-4: for (subframe = 0: subframe < nrof subframes. |
2 |
uimcbf |
subframe**) { shape delayfsubframe}. 7; } } |
1 |
uimcbf |
11
ГОСТ Р 53556.3—2012
Таблица 29 — СинтаксисMPE_NarrowBand_ESC1 0
Синтаксис |
Количество битов |
Мнеыосхеыа |
МРЕ NarrowBand ESC1 0 { if (FmeRaieControl == ОМ) { i (LPC_Present == YES) { |
||
!pc_tndces (0). 1-0; |
2 |
uimcbf |
Ipc m&ces (1}. 0: }else{ |
1 |
uimcbf |
lpc_indices fO). 1-0: |
2 |
uimcbf |
Ipc indices /fJL 0: } signal mode; for (subframe = 0: subframe < nrof_subframes: subframe**) { |
1 |
uimcbf |
2 |
uimcbf |
|
shape deiaylsubframe}. 6-5; } } |
2 |
uimcbf |
Таблица 30 — СинтаксисMPE_NarrowBand_ESC20
Синтаксис |
Количество битое |
Мнемосхема |
MPE NarrowBand ESC2() { if (FneRaieContml == ON) { / (LPC_Present == YES) { $>c_irKtces (2). & |
1 |
uimcbf |
lpc_fndces (2). 0: |
1 |
uimcbf |
4>c irxbces {4}: } }eise{ IpcJnOces [2J. 6: |
1 |
uimcbf |
1 |
uimcbf |
|
Ipc indices [2], 0: |
1 |
uimcbf |
Ipc indices (4): > лис index. 3 |
1 |
uimcbf |
1 |
uimcbf |
|
for (subframe = 0: subframe < nmf subframes: subframe**) { |
2 |
uimcbf |
shape_detaylsubframe}. 4-3: |
2 |
uimcbf |
gain indexfsubframe). 1-0: > } |
Таблица 31 — Синтаксис MPE_NarrowBand_ESC3 0
Синтаксис |
Количество битое |
Маеыосхема |
MPE NarrowBand ESC3() { if (FneRaleConfml = OM){ / (LPC_Present = YES) { Ipc indees (0/. 3-2: |
2 |
uimcbf |
t>c inrtces [1}. 2-1: |
2 |
uimcbf |
Ipc intfees /2/. 5-1. |
5 |
uimcbf |
} }efse{ |
12
ГОСТ Р 53556.3—>2012
Окончание таблицы 31
СвКТЭХСИС |
Количество битов |
Мнемосхеме |
lpc_indices fO). 3-2: |
2 |
uimcbf |
lpc_indices (1). 2-1: |
2 |
штсЫ |
Ipc indices [2). 5-1: } for (subframe = 0: subframe < nrof_subframes: |
5 |
uimcbf |
subframe++) { |
3 |
uimcbf |
shape_deiay}subframe}. 2-0: |
3.. 12 |
uimcbf |
shape signsfsubframe}: рам indexfsubframe}. 2: } } |
1 |
uimcbf |
Таблица 32 — Синтаксис MPE_NarrowBand_ESC4 0
Синтаксис |
Количество битое |
Мнемосхеме |
MPE NarrowBand ESC4() { if (FneRateContml == ON) { if (LPC_Present == YES) { |
||
lpc_in&ces (1]. 3: |
1 |
uimcbf |
Ipc indces (3): } }eise{ |
б |
uimcbf |
Ipc «ndi’ces 11}. 3: |
1 |
uimcbf |
Ipc indices (3f. } mcjndex. 2-0 for (subframe = 0: subframe < nrof_subframes: subframe**) { |
б |
uimcbf |
3 |
uimcbf |
|
shape posibonsfsubframe}: |
13… 32 |
uimcbf |
gain indexfsubframe}. 5-3; } } |
3 |
uimcbf |
3.2.2.1.2 Широкополосный синтаксис МРЕ (см. таблицы 33.34.35.36.37)
Таблица 33 — Стгаксис MPE_WideBand_ESCO ()
Синтахсис |
Количество битое |
Мнемосхеме |
MPE WideBand ESC0() { if (FneRateContml == ON) { |
||
interpolation flag: |
1 |
uimcbf |
LPC Present |
1 |
uimcbf |
if (LPC_Presenl == YES) { |
||
tpcjnrices [0}: |
5 |
uimcbf |
lpc_indices fl}. 1-0: |
2 |
uimcbf |
ipcJndKes (2}. 6: |
1 |
uimcbf |
lpc_indces (2]. 4-0: |
5 |
uimcbf |
tpcJndKes [4): |
1 |
uimcbf |
tpc indices [5]. 0: } }etse{ |
1 |
uimcbf |
tpc_mdices fO): |
5 |
uimcbf |
13
ГОСТ Р 53556.3—2012
Окончание таблицы 33
Синтаксис |
Количество битов |
Мнеыосхеиа |
lpc_indices pj. 1-0: |
2 |
uimcbf |
lpc_mdices PJ. б; |
1 |
uimcbf |
lpc_mdices py 4-0: |
5 |
uimcbf |
lpc_mdices (4); |
1 |
uimcbf |
Ipc indices /5}. 0: |
1 |
uimcbf |
} |
||
rue index. 4-5 : |
2 |
uimcbf |
} |
Таблица 34 — С*мтаксисMPE_WkfeBand_ESC-\ (}
Синтаксис |
Количество битое |
Ыиеыосяема |
MPE WkJeBand ESC1Q { if (FneRateControi == ON) { f(LPC_Present == YES) { |
||
t>cjn&ces pj. 3-2: |
2 |
uimcbf |
lpc_fndces p\. 5; |
1 |
uimcbf |
4>c indees [5}. 1: |
1 |
uimcbf |
Ipcjndces /6/. 1-0: |
2 |
uimcbf |
у }else{ |
||
Ipc indices pj, 3-2: |
2 |
uimcbf |
lpc_indices pj. 5: |
1 |
uimcbf |
lpc_indices PI 1: |
1 |
uimcbf |
Ipc indices pj. 1-0: > signal mode: |
2 |
uimcbf |
2 |
uimcbf |
|
for (subframe = 0; subframe < nrof_subframes; subframe**) { |
||
shape deiayfsubframe]. 8-6: |
3 |
uimcbf |
> ) |
Таблица 35 — Сттаксис MPE_WxieBand_ESC2 ()
Синтаксис |
Количество битое |
Uxeuocxewe |
MPE WideBand ESC2() { if (FneRateContml == ON) { i (LPC_Present == YES) { |
||
^>c_indces pj. 4: |
1 |
uimcbf |
frc_indcss pj. 6. |
1 |
uimcbf |
t>c_in<*ces PJ. 1: |
1 |
uimcbf |
lpc_indces f5J. 2: |
1 |
uimcbf |
pc_indces (6J. 3l |
1 |
uimcbf |
t>c_indces pj. 6: |
1 |
uimcbf |
t>c_indces pj. 4: |
1 |
uimcbf |
bejndees pj. 1-0: |
2 |
uimcbf |
pc indices (9}: } feisef |
1 |
uimcbf |
Ipc indices pj. 4: |
1 |
uimcbf |
Ipcjndices PJ. 6: |
1 |
uimcbf |
14
ГОСТ Р 53556.3—>2012
Окончание таблицы 35
Синтаксис |
Количество битов |
Миемосхена |
ipc_mdices [3], 1: |
1 |
uimcbf |
lpc_indices (5). 2: |
1 |
uimcbf |
lpc_indices 16/, 3: |
1 |
uimcbf |
ipc_mdices [7], 6: |
1 |
uimcbf |
lpc_indices [7], 4; |
1 |
uimcbf |
lpc_indices [7J, 1-0: |
2 |
uimcbf |
ipc indices [9]: } rvcjndex. 3: for (subframe = 0: subframe < nrof_subframes: |
1 |
uimcbf |
1 |
uimcbf |
|
subframe**) { |
2 |
uimcbf |
sbape_detayfsubframe). 5-4; gain index]subframe}. 1-0: } } |
2 |
uimcbf |
Таблица 36 — Синтаксис МРЕ_ W>deBand_ESC3 ()
Синтаксис |
Количество битое |
Uxcuocxewa |
MPE VMeBand ESC3Q { if (FneRateConbot == ON) { a (LPC_Present == YES) { |
||
Ipcjndces {3}. 4-2: |
3 |
uimcbf |
Ipc Joyces [3}. 0: |
1 |
uimcbf |
lpc_kKSces (5}. 3L* |
1 |
uimcbf |
tpcjnrtces 16}. 2: |
1 |
uimcbf |
lpc_in<fces [7J. 5: |
1 |
uimcbf |
Ipcjnticss [7]. 3-2: |
2 |
uimcbf |
Ipc indces (8}. 4-1; } }else{ |
4 |
uimcbf |
lpc_mdices [3}. 4-2 |
3 |
uimcbf |
Ipcjndices [3]. 0: |
1 |
uimcbf |
ipc_mdices [5}. 3: |
1 |
uimcbf |
lpc_indiees [6]. 2: |
1 |
uimcbf |
lpc_indices [7], 5: |
1 |
uimcbf |
ipc_mdices [7]. 3-2 |
2 |
uimcbf |
Ipc indices (8). 4-1: } for (subframe = 0: subframe < nrot_subframes; subframe**) { |
4 |
uimcbf |
shape_delayfsubframe). 3-2 |
2 |
uimcbf |
shape signsfsubframe): |
3… 12 |
uimcbf |
gain indexfsubframe}. 2: |
1 |
uimcbf |
} } |
15
ГОСТ Р 53556.3—2012
Таблица 37 — Синтаксис MPE_WideBand_ESC4 ()
Синтаксис |
Количество битов |
Мхеыосхемэ |
МРЕ WideBand ESC4Q { if (FmeRaieControl == ОМ) ( i (LPC_Present == YES) { |
||
lpc_indces /3/. 5. |
1 |
uimcbf |
£c indces (8}. ft ; }else{ |
1 |
uimcbf |
lpc_indices [3]. 5: |
1 |
uimcbf |
Ipc indices [8]. ft } me Jndex. 2-0: for (subframe = ft subframe < nrof_subframes: subframe**) { |
1 |
uimcbf |
3 |
uimcbf |
|
shape_detayfsubframe], 1-0: |
2 |
uimcbf |
shape positons(subframe): |
14 …32 |
uimcbf |
gain indexfsubframe). 6-3: } } |
4 |
uimcbf |
3.2.2.1.3 Широкополосный синтаксис RPE {см. таблицы 38.39.40.41.42)
Т а б л и ц а 38 — Синтаксис RPE_WkteBand_ESCO ()
Синтаксис |
Количество битое |
Ыиеыосяема |
RPE WideBand ESCOQ { if (FmeRateControi — ON){ |
||
interpolation flag: |
1 |
uimcbf |
LPC Present. f (LPC_Preseot == YES) { |
1 |
uimcbf |
Lpc_indces fOJ: |
5 |
uimcbf |
Ipcjndces 11}. 1-0: |
2 |
uimcbf |
tpc indees (2). ft |
1 |
uimcbf |
lpc_indces (21 4-0 |
5 |
uimcbf |
fccjndces f4): |
1 |
uimcbf |
lpc_indces 15}. ft |
1 |
uimcbf |
у }else{ |
||
Ipc indices [0): |
5 |
uimcbf |
lpc_indices }l}, 1-0: |
2 |
uimcbf |
lpc_indices [2], 6: |
1 |
uimcbf |
lpc_indices [2]. 4-0. |
5 |
uimcbf |
Ipc_indices {4J; |
1 |
uimcbf |
Ipc indices [5]. 0: > for (subframe = 0: subframe < nrof_subframes: subframe**) { |
1 |
uimcbf |
gam_indices(0][sobframe), 5-3: f (subframe — 0)( |
3 |
uimcbf |
gain_indces( TJfsubframe/. 4-3: }etse{ |
2 |
uimcbf |
gam mdices[1J[subframe]. 2: } } |
1 |
uimcbf |
16
ГОСТ Р 53556.3—>2012
Таблица 39 — СинтаксисRPE_WideBand_ESC’\ ()
Синтаксис |
Количество битов |
Мхеыосхемэ |
RPE VMeBand ESC1 () { if {Fry&RateContruf == ON) { Я(LPC Present— YES){ |
||
lpc_kxtces (1}. 3-2: |
2 |
uimcbf |
fpcjn&ces (2/. 5; |
1 |
uimcbf |
fpcjntces 15}. 1: |
1 |
uimcbf |
Ipc ifKtces [6}. 1-0. } }else{ |
2 |
uimcbf |
Ipc indices 11), 3-2 |
2 |
uimcbf |
Ipc indices (2). 5: |
1 |
uimcbf |
Ipc indices [5). 1: |
1 |
uimcbf |
Ipc indices (6), 1-0: { for (subframe = 0: subframe < nmf subframes: subframe**) { shape deiayfsubframe). 7-5: } } |
2 |
uimcbf |
3 |
uimcbf |
Таблица 40 — Синтжсис RPE_WkteBand_ESC2 ()
Синтаксис |
Количество битое |
Мнемосхема |
RPE WideBand ESC2() { if (FneRaleContmi == ON) { в (LPC_Present == YES) { Ipc indices (1). 4: |
1 |
uimcbf |
tpcjndkes (3). 6: |
1 |
uimcbf |
fpcjt&ces (3). 1; |
1 |
uimcbf |
pc_fn<eces )bj, 2 |
1 |
uimcot |
fpcJnAces (6). 3: |
1 |
uimcbf |
tpcjntbces (7). & |
1 |
uimcbf |
lpc_inctces [7], 4: |
1 |
uimcbf |
Ipcjndkes [7]. 1-0.: |
2 |
uimcbf |
Ipc inrtces (9): } }e!se{ |
1 |
uimcbf |
Ipcjndices f1), 4 : |
1 |
uimcbf |
lpc_indices /3/. 6: |
1 |
uimcbf |
Ipcjndices {3}. 1: |
1 |
uimcbf |
lpc_indices [5}. 2: |
1 |
uimcbf |
Ipc indices /6/. 3: |
1 |
uimcbf |
lpc_mdices [7). 6: |
1 |
uimcbf |
lpc_indices f7J, 4: |
1 |
uimcbf |
Ipc indices (7). 1-0: |
2 |
uimcbf |
Ipc indices [9]: } for (subframe = 0: subframe < nmf subframes: subframe**) |
1 |
uimcbf |
{ |
2 |
uimcbf |
shape_delayfsubframe). 4-3: |
1 |
uimcbf |
gam_mdicesfO][subframe). 2: в (subframe ~0){ |
1 |
uimcbf |
17
ГОСТ Р 53556.3—2012
Окончание таблицы АО
Синтаксис |
Количество битов |
Мнемосхема |
gain_indices{1){subframe). Z’ }eise{ gain «frees/J //subframe/. 1: } } } |
1 |
uimcbf |
Таблица 41— Синтаксис RPE_WxteBand_ESC3 ()
Синтаксис |
Количество битов |
Мнемосхема |
RPE WideBand ESC3() { if (FineRateControl — ON) { i (LPC_Prssent == YES) { |
||
Ipcjndices PJ. 4-2: |
3 |
uimcbf |
Ipc (indices P), 0: |
1 |
uimcbf |
Ipcjndices /5/. 3: |
1 |
uimcbf |
Ipc indices (6]. 2: |
1 |
uimcbf |
lpc_indices [7], 5: |
1 |
uimcbf |
ipc indices pj, 3-2: |
2 |
uimcbf |
lpc_mdices /8/. 4-1: |
4 |
uimcbf |
}efse{ |
||
Ipc indices P). 4-2: |
3 |
uimcbf |
Ipcjndices /3/. 0: |
1 |
uimcbf |
Ipc indices /5/. 3: |
1 |
uimcbf |
Ipcjndices f6J. 2: |
1 |
uimcbf |
lpc_mdices P). 5: |
1 |
uimcbf |
Ipcjndices pj, 3-2: |
2 |
uimcbf |
Ipc indices /8/ 4-1: } for (subframe = 0: subframe < nrof subframes: subframe**) |
4 |
uimcbf |
{ |
2 |
uimcbf |
shape delayfsubframe), 2-1; } } |
Таблица 42— Синтаксис RPEJMdeBand_ESC4 ()
Синтаксис |
Количество битое |
Мнемосхема |
RPE WideBand ESC4() { H (FneRateContml == ON) { |
||
I (LPC_Presen! == YES) { |
||
Ipcjndices pj. 5: |
1 |
uimcbf |
t>c_«ndoes /8/. 0: |
1 |
uimcbf |
}efse{ |
||
lpc_mdices pj. 5: |
1 |
uimcbf |
ipc indices pj. 0: } for (subframe = 0; subframe < nrof_subframes; subframe**) { |
1 |
uimcbf |
shape_delayfsubframe). 0: |
1 |
uimcbf |
18
ГОСТ Р 53556.3—>2012
Окончание таблицы 42
СЯНТЭКСИС |
Количество битов |
Мнемосхема |
shape indexfsubframe): |
11. 12 |
uimcbf |
gam_indkes{0)[subframe]. 1-0: if (subframe — 0)( |
2 |
uimcbf |
gain_mdices{1}(subframe]. 1-0: } else { |
2 |
uimcbf |
gain mdicesf 1 HsubframeJ. 0: } } } |
1 |
uimcbf |
3.2.22 Уровни расширения CELP (см. таблицы 43.44)
Таблица 43 — Синтаксис ER_SC_CelpBRSenhFrame 0
Синтаксис |
Количество битов |
Мнемосхема |
ER SC CetpBRSenhFrameO { if (SHenceCompression == OFF) { CetpBRSenhFrame{). }eise 1 (ТХ_Язд == 1){ Ceb>BRSenhFrame(); } } |
Таблица 44 — Синтаксис ER_SC_CetpBWSenhFrame Q
Синтаксис |
Количество битое |
Мнемосхема |
ER SC CetpBWSenhFrameO { if (SHoncoCompression — OFF) { CebBWSenhFrameQ: }etse{ ffTXJiag— 1){ CefpBWSanhFrame(): } ff(TX Rag == 2) { SID BandScaiabie LSP(): } } } |
3.22.3 Элементы синтаксиса для неактивных фреймов (см. таблицы 45.46.47.48.49)
Таблица 45 — СинтаксисSiD_LSP_VQ_ESCO()
Синтаксис |
Количество битов |
Мнемосхема |
SID LSP VO ESCO0 { if (SampieRateMode — 8кГц) { StD_NarrowBanc}_LSP(): }etse{ SID WideBand LSPf):) } } |
19
ГОСТ Р 53556.3—2012
Таблица 46 — СинтаксисSID_NarmwBand_LSP0
Синтаксис |
Количество битов |
Мнемосхема |
SID NarmwBand LSP() { |
||
SID Ipc inttces }0}: |
4 |
Uimcbf |
SID Ipc inttces 11]: |
4 |
uimcbf |
SID Ipc indices [2} } |
7 |
uimcbf |
Таблица 47 — Синтаксис SID_BandScalabie_LSP 0
Синтаксис |
Количество битое |
Мнемосхема |
SID BandScalable LSP() { SID Ipc inttces [3}: |
4 |
uimcbf |
SID_lpc_m<tces [4]: |
7 |
uimcbf |
SID Ipc inttces /5); |
4 |
uimcbf |
SID Ipc inttces /6}: |
6 |
uimcbf |
} |
Таблица 48 — СинтаксисSID_WkteBand_LSP0
Синтаксис |
Количество битое |
Мнемосхема |
|
SID_ WkteBand_LSP() |
|||
SID Ipc inttces 10} |
5 |
uimcbf |
|
SID Ipc inttces {1} |
5 |
uimcbf |
|
SID Ipc inttces {2} |
7 |
uimcbf |
|
SID Ipc inttces 13} |
7 |
uimcbf |
|
SID Ipc inttces {4} |
4 |
uimcbf |
|
SID Ipc inttces IS} |
4 |
uimcbf |
|
} |
Таблица 49 — Синтаксис SID_Frame_ESCO 0
Синтаксис |
Количество битое |
Мнемосхема |
SID Frame ESCO() |
||
{ |
||
SID me index: |
в |
uimcbf |
} |
4 Семантики
Здесь описана семантика синтаксических элементов.
4.1 Семантики заголовка
isBaseLayer—однобитовый идентификатор, показывающий является ли соответствующий уровень базовым (1). либо уроеенем расширения масштабируемой полосы пропускания или масштабируемой битовой скорости (0).
isBWSLayer—однобитовый идентификатор, показывающий является ли соответствующий уровень уроеенем расширения масштабируемой полосы пропускания (1) или уроеенем расширения масштабируемой битовой скорости (0).
20
ГОСТ Р 53556.3—>2012
CELP-BRS-td—двухбитовый идентификатор, показывающий порядок уровней расширения масштабируемой битовой скорости, где у первого уровня расширения значение Т. Значение ТУ не должно использоваться
ExcitationMode — однобитовый идентификатор, показывающий используется ли инструмент Multi-Pulse Excitation игы инструмент Regular-Pulse Excitation (см. таблицу 50).
Таблица 50 — Описание режима ExcitationMode
Режим возбуждения |
10 возбуждения |
Описание |
0 |
МРЕ |
Инструмент МРЕ используется |
1 |
RPE |
Инструмент RPE используется |
SampleRateMode—однобитовый идентификатор, показывающий частоту дискретизации. Поддерживаются две частоты дискретизации (см. таблицу 51).
Таблица 51 — Описание режима SampleRateMode
Режим SampJeRe feJUode |
Идентификатор SamploRatcIO |
Описание |
0 |
в кГц |
8 кГц Частота хмскреткзации |
1 |
16 кГц |
16 кГц Частота дискретизации |
FineRateControl — однобитовый флажок, показывающий, запущено ли точное управление скоростью очень мелкими шагами или заблокировано (см. таблицу 52).
Таблица 52 — Описание FtneRateControl
Точное управление скорость» FineRat*Conlrol |
Идентификатор управления скорость* Ra lo ConlroHO |
Описание |
0 |
OFF |
То**юе управление скоростью отключено |
1 |
UN |
Точное управление ишриь.1ыи зеиутцепо |
Управление FineRate Control позволяет уменьшать битовую скорость относительно ее битовой скорости привязки. Когда параметры LPC передаются в каждом фрейме, будет получена битовая скорость привязки. Самая низкая возможная битовая скорость для каждой конфигурации может быть получена, передавая параметры LPC в 50 % фреймов.
SilenceCompression — однобитовый идентификатор, показывающий, используется ли Silence Compression или нет.
SilenceCompression |
StfenceCotnpressionlD |
Описание |
0 |
SCOFF |
SilenceCompression отклонено |
1 |
SC_ON |
SilenceCompression задействовано |
RPE_ Configuration — это 3-битовый идентификатор, который конфигурирует кодер MPEG-4 CELP. используя инструмент Regular-Pulse Excitation. Этот параметр непосредственно определяет набор разрешенных битовых скоростей (таблица 53) и число подфреймов во фрейме CELP (таблица 54).
21
ГОСТ Р 53556.3—2012
Таблица53 — Назначение скорости для кодера режима I на 16 кГц
ЯР£_ Configurator! |
Фиксированная бмтовая скорость Точная регулировка скорости выключена, бит/с |
Минимальная битовая скорость Точная регулировка скорости включена. S0% LPC. 6ят>с |
Максимальная битовая скорость Точная ретулнрояяа скорости вкяочена, 100% LPC. бит/с |
0 |
14400 |
13000 |
14533 |
1 |
16000 |
13900 |
16200 |
2 |
16667 |
17267 |
18800 |
3 |
22533 |
21133 |
22667 |
4…7 |
Зарезервировано |
МРЕ_СопЪдигэ1юп — это 5-битовое поле, которое конфигурирует кодер MPEG-4 CELP. используя инструмент Multi-Pulse Excitation. Этот параметр определяет переменные nrof_subframes и nrof_ subframes_bws. Этот параметр также определяет число битов для shape_positionsp). shape_signsfi]. shape_enhj>osit)onsfi][j] и shape_enh_signs[iXi].
nrof_subframes— вспомогательный параметр, определяющий число подфреймов во фрейме CELP. и использующийся, чтобы сообщить, сколько раз должны быть прочитаны параметры возбуждения. Для инструмента Regular-Pulse Excitation, работающего при частоте дискретизации 16 кГц. эта переменная зависит от RPE_Configuration следующим образом.
Таблица 54 — Определыые nrof_subframes для кодера режима 1 на 16 й*ц
ПРЕ_СопЛдигаЧоп |
Nrof_Sub(ram»s |
0 |
6 |
1 |
4 |
2 |
8 |
3 |
10 |
4… 7 |
Зарезервировано |
Для инструмента МиШ-Pulse Excitation это лолучают из МРЕ_Соппдигайоп в зависимости от частоты
дискретизации (см. таблицы 55.56).
Таблица 55 — Определение nm(_sublrames для кодера режима II на 8 кГц
МРЕ_ Сол figure Рол |
nrof_sub!cames |
0. 1.2 |
4 |
3.4.5 |
3 |
6… 12 |
2 |
13… 21 |
4 |
22… 26 |
2 |
27 |
4 |
28… 31 |
зарезервировано |
Таблица 56 — Определение nrof_subtrames для кодера режима И на 16 кГц
UPE_ ConEgoraboo |
ого f_sub frames |
0……6 |
4 |
8„ 15 |
8 |
16…22 |
2 |
24 … 31 |
4 |
7. 23 |
зарезервировано |
NumEnhLayers — это двухбитовое поле, определяющее число уровней расширения, которые используются (см. таблицу 57)-
22
ГОСТ Р 53556.3—>2012
Таблица 57 — Определи «о nrof_enh_tayers
NumSnbLayoes |
tifof_enh_>ay*rz |
0 |
0 |
1 |
1 |
2 |
2 |
3 |
3 |
BandwidthScalabtlityMode — это однобитовый идентификатор, который указывает, запущена ли масштабируемость полосы пропусхаиия. Этот режим имеет силу только, когда ExatationMode = МРЕ (см. таблицу 58).
Таблица 58 — Описание режима BandwidthScatatMyMode
Banif* кП/iSceiabeXyUode |
Scalable JO |
Описание |
0 |
OFF |
Масштабируемость полосы отключена |
1 |
ON |
Масштабируемость полосы задействована |
BWS_Configurat)on—это деухбитоеое поле, которое конфигурирует инструмент расширения полосы пропуска*ыя. Этот идентификатор имеет силу только, когда EiandwtdthScalab&tyMode — ON. Этот параметр определяет число битов для shapejbws_positions [i]. shape_bws_signs [i].
nrof_subframes_bws — этот параметр, который является вспомогательной переменной, показывает число под фреймов в инструменте расширения полосы пропускания, и его получают из МРЕ_ Configurator) (см. таблнщу 59).
Таблица 59 — Определениеnmf_subframes_bws
UPE_Contiqvralion |
nref_subframes_bws |
0.1.2.3 |
8 |
3. 4.5 |
в |
6… 12 |
4 |
13 -.21 |
4 |
22 …26 |
2 |
27 |
Не имеет сихы |
28. 31 |
Зарезервировано |
4.2 Семантика фрейма
interpolation_flag — это однобитовый флажок. Когда он установлен, параметры LPC для текущего фрейма должны быть получены, используя интерполяцию (см. таблицу 60).
Таблица 60 — Ошсание флажка interpotabon_fiag
/nterpotabon_fb$ |
InterpolationlO |
Описание |
0 |
OFF |
Коэффм^иенты LPC фрейма не должны интерполироваться |
1 |
ON |
Коэффициенты LPC фрейма должны быть найдены путем ютерполяфи |
LPC__Present— этот бит указывает, присоединены ли параметры LPC к текущему фрейму. Эти параметры LPC относятся или к текущему фрейму или следующему фрейму (см. таблицу 61).
23
ГОСТ Р 53556.3—2012
Таблица 61 — ОписаниеLPC_Presen(
LPC_Prescn< |
LPC/0 |
Опйсаиие |
0 |
NO |
Фрейм не содержит данные LPC |
1 |
YES |
Фрейм сод ержит данные LPC |
вместе interpolation^flag и флажок LPC_Present описывают, как параметры LPC должны быть полу* чены (см. таблицу 62).
Таблица 62 — Процесс декодирования LPC. описаний intefpotation_flag и флажком LPC_Present flag
т1вгрЫа1юп_Я*д |
LPC_Presont |
Описание |
1 |
1 |
Параметры LPC текущего фрейма должны быть извлечены. используя интерполяцию. Текущий фрейм несет параметры LPC. принадлежащие следующему фрейму |
1 |
0 |
ЗАРЕЗЕРВИРОВАНО |
0 |
1 |
Параметры LPC текущего фрейма присутствуют в текущем фрейме |
0 |
0 |
Параметры LPC предыдущего фрейма должны испогъ-эовэться в текущем фрейме |
(jpc_«xflces [) — это мультибитовые поля, представляющие коэффициенты LPC. Они содержат информацию необходимую, чтобы извлечь коэффициенты LSP. Точная процедура извлечения описана в процессе декодирования.
shape_de!ay (subframe]—это битовое поле представляет адаптивную задержку книги шифров. Декодирование этого поля зависит от ExcrtatioriMcde и SampteRateMode (см. таблицу 63).
Таблица 63 — Число битое для shapejMayf/
Exc/tabofiModt |
SampMRaleUode |
s/>ape_defey (] (биты) |
яре |
16 кГц |
В |
МРЕ |
8 кГц |
8 |
МРЕ |
16 кГц |
9 |
shape Jndex (subframe]—этот индекс содержит информацию, необходимую чтобы извлечь фиксированное вложение книги шифров из книги шифров регулярного импульса. Число битое, занимаемых этим полем, зависит от битовой скорости (полученной из RPE_configurabon) (см. таблицу 64).
Таблица 64 — Число битов для shape_index {]
RPE_ Configurator! |
Число биюа, вреде (автошин sAape_«ntfe* {) |
0 |
11 |
1 |
11 |
2 |
12 |
3 |
12 |
4 …7 |
Зарезервировано |
gainjndices (0] (subframe] — эти битовые поля определяют адаптивное усиление книги шифров в инструменте RPE. используя 6 битое. Это читается из потока бит для каждого лсщфрейма.
24
ГОСТ Р 53556.3—>2012
gainjndices [1] [subframe] — эти битовые поля определяют фиксированное усиление книги шифров в инструменте RPE. Это читается иэ потока бит для каждого подфрейма. Число читаемых битое для пред* стаеления этой области зависит от номера подфрейма. Для первого подфрейма это 5 битое, в то время как для остальных под фреймов это 3 бита.
gatn_mdex [subframe]—это 6 или 7-битовое поле представляет усиления для адаптивной книги шифров и мультиимпульсного возбуждения для частоты дискретизации 8 кГц или 16 кГц соответственно.
gain_enh_index [subframe] — это 4-битоеое поле представляет усиление для мультиимпульсного возбуждения расширения в кодере CELPна 8 кГц.
gain_bws_tndex [subframe]—это 11 -битовое поле представляет усиления для адаптивной книги шифров и двух возбуждений мульти импульса в инструменте расширения полосы пропускания.
signal_mode — это 2-битовое поле представляет тип сигнала. Эта ««формация используется в инструменте МРЕ. Книги шифров усиления переключаются в зависимости от этой информации (см. таблицу 65).
Таблица 65 — Огысаниеsignai_mode
в<длЫ_ою4е |
Описание |
0 |
Неголосоеой |
1.2.3 |
Голосовой |
rmc_index — этот параметр указывает средиеквадратический уровень фрейма. Эта информация используется только е инструменте МРЕ.
shape_positions [subframe]. shape_signs [subframe] — эти битовые поля представляют позиции импульсов и знаки импульсов для мультиимпульсного возбуждения. Длина битового поля зависит от МРЕ_Configurators (см. таблицы 66.67).
Таблица 66 — Определения sbape_posftfons{] и sbspe_5jgns[] для дискретизированной на 8 кГц речи
UPE_ ConGgvrabon |
shape_роз*олс[) (битов) |
shape_s>gas[) (битов) |
0 |
14 |
3 |
1 |
17 |
4 |
2 |
20 |
5 |
3 |
20 |
5 |
4 |
22 |
6 |
5 |
24 |
7 |
б |
22 |
6 |
7 |
24 |
7 |
8 |
26 |
8 |
9 |
28 |
9 |
10 |
30 |
10 |
11 |
31 |
11 |
12 |
32 |
12 |
13 |
13 |
4 |
14 |
15 |
5 |
15 |
16 |
6 |
16 |
17 |
7 |
17 |
18 |
8 |
18 |
19 |
9 |
25
ГОСТ Р 53556.3—2012
Окончание таблицы 66
UPE_ СопбдигаИоп |
sXape_pos*ons|) (битое) |
sA9pe_s>pns{) (битое) |
19 |
20 |
10 |
20 |
20 |
11 |
21 |
20 |
12 |
22 |
18 |
8 |
23 |
19 |
9 |
24 |
20 |
10 |
25 |
20 |
11 |
26 |
20 |
12 |
27 |
19 |
6 |
28… 31 |
Зарезервировано |
Таблица 67 — Определения shape_pos$ons{] и shape_sjg/is(] для диофетизироваином на 16 кГц речи
i/P£_Coo6gu/alroo |
*ларе_po»Aon*|J (битое) |
$йаре_«9стс|) (битое) |
0. 16 |
20 |
5 |
1. 17 |
22 |
6 |
2. 18 |
24 |
7 |
3. 19 |
26 |
8 |
4.20 |
28 |
9 |
5. 21 |
30 |
10 |
6.22 |
31 |
11 |
7.23 |
Зарезервировано |
Зарезервировано |
8.24 |
11 |
3 |
9.25 |
13 |
4 |
10. 26 |
15 |
5 |
11. 27 |
16 |
6 |
1Z 28 |
17 |
7 |
13. 29 |
18 |
8 |
14. 30 |
19 |
9 |
15. 31 |
20 |
10 |
shape_enh_posibons[subframe}i], sftape_en/>_s»gns[si/fcframe)[] — эти битовые поля представляют по* зиции импульсов, и знаки импульсов для мультиимлульсного возбуждения в каждом уровне расширения. Длина битового поля зависит от MPE_Con6guration (ом. таблицы 68.69).
26
ГОСТ Р 53556.3—>2012
Таблица 68 — Определение shape_enh_posifiOTsl)[j и s/iape_enn_s>gns[](] для дискретизированной на 8 кГц речи
UPE_ СопбдыаЬоп |
shape_enfr_pos<«os|)() (бито*) |
*Лвре_елЛ_»9Л5[)(] (битов) |
0… 12 |
12 |
4 |
13…26 |
4 |
2 |
27 |
не имеет силы |
|
28… 31 |
зарезервировав |
|
Таблица 69 — Определение shapejsnh_posrtiws()[] и 5/>ape_en/>_signs[](] для дискретизированной на 16 кГц ре*м |
||
ЫРЕ_СопЛдигаЬоп |
sftape_en№_рокИлэл*(){] (битов) |
вЬвре_елА_варпв|)|] (битов) |
0 … 6. 16 _. 22 |
12 |
4 |
8… 15.24… 31 |
4 |
2 |
7.23 |
зарезервировано |
|
shape_bws_delay[subframe] — |
— это 3-битовое поле используется в декодировании адаптивной книги |
шифров для инструмента расширения полосы пропускания. Это значение указывает задержку, отличающуюся от задержки, описанной в shape_delay [].
shape_bws_posi1ions[stjbframe], shape_bws_signs (subframe] — эти поля представляют позиции импульсов и знаки импульсов для мультиимпульс кого возбуждения е инструменте расширения полосы пропускания. Длина битового поля зависит от BWSjConUgurstion (см. таблицу 70).
Таблица 70 — Определение shape_bws_pos№ons Q и sbape_bws_signs Q
BWS_ConfigofeUon |
sftape_6w’s_po«<wosn (битов) |
5А»РО_ЬМГ9_ВфЛ1{} (6ИТОВ) |
0 |
22 |
6 |
1 |
26 |
8 |
2 |
30 |
10 |
3 |
32 |
12 |
TX_ttag —двух битовая область, указывающая режим передачи (см. таблицу 71).
Таблица 7t — Определение ТХ_Яэд
ТХ.Пад |
Режим передачи |
0 |
Нвактившй фрейм Энергия фрейма игм юдоксы LPC не передаются |
1 |
Активный фрейм |
2 |
Неактившй фрейм Энергия фрейма или индексы LPC передаются |
3 |
Неактивный фрейм. Передается толью энергия фрейма, индексы LPC »« передаются |
SID_rmc_index—6-битоеое поле, указывающее энергию фрейма.
SID^fpcJndices — это мультибитовые поля, представляющие коэффициенты LPC для неактивных фреймов LPC (TXJiag — 2). Они содержат информацию, необходимую для извлечения коэффициентов LSP. Семантики потока бит для SID_lpc_rndicss показаны в таблице 72.
27
ГОСТ Р 53556.3—2012
Таблица 72 — Семантмси потока бит для StD_tpc_indices
Режим юдироеамие |
Частота дискретизации кГц |
Масштабируемое?» попоем |
Параметр |
Огмсание |
i |
16 |
Off |
SID_lpc_tnd*ces[0] |
0-4m LSPs of the 1st stage VQ |
SJD_lpc_tndices[1j |
5-9” LSPs of the 1st stage VQ |
|||
SiDJpc_indices[2] |
10-14* LSPs of the 1st stage VO |
|||
SJD_tpc_indices{3] |
15-19* LSPs of the 1st stage VQ |
|||
SJD_lpc_»ndices[4] |
0-4A LSPs of the 2nd stage VQ |
|||
SJD_lpc_tfxbces{5] |
5.9* LSPs of the 2nd stage VQ |
|||
я |
8 |
On. Off |
SiD_lpc_indiCGs{0] |
0-4* LSPs of the 1st stage VQ |
SID_lpc_Vxbces[1] |
5-9* LSPs of the 1st stage VQ |
|||
SJD_lpc_»ncbces[2J |
0-4* LSPs of the 2nd stage VQ |
|||
16 |
On |
SJD_lpc_mdices{3] |
0-9m LSPs of 1st stage VQ |
|
SJD_ lpc_tndices{4] |
10-19* LSPs of 1st stage VO |
|||
SJD_lpc_»ndices[5] |
0-4* LSPs of 2nd stage VQ |
|||
SJD_<pc_tfxbces{6] |
5.9* LSPs of 2nd stage VQ |
|||
Off |
SiD_lpc_vxiices[0] |
0-4* LSPs of 1st stage VQ |
||
SlD_tpc_indices( 1] |
5-9* LSPs of 1st stage VQ |
|||
SID_tpc_indices(2j |
10-14* LSPs of 1st stage VO |
|||
SiD_lpc_mdtces[3] |
15-19* LSPs of 1st stage VO |
|||
SiD_lpc_tndtces[4] |
0-t* LSPs of 2nd stage VQ |
|||
SID_lpc_»ndices^5] |
5-9* LSPs of 2nd stage VQ |
5 Инструменты декодера MPEG-4 CELP
Здесь дается краткое описание функциональных возможностей, определение параметре и процессов декодирования инструментов, поддержанных ядром MPEG-4 CELP. Описание каждого инструмента включает три части и дополнительную часть, содержащую таблицы, используемые инструментом:
10гмсание ьмструмента: короткое описание фумсционатымх возможностей инструмента дается вместе с его интерфейсом.
2 Определения: здесь описаны параметры ввода и вывода, так же как элементы справки инструмента. Каждый элемент дается полужирным шрифтом или курсивным. Полужирные названия указывают, что элемент читается из потока битое, курсивные названия указывают вспомогательные элементы. Если эле-менты уже используются другим инструментом, дается ссылка на предыдущее определение.
3 Процесс декодирования: процесс декодирования объяснен здесь подробно при помощи математических уравнений и кода pseudо-С.
4 Таблицы: эта дополнительная четвертая часть содержит таблицы, которые используются инструментом.
5.1 введение в набор инструментов декодера CELP MPEG-4
Декодер MPEG—4 CELP работает при частоте дискретизации 8 или 16 кГц. Один или несколько индивидуальных блоков сгруппированы, формируя инструменты, доступные для декодирования MPEG-4 CELP. Поддерживаются следующие инструменты:
Демультиплексор потока бит CELP
Декодер CELP LPC и интерполятор
Узкополосиьы инструмент декодирования LSP-VQ
Широкополосный и нструмент декодирования LSP- VQ
Инструмент декодирования LSP-VQ с ыасшабируемой полосой пропускания
Генератор воэбужде»мя CELP
28
ГОСТ Р 53556.3—2012
Инструмент генерации возбуждения регулярным импульсом Инструмент генерации мультиимпульсного возбуждения
Инструмент генерации мультиимпульсного возбуждения масштабируемой битовой скорости Инструмент генерации мультиимпульсного возбуждения масштабируемой полосы пропускания Фильтр синтеза CELP LPC Постпроцессор CELP (информативный инструмент)
Декодирование выполняется на основе фрейма, и каждый фрейм разделен на подфреймы. Фрейм в потоке бит демультиплексируется модулем демультиплексора потока бит CELP. Параметры, которые извлечены из потока бит. являются информацией заголовка, кедами, представляющими коэффициенты LPC фрейма и параметрами возбуждения для каждого подфрейма. Эти кеды декодируются и интерполируются для каждого подфрейма модулем декодера и интерполятора CELPLPC. Для каждого подфрейма используются параметры возбуждения, чтобы генерировать сигнал возбуждения, используя модуль генератора возбуждения CELP Модуль фильтра синтеза CELP LPC восстанавливает речевой сигнал на основании подфрейма, исходя из интерполированных коэффициентов LPC и сгенерированного сигнала возбуждения. Расширение синтезируемого сигнала получено дополнительным модулем постпроцессора CELP.
Чтобы реализовать масштабируемость битовой скорости, для генерации сигнала возбуждения используется инструмент генерации мультиимпульсного возбуждения масштабируемой битовой скорости (МРЕ). Инструмент генерации МРЕ масштабируемой битовой скорости реализуется путем добавления инструмента декодирования возбуждения расширения к инструменту генерации МРЕ, чтобы повысить качество сигнала возбуждения.
Декодер CELP масштабируемой полосы пропускания реализуется с использованием как инструмента LSP-VQ масштабируемой полосы пропускания, таки инструмента генерации МРЕ масштабируемой битовой скорости. Эти инструменты масштабирования используются, чтобы расширить полосу пропускания декодированного сигнала от 3.4 кГц до 7 кГц.
5.2 Конфигурация масштабируемого AAC/CELP
Когда декодер узкополосного CELP используется как ‘основном кодер’ в масштабируемой конфигурации AAC/CELP(cu. часть T1F) для масштабируемости большого шага, постфильтр выключен. В случае, если декодер узкополосного CELP работает как основной декодер в масштабируемой конфигурации, этот декодер может декодировать объект аудио CELP при частоте дискретизации, отличающейся от 8 кГц. Частота дискретизащы объекта аудио СВР определяется samptngFrequencylndex в AudtoSpeafidrrfo (см. подраздел 1). Флажок SampleRateMode в заголовке CELP. управляющий работой декодера, должен указывать 8 кГц. В случае, если samplingFrequencylndex указывает, что частота дискретизации отличается от 8000 Гц. битовая скорость, длина фрейма и задержка изменяются соответственно.
5.3 Переменные помощи
Хотя каждый инструмент имеет описание переменных, которые он использует, в этом подпункте приводятся обычно используемые многими инструментами переменные.
frame_size: Это поле указывает число отсчетов во фрейме. Декодер выводит фрейм с frame_sae отсчетов
nrof^subframes: Фрейм состоит из ряда подфреймов. Число подфреймов определено в этом поле. sbfrmsize: Подфрейм состоит из ряда отсчетов, количество которых обозначено этим полем. Число отсчетов во фрейме всегда должно быть равным сумме количеств отсчетов в подфреймах. Соответственно всегда должно соблюдаться следующее соотношение frame_size = nrof_subframes * sbfrm_sae.
Эти три параметра зависят от настройки параметров режима кодирования и битовой схорости. как указано в таблице 73 для режима I. таблице 74 и таблице 75 для режима II.
Таблица 73 — Конфигурация кодера CELP (режим I) для частоты дискретизации 16 кГц
RP£_ Configurator |
Fram*_sita ffsampfes) |
nrof^sobfram e* |
sbtriB_sizo (Maamphs) |
0 |
240 |
6 |
40 |
1 |
160 |
4 |
40 |
2 |
240 |
8 |
30 |
3 |
240 |
10 |
24 |
4 …7 |
Зарезервировано |
29
ГОСТ Р 53556.3—2012
Таблица 74 — Конфигурация кодера CELP (режим II) для частоты дискретизации 8 кГц
ЫРЕ_СолНдигаЬоп |
Fiame_sue (tsseiptos) |
nrot_sub frames |
sbfrm_size (Msamples) |
0.1.2 |
320 |
4 |
80 |
3,4.5 |
240 |
3 |
80 |
6… 12 |
160 |
2 |
80 |
13…21 |
160 |
4 |
40 |
22… 26 |
80 |
2 |
40 |
27 |
240 |
4 |
60 |
28 …31 |
Зарезервировано |
Таблица 75 — Конфигурация кодера CELP (режим И) для частоты диофетиээцм* 16 кГц
МРЕ^Сол figuration |
Ftama_stza (tsseiptos) |
nrot_sub frames |
sbfrm_size (Usamphs) |
0…..6 |
320 |
4 |
80 |
8…..15 |
320 |
8 |
40 |
16…..22 |
160 |
2 |
80 |
24…..31 |
160 |
4 |
40 |
7. 23 |
Зарезервировано |
tpc_order: Это поле указывает число коэффициентов, используемых для линейного предсказания. Значение этого поля равно 20 для частоты дискретизации 16 кГц и 10 для 8 кГц.
num_lpc_ind>ces. Этот параметр определяет число индексов, содержащих информацию LPC. которая должна читаться из потока бит. Оно не равно порядку LPC. num_lpcjndices равно 5 в режиме в кГц и дополнительно 6 для инструмента расширения полосы пропускания. Для частоты дискретизации 16 кГц в векторном квантователе это значение равно 10.
5.4 Элементы потока бит для набора инструментов MPEG-4 CELP
Описания всех переменных потока бит пере* (ислены е разделе 4.
5.5 Демультиплексор потока бит CELP
5.5.1 Описание инструмента
Инструмент демультиплексора потока бит CELP извлекает фрейм CELP из полученного потока бит.
5.5.2 Определения
Все элементы потока бит и связанные переменные справки были определены в разделе 4,
5.5.3 Процесс декодирования
Декодирование элементов потока бит производится в соответствии с синтаксисом, опописанньгм в разделе 3.
5.6 Декодер CELPLPC и интерполятор
У декодера CELP LPC и интерполятора есть две функции:
1 Восстанавливать коэффициенты LPC из fpcJrxHces Q.
2 Интерполировать восстановленные коэффициенты LPC для каждого подфрейма.
В зависимости от режима квантования (pcjncScesJ] содержат информацию, необходимую чтобы восстановить коэффициенты LSP. Есть три типа процессов декодирования, а именно, процесс декодирования узкополосного LSP. процесс декодирования широкополосного LSP. и процесс декодирования LSP с масштабируемой полосой пропускания. Выходы этого процесса являются коэффициентами фильтра, названные коэффициентами LPC или параметрами, которые могут использоваться в фильтре прямой формы (см. таблицу 76).
30
ГОСТ Р 53556.3—2012
Таблица 76 — Инструменты декодирования LPC
Режим коаиромиия |
Частота Аиаретиэаиии |
Инструмент |
Mode t |
16 кГц |
Wideband LSP-VQ |
ModeII |
8 кГц 16 кГц ал 6 кГц (BWS) |
Narrowband LSP-VQ Wideband LSP-VQ Bandwidth Scatabie (BIVS) LSP-VQ |
5.6.1 Инструмент декодирования узкополосного LSP-VQ
5.6.1.1 Описание инструмента
Инструмент декодирования узкополосного LSP имеет двухступенчатую структуру VQ. Квантованные LSPs воспроизводятся добавлением декодированных в первой и во второй стадиях LSPs. во второй ста* дни есть два процесса декодирования, с или без межфреймового предсказания, процесс декодирования выбирается согласно флажку ipcjndices. Затем декодированные LSPs интерполируются и преобразуются в коэффициенты LPC.
5.6.1.2 Определения
Вход
ipc_rtdices [): Размерность этого массива num_ipcjndtces содержит упакованные индексы 1рс.
Выход
int_ Qipc_coefficients^. Этот массив содержит коэффициенты LPC для каждого подфрейма. Коэффициенты LPC декодированы и интерполированы, как описано в процессе декодирования. Коэффициенты LPC расположены в стеке один за другим в блоках tpc_order. Таким образом размерность массива равна order* nrof_subframes.
Конфигурация
ipc_order. Это поле указывает порядок используемого LPC.
num_lpc_mdices: Это поле содержит ряд упакованных кодов LPC. Для узкополосного LSP. numjpcjndices процесса декодирования установлен 5.
nrof^subframes: Это поле содержит ряд подфреймов.
Элементы справки, используемые е процессе декодирования узкополосного LSP. tsp_tbt[][][] таблицы поиска для первой стадии процесса декодирования
dJblllUli таблицы помеха для второй стадии процесса декодирования VQ без меж
фреймового предсказания
pfi_thl[)[)f] тябпм гы плитка для птлрли стадии npm утля дмеодирлйамия I/O с межфрей
dimnn
sign
ktx
fsp_first{]. ispj>revious[] isp_predictl} tsp_currentf] isp_$ubframe{][) ratio_predct ratk>_sub min_gap Convert2lpc ()
мовым предсказанием
размерности для квантования расщепленного вектора знак вектора кода для второй стадии процесса декодирования распакованный индекс для второй стадии процесса декодирования LSPs. декодированные на первой стадии процесса декодирования LSPs. декодированные в предыдущем фрейме LSPs. предсказанные из Isp jxeviousf)и lsp_firstf}
LSPs. декодированные в текущем фрейме LSPs. интерполированные е каждом подфрейме коэффициент для предсказания isp jxedictf] коэффициент интерполяции для вычисления tsp_subframe()(/ минимальное расстояние между соседними LSPs функция для преобразования LSPs в LPCs
5.6.1.3 Процесс декодирования
Процесс декодировала LSP для восстаноележя коэффициентов интерполированного LPC для каждого подфрейма описан ниже.
5.6.1.3.1 Преобразование индексов в LSPs
LSPs текущего фрейма [lsp_current[J). которые кодируются разбиением и двухступенчатым векторным квантованием, декодируются двухступенчатым процессом декодирования. Размерность каждого вектора описана е таблице 77 и таблице 78. /pc_/nd/ces{0].[1] и 4pcjndfces[2],{3] представляют индексы для первой и второй стадии, соответственно.
31
ГОСТ Р 53556.3—2012
Таблица 77 — Размерность вектора первой стадии LSP
Индекс еевтора разбнеиия: i |
Рааиермость вектора’ <Ып{0|И |
0 |
5 |
1 |
5 |
Таблица 78 — Размерность вектора второй стад»* LSP
Индесс вектор* разбиения. t |
Размерность вектора; <*»ПМ |
0 |
5 |
1 |
5 |
8 первой стадии вектор LSP первой стад»* Jsp_frsg/ декодируется путем просмотра таблицы forfi = 0: i < &т[0][0]: i++)
{
lsp_first{i] = lsp_tbf0]ppcjndices{0ffli]:
}
forfi г 0; i < <Hmf0][1J: i**)
{
lsp_first(<Sm{0}(0)*i] — lsp_ tbi[1 )[lpc_indices[ 1
}
Во второй стадии есть два типа процессов декодирования, а именно, процесс декодирования УОбез межфреймового предсказания и VQ—с иежфреймовым предсказанием. Ipc_tndtces[4] указывает, какой процесс должен быть выбран (см. таблицу 79).
Таблица 79 — Процесс декодирован* для второй стадии
Индекс LPC. &c_indic*% |4) |
Проиесс декодирования |
0 |
VQ без межфреймового предсказания |
1 |
VQ с межфреймовым предсказанием |
Процесс декодирования VQ без межфреймового предсказания
Чтобы получить LSPs текущего фрейма lsp_currerit[), декодированные векторы во второй стад»* добавляются к декодированному вектору LSP первой стадии tsp_first[). МСВ для (pc_/ncSces{j представляет знак декодированного вектора, а остающиеся биты представляют индекс для таблицы djbl[)(]f]. sign = lpcjndtces[2] » 6; idx — lpcjndk»s{21 & 0x3f: if (s»gn==0)
{
for (i = 0: i < dim(1]{0J; i*+)
{
lsp_current[i] = lsp_f/rst[i] ♦ d_tbi[0}[idx]{i):
}
}
else
{
for (i — 0; / < dim[1]{0]: i**)
(
Isp currentfi] — isp_ftrst[i) — dJblfOtfkfxJfi):
}
}
sign = lpc_indices[3} » 5: idx — tpcjndices[3] & 0x1 f: if (sign—0)
{
for{i = 0: i < dim[1][l}: i**)
{
Isp_curr»nt[dim{1tf0]+i] — tsp_firstfdim[ 1 }[0}*i] *
d tbl{l)pdx№]:
}
32
ГОСТ Р 53556.3—>2012
;
else
(
for(i — 0; i < dim[1g1J: i*+)
(
Isp_current(dimf1g0]*i} — tsp_firstfdtm[1 ][0)*i] -d_tbl[1)fKtxffi )
}
Процесс декодирования VQ с ыежфреймоеым предсказание**
Чтобы получить LSPs текущего фрейма Ispjcurrentf). декодированные векторы второй стадии добавляются к вектору LSP • — Isp jtredictU- которые предсказаны из декодированных LSPs предыдущего фрейма Isp_prevk>us[} и декодированного вектора LSP первой стадии lsp_fkst{}. Таким же образом как процесс декодирования УО без межфреймоеого предсказания. LSP для lpc_mdices[] представляет знак декодированного вектора, а остающиеся биты представляют индекс для таблицы pdjbtflltf]. for (i — 0: i < Ipc order, i**)
(
Isp__predict(i}-(1-rauo_predict) ‘lsp_first[i]
* ratio_predict’lsp_pr
eviousfi/
}
где ratio_predict = 0.5
sign = lpc_indtces[2) » 6: idx — lpcjnd*ces[2] & 0x3f; if (sign—0)
(
for (i- 0: i < dim(1Jf0J: >**)
{
tsp_current[i] = isp_predictfi] ♦
pdjbmpdxM:
)
}
else
{
for (i = 0: i < dimfigOj: i**)
(
lsp_current[i] = Ispjxedtd -pd_W01Pdx№;
}
}
sign = lpc_indtces[3] » 5: idx — tpcjndtces[3} & 0x1 f; if(sign-=0)
i
fotfi — 0: i < dim[1Jfi]: i**)
{
Isp_current[dim[1ff0)*i} — Isp_predict[dim[1g0]+i} * pdjbl[1)fidx}[ij:
}
}
else
(
for (i = 0; i < dim[1g1]: i**)
(
33
ГОСТ Р 53556.3—2012
lsp_current[dim(1ff0]*i] — Isp_predtct{dim[1tf0]+i] -рб_Ы[1)ГкЬт;
}
)
5.6.1.3.2 Стабилизация LSPs
Декодированные LSPs lsp_current(] стабилизируются, чтобы гарантировать стабильность фильтра синтеза LPC, который получен из декодированных LSPs. Декодированные LSPs упорядочиваются в порядке возрастания, имея расстояние между соседними коэффициентами, по крайней мере, min_рар. forfi — 0; I < Ipcjyrder, i**)
{
if Osp_current[i] < min_gap)
(
Isp^currentfi] = minjjap:
}
}
for 0 s 0: i < lpc_order-1: i*+)
{
if (lsp_cumnt[i+1f-isp_current[i] < min_gap)
(
lsp_current(i+1} — lsp_currentfi]*min_gap:
}
}
for (i -0:i< lpc_order. /*■*■)
{
if (Isp current^] > 1-min_gap)
{
isp currentfi) — 1-min_gap:
}
}
for (i = lpc__order-1; i > 0: /- ■)
{
if (Isp currentfi]-lsp_currentfi-1] * min_gap)
{
Isp сиггепф-1]=lsp_current[i}-min_gap:
t
}
где min_gap — 2,0/256,0
5.6.1.3.3 Интерполяция LSPs
Декодированные LSPs lsp_current[} линейно интерполируются в каждом под фрейме, используя LSPs предыдущего фрейма Isp_previousfl. for(n-0;n<nrof subframes: п**)
{
га6о_ sub={n+1 ynrof_subframes forfi — 0: i < Ipcjordar: i**)
(
lsp_subframe[n]{i}=((1-
ratk>_sub)*ispjxevtous{i]-*rat>o_sub’tsp_currefitfi])):
}
}
5.6.1.3.4 Преобразование LSP в LPC
Интерполированные LSPs преобразуются в LPCs. используя вспомогательную фумсцию Conveft2tpcQ. for(n = 0;n< nrof subframes: n++)
{
Convert2lpc (lpc__order. Isp_subframe{n). int_Qlpc coefficients * nVpcjorder)):
}
34
ГОСТ Р 53556.3—>2012
Преобразование LSP в LPC описано ниже. Входные LSPs должны быть нормализованы в диапазоне от нуля до я.
tmpJpclOJ -1.0;
for0-1:i< lpc_order * 1; i**) tmpjpcf] = 0.0: for 0-0: i< (tpc_order*1)’2: wp} — 0.0:
for (j — 0; j < tjpc_order * 1; j**)
i
xk>1 — tmp_lpc[j}; xin2 — tmpjpcljy. tor (if = 0: i < (lpc_order »1): i*+)
{
n1 -Г4: n2 = n1*1: n3 = n2*1; n4-n3*1:
xoutl = -2. * cos(lsp_coeffic>entsp*2+0]) * wfn1J ♦ w[n2]
*xin1;
xoul2 = -2. * cos(lsp_coeffiaents[>’2+1]) * wfn3/ ♦ w(n4] *
xkiZ
wfn2] — w{n1]: wfn1]-xin1: wfn4} = wfn3J: wfn3} — xin2; xin1 -xoutl; xin2 — xoutZ }
xoutl — xin1 * wfr>4*1]: xout2 = xin2- w[rt4*2]; tmpJpcSJ — 0.5 * (xoutl * xout2): wfn4*1}-xin1; wfn4*2) — xin2:
}
for(i- 0: i < Ipc order. i*+)
(
ipc_coerttaentsii] — tmpjpc(i+ij:
}
5.6.1.3.5 Сохранение коэффициентов
После вычисления коэффициентов LPC. текущие LSPs должны быть сохранены в памяти, так как они используются для интерполяции в следующем фрейме. for (i = 0; i < fpcjorder. i*+)
{
tsp_previousfi] — tsp_current(i]:
}
Сохраненные tsp_prevk>us(] LSPs должны быть инициализированы как описано ниже, когда инициализируется весь декодер.
for0-0:f< tpcjorder. i**)
(
fsp__prev)Ous{i] — (i*1)/(fpc_order+1);
}
5.6.2 Инструмент декодирования широкополосного LSP-VQ
5.6.2.1 Описание инструмента
Процесс декодирования широкополосного LSP основан на процессе декодирования узкополосного LSP. Процесс декодирования широкополосного LSP состоит из двух блоков декодирования LSP. соединенных параллельно. Каждый из блоков декодирования идентичен процессу декодирования узкополосного LSP и декодирует нижнюю и верхнюю части LSPs соответственно. Декодированные LSPs объединяются и выводятся как один набор параметров.
35
ГОСТ Р 53556.3—2012
S.S.22 Определения Вход
4>c_tfxftcesn; Размерность этого массива — nvm_tpcjndtces. он содержит упакованные индексы 1рс. Выход
tnt_ Qipc_co6fficients{f. Этот массив содержит коэффициенты LPC для каждого подфрейма. Коэффициенты LPC декодированы и интерполированы, как описано в процессе декодирования. Коэффициенты LPC расположены в стеке один за другим в блоках tpc_order. Таким образом, размерность массива равна ipcjorder* nrof_subframes.
Конфигурация
tpc_order Это поле указывает порядок используемого LPC.
num_lpcjndices: Это поле содержит число кодов упакованного LPC. Для процесса декодирования широкополосного LSPrwm_lpcJndKes устанавливается 10.
nrof_subframes\ Это поле содержит число подфреймое.
Элементы справки, используемые в процессе декодирования широкополосного LSP: lsp_tbtfUHJ таблицы поиска для первой стадии процесса декодирования
djbtonn таблицы поиска для второй стадии процесса декодирования VQ без межфреймо
вого предсказания
pd_tbi[][)l} таблицы поиска для второй стадии процесса декодирования VQ с межфреймо-
вым предсказанием
dimiHi
sjgл к/х
lsp_firstf] isp_previous[]
Isp_predict[J
lsp_current[]
lsp_ajrrent_lowerf)
lsp_cuirenl_upperfj
lsp_subframe{][]
ratiojxbdict
ratio_sub
min_pap
Convert2lpc0
размерности для квактоважя расщепленного вектора знак кодового вектора для второй стадии процесса декодирования распакованный индекс для второй стадии процесса декодирования LSPs. декодированные на первой стадии процесса декодирования LSPs. декодированные в предыдущем фрейме LSPs. предсказанные из Isp_prevk>usf) и lsp_first{}
LSPs. декодированные в текущем фрейме нижняя часть текущих LSPs верхняя часть текущих LSPs LSPs. интерполированные в каждом подфрейме коэффициент для предсказания Isp_pradictO коэффициент интерполяции для вычисления lsp_subframe[]{] минимальное расстояние между смежными LSPs функция для преобразования LSPs в LPCs
5.6.2.3 Процесс декодирования
Процесс декодирования LSP для поиска интерполированных коэффициентов LPC для каждого подфрейма опием ниже.
5.6.2.3.1 Преобразование индексов в LSPs
Используя тот же способ, что и в процессе декодирования узкополосного LSP. декодируются двухступенчатым процессом декодирования LSPs текущего фрейма (lsp_current(J). которые закодированы разбиением и двухступенчатым векторным квантованием.
Сначала декодируется нижняя часть текущих LSPs lsp_current_fower\ ]. Размерность каждого вектора описана в таблице 80 и таблице M.lpcjndicss [0]. [1] и ipc_/ndces{2}.[3] представляют индексы для первой и второй стадии, соответственно.
Таблица 80 — Размерность вектора LSP первой стадии
Индекс вектора разбиения i |
Размерность вектора. |
0 |
5 |
1 |
5 |
Таблица 81 — Размерность вектора LSP второй стаем*
Имдеес вектора разбиение. t |
Размерность вектора. *»ПИ |
0 |
5 |
1 |
5 |
В первой стадии вектор LSP первой стадж lsp_firstf] декодируется путем просмотра таблицы Isp^tbflffl. for 0 -0:i< drn[0][0}. h*)
{
tsp_firstfi] — lspJbfOJ{Jpc_indices(0fl{t];
36
ГОСТ Р 53556.3—>2012
;
for 0 — 0: i < <Sm{0)[1): i**)
{
l$p_firstfd*n[0][0]*i] = lsp_tbi{1}ppc_indices{ 1ff[i};
}
Во второй стадии lpc_tndices И] указывает, какой процесс должен быть выбран (см. таблмду 82).
Таблица82 — Процесс декодирования для второй стад>м
Икоекс LPC (4) |
Прочесе декодирования |
0 |
VO без межфреймоеого предсказания |
1 |
VQ с межфреймовым предсказанием |
Процесс декодирования VQ без межфреймоеого предсказания
Чтобы полу-мтъ LSPs текущего фрейма lsp_current__towerf), декодированные векторы второй стадии добавляются к декодированному вектору LSP. Isp_tkst_k>weffl. МСв lpc_indices{] представляет знак декодированного вектора, а остальные биты представляют индекс для таблицы d_tbt[}[}(}-sign — Ipc_indic6s[2] » 6; idx — tpc_indtces[2] & 0x3f; if (sign == 0)
{
for 0 * 0: i < dim[1]{0}: i* *)
{
lsp_cumni_k>werfi] — lsp_Hrst{i} * d_tbl[0]pdx}pj:
}
)
else
(
for (i = 0: i < dim[1](0}; i**)
{
lsp_currentJoweffi] — tsp_firstfi} — djbl[0}pdx}[i];
}
)
sign — lpcjndtces[3} » 6: idx — lpcjndtces(3] & 0x3f: if (sign —— 0)
(
for (i = 0: i < dim[1]f1J; i**)
{
tsp_curren!_lowerfdim[ 1 ]{0]+i] — tsp_first(dim{ 1][0}*i] * d_tbi(1}pdx}p]:
}
}
else
{
for (i я 0: i < dim(1J(1j; >**)
{
Isp_curreni_k>werfdim[1]f0}+i] — lsp_first[dim[1)(0}+i] -d_tbl(1]pdx№
}
)
Процесс декодирования VQ с межфреймовым предсказанием
Чтобы получить LSPs текущего фрейма lsp_current_lower[], к вектору LSPtep_pred*cf[) добавляются декодированные векторы второй стадии, которые предсказаны из декодированных LSPs предыдущего
37
ГОСТ Р 53556.3—2012
фрейма tep_p/ievx>os{] и декодированного вектора LSP первой стадии fep_/5rsff]. Таким же образом как в процессе декодирования VO без межфреймового предсказания. МС8 lpcjndices[] представляет знак декодированного вектора, а остающиеся биты представляют индекс для таблицы р4_М(К)П-for 0 = 0; i < fpc_order/2: i**)
{
tsp_pre<tictp)-(1-ratio_predict)*lsp_firstfi} * ratio_j>redict’tsp_prev*xjs[i}:
}
где ratio_pradict — 0.5
sign = lpc_indices[2] » 6; tdx — tpc_indk»s[2} & 0x3f: if (sign — 0)
{
for (i = 0: i < dim[1]{0J: i*+)
(
IspjcurrantJowar^,/ = Isp_predictp] ♦ pd_tbffO)[idx}(t}.
}
}
else
{
for (i — 0; / < dim[1]{0]: i**)
{
lsp__current_lower[i] = Isp_predict{i] ~ pdjbi{0)[idx][i}:
}
}
sign = Ipcjrx6ces[3j » 6: idx = tpcjndtcesp} & 0x3f: if (sign == 0)
{
for(i- 0: i < dim(1J[1li*+)
(
lsp_currentJowerfdim[1 ](0]*i)=lsp_predict[dim[1][0]+i]+pd_ tutfijfidxm.
}
}
else
{
tor (i = 0; i < dim[1}{1]; i++)
{
lsp_current_towerfdim{1](0]*i}-lsp_predict[diml1}(0]*i}-fidjbtf1JpdxJp];
}
}
Затем, декодируется верхняя часть текущих LSPs тем же способом как в процессе декодирования нижней части. Размерность каждого вектора описана в таблице 83 и таблице 84. jipc_fn<Aces{5].[6] и J{pc_/n<ftcesf7].[8] представляют индексы для первой и второй стадии соответственно.
Таблица 83 — Размерность вектора LSP первой стадии
Индекс вектора рзэбнения’ i |
Размерность вектора: <М0)И |
0 |
5 |
1 |
5 |
Таблица 84 — Размерность вектора LSP второй стадии
Инде«с дек?орд раэбиом** * |
Размерность вектора: <*»ПИ |
0 |
5 |
1 |
5 |
38
ГОСТ Р 53556.3—>2012
For (i = 0: i < dim(0}[0}: i**)
(
fsp_firstfi] = lsp_tbi{0][)pcjndices[5]]{i]:
}
for 0 s 0: t < <tm{0][1]; i**)
(
tsp_firstfdMn[0)(0]+i] = isp_tb^ 1}ppc_tndices[6ff[i];
}
Во второй стадии lpc_mdices [9] указывает, какой процесс должен быть выбран (см. таблицу 85).
Таблицэ65 — Процесс декодорования для второй стад»**
Индекс LPC pc.«idces {9} |
Прочесе декодирования |
0 |
VQ без межфреймового предсказания |
1 |
VQ с межфреймоеым предсказанием |
Процесс декодирования VQ без межфреймового предсказания sign = ipc_indic6s[7J » 6: idx = tpc_tndices[7] & 0x3f; if (sign -= 0)
{
for (i a 0: i < dim[1]{0}: i* *)
{
lsp_current_upper[i] = lsp_6rstp] ♦ djbl[0]p<tx]p);
}
}
Else
{
forp — 0: i < dim[1]{0]: i**)
{
lsp__currem_upperft] = Isp^firstp] — djbl[0}pdx)p):
}
}
sign — lpc_indtces[8] » A; idx — tpcjndices(81 & OxOf: if (sign == 0)
(
for (i a 0; i < dim[1){1J; i**)
{
Isp_current_uppeftdim[1]f0}4i] — lsp_first{dim{ 1 }[0)*i] ♦ djblf 1)[idx]p];
}
)
Else
{
for (i^ 0: i < dim(1){1}: i**)
(
isp_current_upperfdim[1}l0)+i] = fsp first(dim(1](0J*i] -dJbWPdxm }
}
Процесс декодирования VQ с межфреймовым предсказанием for (i = 0; i < tpcjorder/2: i**)
(
isp_рге<аар}=(1-
ratio_predtct)*lsp_firstfi]+ratfO_predict*!sp_previous ppc_orde
39
ГОСТ Р 53556.3—2012
r/2+Q:
}
где ratio^predict = 0.5 sign = lpc_inchces[7J » 6: idx — tpcjndtcesf?] & 0x3f: if (sign == 0)
{
for (i = 0; / < dim[1]{0]: i**)
(
lsp_current_upperfi] — Isp_predtctp] ♦ pd_tbt(0][idx)[i];
}
}
else
(
foe (i — 0: i < dim[1tf0]: i**)
{
Isp curren(_upperfi] = Isp_predict(i] — pdjbl{0)pdx}p];
}
}
sign — ipc_indtces[8) » A: idx — tpcjndtces[8] & OxOf: if (sign == 0)
{
for (i = 0; i < dim[1](1}; i**)
{
tsp_curreat_upperfdimf1]f0]+i] — isp_predict{dim[1]{0]*i] * pd_tbi[1)pdx}(i];
}
}
else
{
for (i я 0; i < dim[1tf1f: i**)
{
Isp_current_upperfdim[1]f0]+i} — Ispj>redictfdim[1][0]+i] —
po^tutviioxjM:
}
}
Наконец декодированные LSPs lsp__currentJowerf) и lsp_current_upperfl объединяются и сохраняют* ся в массиве isp^currentf].
for (i я 0; i < lpc_order/2: i**)
{
fsp_current{i] — isp_current_k)wer[i]:} for (i я 0; i < lpc_order/2; i**)
{
fsp_currentflpc_order/2 + i]=lsp current^upperfi):
S.6.2.4 Стабилизация LSPs
Декодированные LSPs lsp_currentf] стабилизируются, чтобы гарантировать стабильность фильтра синтеза LPC, который получен из декодированных LSPs. Декодированные LSPs упорядочены в порядке возрастания, имея расстояние между смежными коэффициентами, по крайней мере, minjgep. for (i я 0; i < tpc order, i**)
{
if (lsp_current[i] < mm_gap)
{
isp currentfi]=min^gap:
}
40
ГОСТ Р 53556.3—>2012
;
for (i = 0: i < lpc_order-
(
if psp_currentfi+1 }-4sfl_currerxfi] < min_gap)
{
lsp_currentfi+1] = lsp_current[i]*min_gap:
}
)
for ft — 0: f < ipcjorder. i**)
(
rf ftsp_current{i] > 1-mir_gap)
(
lsp_currentp] = 1-min_gap:
}
}
for(i- lpc_order •
{
ifflsp currantfi]-isp_currentft-1] < minjgap)
(
Isp current^-1 ]=tsp_curmrti[t]-mtn_gap;
}
}
гав lpc__order s 20 и min_gap = 1.0/256.0
S.6.2.5 Интерполяция LSPs
Декодированные LSPs lsp_current[] интерполированы линейно e каждом подфрейме, используя LSPs предыдущего фрейма Isp jtreviousf]. for(n = 0;n < nrof subframes: n**)
{
rabo_sub={n+1yorof_subframes for 0 -0: i< !pc_order: i++)
{
fsp_subframe{n](i] = ((1-
rabo_sub)4spjxevjousfij+ratio^sub’lsp^currerttli])):
}
}
5.62.6 Преобразование LSP в LPC
Интерполированные LSPs преобразуются в LPCs с использованием вспомогательной функции Convert2lpc().
for(n — 0: о < nrof_subframes: n**)
{
Convert2tpc (lpc_order. tsp_subframe{n]. int_Qtpc_coefficients * nVpc_orderj):
}
5.62.7 Сохранение коэффициентов
После вычисления коэффициентов LPC текущие LSPs должны быть сохранены в памяти, так как они используются для интерполяции в следующем фрейме. for 0 — 0: i < tpc_order. i**)
(
Ispj>reviousfi] — lsp_currentfi]:
)
Сохраненные LSPs Isp.jyevwusfl должны быть инициализированы как описано ниже, когда инициализируется весь декодер.
for 0 — 0: i < ipc_orden /++J
{
Isp_prevtous{i] = (fpc_order* 1):
}
41
ГОСТ Р 53S56.3—2012
5.6.3 Инструмент декодирования масштабируемого по полосе пропускания LSP-VQ
5.6.3.1 Описание инструмента
Инструмент декодирования масштабируемого по полосе пропускания LSP- VQ используется. чтобы добавить масштабируемость полосы пропускания к кодеру режима II. В инструменте декодирования мае* штабируемого по полосе пропускания LSP- VQ декодирующий инструмент, инструмент расширения поло* сы пропускания соединен с инструментом декодирования узкополосного LSP-VQ. Коэффициенты LPC дпя каждого подфрейма восстанавливаются путем поиска /pc_wx*ces[] и преобразовывая декодированные LSPs в узкополосном режиме.
5.6.3.2 Определения
Вход
Ipc^indices (]: Размерность этого массива равна num_lpc_indices. содержит упакованные индексы
Ipc.
tsp_current Этот массив содержит декодированные параметры LSP. которые нормализованы в диапазоне от нуля до Р/. в инструменте декодирования узкополосного LSP. Эти параметры получены как промежуточные параметры в процессе декодирования узкополосного LSP. описанном в 5.6.1 и передан* ным в инструмент декодирования масштабируемого по полосе пропускания LSP.
выход
trH_Oipc_coeffidents[}’. Этот массив содержит коэффициенты LPC дпя каждого подфрейма. Коэффициенты LPC декодируются и интерполируются, как описано в процессе декодирования. Коэффициенты LPC расположены в стеке один за другим в блоках lpc__order. Таким образом, размерность массива — tpc_order * nrof_subframes.
Конфигурация
tpc_ocder: Это поле указывает порядок используемого LPC.
num_lpcjndices: Это поле содержит число кодов упакованного LPC. Для процесса декодирования LSP с масштабируемой полосой пропускания num_fpc_indices устанавливается в 11.
nrofjsubframes: Это поле содержит число подфреймое.
nrof_subframes_bws: Этот параметр, который является переменной справки, представляет число под* фреймов в инструменте расширения полосы пропускания.
Следующие элементы справки используются в процедуре декодирования
таблицы поиска дпя процесса декодирования LSP с масштабируемой полосой пропускания
буфер, содержащий остаток предсказания LSP коэффициенты для предсказания скользящего среднего значения коэффициенты предсказания для преобразования для LSPs из узкополосных в широкополосные
декодированные LSPs в узкополосном кодере CELP
декодированные LSPs е текущем фрейме в инструменте расширения полосы про* пускания
декодированные LSPs е предыдущем фрейме е инструменте расширения поло* сы пропускания
порядок LPC в инструменте расширения полосы пропускания (=20). Это удвоенный lpc_order в узкополосном CELP.
5.6.3.3 Процесс декодирования
Коэффициенты LPC в каждом подфрейме воспроизводятся, используя lpc_indices [5J.____(pc_m<*ces(10)
и текущие LSPs (isp_curren(fj) для узкополосного кодера CELP. Процедура декодирования состоит из грех шагов, декодирования LSPs в последнем подфрейме, интерполяции для других подфреймое и преобразования LSPs в коэффициенты LPC.
Процесс декодирования инструмента расширения полосы пропускания дпя параметров LSP.
Модуль межфреймового предсказания производит оценку параметров LSP. преобразовывая декодированные параметры LSP (lsp_current[J) в инструменте декодирования узкополосного LSP-VQ. Оцениваемые остаточные параметры LSP декодируются из (pc_/ntfces() посредством межфреймового предсказания скользящего среднего значения (МА).
LSPs в последнем подфрейме (lsp_bws_cu(rentfj) для инструмента расширения полосы пропусками еосстановливаются просмотром таблицы и предсказанием следующим образом:
lsp_bws_bu{}[] bws та prdctHf} bws_nw_pfdct[]
{sp_curmntf}
tsp_bws_current{]
isp_bws_pf9VtOUS[J
onterjows
42
ГОСТ Р 53556.3—>2012
for(i*0:i<5:i++)
(
lsp_bws_buffO}(i}=isp__bws_tbl[0]ppcJndtces{S]}[l}*lsp_bwsjbi{
ЗЩрс_ vxtices[7]]fi):
}
for (i = 5; i < 10; >*+)
{
tsp_bws_buf[0][i}=lsp_bws_tbl[0jppc_indices[5]][i]+lsp_bws_tbi[
3tflpcJndices[8}][b-S];
}
for(t- 10:i< 15:i*+)
(
tsp_bws_buf[0}fi}=lsp_bws_tbl[1flipcJndees{6J}[i-10}*lsp_bws tbl[4)(ipcJrKtK*sf9J}p-10);
}
for (i1S:i<20:i++)
(
tsp_bws_buf[0}[>J=4sp_bws_tbl[1 )(lpcjndices{6]][b 10)+lsp_bws_tbi(5lppcjndices(1 OJJp-IS];
}
for (n — 0: n <= 2; n*+)
(
for (f = 0: i < 20: i++)
{
lsp_bws_currBntp] *-bws_ma_j>rdct[n)[iJ4sp_bws_buf[n){i]:
}
}
for(i = 0:i<
{
tsp_bws_currentfi] ♦= bws_nwj>ntctfi)4sp_currentffi:
}
где isp_bws_tbi[}[}[) являются книгами шифров LSP. bws_ma_prdct[](] и bws_nw_prdaf] являются коэффициентами предсказания для скользящего среднего значения межфреймового предсказания и вмут-рмфреймооого предсказание, соответственно. tsp_bws_buff}[] является буфером, содержащим остаток пред» сказания LSP в текущем фрейме и предыдущих двух. Этот буфер сдвигается для работы следующего фрейма следующим образом: for (п = 2; п > 0; л* •)
(
for (i = 0: i < 20: i++)
(
lsp_bws_buffnjfi] = Isp bws_buf[n~1ff,]:
}
}
Декодированные LSPs lsp_bws_curreat{] стабилизируются, чтобы гарантировать стабильность фильтра синтеза LPC. который получен из декодированных LSPs. Декодированные LSPs упорядочены в порядке возрастания, имея расстояние между смежными коэффициентами, по крайней мере, min_дар. for (i — 0: / < lpc_order_bws; i**)
(
Я flsp_bws_cutrentfi] < 0.0 Н lsp_bws_currentp] > PAI)
{
Isp bws_currentfi] — 0.05 * PAI 4 / lpc_order_bws;
)
}
forp — (lpc_order_bws~1): i > 0; ь -J
(
43
ГОСТ Р 53556.3—2012
for 0 *0:j <i:j*+)
{
if(lsp_bws„currentft) * mm„gap > lsp_bws„current{j+1))
{
imp — 0.5 *(lsp_bws„current[j) ♦ fsp_bws_current(j+l]); lsp_bws„currontQ] = imp — 0.51 *min_gap: lsp_bws_currentQ+1] — imp ♦ 0.51* min_gap;
}
)
)
где PAI — 3.141592 и min_gap = 0,028.
Интерполяция параметров LSP
Декодированные LSPs линейно интерполируются в каждом подфрейме. for(n — 0; п < nrof subframes_bws; п**)
{
ratio_sub = (п+1 ynrof_subframes„bws: for (i — 0: i < 2*lpc_order; t*+)
(
lsp_bws_subframe{n][i}*{(1-ratio„sub) 4sp_b#sjxevtousp]
* ratio_sub’lsp_bws„currentfi))):
}
}
for (i -0:i< 2*tpc„or6ec i++)
{
isp_bws_previou${i]=tsp_bws_subframe{nrof_subframes_bw$~
Ш-
}
Преобразование LSPs в коэффициенты LPC
Интерполированные LSPs преобразуются в коэффициенты LPC в каждом подфрейме. for (о = 0:п< nrof subframes_bws: п++)
{
Ccnvert2lpc 0pc„oriar_bws.lsp_bws„sitbframe{n].
&mj_CHpc_co6fnciems[n ‘ipc_oraer_ows]);
}
5.6.4 Управление скоростью в инструменте декодирования LSP
5.6.4.1 Описание инструмента
Управление скоростью возможно с помощью инструмента декодирования LSP. Если используется FRC. во входные параметры включаются два дополнительных параметра interpotation_flag и LPC_present. Процесс декодирования узкополосного LSP выполняется, если в текущем фрейме присутствуют lpc_indtces{] (LPC„present* YES).
5.6.4 2 Определения Вход
fc>c_indjces{]: Размерность этого массива равна numjpcjndices и содержит индексы LPC. interpolation_flag: Это однобитовый флажок. Когда он установлен, флажок указывает, что рассматриваемый фрейм является неполным фреймом, то есть фрейм не несет коэффициенты LPC текущего речевого фрейма, а только его параметры возбуждения (параметры адаптивной и фиксированной книги шифров). Коэффициенты LPC для рассматриваемого речевого фрейма должны быть получены, используя интерполяцию коэффициентов LPC смежных фреймов.
1 коэффициенты LPC фрейма должны быть найдены интерполяцией 0 коэффициенты LPC фрейма не нужно интерполировать.
Для того чтобы поддержать хорошее субъективное качество, никогда не должно быть более одного фрейма подряд без информации LPC. то есть. interpo/at>on_fieg не может иметь значения 1 в двух последовательных CetpFrames.
44
ГОСТ Р 53556.3—2012
LPC_Preseat—Это поле указывает присутствие параметров LPC в рассматриваемом речевом фрейме. Эти коэффициенты LPC принадлежат текущему речевому фрейму или последующему фрейму. Когда используются в комбинации с interpolation_ffag эти два параметра полностью описывают, как получены коэффициенты LPC текущего фрейма. Если установлен флажок интерполяции, коэффициенты LPC текущего фрейма вычисляются при использовании коэффициентов LPC предыдущего и следующего фрейма. Это означает, что декодирование текущего фрейма должно быть отсрочено на один фрейм. Чтобы избежать этой дополнительной задержки в декодере, коэффициенты LPC следующего фрейма включены в текущий фрейм. В этом случае установлен флажок LPC_Present. Так как коэффициенты LPC следующего фрейма уже присутствуют в текущем фрейме, следующий фрейм не будет содержать информацию LPC.
Ест interpotattonjlag равен *1~ и LPC^Present равно *1*. то (а) параметры LPC текущего фрейма получают, используя параметры LPC предыдущего фрейма и параметры следующего фрейма, и (£>) текущий фрейм (фрейм на рассмотрении) переносит параметры LPC последующего фрейма, но не такие, как для рассматриваемого фрейма. Коэффициенты LPC рассматриваемого фрейма получаются интерполяцией ранее полученных параметров LPC и параметров LPC. полученных в рассматриваемом фрейме.
Ест interpotatk>n_fteg равен *0* и LPC_Preseni равно ”0’. параметры LPC. которые будут использоваться с рассматриваемым фреймом, получены в предыдущем фрейме.
Когда interpotatk>n_fIag *0* и LPC_Present равно * 1 *. тогда текущий фрейм является полным фреймом, и параметры LPC. полученные в текущем фрейме, принадлежат текущему фрейму.
Такая конструкция выбрана для того, чтобы минимизировать задержку, когда декодер начинает восстанавливать фрейм, коэффициент LPC которого получены, используя интерполяцию, не имея необходимости ждать прибытия следующего фрейма. Такая комбинация позволяет декодировать поток бит от любого пункта (произвольный доступ). В конфигурации с фиксированной битовой скоростью эти два флажка показывают фиксированный шаблон
01.01.01.01.01.01.. .. строка 01 повторяется
11.00. 11.00.11.00…. строка 11.00 повторяется (фиксированная битовая скорость достигается на протяжении двух фреймов)
Для переменной битовой скорости (когда FineRateControl = ON) строка обычно не будет содержать фиксированный шаблон.
Выход
int_ Qtpc_coeffic/enfs/7- Этот массив содержит коэффициенты LPC для каждого подфрейма. Коэффициенты LPC декодируются и интерполируются, как описано в процессе декодирования.
5.6.4.3 Процесс декодирования
Если in}orpoJoik>r>_ flog установлен, декодированные в текущем фрейме LSPe принадлежат следую
щему фрейму, a LSPs для текущего фрейма вычисляются линейной интерполяцией LSPs соседних фреймов.
Ест interpciatfon_flag не установлен и £cj/Khces(] присутствуют в текущем фрейме, вычисленные коэффициенты пртадлежат текущему фрейму, и интерполяцию выполнять не нужно.
Ест interpoiabon_flag не установлен и4pc./n<*ces(] отсутствует в текущем фрейме. LSPs для текущего фрейма уже получены в предыдущем фрейме. Поэтому LSPs. полученные в предыдущем фрейме, копируются и используются в текущем фрейме.
5.7 Генератор возбуждения CELP
Генератор возбуждения CELP генерирует сигнал возбуждения для одного подфрейма из полученных индексов, используя процесс возбуждения регулярным импульсом (RPE) или процесс мультиимпульс-мото возбуждения (МРЕ) в зависимости от режима кодирования (см. таблицу 86).
Таблица 86 — УЪгструменты генерации возбуждения
Режим Еоаиродеиия |
Частота дисхретимдии |
Инструмент |
Model |
16 кГц |
RPE |
Mode II |
8.16 кГц 8.16 кГц 8/16 кГц (8WS) |
МРЕ МРЕ с масштабируемой битовой скоростью МРЕ с масштабируемой полосой |
45
ГОСТ Р 53556.3—2012
5.7.1 Инструмент возбуждения регулярным импульсом
5.7.1.1 Описание инструмента
Сигнал возбуждения создается из периодического компонента (вклад адаптивной книги шифров) и непериодического компонента (вклад RPE). масштабированных их соответствующими усилениями. Используя shape_deiay[sub_frame] и pa«_/ntfces[0][so6_frame]. вычисляется вклад адаптивной книги шифров. Вклад RPE вычисляется путем использования shape_tndex{sub__frame] и ga/nJrxflcesIlKsub.fra/ne]. Для ясности индексация, основанная на subjrame. опущена. Процесс генерации возбуждения повторяется каждый подфрейм.
5.7.12 Определения вход
shape__defay{Y Этот массив имеет размерность nrof_subframes и содержит задержку адаптивной книги шифров.
sfiape_tfx#exfl- Этот массив имеет размерность nrof_subframes и содержит индекс книги шифров RPE. gainJndices{Q%]: Этот массив имеет размерность nrof_subframes и содержит индекс усиления адаптивной книги шифров.
gain_ir>ctices{1K]. Этот массив имеет размерность nrof_subframes и содержит усиление книги шифров
RPE.
выход
ехсПабопЦ. Этот массив имеет размерность sbfrm_size и содержит сигнал возбуждения. Этот сигнал восстановлен из векторов формы и усиления, используя адаптивные и фиксированные книги шифров. lag: Это поле содержит декодированную задержку (период шага) для адаптивного codevector. adaptive_gatn: Эта область содержит декодированное усиление для адаптивного codevector. Конфигурация
sbfrm_size: Это поле указывает число отсчетов в подфрейме. nrof_subframes: Это поле указывает число подфреймов.
Дополнительные элементы, используемые е режиме возбуждения RPE. следующие: tbi_cba_gain[J таблица поиска для усиления адаптивной книги шифров tbi_cbf jjainfl таблица поиска для усиления фиксированной книги шифров
tbl^cbf_gain_diff} таблица поиска для разницы усиления фиксированной книги шифров cba[] адаптивная книга шифров
ptev_Gf усиление фиксированной книги шифров предыдущего подфрейма
5.7.1.3 Процесс декодирования
5.7.1.3.1 Декодер формы
Этот блок описывает извлечение запаздывание адаптивной книги шифров и параметров ЯРС. Задержка адаптивной книги шифров получается из shape_delay следующим образом. lag — Lmax — Lmin — shape^deiay,
где Lmax и Lmin—максимальная и минимальная задержка, соответственно, равные 295 и 40. Коэффициент уменьшения D и число импульсов Np сведены в таблицу.
Параметры RPE, а именно, фаза RPE (rpe_phase) и амплитуды RPE (rpe_amps) получают следующим образом:
rpejndex — shapejndex: rpe_phase — rpejndex MOD D rpe_tndex — rpejndex/D; for (n = Np — 1: n> — 0: n-)
{
rpe_amps (n) = (rpejndex MOD 3) -1;
rpe__index — rpejndex/3:
}
5.7.1.3.2 Декодер усиления
Этот блок извлекает скалярное квантованное усиление адаптивной и фиксированной книг шифров из индексов усиления. Усиление адаптивной книги шифров Ga определяется поиском cba_gain (] в таблице (см. таблицу 88):
if (gain indtces[0}>31)
{
Ga — -1 * cba_gain(((64 — gainJndicesfO]) -1)}:
46
ГОСТ Р 53556.3—>2012
;
Else
{
Ga = cba_gain[gajn_indices(OJ);
}
Декодирование усиления фиксированной книги шифров зависит от рассматриваемого подфрейма. Для поиска усиления фиксированной книги шифров Gf используется вектор усиления. Для первого под* фрейма во фрейме усиление декодируется с:
Gf-cbf_gain[gainjndices[1)).
где cbf_gain[] дается в таблице 89. Для всех последующих подфреймов усиление декодируется, используя сЫ_9&n_<Af[]. представленный в таблице 90;
Gf-cbf_gain_dif[gair>_indices[1 В * prev_Gf.
где prev_Gf— декодированное усиление предыдущих подфреимов.
5.7.1.3.3 Генерация адаптивной книги шифров
Сначала будет описана генерация сигнала возбуждения, обусловленная адаптивной книгой шифров. Возбуждение для адаптивной книги шифров уа[п] вычисляется, используя вектор формы: for (п -0:п< sbfrm size: п +*)
(
уа{п) = cbapag * п]:
)
5.7.1.3.4 Генерация фиксированной книги шифров
Возбуждение для фиксированной книги шифров вычисляется в два шага. Чтобы генерировать фиксированную книгу шифров, также нужны два дополнительных параметра, а именно. О (интервал импульса или коэффициент уменьшения) и Np (число импульсов).
Эти значения зависят от битовой скорости и сведены в таблицу 87.
Таблица 87 — Распределение интервала импугъса и числа импульсов в RPE
RPE_CooSgurabcn |
0 |
Np |
0 |
8 |
5 |
1 |
8 |
5 |
2 |
5 |
6 |
3 |
4 |
6 |
4…..7 |
Зарезервировано |
Когда фаза и амплитуды известны, амплитуды помещают в регулярную сетку. У амплитуд может быть 3 различных значения:-!,0 и 1. Возбуждение для фиксированной книги шифров, yf, вычисляется, используя /?Р£-формулу:
for (п -0:п< sbfrm_size: п**)
(
т — 0:
}
for (п -0:п< Np: п**)
(
yf[pbase ♦ D‘n] — amp/п/.
}
5.7.1.3.5 Генерация возбуждения
Возбуждение является суммой адаптивного и фиксированного возбуждения, умноженных на соответствующие усиления:
for(n -0:п< sbfrm see; п**)
(
excitationln) = Ga * уа/л/ ♦ Gf * yffnj:
}
47
ГОСТ Р 53556.3—2012
Должна быть обновлена адаптивная книга шифров, используя возбуждение. Это делается путем сдвига адаптивной книги шифров на sbfrm_size входов, заполняя пустые входы вычисленным возбуждением.
for(n — sbfrm_size: п < Lmax: п*+)
{
cba[n-sbfrm_size]-cba[n];
}
for (п -0;п< sbfrm_Size; п**)
{
cbafLmax- 1-п] = excitation{$bfrm_size -1 — п):
}
Адаптивная книга шифров инициализируется заполнением ее нулями.
Представления для усиления книги шифров даны в таблице 88. таблице 89 и таблице 90.
Таблицам — Таблица предстаалетя для усиления адаптивной книги шифров Масштэб*ый коэффициент: 2*17
Индекс |
cba_g*m |
3 |
471471 |
4 |
548272 |
5 |
61669 |
Индекс |
сЬв_9в<о |
0 |
12386 |
1 |
27800 |
2 |
38483 |
Масштабный коэффициент: 2*15
Индекс |
сЬа_дач7 |
Индекс |
сбагрил |
|
6 |
16993 |
15 |
318778 |
|
7 |
18520 |
16 |
302847 |
|
8 |
20021 |
17 |
336079 |
|
9 |
21493 |
18 |
3555010 |
|
10 |
22938 |
19 |
3780811 |
|
11 |
24396 |
20 |
4061312 |
|
12 |
25834 |
21 |
4412213 |
|
13 |
27292 |
22 |
4884714 |
|
14 |
28767 |
23 |
55745 |
|
Масштабный коэффициент: 2*8 |
||||
Индекс |
сб а_даи> |
Индекс |
с Ьа_дат |
|
24 |
528 |
28 |
5553 |
|
25 |
727 |
29 |
11107 |
|
26 |
1388 |
30 |
22214 |
|
27 |
2777 |
31 |
44426 |
|
Таблица89 — Таблица представления для усиления фиксированной книги шифров Масштабный коэффициент: 2*12 |
||||
Индекс |
сbargain |
Индекс |
cba_g*m |
|
0 |
8192 |
4 |
265731 |
|
1 |
11578 |
5 |
343242 |
|
2 |
14877 |
6 |
441603 |
|
3 |
199909 |
7 |
55564 |
48
ГОСТ Р 53556.3—2012
Масштабам коэффициент: 2*9
Индекс |
сЬа_раи? |
8 |
8739 |
9 |
10823 |
10 |
13458 |
11 |
16451 |
12 |
19978 |
13 |
24039 |
Масштабам коэффициент: 2*5
Индекс |
cda_pw |
20 |
4327 |
21 |
4954 |
22 |
5700 |
23 |
6551 |
24 |
7649 |
25 |
8977 |
Индекс |
с 6а_рвп |
14 |
28624 |
15 |
33682 |
16 |
39118 |
17 |
45372 |
18 |
52626 |
19 |
60243 |
Индекс |
с6а_9*ил |
26 |
10689 |
27 |
13066 |
28 |
16183 |
29 |
21291 |
30 |
32832 |
31 |
Зарезервирован |
ТабпицаЭО — Таблица представления для дифференциала усиления фиксированной книги шифров Масштабам коэффициент: 2*13
Индекс |
cfta_pem |
0 |
819 |
1 |
3205 |
2 |
5418 |
3 |
7335 |
Индекс |
cba_g*tn |
4 |
9544 |
5 |
12783 |
6 |
22118 |
7 |
53248 |
5.7.2 Инструмент генерации мультиимпульсмого возбуждения
5.7.2.1 Описание инструмента
Процесс генерации возбуждения повторяется каждый под фрейм. Сигнал возбуждения создается из периодического компонента (вектор адаптивной книги шифров) и непериодического компонента (вектор фиксированной книг шифров), масштабированных их соответствующими усилениями. Векторы адаптивной и фиксированной книги шифров декодированы из shape_delay. shape_pos&ons и shape_stgns. Усиления декодируются исходя из трех типов индексов $tgnal_mode. rmsjndax и gatn_tndex.
5.72.2 Определения
Вход
s/rape.de&yf): Этот массив имеет размерность nrof_subframes и содержит задержку адаптивной книги шифров
shape_postk>ns[]: Этот массив имеет размерность nrof_subframes и содержит позиции импульса
sAape_sipns[l: Этот массив имеет размерность nrof_subframes и содержит знаки импульса
gam_index[): Этот массив имеет размерность nrof_subframes и содержит индекс усиления адаптивной книги
шифров и индекс усиления фиксированной книги шифров
rms_tnd6x: Это попе определяет индекс для мощности сигнала
stgnal_mode: Это поле содержит флажок голосовой/меголосоеой
int_0fpc_coefficfen(s{]: Это — массив размерности 1рс_огбег. содержит коэффициенты квантованного и интерполированного LPC одного подфрейма.
Выход
exatabonf): Этот массив имеет размерность sbfrm sae и содержит сигнал возбуждения. Этот сигнал реконструируется из векторов формы и усиления, используя адаптивные и фиксированные книги шифров
49
ГОСТ Р 53556.3—2012
acb_detay. Это поле содержмт декодированную задержку для адаптивного codevector adapttve_gain: Это поле содержит декодированное усиление для адаптивного codevector.
Конфигурация
Ipc_order Это поле указывает порядок LPC. который используется
sbfrm_size Это поле указывает число отсчетов в лодфрейме
nmf_subframes Это поле указывает число подфреймов.
Дополнительные элементы, используемые в инструменте МРЕ. следующие: pacb[j таблица поиска возбуждения для периодического компонента
pos_tbi[][] таблица поиска возбуждения для непериодического компонента
acb[) декодированный сигнал возбуждения как периодический компонент
fct>[] декодированный сигнал возбуждения как непериодический компонент
да декодированное усиление для периодического компонента
gf декодированное усиление для непериодического компонента
qxnormf] декодированные среднеквадратические значения речевого сигнала
parf] коэффициенты отражения, преобразованные из Qlpc_coeffidentsl]
acb_energy энергия acbfj
fcb__energy энергия fct[}
acb_defay целая часть задержки шага
acbjrac дробная часть задержки шага
5.7.2.3 Процесс декодирования
5.7.2.3.1 Декодирование stgnai^mode
Stgnai_mode (режим сигнала) представляет собой один из четырех режимов для каждого фрейма. Режимы 0 и 1 соответствуют неголосовому фрейму и фрейму перехода. Режимы 2 и 3 соответствуют голосовым фреймам, а последний указывает более высокую периодичность шага, чем первый. Эта информация используется в декодировании энергии фрейма, мультиимпульсиого возбуждения и усилений.
5.7.2.3.2 Декодирование энергии фрейма
Среднеквадратическое значение (rms) в последнем подфрейме восстанавливается, используя sjgrtal^mode и rmcjndax. Значение rms декодировано в шкале р—характеристики. Параметры р—характеристики зависят от stgnat_mode. Среднеквадратические значения других подфреймов получают линейной интерполяцией декодированных срвднвквадрапческих значений в последнем подфрейме текущего и предыдущего фреймов. Квантованные значения rms используются для процесса декодирования усиления.
deft = 1.0/64:
аа — 1.0/tog10(1.0 * mu_law); bb — rms^max /mu_law: pwk = aa ‘fog10(1.0 *pqxnorm/bb): qwk = detC(rms_index+1); forfi-0:i<n subframes:i**)
{
nwk — (qwk-pwky(t+1)/n_subframes ♦ pwk: qxnormp] — bb'(pow((doubie>10.0.(nwk/aa)) -1.0):
}
pqxnorm — qxnorm (n_subframes-1];
Значение rmc_max и mujaw показаны в таблмце 91.
Таблица 91 — Значение тк_тах и mu_taw
Sign»l_mode |
гт с_тах |
mu_iaw |
0 |
7932 |
1024 |
1.Z3 |
15864 |
512 |
5.7.2.3.3 Декодирование вектора адаптивной книги шифров
Целую и дробную части задержки шага получают из shape_<Шау. таблицы отображения между shape_detay и двумя частями задержки шага показаны в таблице 92 для частоты дискретизации 8 кГц и в таблице 93 для частоты дискретизации 16 кГц. Вектор адаптивной книги шифров acbfn) вычисляется интер
50
ГОСТ Р 53556.3—>2012
поляцией прошлого сигнала возбуждения pacb[n) в декодированной целой части задержки ach_delay и дробной части acbjrac. Интерполяция производится, используя FIR фильтр кк_Щк]. основанный на функции синхронизации с окном Хемминга. Если значение shape_delay равно 255 для частоты дискретизации 8 кГц или 511 для частоты дискретизации 16 кГц. выход acb{] состоит из отсчетов со всеми нулевыми значениями. Для других индексов выход acbf) вырабатывается следующей процедурой: for(n = 0:п <sbfrm size;)
(
tt *- acb_frac:
kt — acb_delay ♦ tt/6:
tt = tt % 6;
for (i — 0: i<kt&&n< sbfrm_size; n*+)
{
for (k- -/flap: к <= iftap; k**)
{
kk-(k*1)
acb[n) *- int_fU{abs(kk)] * pacb[pacb_size-{kt4+k+1)];
pacb[pacb_size+n] = acbfn]:
}
}
)
где параметры справки iftap и pacb_size зависят от частоты дискретизации (см. таблицы 92.93.94).
Таблица 92 — Отображение между shape_delay и задержкой шага для частоты дискретизации 8 кГц
atrape^dolay |
acb_ttetay |
acb_frac |
0-161 |
shape _delay!3+-17 |
[2‘shape_delay)%6 |
162-199 |
(shape_delay- 162У2+71 |
(3*(shape_de/ay-162))%6 |
200 — 254 |
sftape_detey-200+90 |
0 |
255 |
0 |
0 |
Таблица 93 — Отображение между shape_delay и задержкой шага для частоты дискретизации 16 <Гц
thape_delay |
acb_betay |
ocb_frac |
0-215 |
shape_deiayl3+2Q |
(2’shape_delay)%6 |
216 — 397 |
(shape_delay- 216J/2+92 |
{3*(sftape_defey-216))%6 |
398 — 510 |
s/iape_detoy-398+183 |
0 |
511 |
0 |
0 |
Таблица94 — Число отводов фильра интерполяции и размер адаптивной книги шифров
Частота дискретизации |
Число отводов |
pacb_s»e |
в кГц |
6 |
150 |
16 кГц |
11 |
306 |
5.7.2.3.4 Декодирование вектора фиксированной книги шифров
Вектор фиксированной книги шифров содержит несколько ненулевых импульсов и представлен позицией импульса и амплитудами импульса. Позиции импульса pul_j>os[i] извлекаются из shape_positions. Амплитуды импульса pui_amp[i] получают из shape__stgns. for fi = пит jwlse-1. к а 0; i >= О; ь •)
{
for (j- 0: j < пит_Ы_pos[iJ: j**) (
51
ГОСТ Р 53556.3—2012
posjdxp] \= ((shape_postions»k)&0x1)«/; к**:
}
put_amp[i] -1.0;
if (((stiape_signs » (num_pul$e~1-i))&0x1) — 1)
(
pul_amp{i] = -1.0;
}
pulJ>os[i] = pos_tbi{i}[pos_kix{i]];
}
где пит_putee—число импульсов, устанавливается из MPE_ConfiguraOon в зависимости от частоты дискретизации. num_bit_pos[i)—число битое для кодирования позиции wo импульса. posJUpJQJявляется таблицей ограничения, которая указывает возможные позиции для каждого импульса. Таблица 95 указывает возможные позиции для каждого импульса. Таблица 96 устанавливается в соответствии с комбинацией subfrm_size. пит_putse и num_bit_posQ следующим образом: step =subfrm_s<ze/min_num_bft_pos. for (i = 0; i <■ num_putse: i+*)
{
m = 1« (num_brt_pos[i}-rr*n_num_bft_pos); for (j = 0. к = 0: к < m)
{
cft/Я = i;
j *= (fong)((fk>at)step’m * O.S): j =j% step;
}
}
for (i = 0: i < num_pulse: /♦♦J
/
for (I = 0. к = 0; к < step; к**)
{
iffi== chfk})
{
for(j = 0: j < min_num_bit_pos.y>+)
{
posjblfi}p**J = к * step ‘j:
}
)
}
Таблица 95 — *Ь*сло импульсов для частоты дискретизации 8 кГц
UP£_Con-ftgucaCon |
яит_риН* |
0 |
3 |
1 |
4 |
2 |
5 |
3 |
5 |
4 |
6 |
5 |
7 |
6 |
6 |
7 |
7 |
8 |
8 |
9 |
9 |
UPE_Con- hgurabon |
num_puis« |
10 |
10 |
11 |
11 |
12 |
12 |
13 |
4 |
14 |
5 |
15 |
6 |
16 |
7 |
17 |
8 |
18 |
9 |
19 |
10 |
MPf.Co»- Apurstton |
num_pu&« |
20 |
11 |
21 |
12 |
22 |
8 |
23 |
9 |
24 |
10 |
25 |
11 |
26 |
12 |
27… 31 |
Зарезервировано |
52
ГОСТ Р 53556.3—>2012
Таблица 96 — Число импульсов для частоты дискретизации 16 кГц
UPE_ConAgur»tion |
|
8.24 |
3 |
9.25 |
4 |
10. 26 |
5 |
11. 27 |
6 |
12. 28 |
7 |
13. 29 |
в |
14. 30 |
9 |
15. 31 |
10 |
UPE _Соп figuration |
num_polse |
0. 16 |
5 |
1. 17 |
6 |
2. 18 |
7 |
3. 19 |
8 |
4. 20 |
9 |
5. 21 |
10 |
6. 22 |
11 |
7. 23 |
Зарезервировано |
Позиции импульса, используемые в кодере режима II на 6 кбит/с для частоты дискретизации 8 кГц показаны в таблице 97.
Таблица 97 — Позиции импульса дли кодера на 6 кбит/е
Poise number, f |
Hum _ M_ pospl |
Позиции иипупьса. pos_t&Jfi7W |
0 |
4 |
0,5.10.15.20.25.30,35. 40.45.50.55.60.65.70.75 |
1 |
4 |
1.6.11.16.21.26,31.36. 41.46.51.56.61.66.71.76 |
2 |
4 |
2.7.12.17.22.27.32.37 42.47.52.57.62.67.72.77 |
3 |
3 |
3.13.23.33.43.53.63.73 |
4 |
3 |
4.14.24.34.44.54.64.74 |
5 |
3 |
8.18.28.38.48.58.68.78 |
6 |
3 |
9.19.29.39.49.59.69.79 |
Вектор фиксированной книги шифров fcb(n) подсчитывается из pul_posfi) и pul_amp[i) следующим образом:
for (п = 0; л < sbfrm_sae: п*+)
{
fcbfn) = 0.0:}
for пит_pufee: i**)
{
fcbfpuljxtsfifl — pul_amp[i):
}
Если целочисленная задержка acbjMay меньше, чем размер подфрейма sbfrm_size. векторный сигнал фиксированной книги шифров fcbfn) измененяется гребенчатой фильтрацией zen>stat&-cornbfjftenng следующим образом:
for (п = 0; п < sbfrm_Size: п**)
{
if (п — acb_detayt >- 0)
{
Ы — fcbfn — acbjlalay):
}
else
(
и-0.0:
53
ГОСТ Р 53556.3—2012
;
fcbfn] *- cga[signaJ_mode] *ix:
}
roe cga [4] = {0.0.0.0.0.6.0.8} являются усилением гребенчатого фильтра.
5.7.2.3.5 Декодирование усилений адаптивной и фиксированной книг шифров
gatn_mdex преобразуется в нормализованные усиления пда. ngf для векторов адаптивной и фиксированной книг шифров. Таблица усиления изменяется в соответствии cstgnal_mode. sbfrm_stze и частотой дискретизации. Усиление адаптивной книги шифров да и усиление фиксироеамюй книги шифров gf вычисляются следующим образом:
да = пда * sqrt (norm/acb_energy): gf=ngf’sqrt (norm / fcb^energy).
где acb_energy и fcb_energy являются энергиями для векторов адаптивной книги шифров и фиксированной книги шифров соответственно, norm—коэффициент нормализации.
norm — (qxnonn*sob6w_sizenqxnorm’,subfim_size): for(i- 0;i<lpc order i**)
{
norm «= (1 — parpj * parffl):
}
где part] являются коэффициентами отражения и подсчитываются из LP коэффициентов int_Qfpc_ coefficients!). При этом qxnorm является квантованной энергией подфрейма, которая декодируется из rmcjndex (см. 5.7.2.3.2).
5.7.2.3.6 Генерация сигнала возбуждения
Сигнал возбуждения (excitationf)) вычисляется суммированием acbff и fcPfl масштабированных да и д/соответственно.
for 0 — 0: i < sbfrm_size: i+*)
{
excitationfi) — ga’acbfi) ♦ gTfcbp):
}
5.7.2.3.7 Обновление адаптивной книги шрифтов
Адаптивная книга шифров обновляется для процесса декодирования в следующем фрейме сгенерированным сигналом возбуждения excitationf] следующим образом: for 0-O;i< pacb size — sbfrm_sjze; i**)
(
pacbp] — pacbfsbfrm_si2e*i);
}
for 0- 0: i < sbfrm_size: (++}
{
pacb[pacb size-sbfrm_size*i] — excitationf];
)
5.7.3 Инструмент генерации мультиимпульсного возбуждения с масштабируемой битовой скоростью
5.7.3.1 Описание инструмента
Декодер масштабируемой битовой скорости реализуется, используя инструмент мультиимпульсного возбуждения с масштабируемой битовой скоростью, который состоит из инструмента мультиимпульсного возбуждения и инструмента декодирования возбуждения расширения. Это расширение масштабируемости разрешено только для кодера режима II. Сигнал возбуждения расширения восстанавливается путем поиска shape_enh_positions. sbape_enh_stgns. gain_enhjndex и использования сигнала декодированного мультиимпульсного возбуждения в инструменте мультиимпульсного возбуждения.
5.7.3.2 Определения Вход
shape_defay[]: Этот массив имеет размерность nrof_subframes и содержит задержку адаптивной книги шифров
sfiape_positions[]: Этот массив имеет размерность nrof_subframes и содержит позиции импульса shape_signs[]: Этот массив имеет размерность nrof_subframes и содержит знаки импульса sbape__enh_positions[Y Этот массив имеет размерность nrof_subframes и содержит позиции импульса
54
ГОСТ Р 53556.3—>2012
shape_enh_sjgns[]: Этот массив имеет размерность nrof_subframes и содержит знаки импульса gain_enhjndex[): Этот массив имеет размерность nrof_subframes и содержит индекс усилений адаптивной книги шифров и индекс усиления фиксированной книги шифров
int_Qlpc_coeffidents[f. Это массив размерности lpc_order содержит квантованные и интерполированные коэффициенты LPC одного подфрейма Выход
enh_exdtabon[]: Этот массив имеет размерность sbfrm_size и содержит сигнал возбуждения расширения. Этот сигнал реконструируется из векторов формы и усиления, используя фиксированную книгу шифров.
Конфигурация
lpc_order. Это поле указывает порядок LPC. который используется sbfrm^size: Это поле указывает число отсчетов в подфрейме nrof_subframes: Это поле указывает число подфреймое
Дополнительные элементы, используемые в инструменте МРЕ с масштабируемой битовой скоростью. следующие:
pos_tbt{JI] таблица поиска возбуждения для непериодического компонента
enhjfcbl) декодированный сигнал возбуждения как непериодический компонент
да декодированное усиление для непериодического компонента
anhjcbjanargy энергия enhJcbQ
5.7.3.3 Процесс декодирования
5.7.3.3.1 Декодирование вектора фиксированной книги шифров расширения Вектор фиксированной книги шифров расширения также состоит из нескольких ненулевых импульсов. Позиции импульса и амплитуды извлекаются из shape_anh^positions. shape_enb_stgns тем же алгоритмом декодирования, что из фиксированной книги шифров. Векторы фиксированной книги шифров расширения enh_fcb[n] вычисляются из put_pos р] и put^amp [i] следующим образом: for(i-пит_putse enh-1,
(
for numjbitjx>s[i], j++) (
pos_kfxp]\-((shapa__enh_positions»k)&Ox 1) «/; k*+:
}
pul_amp[i] -1.0;
if(((snape_ann signs »(num_putse_enn-i-i))&Oxi)~i)
{
put_ampfi] = -1.0;
}
pul_posfi]-pos tbtfiflpos^idxpff;
}
for (n -0;n< sbfrm_sjze: n**)
(
enh_fcb[n]=0.0;
}
for fl -0;i< num__pulse_enh: h*)
(
enh_fcb[pulJ30sftj] — pul_ampp]:
}
Таблица 98 — Определение по/л_putse_enh
sb(rm_me |
num |
40 |
2 |
80 |
4 |
55
ГОСТ Р 53556.3—2012
Таблица 98 позиций импульсов временно генерируется тем же самым алгоритмом декорирования, что и фиксированная книга шифров, временная таблица позиций импульса изменяется следующим образом:
for (п = 0; п < num_enh: п**)
{
for (i = aumfn}-1. к — 0: i >- О: /• -)
{
pu/_foc = 0:
tor (j -0;j < bitjxtsfi); j**)
{
pul Joe |= ((tdx(nf»k)&Ox1)«j; k**:
}
pul_loc-chn_posfi*ten+pul_loc); for (!-0: К 10; h+)
{
for(m-0:m< (1« bit_posjygPJ): m+*)
{
if (pui_kx — ctin_pos_orgp’ien+m]) chn_ctrfi)++; break
}
}
)
}
for (i — 0: i < 10: t+*)
{
ctr_tmp(i] — chn_ctrfij:
}
for 0 — 0: i < num[n*1}; i**)
{
min_ctr — ten:
for Q=.0:j< 10;j*+)
{
if (ctr tmpfi] < min_ctr)
{
min_ctr — ctr_tmpffl: m/n_cftn =j;
}
}
ctr_tmp[mtn_chn] = ten:
M_pos__org[min_chn);
for(j = 0:j<(1«bkjx>s_org[min_ctwJ):j++)
{
chn_pos(i*len*jJ-chn_pos_org[min_chnTen+j];
}
}
}
for fi — 0: i < num[num_enhj; i**)
{
Ыф] = bit_fiOS(i):
for(j -0;J< (1«ЬЩ): j**)
(
56
ГОСТ Р 53556.3—>2012
posjbft*fan*jJ-chn_posp*ten+fl:
}
}
Позиции импульса, используемые е инструменте возбуждения расширения, показаны в таблице 99 и таблице 100. Таблица изменяется в зависимости от длины подфрейма.
Таблица 99 — Временная таблица позиций имгтугьсз для подфрвйма с 80 отсчетами
Номер импульс* i |
bit_ро*_огрй |
|
0 |
3 |
0.10.20.30.40.50.60.70 |
1 |
3 |
1.11.21.31.41.51.61.71 |
2 |
3 |
2.12.22.32.42.52.62.72 |
3 |
3 |
3.13.23.33.43.53.63.73 |
4 |
3 |
4.14.24.34.44.54.64.74 |
5 |
3 |
5.15.25.35.45.55.65.75 |
6 |
3 |
6.16.26.36.46.56.66.76 |
7 |
3 |
7.17.27.37.47.57.67,77 |
8 |
3 |
8.18.28.38.48.58.68.78 |
9 |
3 |
9.19.29.39.49,59.69.79 |
Таблица 100 — Времежая тэбгмца поэм^ий импугъса для под фрейма с 40 отсчетами
Номер импульса, i |
bit_po*_orp(i| |
Позиция импульса cftn_po*_orj(i]|j] |
0 |
2 |
0.10.20.» |
1 |
2 |
1.11.21.31 |
2 |
2 |
2.12.22.32 |
3 |
2 |
3.13.23.33 |
4 |
2 |
4.14.24.34 |
5 |
2 |
5.15.25.35 |
6 |
2 |
6.16.26.» |
7 |
2 |
7.17.27.37 |
8 |
2 |
8.18.28.X |
9 |
2 |
9.19.29.» |
5.7.3.3.2 Декодирование усиления фиксированной книги шифров расширения gain_anb_indax преобразуется в нормализованное усиление пде для вектора фиксированной книги
шифров расширения путем просмотра таблицы усиления. Таблица усиления меняется в соответствии с stgnal^mode. Усиление фиксированной книги шифров расширения да вычисляется следующим образом: да — пде * sort (norm/enh_fcb_energy):
где enh_fcb_energy — энергия для вектора фиксированной книги шифров расширения, norm — коэффициент нормализации.
5.7.3.3.3 Генерация расширенного сигнала возбуждения
Расширенный сигнал возбуждения (anh_excitation[]) вычисляется, добавляя вектор книги шифров расширения к сигналам возбуждения, for (7= 0; i < sMто see: i+*)
(
anh_axc*tation[i) — axcilatsonfi] * ge’enh^fcbp]:
}
57
ГОСТ Р 53556.3—2012
5.7.4 Инструмент генерации мультмимпульсного возбуждения с масштабируемой полосой пропускания
5.7.4.1 Описание инструмента
Процесс декодирования возбуждения в декодере с масштабируемой полосой пропускания достигается с помощью инструмента мультиимпульсного возбуждения с масштабируемой полосой пропускания, который состоит из инструмента мультиимпульсного возбуждения и инструмента расширения полосы про-пускания. Это расширение масштабируемости позволено только для кодера режима II. Сигнал масштабируемого возбуждения восстанавливается поиском shape_bwsjx&tions. shape_bws_ signs и gain_bws_index и использованием декодированных выходов для частоты дискретизации 8 кГц. а именно, целочисленной и дробной части задержки шага и вектора фиксированной книги шифров. Эти выходы генерируются инструментом декодирования МРЕ (5.7.2) или инструментом декодирования МРЕ с масштабируемой битовой скоростью (5.7.3).
5.7.4.2 Определения Вход
shape_bws_delay\ ]: Этот массив имеет размерность nrof_subframes_bws и содержит задержку адаптивной книги шифров
$hape_bws_posrt/ons(J: Этот массив имеет размерность nrof_subframas_bws и содержит позиции импульса
sftape_bws_signs(]: Этот массив имеет размерность nrof_subframes_bws и содержит знаки импульса ga/n_ptvs_jr>dex[]: Этот массив имеет размерность nrof_SLtbframes_bws и содержит индекс усиления адаптивной книги шифров и индекс усиления фиксированной книги шифров mc_index: Это поле определяет индекс для мощности сигнала stgrtal^mode. Это поле содержит флажок голосовой/неголосоеой
frtf_Q4pc_coefficie/itefj: Это массив размерности lpc_order содержит коэффициенты квантованного и интерполированного LPC одного подфрейма Выход
ехс4агюл[]: Этот массив имеет размерность sbfrm__size и содержит сигнал возбуждения. Этот сигнал восстановлен из векторов формы и усиления, используя адаптивные и фиксированные книги шифров acb_deiay. Это поле содержит декодированную задержку для адаптивной книги шифров adaptive_gain: Это поле содержит декодированное усиление для адаптивной книги шифров Конфигурация
Upcjxder. Это поле указывает порядок LPC, который используется
sofim^s/ze; это поле указывает число отсчетов в подфрейме в инструменте расширения полосы пропускания
nrof_subframes_bws: Это поле указывает число подфреймов в инструменте расширения полосы пропускания
Дополнительные элементы, используемые в инструменте МРЕ с масштабируемой полосой пропускания. следующие:
pacbf)
pos_tbl[)[}
acbf]
fcb1U
fcb2{)
9a
on
9f
qxnorml} parQ
acb^energy
fcb1_energy
fcb2_anafgy
acb_deiay_wb
acbjracjub
таблица поиска возбуждения для периодического компонента таблица поиска возбуждения для непериодического компонента декодированный сигнал возбуждения как периодический компонент декодированный сигнал возбуждения как непериодический компонент декодированный сигнал возбуждения как непериодический компонент декодированное усиление для периодического компонента декодированное усиление для непериодического компонента декодированное усиление для непериодического компонента декодированные среднеквадратические значения речевого сигнала коэффициенты отражения, конвертированные иэюГ_ОД>с_ coefficients О энергия acb[] энергия fcb1[/ энергия fcb2[J целая часть задержки шага дробная часть задержки шага
5В
ГОСТ Р 53556.3—>2012
5.7.4.3 Процесс декодирования
Для декодера режима II с масштабируемостью полосы пропускания сигнал возбуждения при частоте выборки 16 кГц создается из периодического компонента (вектор адаптивный книги шифров) и двух непериодических компонентов (вектор фиксированной книги шифров 1 и 2) масштабированных соответствующими усилениями.
5.7.4.3.1 Декодирование stgnaJ_mode
Stgnal_mode также используется в декодировании энергии фрейма, мультиимлульсного возбуждения и усилений е этом процессе декодирования.
5.7.4.3.2 Энергия декодирования фрейма
Процедура декодирования является такой же. как инструмент декодирования МРЕ.
5.7.4.3.3 Декодирование вектора адаптивной книги шифров
Целую и дробную части задержки шага получают из shape_delay и shape_bws_delay. acb_detay и ecbjrac в частоте дискретизации 8 кГц декодируются в инструменте МРЕ и подаются на инструмент расширения полосы пропускания для сигнала воэбуждежя. Параметры частоты дискретизации 8 кГц конвертируются в параметры частоты дисхретизацт 16 кГц acb_detay_wb, acb_frac_wb в частоте дискретизации 16 кГц следующим образом; op_deiay_wb = 2 * acb_delay if (acbjrac!- О)
(
op de!ay__wb++:
}
if (op_ctelay_ wb == 0)
(
op_idx_wb = 778;
)
else
(
op_idx__wb = (op_delay wb — 32) ‘3*2:
}
st_ktx_wb — opJdx_wb — 4; if (st_ktx_wb < 0)
(
st_kfx wb-0;
}
if ((st_idx_wb ♦ 7) >- 778)
(
st_kfx wb = 778-8:
}
if (opJdx__wb == 778)
{
acb_tdx_wb — 778:
}
else
(
acb_tdx__wb = st_idx_wb * shape__bws_delay:
)
Отображение между acb_idx_wb и параметрами задержки шага acb_delayjwb. acbjrac_wb показано в таблице 101. Вектор адаптивной книги шифров acb{n] вычисляется, интерполируя прошлый сигнал возбуждения pacb(n) при декодированной целочисленной задержке acb_delay_wb и дробной acbjracjwb. Интерполяция выполняется, используя фи/ътр FIR int_fil[k). к=0…, 66. основанный на функции синхронизации с окном Хемминга. Если значениеshape^delay равно 255 или значение shape_bws_delay равно 768. выход act>{] состоит из всех нулевых отсчетов. Для других комбинаций индексов выход acb{) получают следующей процедурой:
for (п -0:п< sbfrm_sae:)
{
59
ГОСТ Р 53556.3—2012
tt ♦= acb_frac_wb:
kt — acb_deiay_wb *tt/6:
tt = tt% 6:
for 0 — 0: i < kt && n < sbfrm size: n++)
{
for(k = -ii:k<= 11: k**)
{
kk = (k*1) • 6 — ff;
acb[n] ♦= *расЬ/ЗО6-0сГ-й*;/;
pacb{306*n) = acbfn):
}
}
}
Таблица 101 — Отображение между shape_deiay и задержкой шага
ась_> |
ас6_ве(ау_«6 |
acb_trme_mb |
0. 1 |
32 |
{2′(acb_idx_wb+1 )%6 |
2-777 |
32+2′(acf>_idx_vW>-2)/6 |
(2*(всЬ_кйг_»6-2))%в |
778 |
0 |
0 |
5.7.4.3.4 Декодирование вектора фиксированной книги шифров 1
вектор фиксированной книги шифров 1 fcb1[n] получен преобразованием частоты дискретизации вектора фиксированной книги шифров nb_fcb[n). используемой в инструменте МРЕ или инструменте МРЕс масштабируемой битовой скоростью следующим образом: for (п * 0; п < sbfrm_Size/2: п**)
{
fcb1[2’n) — nbjcbfn/. fcb1[2*n*1J-0:
}
5.7.4.3.5 Декодирование вектора фиксированной книги шифров 2
Век юр фиксированней khhiи шифров 2 содержи! несколько ненулевых импульсов и представлен позицией импульса и амплитудами импульса. Позиции импульса pui_posfi] получают voshape^bws_posjt>ons. Амплитуды импульса pul^ampp} получают из shape_bws_signs. for (i — пит_pulse_bws ~ 1, к-0: i >= 0: ь -J {
for (j = 0;j < пит_М_pos[i]:j++)
{
posjdxp] |= ((shape_bws^positions » к) & 0x1) «j: к**:
}
pui_amp[i] -1.0:
if (((shape_bws_signs » (num_putse_bws-1-4)) £ 0x1) == 1)
{
pfJ_amp[i] = -1.0:
}
puljx>s[i] — pos_tblfi][pos kJxfi]};
}
где пит_putse_Pws — число импульсов равно одному из вариантов 6. 8. 10. 12. Выбор зависит от BWSjconfiguratjon. numjxtjjosffl является числом битов для кодирования позиции /-го импульса, posjbffij} является таблицей ограничения, которая указывает возможные позиции для каждого импульса. Таблица 102 указывает возможные позиции для каждого импульса.
60
ГОСТ Р 53556.3—>2012
Таблица 102 — Определен ме пот_polse_bws
ewS_conHgura0on |
num_putsc_bws |
0 |
6 |
1 |
8 |
2 |
10 |
3 |
12 |
Таблицы позиции импульса для каждого числа импульсов также устанавливаются в соответствии с комбинацией subfrm_siza. пит_putse и пит_Ы_pos[] той же самой процедурой, что инструмент МРЕ.
Вектор фиксированной книги шифров fcb2(n)вычисляется иэрЫ_pos[i]иpuf^ampfi]следующим об* разом:
for (п а 0; п < sbfrm_size: п**)
{
fcb2[n)*0.0:
}
forfi = 0: i < пот__puise_bws; i**) fcb2[pul_pos[iJ} — pui_amp(i);
}
Если целочисленная задержка acb_datay_wb меньше, чем размер подфрейма sbrm_siza. сигнал вектора фиксированной книги шифров fcb2(n) изменяется фильтрацией zaro-state-comb следующим образом: for (п а 0; п < sbfrm_size: п**)
(
if (п- acb_delayt >= 0)
{
ix a fcb2fn — acb_delay];
}
etee
{
ix a 0.0;
)
fcbZfn] cgQ[3/gnof_modeJ * ix:
}
где cga [4] = {0.0.0.0.0.6.0.8} являются усилениями фильтра гребенки comtbfiitar.
5.7.4.3.6 Декодирование усилений адаптивной и фиксированной книг шифров
gain_bws_index преобразуется в два индекса.
qga_tdx = gain_bws_index » 7:
qgc_Kix = gain_bws_irxtex — (gain_bws_index « 7):
qga^tdx преобразуется к нормализованным усилениям пда, лд/^дпя векора 2 адаптивной и фиксированной книг шифров путем просмотра таблицы усиления. qgc__tdx преобразуется в нормалиэованноое усиление пдп для вектора 1 фиксированной книги шифров просмотром таблицы усиления. Таблица усилетя изменяется в соответствии с signal_mode. Усиление адаптивной книги шифров да. усиление фиксированной книга шифров 1 до и усиление фиксированной книги шифров 2 gf вычисляются следующим образом: да — пда * sqrt( norm /acb_energy); дп-пдп ‘sqrt(norm/fcb1_energy); gf = ngf * sqrt( norm / fcb2_energy );
где acb_energy. fcb2_energy и fcb1_enargy являются энергиями для векторов адаптивной книги шифров и двух фиксированных книг шифров, norm — коэффициент нормализации. norm — (qxnorm*subfrm_size) * (qxnorm’subfrm_size); for (i = 0: i < lpc_orden r>+J (
norm(1 — par[i} * раф)):
)
61
ГОСТ Р 53556.3—2012
где раг{] являются коэффициентами отражения и вьмюля ются из коэффициентов LP int_ Qlpc_coefficients{]. qxnorm — квантованная энергия под фрейма, декодируется из rucjndx.
5.7.4.3.7 Генерация сигнала возбуждения
Сигнал возбуждения (excitabonff) подсчитывается, суммируя scbfl, fcb1Q и fcb2[n} масштабированные ga.gnngf соответственно. for 0 — 0: / < sbfrm_size: i+*)
{
exatationfi] = ga’acbp) * gnfcblft) * gTfcb2[i].
}
5.7.4.3.8 Обновление адаптивной книги шифров
Адаптивная книга шифров обновляется для процесса декодирования в следующем фрейме генерированным сигналом возбуждения exdtationf]следующим образом: forfi-0;i< 306sbfrm_size:
{
pacb[i] = pacb[sbfrm_size*i]:
}
for fi — 0; i < sbfrm_size: i**)
{
pacbp06-sbfrm_size*-i] — exatationp]:
}
5.8 Фильтр синтеза CELP LPC
5.8.1 Описание инструмента
Фильтр синтеза CELP LPC создает синтезируемый сигнал из коэффициентов LPC и сигнала возбуждения для каждого лодфрейма.
5.8.2 Определения Вход
axotationf): Этот массив содержит сигнал возбуждения для одного подфрейма tni_Qipc_coefficients[f. Этот массив размерности lpc_order содержит квантованные и интерполированные коэффициенты LPC.
Выход
synth_signal[}: Сигнал возбуждения. вхЛа1юп () подается через фильтр синтеза, используя коэффициенты LPC из int_Qipc_coefficientsf]. Размерность этого массива равна lpc__order.
Конфигурация
lpc__ordec Это поле содержит порядок используемого LPC sbfrm_size: Это поле содержит число отсчетов в подфрейме
5.8.3 Процесс декодирования
Используя интерполированные коэффициенты LPCодного подфрейма, сигнал еоэбуждомя подается через следующий фильтр
*** ^ ” д(г) ” л‘
i } 1- I а» г
к — 1
где А (2) — фильтр инверсии LPC. использующий квантованные коэффициенты LPC. Коэффициент ак является к-ым коэффициентом LPC (tnt_Qfpc_coefnaents[k-1J). Вывод фильтра инверсии является реконструированной речью. Прядок LPC устанавливается в 10 и 20 для частоты дискретизации 8 кГц и 16 кГц соответственно.
Следующий алгоритм представляет собой реализацию вышеупомянутого фильтра: for (п = 0; п < sbfrm size: п*+)
{
imp = exdlattonfn):
for (к -0:k< Ipcjorden к**)
{
imp — Imp * Fitter__states[k] • int_ Qtpc_ coeffidents[k}:
{
62
ГОСТ Р 53556.3—2012
synth_signai[n) = tmp:
for (к — Ipc_order-1: к > 0; к- •)
{
Frtter_states[k) = F4ter_states[k-1);
}
Fiker_states[OJ = synth_stgnaf[n};
)
Массив Filter_states первоначально установлен в нуль.
5.9 Инструмент сжатия тишины CELP
5.9.1 Описание инструмента
Инструмент сжатия тишины содержит модуль voice activity detection (VAD). блок discontinuous transmission {DTX) и модуль comfort noise generator {CNG). Инструмент кодирует/декодирует входной сиг* нал на нижних битовых схоростях во время неактивных (тишина) фреймов. Во время вокально активных (речевых) фреймов используются, кодирование MPEG-4 CELP и декодирование.
На стороне передачи модуль DTXкодирует входную речь во время неактивных фреймов. Во время разговорных фреймов используется кодер MPEG-4 CELP. Флажок речевой активности (VAD^fiag). указывающий неактивный фрейм (VAD_flag=Q) или речевой фрейм (VAD_fiag=’\). определяется исходя из вход* ной речи модулем VAD. Во время неактивных фреймов модуль D ТХ обнаруживает фреймы, где входные характеристики изменяются (07X_ftag=1 и 2: Изменение. D7X_flsg=0: Никакого изменения). Когда обнаружено изменение, модуль DTX кодирует входную речь, чтобы генерировать информацию S/0 (описатель вставки тишины). VADJag и DTXJiag передаются совместно на декодер как флаг TXJag, чтобы сохранить синхронизацию между кодером и декодером.
На стороне приема модуль CNG генерирует комфортный шум. основанный на информации SID. во время неактивных фреймов. Во время фреймов речевой активности вместо этого используется декодер MPEG-4 CELP. Модуль CNG или декодер MPEG-4 CELP выбираются согласно флажку TX_fiag.
Информация SID и TX_fiag передаются, только когда обнаружено изменение входных характеристик. Иначе во время неактивных фреймов передается только TXJiag.
5.9.2 Описания
CNG: генератор комфортного шума
Codtng mode: Т для RPE и ‘1Г для МРЕ (см. таблицу 1)
DTX: прерывающаяся передача
LR. линейное прогнозирование
LPCs: коэффициенты LP
МРЕ. мультиимлульсиое возбуждение
МРЕ_ Configuration: см. раздел 4
RMS: среднеквадратичны й
RPE: возбуждение регулярным импульсом
RPE_Con figuration: см. раздел 4
SID. описатель вставки тишины
S/0 frame: фрейм, в котором передается/при нимается информация S/0
stgnaJ_mode: режим, определяющийся на основе среднего усиления предсказания шага (см. раздел 4)
VAD: опознавание речевой активности
5.9.3 Процесс декодирования
5.9.3.1 Полезная нагрузка передачи
Имеется четыре типа полезных нагрузок передачи в зависимости от решения VAD/DTX. TXJag указывает тип полезной нагрузки передачи и определяется флажками VADJiag и DTXJiag. как показано в таблице 103. Когда TXJtag указывает речевой фрейм (TXJlag — 1). передаются информация, сгенерированная кодером MPEG-4 CELP, и флаг ТХ_Яад. Когда TXJiag указывает фрейм перехода между речевым фреймом и неактивным фреймом или неактивный фрейм, в котором меняются спектральные характеристики входного сигнала {TXJiag = 2). передаются информация High-Rate (HR) SiD и флаг TX_fiag. чтобы обновить параметры CNG. Когда TXJag указывает неактивный фрейм, в котором мощность фрейма входного сигнала измененяется (TXJiag — 3). передаются информация Low-Rate (LR) SiD и TXJiag. Другие неактивные фреймы категоризируются в четвертый тип TXJiag (7X_flag = 0). В этом случае передается только TXJiag. Примеры изменения TXJag согласно VAD_ftag и DTXJag показаны в таблице 104.
63
ГОСТ Р 53556.3—2012
Таблица 103 — Соотношение между флажками для инструмента сжатия тжиины
Флаги |
Речевая акгиямость |
Неактяеносг» |
||
VAD_nag |
1 |
0 |
||
DTXJfag |
— |
0 |
1 |
2 |
TX_flag |
1 |
0 |
2 |
3 |
Таблица 104 — Примеры измаю»чя ТХ_Яадсогласно VAD_0ag и ОТХ_Яэд
Фрейм • |
..М-5 |
к-4 |
к-3 |
к-2 |
к-1 |
к |
к+1 |
к+2 |
к+3 |
к+4 |
к+5 |
к+6 |
к+7 |
VAD_flag |
…1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0… |
DTX_flag |
— |
— |
— |
— |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
2… |
ТХ_Нэд |
_1 |
1 |
1 |
1 |
2 |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
з._ |
активный период разговора |
активный период разговора |
5.9.3.2 Передача LSP
В случае, когда инструмент сжатия тишины используется а комбинации с запущенным FineRate Control. фрейм CELP с LPC^present = 1 и interpolabon fiag = 0 должен быть передан а первом фрейме с речевой активностью после фрейма неактивной речи. Фреймы с речевой активностью отмечаются TX_flag = 1. фреймы с неактивной речью отмечаются TX_flag = 0.2 или 3.
5.9.3.3 Модуль CNG
Комфортный шум генерируется путем фильтрации возбуждения с помощью фильтра синтеза LP. аналогичным способом как сигналы вокализованной речи. Чтобы улучшить качество кодирования, может использоваться постфильтр. Возбуждение дается, добавляя мультиимпульсное возбуждение или воз* Суждение регулярным импульсом и случайное возбуждение, масштабированные их соответствующими усилениями. Возбуждения генерируются на базе случайной последовательности, независимой от информации SID. Коэффициенты для фильтра синтеза LP и усилений вычисляются из LSPs и значения RMC (энергия фрейма), соответственно, которые получены как информация LSPs и RMC сглажены, чтобы улучшить качество кодирования для речи с шумящим входом. Модуль CNG использует те же самые размеры фрейма и подфройма. как о активных ре»юеых фреймах. Обработка е каждой части описана в следующих подпунктах.
5.9.3.3.1 Определения Вход
ТХ_Яад: Это поле содержит режим передачи
S/0_(pc_№dces{]: Этот массив содержит упакованные индексы LP. Размерность 3.5 или 6 (см. таблицу 72)
SID_ruc_mdex: Это поле содержит индекс RMC
Выход
PP_synth_signal(): Этот массив содержит пост фильтрованный (улучшенный) речевой сигнал. Размерность —sbfrm_size. Элементы справки, используемые в модуле CNG: lpc_order. порядок LP sbfrm_size: число отсчетов в подфрейме n_subframe: число подфреймое во фрейме int_QJpc_co6ffiaents{]. интерполированные LPCs (см. 5.8.2).
5.9.3.3.2 Декодер LSP
LSP 1рс_сиггШ17 декодированные из LSP индексы SID_lpcJndices[j. Процесс декодирования идентичен описанному в 5.6 со следующими исключениями:
1) Подмножество lpc_indices(] передается на декодер. Соотношение между передаваемыми индексами LSP. SID_lpc_indic6sf] и индексами LSP для MPEG-4 CELP. fpc_indices{}. показано в таблице 105.
2) Процесс декоди рован ия для непереданных индексов не выполняется.
64
ГОСТ Р 53556.3—>2012
Таблица 105 — Соотношение индекса LSP между тструментом сжатия тишиш и MPEG-4 CELP
Режим •одироаемия |
Частота дискретизации. кГц |
Масштабируемость ПОАОСМ |
Инструмент сжатия тиишкы |
UPEG-4 CELP |
1 (RP€) |
16 |
Off |
SID_ipc_rxStCBS[0] |
lpc_mdiCBsfOJ |
SID_tpc_indicesD J |
lpc_indicesf\] |
|||
SID_lpc_indices[2J |
Ipc_indicesf2} |
|||
StD_lpc_indices[3] |
lpc_indicesfi} |
|||
SID_lpc_tndtces[4} |
lpc_indices(5} |
|||
SlD_Ipc_ndtces[b] |
tpc_indicesfb) |
|||
II (MPE) |
в |
On. Off |
SlD_lpc_indiceslO] |
lpc_indicesf>) |
SID_lpc_ndice$p J |
lpc_mdicesfl] |
|||
StDJpcJndicesp./ |
Ipc_indicesf2] |
|||
16 |
On |
SID_lpc_ndKe$(3} |
lpc_indices{bj |
|
SID_ipc_ndKes[4] |
lpc_(ndicesfBJ |
|||
S/D_/pc_ind>ces/5/ |
Ipc_indicesf7j |
|||
SlD_!pc_ndtces[6] |
lpc_mdicesJ8) |
|||
Off |
SID_lpc_ndices[0] |
IpcJndicesfO} |
||
SID_lpc_indKesp J |
lpc_indicesp) |
|||
StD_tpc_indicespj |
Ipc_indicesf2] |
|||
SID_ipc_nd>cesl3] |
lpc_indicesfi) |
|||
SID_lpc_indices[4l |
lpc_indicesfS) |
|||
SID_lpc_indk:esl5] |
Ipc_indicesf6] |
5.9.3.3.3 Сглаживатель LSP
Сглаженные LSPs. lsp_current_sm[\ обновляются, используя декодированные LSPs lsp_current[] в каждом фрейме как:
0,875/sp current smf/1+0.125/sp current sm[/1, TX flags2 fsp current smf/laJ “ “
j0,875/sp_ ct//renf_s/n[/]+0.125/sp_curre/if_sjtf[/], TX_ flag =0or3.
где #=0…. lpc_order-1 и lsp_current_skf[] являются lsp_currentf) в последнем фрейме SID. В начале каждого неактивного периода lsp_current_smf) инициализируется lsp_currentO. в конце предыдущего речевого периода.
5.9.3.3.4 Интерполяция LSP и преобрзование LSP-LPC
LPCs для синтеза LP irrt_QJpc_coeffiaents{\ подсчитываются из сглаженных LSPs lpc_current_sm[}. используя интерполяцию LSP со стабилизацией и преобразование LSP в LPC. Эти процессы описаны в 5.6. Общий буфер для предыдущего фрейма fsp_j>reinousfl используется и в инструменте сжатия тишины, и в кодировании CELP для фреймов с речевой активностью.
5.9.3.3.5 Декодер RMC
RMC входной речи qxnorm в каждом подфрейме восстанавливается, используя SID_rms_rxlex в том же процессе, как описано в 5.7.2.3.2 за исключением того, что параметры ц-закона независимы от режима сигнала и установлены, как mrs_max=7932 и mujaw = 1024.
В останов ленное RMC входной речи преобразуется в RMC сигнала возбуждения (norm), используя коэффициенты отражения рзг[] следующим образом и используется для вычисления усиления: norm = (qxnorm*subfm_size} ‘(qxnorm’subfrm_size): for (i = 0; i < Ipc order i**)
(
65
ГОСТ Р 53556.3—2012
пот *- (1 — parfi/ * parfi}) * at:
}
гдера^] вычисляется из LPCsint_Qlpc_coeffiaents{), и коэффициент масштабирования сц равен 0.8.
5.9.3.3.6 Сглажиеатель RMC
Сглаженное RMC nom_sm обновляется, используя norm в каждом подфрейме следующим образом:
{0,875norm sw+0.125 лот? [suOnum] for ТХ flag =2or3 0,875 norm_ sm + 0,125 nom?_ sid for 7X_ flag =0 .
где subnum номер текущего подфрейма в диапазоне от 0 до n_subframe-1 и norm_sid является norm[n_subframe-1] в последнем фрейме SID. В первом фрейме каждого неактивного периода norm_sm устанавливается в norm. Во время первых 40 мс неактивного периода norm_sm инициализируется norm[subnum], когда ТХ_Пад = 2 или 3 и
|20k>g10norm^skf ~ 20tog,z norm[n_subframe -1]\ >6db
5.9.3.3.7 Генерация возбуждения CNG
Сигнал возбуждения CNG exciation[] подсчитывается из сигнала мульти импульсного возбуждения и случайного сигнала возбуждения следующим образом: for 0 — 0: / < sbfm_size: i+*)
{
exdtationfi] -gf9 fcb_cng[i] *gr* excg[i):
}
где fct>_crtg(] и excgf] являются, соответственно, сигналом мультиимпульсного (МР) возбуждения или возбуждения регулярным импульсом (RP) и случайным сигналом возбуждения, gf и дг являются их соответствующими усилениями. Случайный сигнал возбуждения, позиции и знаки импульсов для возбуждения MP/RP последовательно производятся из случайной последовательности в каждом под фрейме. Чтобы синхронизировать генератор случайных чисел CNG в кодере и декодере, случайный сигнал возбуждения ехсд(] для данного подфрейма должен быть вычислен до генерации возбуждения MP/RP fc0_cng(] для этого подфрейма.
5.9.3.3.7.1 Случайная последовательность
Случайная последовательность генерируется следующей функцией и используется для генерации сигналов мультиимпульсного и случайного возбуждения: short Random (‘seed)
(
•seed — (short) ((tnt)Cseed ‘31821 + 13849)): return (‘seed):
}
со значением начального числа 21845 и обычно используемого для обоих возбуждений. Этот генератор имеет периодический цикл 16 бит. Начальное число инициализируется значением 21845 в начале каждого неактивного периода.
5.9.3.3.7.2 Генерация случайного возбуждения
Сигнал случайного возбуждения каждого подфрейма является Гауссовсхой случайной последовательностью. которая генерируется следующим образом: for 0 — 0: / < sbfm_size: i+*)
{
excgfi] = Gauss (seed):
}
где
float Gauss (short ‘seed)
{
temp = 0:
forfi = 0: i < 12: h+)
{
temp *- (Float) Random (seed):
}
66
ГОСТ Р 53556.3—>2012
temp/=(2*32768): return (temp):
}
5.9.3.3.7.3 Гемерация мультиимпульсмого возбуждения
В случае, когда для кодирования голосовых фреймов используется МРЕ. сигнал мультиимпульсмо-го возбуждения генерируется для каждого подфрейыа случайным выбором позиций и знаков импульсов. Мультиимлульсные структуры MPEG-4 версии 1 CELP с МРЕ_Configuration=24 и 31 используются для частоты дискретизации 8 и 16 кбит/с соответственно. Позиции и знаки 10 импульсов генерируются в векторе с 40 отсчетами. Для размера подфрейма 80 отсчетов дважды генерируется 20 импульсов в векторе с 80 отсчетами. Индексы позиций и знаков тр_pos_tdx и mp_sign_idx генерируются в каждом подфрейме следующим образом:
if (subframe size is 40 samples)
(
setRandomBits (&mp_pos_ktx. 20. seed): setRandomBits (&mp_sgn_idx 10. seed):
}
if (subframe size is 80 samples)
(
setRandomBits(&mp_posJdx_1st_hatf. 20. seed): setRandomBXs (&mp_sgn_idx_ 1st_haM. 10. seed): setRandomBits (&mp_pos_ktx_2nd_hatf. 20. seed): setRandomBits (&mp_sgn_Ktx_2nd_hatf. 10. seed):
}
где mp_pos_idx_ 1st_hatf, и mp_sgn_idx_1st_hatf— индексы позиций и знаков первой половины подфрейма и тр_posJdx_2nd_hatf, и 20 mp_sgn_idx_2nd_half — индексы для второй половины. Функция setRandomBitsQ определяется в 5.9.3.3.7.5.
5.9.3.3.7.4 Возбуждение регулярным импульсом
В случае, когда RPE используется для кодирования речевых фреймов, сигнал возбуждения регулярным импульсом генерируется для каждого подфрейма. В случае неактивных фреймов контент адаптивной книги шифров инициализируется нулем. Для неактивных фреймов используется только фиксированная книга шифров. Сигнал возбуждения фиксированной книги шифров генерируется, используя случайный shapejndex. как вход для процесса декодирования RPE. setRandomBits (&shape__index. n_bits. seed): rpe_index = shapejndex: rpe_phase = rpejndex % D: rpe_tndex=rpejndex ZD: for (n = Np — 1: n >= 0; л- -)
(
rpe_amps [n] = (rpejndex %3)-1: rpe_index = rpejndex / 3;
;
for (n = 0:n< sbfrm_size: n+*)
(
fcb_cng[n] = 0.0F:
)
for (n = 0: n < Np: n**)
(
tcb_cng(rpe jjhase * D’n] = gn(RPEjConfiguration} *
(ffoat)(rpe_amps [n)):
}
nMs устанавливается в 11 для RPE_Configurations 0 и 1 и устанавливается в 12 для RPE_configurations 2 и 3. D является коэффициентом децимации (прореживания). Np — число импульсов в подфрейме и sbfrm_size — число отсчетов в подфрейме, как определено в MPEG-4 CELP версии 1. Коэффициент нормализации дп определяется в таблице 106.
67
ГОСТ Р 53556.3—2012
Таблица 106 — Коэффициент нормализации gn для RPE
ЛРЕ^СсяЯдопЬоа |
9п 11 |
0 |
56756 t 32768 |
1 |
56756 / 32738 |
2 |
44869 / 32768 |
3 |
40132 / 32768 |
5.9.3.3.7.5 Функция генератора случайного индекса
Функция генератора случайного индекса setRandomBOs 0 определяется для МРЕ и RPE следующим образом:
void setRandom8its (long *I, intn. short ’seed)
{
•/ = OxffffS, Random(seed); if(n > 16)
{
1 (Oxffff & Random(seed))«16:
)
if(n < 32)
{
1 ((unsigned tong)1 «л;- f;
}
5.9.3.3.7.6 Подсчет усиления
Усиления gf и gr вычисляются из сглаженного RMC возбуждения. norm_sm следующим образом:
gf = а norm_sm! \ £ fct_cng(ff !sbfrm_size
| 1.0
gr m (-«• Aj + Af — {a2 — 1) A A2)/ A2 где a s 0.6 и
ШМ «*-1
A * £ gf2fcb_cng(i)2
j-o
tbtim tat-1
A * I excgt/f
1-0
— 1
A* X gf2 fcb_cng{i) excg[i]
1-0
5.9.3.3.8 Фильтр синтеза LP
Фильтр синтеза идентичен фильтру синтеза LP в MPEG-4 CELP. описамюму в 5.8.
5.9.3.3.9 Обновление памяти
Поскольку кодер и декодер должны быть сохранены синхронизированными во время неактивных периодов, генерация возбуждения выполняется на сторонах кодера и декодера, чтобы обновить соответствующие буферы для синтеза LP. Во время неактивных фреймов адаптивная книга шифров не используется и инициализируется нулем.
68
ГОСТ Р 53556.3—2012
Приложение А (справочное)
Инструменты декодера MP£G-4 CELP
А.1 Постпроцессор CELP А.1.1 Описание инструмента
Постпроцессор CELP улучшает восстановленный речевой сипчал. сгенерированный фильтром синтеза для одного подфрвйма. Инструменты постфильтрации включают постфильтр форманты и постфильтр компенсацм* наклона.
А.1 J2 Определения Вход
synth_signal&. Этот массив содержит восстановленный речевой сигнал int_Qtx_coeffrcients{]: Этот массив содержит коэффициенты LPC для каждого подфрвйма acb_detay. Это поле указывает задержку шага, которая используется для лостфигътрэ шага. Если пост-фкльтр шага не нужен. ocb_detay должен быть установлен в значение, меньшее чем 10.
adapEvajgain: Это поле ухазыеэет коэффициент усиления для периодического компонента сигнала возбуждения. Этот коэффициент усилемтя используется для пост фильтра шага. Если постфильтр шага не нужен. adaptive_дат должен быть установлен е значение, меньшее чем 0.4 Выход
PP_synth_signal(J: Этот массив содержит постфильтроеангъм (улучшенный) речевой сигнал. Размерность этого массива — sbfrm_size Конфигурация
tpcjorder. Это поле указывает порядок LPC. который испогъзуется sbfrm_size: Это поле указывает число отсчетов е подфрейме А.1.3 Процесс декодирования
Процедура декодирования состоит из пост фильтрации и адаптивного управления усилением. Постфильтр H^z) является каскадным соединемгем трех фильтров: постфильтра форманты НДг). дополкитегъного постфильтра шага Hp{z) и фильтра компенсации наклона H^z):
Н^ = Н^)Нр[г)Н^).
Постфильтр форманты дается вырааиимом
1 —
вс OfOet
I
>-1
1м a, z»
вс 010*1
1- I 1м а» г*1 V-1
где Az — фильтр инверсии LPC. коэффициенты и управляют степенью постфильтрации форманты. Ъ устанавливаются в 0,65 и 0,75. соответственно.
Постфилыр шага дается выражением
Ч><*> = 7^^’+ 7,0,
“Л«‘1в*’1-о^{пК(л — зсЬ-delay)
9.- Ь_Юау) ■
где вДл) является остаточным сигналом, произведенным фильтрацией входного сигнала через подсистему нумератора лостфигътра форманты. Коэффициент усиления да ограничен 1. Коэффициент чр управляет степенью пост фильтрации шага и имеет значение 0.5. Постфигътр шага применяется, только если усиление больше 0.4 и задержка шага богъше 10. В частоте дискретизации 16 кГц для кодера режима I постфильтр шага не применяется.
Фильтр H^z) компенсирует аысокочастопшй наклон и дается выражением
Н,(г) = 1-*г-’.
где ъ — коэффициент наклона 0.3.
69
ГОСТ Р 53556.3—2012
Синтезируемой сигнал (synih_stgna4J) фильтруется через подсистему нумератора постфильта форманты Л{г1у„). чтобы произвести остаточюй сигнал. В кодере режима II остаточный сигнал затем фильтруется через постфильтр шага H0(z). тогда как в кодере режима I нясакой постфиг*»тр шага не используется. Остаток постфигъ-трации шага подается через подсистему деноьмагора постфильтра форманты >. Выходной сигнал пост-
фильтрое форманты и шага передается через фильтр компенсащм наклона чтобы генерировать постфигъ-троеанньй синтезируемый ситал. который еще не компенсирован по усилению.
Адаптивное управление усилением компенсирует различия усиления между синтезируемым сигналом s(n) и пост фильтрованном сигналом 5р(л). Коэффициент управления усилением G для текущего подфрейыа подсчитывается из
Масштабированный по усиление постфильтрооашый сипел 5р(л) дается выражением s(n) = д(л)5р(л). О £ л £ sbtrmjsize — 1. где д(л) обновляется на лоотоетной основе и дается кас д(л) = 0.95 g(л- 1) + 0.05 G. 0£л£sbtrmjsize — 1.
Используется начальное значение д{-1) = 0.0. Тогда для каждого нового подфрейма д(- 1) устанавливается равшм д(ЛМ) предыдущего под фрейма.
•САП 6М-1
I.o S*(«)
G
1
«МП Ut* —
70
ГОСТ Р 53556.3—2012
Приложение В (справочное)
Инструменты кодера MPEG-4 CELP В.1 Введение в набор инструментов кодера MPEG-4 CELP
Это приложемьв дает краткое описанге функциональных возможностей, определение параметров и процессов кодирования инструментов, поддерживаемых ядром MPEG-4 CELP. Описано каждого инструмента вкло-чает до четырех частей: описание инструмента, опредепенш. процесс кодированья и тэбгмцы. Поддерживаются следующие ньструменты кодера: предварительная обработка CELP анагмз CELP LPC
квантизатор CELP LPC и интерполятор векторный квантователь
кодер с масштабируемой полосой пропускания фильтр анализа CELP LPC модуль взвешивания CELP анализ возбуждения CELP возбуждение регулярным импульсом мутътиимпугьсное возбуждение мультиплексор потока бит CELP
Кодирование выполнено на основе фрейма, и каждый фрейм разделен на подфреймы. Инструмент экэ-гмза возбуждения CELP использует каждый подфрейы. в то время как другие инструменты используют каждый фрейм.
В.2. Переменные справки
Для каждого иьструмента кодера дается описание перемой ых. которые он использует. В этом подпунсте предоставлены переменные, которые используются совместно многими инструментами.
frame_size: Это поле указывает число отсчетов во фрейме. Декодер выводит фрейм с frame_stze выборками.
nrof_subfr3mes: Фрейм построен из ряда подфреймов. Число подфреймов определяется в этом попе. sbfrm_size: Подфрейм состоит из ряда отсчетов, их число определяется в этом поле. Число отсчетов во фрейме всегда должно быть равным сумме чисел отсчетов а поафреймах. Так, что всегда должно соблюдаться следующее соотношенте
frame_size = nrx>f_subframes ‘ sbtrm_size.
Эти три параметра зависят от настройки параметров частоты дискретизации и битовой скорости, как представлено е таблице 73 для пещера режима 1 и в таблице 74 для кодера режима II.
Ipc_order. Это поле указывает «мело коэффициентов, испотъзуеыых для линейного предсказания. По умолчанию значение этого поля равно 20 для частоты диежретизациь 16 кГц и 10 для 8 й»ц.
л(яп_фс_*л<*се5. Этот параметр определяет число индексов, содержащих информащео LPC. которая должна быть записана в поток бит. Оно не равно порядку LPC. num_lpc_indtces равно 5 в режиме в кГц и дополнитегъ-но 6 для уровня с масштабируемой полосой пропускания.
n_lpc_anatysis: Это попе указывает, как часто во фрейме выпогмяется анагмз LPC. Существует возможность выполнять несколько анализов LPC во фрейме с вариациями размера окна и смещения. Для частоты дискретизации 16 кГц значенье этого поля равно 1. указывая, что анализ LPC выполняется только однажды. Для частоты дискретизации 6 кГц значенье этого поля определяется отношеньем sbtrm_s/zet80.
mndow_offsete[]: Этот массив содержит смещения окон анализа LPC. и его размерность равна n_fcc_anafys«. wmdoiv.sizest}: Этот массив содержит размеры окна для анализа LPC. Так как анагмз LPC вьлолняется njpc_anatysis раз. размерность этого массива равна n_^x_anafyzis.
Размер окна и смещение для кодера представлены в таблицах В.1. В.2, В.З. а параметры окна для кодера в таблице В.4.
71
ГОСТ Р 53556.3—2012
Таблица В.1 — Размер окна и смещение для кодера режима > на t6 кГц
ЯРЕ_СояЯдипОоп |
Wittdo *_sizes] j (отсчетов) |
WBdow_o/fs*fsf) (отсчетов) |
0 |
400 |
280 |
1 |
320 |
160 |
2 |
400 |
280 |
3 |
400 |
280 |
4.7 |
Зарезервировано |
Таблица В-2 — Размер окна и смещение для кодера режима II на 8 кГц
иРЕ^СопЛдшаЧоо |
Window_sizes[] (отсчетов) |
lV«Vi(3o*_o/fsefs[J (отсчетов) |
0. 1.2 |
200 |
0. 80. 160. 240 |
3.4.5 |
200 |
0. 80. 160 |
6_ 12 |
200 |
0. во |
13— 21 |
200 |
0. во |
22 „.26 |
200 |
0 |
Таблица В.З—Размер окна и смещение для кодера режима II на 16 кГц
иРЕ_Соо6дигоЧоа |
Window_sizesfl (отсчетов) |
Windo w_ollsetsff (отсчетов) |
0… 6.8… 15 |
320 |
0. 80. 160. 240 |
16… 22.24 …31 |
320 |
0. во |
wwjpowsf): Этот массив содержит окно для каждого анализа, таким образом длина этого массива равна сумме window_sizes раз л_фс_алд/у$в. Для кодера режима I используется прямоугольное ото Хэмвмнга: for (х — 0: х < wtndow_sizes[i}: х+*)
{
wndQwfftxJ = (0.54 — 0.4 в * cos{2 * pi * wrtdowfi](xJ = wiri(kmfij(xj * *rindow{i}{x].
}
Для кодера режима li используется гибридное ото. Окно состоит из двух частей: половины окна Хэммм-гз и четверти косинусоидальной функции, дающихся выражением. for (п — О; л < nlb+len_ipcana/2: л++1
{
Hw(n) = 0.54-0.46* cos(2’ РГ п / (2‘(rib*ten_lpcna/2) —
Ц):
}
(or (п = nlb+len_lpcan&2; п < ¥tmdow_sizesp): п++)
{
Hw(n) = cos (2 • Р) • (п — (nfb+bnjpcanaf2)) /
(4′(nta*len_tpcana/2)-1)):
}
nib отсчеты анализа прошлого фрейма. <ел_/реале отсчеты анализа текущего фрейма, и nla отсчеты будущего фрейма форьмруют сдай блок для работы с окнам*.
Таблица В.4 — Параметры окна для кодера режима К
Частоте вискретемции. кГц |
пЪ |
п\Ь |
1еп_(рс_*лв |
8 |
40 |
80 |
80 |
16 |
80 |
160 |
80 |
72
ГОСТ Р 53556.3—2012
gamma_be[f. Этот массив имеет размер lpc_order. чтобы применить расширение полосы пропускания к коэффициентам LPC. Эта информация используется только для кодера режима L дагтта_Ье{0] = GAMMA, for (х = 1; х < lpc_order: х++}
{
gamma_be(x] = GAMMA * gamma_be[x-1):
)
Значение GAMMA равно 0.9883 для инструмента RPE.
n_fag_can<Matos: Эти поля содержат число кандидатов шага. Данная информация используется только для частоты досфетизации 16 кГц. значение этого поля равно 15.
max_pitch_freqoency. Это поле содержит максимальную частоту шага (задержка). Для частоты дискретизации 16 кГц это попе имеет эючение 0.025. постольку миымальная задержка равна 40. Для частоты дискретиза-iрял 8 кГц это поле имеет качение 0.05882. так как минимальная задержка равна 17.
min_p6ch_frequency. Это поле содержит ьмнимагьную частоту шага (задержка). Значение этого поля для частоты дисфегизацт 16 кГц равно 3.38986*3. так как максима/ъная задержка равна 295. Для частоты дискретизации 8 й’ц это поле имеет значение 6.944е*э. так как максимальная задержка равна 144.
В.З Элементы потока бит для набора инструментов кодера MPEG-4 CELP См. 5.4.
В.4. Предварительная обработка CELP В.4.1 Описание инструмента
Инструмент предварительной обработки CELP производит речевой сигнал, свободный от составляющей постоянного тока.
В.4.2 Определения Вход
s[(: Это — массив размерности frame_size. содержит входные речевые отсчеты.
Выход
pp_s Ц: Это массив дпеы (rame_size. содержит речевые отсчеты, свободные от постоянного тока. ВходВыход
ргвч_х. prev_y. память фильтра предварительной обработки.
Конфигурация
framo_sizo: Это попе указывает число отсчетов во входном сигнзле.
В.4.3 Процесс кодирования
Этот блок удаляет элемент постоянного тока из входного сигнала э(л]. Это рекурсивный фигътр первого порядка, его форма.
1 — г-1 1 0.90 г*’
Реахмзация этого фи/ътра: for (л = О: п < frame_stze: п++}
{
pp_s[n} = s(n) -prev_x * 0.99 ‘prev_y prev_x = sfn}. prev_y = рр_ф};
}
Состояния входа/выхоза фильтра prev х и prev_y инициализируются в нуль (обнуляются).
В.5 Анализ CELP LPC
В.5.1 Описание инструмента
Инструмент Анагыза CELP LPC оценивает краткосрочный спектр. Анализ LPC выполняется на предобрэбо-тайном речевом сигнале pp_s []. Порядок линейного предсказания определен параметром }pc_order. Чтобы взвешивать предобрэботанкую речь, используется окно с размером, заданным в mndow_size [). Чтобы опреде-тмть смещение для каждого ома. задается параметр wvrdow.offisef [),
В.5.2 Определения Вход
PP_lnputSignai [}: Этот массив содержит пред обработанный речевой сигнал. Его размерность равна frame_size Выход
Ipc_coefficionts[)-. Этот массив содержит вычисленные коэффициенты LPC и имеет размер lpc_order. first_order_lpc_раг. Это попе выхода содержит коэффициент LPC для согласования 1-го порядка. Этот параметр используется для предваритвгъной выборки при поисхе в адаптивной книге шифров.
73
ГОСТ Р 53556.3—2012
Конфигурация
frame_size: Эго поле обозначает число отсчетов во фрейме. window_offset О- Этот массив содержит смещение окна. wtndow_sjre [f Этот массив содержит размер окна анализа LPC.
windows (}: Этот массив содержит окна, ислогъзуемые для взвешивания речевого сигнала. gamma_be If Этот массив содержит гамма-коэффициенты, которые используются для рэсширежя полосы пропусками коэффициентов LPC.
lpc_order. Это поле указывает порядок LPC. n_tpc_anafy$is: Это поле обозначает номер анализа LPC.
В.5.3 Процесс кодирования
Анагмз линейного лредсказажя выполняется п_фс_ела1у«« раз. каждый раз с различным размером ота и смещением, как определено в массивах ivfodow_size и wmdow_otfset. Каждый раз входной сигнал PP_lnputSignal взвешивается и^л].
Посредством взвешенного сигнала получают коэффициенты автокоррелящм. используя:
«ляде* м«-*-1
acf[k\ = £ sw(n]-sw{n+A]. О S * £ /pc_o«fer
••о
Имеется lpc_order+1 коэффициентов автокорреляцт. Для кодера режима II расширение полосы пропускания и коррекция белого шума применяются путем модификации коэффициентов автокорреляции следующим образом:
for (к- О: к < lpc_order к**)
{
эефс/ *= 1ад_тп[к):
}
где tag_w’m{] является коэффициентами для расширения полосы пропускания.
Коэффициенты LPC вычисляются с помощью рекурсии Levinson-DiMbin (Левинсона-Дурбина). Первый коэффициент LPC назначается для first_ocder_kx_раг. Для кодера режима I расширение полосы пропускания применяется к коэффициентам LPC. используя массив дэтта_Ье. Для каждого анализа LPC рэссчетные фс_ coefficients располагают в стеке, приведя к коэффициентам n_ipc_anelysis * fpc_otder.
В.6 Квантизатор LPC CELP и интерполятор
Коэффициенты LPC квантуются при испогъзовамы одного из трех квантователей, инструмента узкополосного квантования LSP. инструмента широкополосного квантования LSP игы инструмента квантования LSP с масштабируемой полосой пропускания.
В.6.1 Инструмент узкополосного квантования LSP В.6.1.1 Описание инструмента
Инструмент узкополосного квантования LSP квантует коэффициенты LPC как параметры LSP. используя двухступенчатую и с разбиением вектора методику квантования.
В.6.12 Определения Вход
ijpe coefficients//: Это массив размерности 1рс_огЬег. содержит текущие неквантоеамюе коэффициенты
LPC.
Выход
int_Qtpc_coefScrents{]: Это массив длиной ntof_subframes * фс_order. содержит интерпопироватые и квантованные коэффициенты LPC для каждого подфрейма. Коэфф*щиенты LPC для каждого подфрейма располагают в стеке один за другим, образуя массив nrof_subframas * lpc_order.
(pc_«dces (]: Это массив размерности num_lpc_indices. содержит упакованные индексы фс, которые при-гысэкы потоку бит.
Конфигурация
lpc_order. Это попе содержит порядок LPC.
гмкп_фс_г/кйсе$: Эти поля указывают число упакованных кодов LPC. пит _lpc_anatysts: Это поле содержит число параметров LPC. nrof_subfremes: Это поле содержит число подфреймов.
В.6. U Процесс кодирования
LPCs конвертируются в LSPs и квантуются. Как описано в процессе декодирования, есть два метода квантования LSPs: двухступенчатым VQ без иежфроммового предсказания, и комбинация УО и VQ с межфреймовым предсказав*ом. В ходе процесса кодирования >ытаются применить оба метода, чтобы квантовать LSPs. и какой метод должен быть применен, определяется сравнением ошибки квантования. Ошибка квантования вычисляется как взвешенное Евклидово расстояние. Коэффициенты взвешивания w[] следующие
74
ГОСТ Р 53556.3—>2012
1)
где Nd — порядок анагмза LP !pc_order и tsp[] являются LSPs. преобразованными из LPCs.
Квантователь первой стадии — для каждого метода квантования. LSPs квантуются при использовании коан тователя разбитого надвое вектора, и соответствующие индексы сохраняется е |зс_ indices [0] и (pc_indices [1]. Чтобы выполнить отсроченное решение, два индекса сохраняются ках кандидаты на вторую стадио. Ошибка квантования в первой стадии &г1[] дается выражением
ел1[л] = £ |{tep[sp+r| — fep_tof|n][/n]l»lf w[sp+/|| n»ai..
где п — число вектора раэбиежя. т является ждексом вектора разбиения кандидата, sp — порядок стартового LSP л-го вектора разбиения, и dim является размерностью л-го вектора разбиения (сы. табгмцу В.5).
Таблица В.5 — Порядок запуска и размерность вектора LSP первой стадж
Номер еекюре расщепления л |
Стартовый порадос LSP: ар |
Размерность вектора: d яп |
0 |
0 |
5 |
1 |
5 |
5 |
»И«
<*=0)
fepioj lsp[T\ — top 10] fePt’l — fcPl’-Ч + tepji + 1] — tep(f] <1 < N? ~ 1)
fePlWp — t] — bplNc, — 2] + 10 — &pV — 4 0 * Np ‘
Во второй стадии вышеупомянутые два метода квантования, которые являются также квантователями вектора с разбиением надвое, примвнеж соответственно. Полные ошибки квантования во второй стадж подсчитываются для всех комбинаций кандидатов первой стадии и кандидатов второй стадии, и выбирается тот. у которого минимальная ошибка. В резутътате определяется индексы первой стадж и соответствующие индексы, и знаки для второй стадии сохраняются в fcc_mdicesJ2] и ljpe_»dces[3]. Флажок, который указывает выбражый метод квантования, также сохраняется в ipc_<nd>ces{4]. Ошибка квантования во второй стадии en2_total дается выраже-тем:
VO без межфреймового предсказания: err2_totaS = err 2(0] + «72(1}
еп2[п] = £ |(jtsp_resf5p+/| — 51рп[л{-Р_Ш[л] [л))[/]]г-и'[5р+г]| п=(Х1 Isp_ras[sp + /] = &p[sp + i] — lsp_first[sp ♦
где isp_first{] является тванговажым вектором LSP первой стадии, п — число разбиения вектора, m является индексом вектора раэбиежя кандидата, sp — стартовый порядок LSP л-го вектора разбиения и <tm является размерностью л-го вектора разбиения.
VO с межфреймовым предсказанием:
err2_total = егт2(0] + вп2[ 1]
егг2[л] = £ |(/sp_pres|sp+/j — адл(л| рр_(Ы(л] Jm|[/]J2-n’|sp + ;|j л=0,1 (sp_pres[sp + j] = tep[sp + i]-
{(1 — ratio_predict) ■ lsp_fkst[sp * r] + ratio_pradict ■ Isp_previous{sp * j]}. где lsp_first{J является квантора ■ им вектором LSP первой стадж. л — номер вектора раэбиежя. m является индексом вектора раэбиежя кандидата, sp — стартовый порядок LSP л-го вектора разбиения. Фп является размерностью л-го вектора разбиения и ratio_pradictsQ.5 (см. таблицу В.6).
75
ГОСТ Р 53556.3—2012
Таблица В.6 — Порядок запуска и размерность вектора LSP второй стадии
Ноыар аестора расщеплена*: п |
Стартовый порядок LSP: *Р |
Раамермость вектора dim |
0 |
0 |
5 |
1 |
5 |
5 |
Квантованные LSPs tsp_current[] стабилизированы, чтобы гарантировать стабильность фильтра синтеза LPC. который получен из квантованных LSPs. Квантованные LSPs упорядочены, имея расстояние, по крайней мере, ткг_дар между смежшми коэффициентами. for р — О: i < lpc_order; t*+)
{
if ftsp_curren(fi) < minjgap)
{
fsp_curmntfi] s mmjgap:
}
}
for (i = 0: i < fpcjordar — 1: •+*)
{
if (lsp_currentfi+ 7] — fsp_currantfi) < min_gap)
{
tsp_currartft* 1) = lsp_corrantfiJ+minjgap:
}
}
for Q — Or / < lpc_order; t++)
{
if (bp_currentfi) > 1-min_gap)
{
isp_currert(i] = 1-min_gap:
}
}
for (i = lpc_order — 1: i > fit i- -) if Qsp curront{i}-lsp_curTent{i—1] < min gap)
{
tsp_currantp—1] = tsp currertfi}—min gap:
}
}
где mn_gap = 2.0/256.0
После процесса квантования вантованные LSPs в каждой подфрейме ли1 ю*кю интерполируются. for (п — 0; л < nro(_so6frames; n++J
{
rabo_sub={n+1 )/nrof_subframes; for (i= 0:i < фс_ order /++^
{
lsp_subframe[n}{if={( 1 —
ratio sub}‘l$p_previous[i}*rabo_sub4sf>_curront[i])};
}
}
Интерполированные LSPs конвертируются в LPCs. используя вспомогательную функцию Convar&IpcO-for (n — 0: n < rvof_subframes; n++j
{
Corrver12fpc(ipc_order. isp_subhame[n}. nt_Qlpc_coefficients + n’lpc_orderj).
}
После вымело*um коэффициентов LPC текущие LSPs должны быть сохранены в памяти, так как они используются для интерлолпры в следующем фрейме. for Q — О: i < Нх order, г*-*)
{
Isp_pravious[i] = fep_curTer>//i7;
}
76
ГОСТ Р 53556.3—>2012
Сохраненные LSPs tsp_provious{] должны быть инициализированы. как описано ниже, когда инициализируется весь кодер.
for (i = О: i < lpc_order; t**)
{
isp_prBviousp) = (i+1) / (lpc_onfer+1):
}
B.6-2 Инструмент квантования широкополосного LSP B.6.2.1 Описание инструмента
Инструмент квантования широкополосный LSP квантует коэффициенты LPC как параметры LSP. используя методику двухступенчатого и с разбившем вектора квантования.
В.6.2.2 Определения Вход
lpc_coeffiaents\]: Это массив размерности lpc_order. содержит коэффициенты текущего неква-гтоаанного
LPC.
Выход
/п(_Офс_соеЛ$с*ел/5[): Это массив длины nrof_subframes * фс_ order. содержит м-лерпогырованные и квантованные коэффициенты LPC для каждого подфрейма. Коэффициенты LPC для каждого подфрейма расположены в стеке друг за другом, образуя массив nrot_subframes * lpc_order.
/pc_«*ces(]: Это массив размерности nixn_lpc_fn&ces. содержит упакованные индексы фс. которые лрит-сам потоку бит.
Конфигурация
/рс_ order Это поле содержит порядок LPC.
numjpcjndices: Эти поля указывают число упакованных кодов LPC n_lpc_anafysis: Это поле содержит число параметров LPC nrof_subframes. Это поле содержит число подфреймов В.6.2.3 Процесс кодирования
Схема квантования основана на узкополосном квантовании LSP. Квантоватегъ состоит из двух блоков квантования. соединении параллельно, каждый из которых идентичен инструменту узкополосного квантования LSP. Входные LSPs делятся на дев части, а именно, нижняя часть и верхняя часть, затем раздело кто LSPs вводятся в блоки квантования соответственно.
Во-первых, нижняя часть квантуется тем же самьш способом как узкополосное квантование LSP. Стартовый порядок и размерность векторов LSP описаны в таблицах В.7 и В.8. Квантованные LSPs сохраняются в массиве lsp_current_lowerfj.
Таблица В.7 — Стартовым порядок и размерность вектора LSP подвой стадии
Номер вектора расщепления п |
Стартовый порядок ■мжяого ISP sf> |
Размерность вектора dm |
0 |
0 |
5 |
1 |
5 |
5 |
Таблица В.8 — Стартовым порядок и размерность вектора LSP второй стадии
Номер ееетора расщепления о |
Стартовый порядок ■якжнего LSP вр |
Размерность вектора dm |
0 |
0 |
5 |
1 |
5 |
5 |
Затем, тем же самым способом квантуется верхняя часть. Стартовый порядок и размерность векторов LSP описаны в таблице В.9 и таблице В.10. Квантованные LSPs сохраняются е массиве lsp_current_upper Q. В квантовании верхней части индексы подвод стадии сохраняются в 1рс_гкИсев [5] и /pc_inc4ces [6]. а индексы и знаки для второй стадии сохраняются в фс_(т?<*св5 [7] и фс_яхйсе$ (8}. Флажок, который указывает выбранный метод квантования. таюке сохраняется в fxjndicas [9].
Таблица В.9 — Стартовым порядок и размерность вектора LSP подвой стадии
Номер вектора расщепления: п |
Стартовый порядок •оркиего LSP. sp |
Размерность вектора dm |
0 |
0 |
5 |
1 |
5 |
5 |
77
ГОСТ Р 53556.3—2012
Таблица В.10 — Стартовым порядок и размерность вектора LSP второй стадт
Номер векторе реешеплеи**: о |
Стартовый порядок верхнего LSP. sp |
Раанермость вектора dim |
0 |
0 |
5 |
1 |
5 |
5 |
Наконец, декодироважыв LSPs lsp_curmnt_low&r[) и lsp_a/rrent_upper{} объединяются и сохраняются в массиве 1зр_сигтеЫЦ.
for Q — О: i< lpc_order/2i*+)
{
isp_currentfi] = Ispjcurrent кхтегр):
}
for {T = Or / < lpc_onter/2i*+)
{
/sp_current(ipc_order/2+i) = lsp_current_upperfi).
}
Квантованные LSPs. bp_comntf) стабишэируются. чтобы гарантировать стабильность фильтра синтеза LPC. который получают из квантора! пых LSPs. Квантованные LSPs упорядочиваются в порядке воэрастагмя. имея расстояние, по крайней мере. тп_дар между смежными коэффициентами for 0 — О; i < fpcjxder: /++)
{
И flspjajtrentfi) < mm_gap)
{
lsp_currer*fi} = топ gap;
}
}
for fr = 0r / < lpc_order — f; t*+)
{
if (Ьр_сигголф+ ?] — Ьр_сиггъпф] < mm gap)
{
tsp_currertfi*1) = lsp_corrBalffi+min_gap:
}
}
forfi = 0; i < lpc_orden
{
if flxp_ri irrontfi] > 1—min пял)
{
lsp_curmntfi} = 1-rrwi_gap:
}
for (i = /pc_order — 1; i> 0: i- -)
{
if flsp_curTbrrtp}-fsp_a*Tent{i—1] < mm gap)
{
tsp_corr9ntf-1) = lsp_corrbntf]—minjgap:
}
}
где tpc_order = 20 и min_gap = 1.0/256.0
После процесса квантования квантованные LSPs линейно интерполируются в каждом подфрейме, for (л = 0; л < nruf_subframes; п++)
{
rabo_sub={n+1 )/nrof_subframes; for (i= 0:i < fpc_ordec /++J {
lsp_subframe[n}{i]={(1-
ratio_sub) «lsp_prevtous{i]+ratio_stJb *lsp_ctxrent{>])):
}
}
Интерполированные LSPs преобразуются a LPCs. используя вспомогательную функцио Convort2lpc Q. for (n -0;n< nrof subframes: n++)
{
78
ГОСТ Р 53556.3—-2012
Coryvert2fpc(lpc_order. Isp_subframe(nj. ini_Qtpc_coefficwits * n‘^x_orderJ):
}
После вычисления коэффициентов LPC текущие LSPs должны быть сохранны в памяти, так как они используются для интерполары в следующем фрейме. for 0 = 0: i < Ipcjorder; i++)
{
Isp_previousfi} = isp_ajrrent(i}:
)
Сохраненные LSPs. Isp_prevrous[}, должны быть гмщиагмзированы как описано ниже, когда инициализируется весь кодер.
for (i = 0: i < Ipc order: H-*)
{
Isp_proviousfj = (i*1) / (lpc_arder+1):
}
B.6.3 Инструмент квантования LSP с масштабируемой полосой пропускания B.6.3.1 Описание инструмента
Инструмент квантовамгя LSP с масштабируемой полосой пропускаться квантует входьые LSPs с частотой дискретизации 16 кГц. испогъзуя схему векторного квантования с внутрмфреймовьш и межфреймовым предсказанием.
В.6.3.2 Определения Вход
!pc_axfficients[]: Это — массив размерности lpc_otder. содержит текущие нетвантоеашыо коэффициенты
LPC.
(sp_current(}: Этот массив содержит декодирооа! ■ ыо параметры LSP. которые норыагыэоеаны в диапазоне от нуля до PI. а тструменте узкополосного квантор»»т LSP. Эти параметры получают как промежуточные параметры в процессе узкополосного квантования LSP и отправляют на инструмент декодирования LSP с масштабируемой полосой пропускания Выход
int_Офс_сoeffioerts[]: Это массив длины nro/_subframes ‘ kpcjxder. содержит интерпогырованные и квант о-ванше коэффициенты LPC для каждого подфрвйма. Коэффициенты LPC для каждого подфрейма расположены в стеке один за одугим. образуя массив nro/_subframes * lpc_order.
Ipcjndiceslf. Это массив размерности numjpcjnrtces. содержит упакованные индексы Ipc. которые приписаны потоку бит.
Конфигурация
fpc_order. Это попе содержит порядок LPC
num_lpc_tndK9s: Эти поля указывают число упаковажых кодов LPC n_ipc_anatysa: это пале содержит число параметров LPC nrof_subframes: Это попе содержит число подфреймов
nrof_subframes_bws: Этот параметр является переменной справки, представляет число подфреймов в уровне масштабируемой полосы пропускания.
В.6.3.3 Процесс кодирования
Входные LSPs с частотой дискретизации 15 кГц {input_lsp{J) являются векторно-квагтоеанньпм методом внутрифрейнового и межфреймового предсказания. Модугь анутрифреймового предсказания производит оценочные LSPs. преобразовывая квантованные LSPs, полученные в кодере CELP с частотой доосретизации 8 кГц. Кроме того, для более точного предсказания также используется предиктивный VQ межфреймового скользящего среднего. Остаточте LSPs предсказания (e/r_tsp£/) выделяются следующим обрезом: for 0 -0:i< 20: t*+)
{
err_tsp[i] = (inputjsppj — pred_tspfij) / bws_ma_prddf0][i):
)
for (n = 1: n <= 2: n**)
{
for(i = 0:i< 20: i++)
{
prad_lspp} += bws_ma_prdctfngi)4sp tMrs_bofJn}fi]:
}
}
for (i = 0: i < 10:i*+)
(
79
ГОСТ Р 53556.3—2012
pred_tsp[ij += bws_nw_prdctfiJ4sp_currertf^;
}
где pred_lsp{] содержат предсказанные LSPs. bws_tna_prdctU[] и bws_nw_prdct(} являются коэффициентами предсказания для мвжфреймоеого предсказания скользящего среднего и внутрифреймоеого предсказания соответственно. Isp_bws_bufl](] является буфером, содержащим остаток предсказания LSP в предыдущих двух фреймах.
Тогда. err_lsp(] являются векторно-квантованными, используя схему двухступенчатого и с разбиением вектора квантования, и соответствующие индексы сохраняются в fc>c_«06c&s(5J…. фс_глс*се5(10]. Буфер fst>_bws_bufjj(l сдвигается для операции следующего фрейма следующим обрезом: for(i = 0:i< 20: r++J {
tep_ bws_ buff0}p) = errjspfi}:
}
for(n =2; n >0:n—)
{
for (i = 0; i < 20; t*+)
{
tsp_bws_buffn)(ij = tsp_bws_buf}n-
}
)
После процесса квантования квантован»*» LSPs (lsf>_bws_current{J) линежо ингерпогыруются в каждом подфрейме.
for (п • 0; п < nrot_subframes_bws: п+*)
{
rebo_sub = (n+iynrof_subframes_bws: forfi = 0; i < 24pc_order. /’++>
{
lsp_bws_subframe{ngi]=((1-rabo_sub) ‘lsp_bws_previousp]
+ rabo_sub’lsp_bws current^}):
}
}
for p — 0: i < 2*fpc order t**)
{
lsp_bws_previousfi] = lsp_bws_subframefnmf_subframes_bws-1]p}:
>
Интерполиров»**» LSPs конвертируются в коэффициенты LPC в каждом под фрейме. for (п -0;п< nrof_subframes_bws: n++J
{
Convef12lpc (IpcjorderJbws. Isf>_bws_subframe{nj.
&*Tt_Q}pc_coeffidents{n’)pc_order_bws]):
}
B.6.4 Тонкое управление скоростью в инструменте квантования LSP В.6.4.1 Описание инструмента
Тонкое управление скоростью (Я/7С) доступно с применением инструмента квантования LSP. Если испогъ-эуется FRC. массив tpc_coefficrents{} содержит коэффициенты LPC следующего фрейма, который является фреймом. следующим после обрабатываемого в данное время фрейма. Принимается решение, передавать ли LSPs обрабатываемого в настоящее время фрейма е декодер. Согласно решению. interpotation_fiag и LPC_presert устанавливаются в 1 или 0.
В.6.4.2 Определения Вход
$>с_сое№сюпОД: Это массив размерности lpc_order. который содержит коэффициенты текущего не квантованного LPC Выход
int_Qlpe_coefScients{J: Это массив длины nrof_subframes * lpc_order. который содержит жтврпогмрованн*» и квантованные коэффициенты LPC для каждого подфрейма. Коэффициенты LPC для каждого подфрейма расположен*! в стеке одж за другим, образуя массив nmf_sobframes * lpc_order
lpc_indtces(]’. Это массив размер»юсти num_lpc_mdices. содержит упакован**» индексы /рс. которые записаны в потоке бит
Ыегро1аИоп_Яэд: Это попе указывает, выполнена гм интерполяция коэффициентов LPC между фреймами. Если флажок интерполяции установлен, текуие» коэффициенты LPC вычислены из предыдущих и следующих коэффициентов LPC
LPC_Present Этот флажок указывает, закончен ли текущий фрейм или неполон
80
ГОСТ Р 53556.3—2012
В.6.4.3 Процесс кодирования
Решение о том. передавать ли коэффициенты LPC анализируемого речевого фрейма на декодер, зависит от количества различи d между спектром текущего фрейма и спектрами смежных фреймов. Если d больше, чем заданный порог, тогда коэффициенты передаются в декодер. Этот порог далее сделан зависящим от установки желательной битовой скорости следующим образом: порог поднят, если фактическая битовая скорость выше, чем установка желательной битовой скорости, а иначе — понижен В.7 Фильтр анализа CELP LPC В.7.1 Описание инструмента
Инструмент фильтра анализа CELP LPC подает входные сигналы через фитътр с коэффициентами LPC и возвращает остаточный сигнал.
В.7.2 Определения Вход
PP_tnputSignaЦ): Этот массив имеет размерность sbfrm_size и содержит входной сигнал int_Qlpc_coef6cienis[]\ Этот массив имеет размерность lpc_order и содержит коэффищюнты LPC Выход
!pc_msiduaf(]: Этот массив имеет размерность sbtrm_stze и содержит фильтрованный остато*кмй сипел
LPC
Конфигурация
fpcjorder. Эго поле указывает порядок LPC
sbfrm_&ze: Это поле указывает *еюло отсчетов е одном подфрейме В.7.3 Процесс кодирования
Входной сигнал фильтруется, используя коэффициенты фильтра. for (к — О: к < sbtrm_size: к* *)
{
fmp = PP_lnputSignafk}: for (/= 0;j< lpc_order. J*+)
{
Imp = Imp — int_Qfpc_coeffiaentsSJ * РЛег_ Slatesfj);
}
lpc_restdoa%k] = imp: update FMer_States:
}
Начальные состояния фильтра установлены на куль.
В.8 Модуль взвешивания CELP В.8.1 Описание инструмента
Модуль взвешивания CELP вычисляет значения, которые будут примочены к коэффициентам LPC.
В.8.2 Определения
В*пд
tpc_coefficientsl]: Это массив размерности tpc_order. содержащий коэффициенты LPC датта_пипг Это поле содержит коэффициент взвешивамся чистыхеля gamma_deer. Это поле содержит коэфф»щивнг взвешивания знаменателя Выход
Wnumjcoefftf. Это массив размерности Wnumjorder. содержащий взвешенные коэффициенты чюлителя Wdenjooefff}. Этот массив имеет размерность Wden_order и содержит взвешенные коэффициенты знаменателя
Конфигурация
fpcjorder. Это поле содержит порядок LPC В.8.3 Процесс кодирования
Взвешенные юэффтрюнты числителя вычисляются согласно выражению: for (к — 0: к < Wnum_order к**)
{
Wnum coeffpi] = lpc_coefTraentspfJ * gamma_nun?’1;
)
Взвешенные коэффициенты з*вменателя вычисляются согласно еьраженюо. forpt- 0: к < Wden order. к*+)
{
Wden_coefffk] = lpc_coefficients[k} ‘ gamma_den*’‘’:
}
B.9 Анализ возбуждения CELP
Анагмз возбуждения CELP вычисляет векторы формы и усиления, а также декодированный сюгтезирооэн ный речевой сигнал. Для модулей анагыза возбуждения определены возбуждение регулярным импульсом (ЯРЕ) и ыультиимлульсное возбуждение (JMPE).
81
ГОСТ Р 53556.3—2012
В.9.1 Возбуждение регулярным импульсом В.9.1.1 Описэню инструмента
Для возбуждения регулярным импульсом выходом анализа возбуждения являются shape_detay\), shapejndex\\ и ga<n_«ndices(l. Индексы формы и усиламя генерируют каждый подфрейм. Вектор sftepe_de<ayf] содержит задержху адаптивной книги шифров для каждого подфрейма, в то время как вектор sftape_mdex[j содержит индекс фиксированной книги шифров. Вектор ga*)_indrces{0)(! содержит усилете адаптивной книги шифров для каждого подфрейма. Усилемю фиксированной книги имфров для каждого подфрейма сохраняется в векторе ga*)_imftces{1H]-В.9.1.2 Определения Вход
PP_xipu/Sfgna(/: Этот массив содержит предобработанный входной сигнал и имеет размерность sfrm_size lpc_r&sjduat{]-. Этот массив содержит остаточный сигнал фс
int_Qipc_coeffioents[]: Этот массив содержит коэффициенты интерполироватого и квантованного LPC
Wnum_coefffJ: Этот массив содержит коэффициенты фильтра взвешивания «мспителя
Wder_coeff[]’. Этот массив содержит коэффициенты фильтра взвешивания хаменателя
first_or6erJpc_раг. Эго поле указывает первый коэффициент LPC
tag_candkiatesl): Этот массив содержит кандидатов задержки
signa/_mode: Это попе содержит флажок речевой’неречееой
rmc_irKtox: Это поле определяет индекс для мощности сигнала
Выход
sftepe_<feJa>1): Этот массив имеет размерность rmf_subframes. Он содержит задержку книги шифров для адаптивных книг шифров
sftepe_jncfex1). Этот массив имеет размерность nrof_sub(rames. Он содержит индексы формы для фиксированное юыг шифров
pa«n_indt<ces{g]: Этот массив имеет размерность 2 * nrof_subframes. Он содержит индексы усиления для адаптивной и фиксированной книг шифров
decoded_exdtaUon[|: Этот массив имеет длину sbtrm_size и содержит синтезууемый речевой сигнал Конфигурация
n_lag_candtdafes: Это поле ухазьеает число кандадатов задержки frame_size: Это поле указывает количество отсчетов в одном фрейме sbfrm_s/ze: Это попе указывает количество отсчетов в одном подфрейме nrof_subframes: Это попе указывает число подфреймов в одном фрейме ipc_order. Это поле указывает порядок LPC В 9.1.3 Процесс кодирования
Все блоки выполнены на основе единой для подфрейма базы. Для каждого подфрейма выполняются следующие шаги:
перцепционное взвешивание.
прелнаритАгммй ewfinfi плитка дддптигк тй книги шифрпв
поив адаптивной книги шифров.
предвэритегъмый выбор поиска фиксированной книги шифров, поив фиксированной тиги шифров, моделирование декодера.
Затем каждый шаг будет описан подробно. Для удобства вместо int_Qlpc_coetficients[\ используется ад(]. таким образом эд{] содержит квантованные коэффициенты LPC для рассматриваемого подфрейма.
Перцепционное взвешивание выполняется фильтрацией входного сигнала PP_lnpvtStgnal{] следующим фильтром:
AW A(z!у)
Kfcortot-л
1- I aqlk\zk-‘ _*-о_
|»СО#0»Г-1
1- I aglft]-/*1-*-*’1
«•о
при у = 0.8. Получающийся сигнал называют wsfnj.
Отклик на нулевой ехед zfn| определяется вычислением отклика S(z) на входной сигнал с нулевым значением.
S(z) =
1
_1_
Jbcawr-i
1- I aQl*]-y**,-z’*-1
ft>0
где у = 0.8. 82
ГОСТ Р 53556.3—>2012
Взвешенный целевой сигнал t[nj получают вычитающем z[n} из tvs/л/: for (л -0:п< Mm; п++)
{
Цп] = ws[n) — zfn}:
)
Импульсная передаточная фумщия /t/л/ вычисляется следующим образом: for (к — О; к < lpc_order к**)
{
tmp_stales(k] = 0:
/
Imp = 1.0:
for (л — О: п < sbhmjsize; п**}
{
д = 0.8:
for (к -О: к < lpc_order: к**)
{
tmp = Imp * aqfkfls} * д ‘ tmp_statesfk}; д * 0.8 ‘д:
}
Л/л/ = tmp:
for (к- lpc_order-1: к > О: к- -)
{
tmp_statesfk) = tmp_sta tes[k- 1J:
}
tmp_staiesfOf = tmp:
}
После вышеупомянутых вычислений выполняется предварительная выборка в адаптивной юмге шифров. Адаптивная книга шифров содержит 256 последовательностей ими шифров, из которых 5 предвыбрэны. Пред-вэритегъная выборка достигается, оценивая элемент (для 0 <= / <Lm и 0 <- i <nrof_subframesy.
(мы sa« • i
£ са J/.min + i • sbfrm_size + I — 3 — л — l] fajnj
’ •’—1:5-щгигп\-
где
Lm — 1
Г sbfrm
size —
и ca(Lm»n + i sbfrm_size +31 — л-1] и /э(л). представляющих последовательность книги шифров при задержхе (Lmin+j sbirm_size*3f) и «фильтрованном в обратном направление целевом сигнале Цп]. соответственно.
Обратная фильтрация вкпочает обращение времени tfnj. фильтрацмо S(z) и снова обращение времени. Lmm — мюымалывя задержка в отсчетах. Значение Lmin равно 40.
Еар. Lm*!} является энергией той последоватегъности ими шифров, фильтрованной фильтром синтеза уменьшенной сложности Sfl(z). которая является оценкой первого порядка фильтра синтеза LPC S(z):
лр
1
1 — и ■ у •
Первый коэффициент LPC фрейма берется для а. В зависимости от номера под фронт, который рассматривается. первый коэффициент LPC текущего или предыдущего берется, используя следующее: if (subframe_numbor < nr_svbframes/2) а = prev_a; else {
a = cvr_e:
}
После оценки rapf) выбираются максимагъно 5 последовательностей совместно с их 2 соседними последовательностями. приводя к 15 кандидатам, к которым применяется полный поиск. Индексы предвыбранмых последовательностей и их соседей сохраняется в *э£/(0 <= г<15).
Поио адаптивный книги шифров минимизирует среанеквадратическую взвешенную оимбку между оригжалом и восстановленный речью. Эго достигается поиском индекса г. максимизирующего элемент
83
ГОСТ Р 53556.3—2012
гэ(г) =
»Ыт tat-i
1 ‘М-гИМ
А»0
sbtrm ^ 1
X у2 ИИ
■ •в
Сигнал t[n) представляет взвешенный целевой сигнал. y[rjfn] — свертка последовательности сераfr)-n-1) с импульсной пвредэтсмной функцией hfnj. Индекс (ie{rf-Lmin) максимума обозначен как shape_de(ay \subtrame]. После определения индекса коэффициент усиления вычисляется согласно
г&гт _иг» -1
£ *И-у’М
® ~ KBttm км . 1
I у2 И
я*0
при у” [л] равном свертке cap*Lmin-n-1Jch(nJ. Коэффициент усилетя квантуется неоднородным квантователем:
(or (/ ~ О; abs{g) > сba_gain quantQJ && j < 31: j ++): if(9<0)
{
6a = -cba_gam{j}; gam_indices{0) = (((-j — 1)) & 63):
}
Else
{
6a = cba_gan&:
бал indicesfOJlsiAframe) = j:
}
Квантованным коэффициент усиления называют 6а. С помощью &ftape_de/ay(] и 6а вычисляется вклад pfn] адаптивной книги иыфров согласно
р{п) = Ga y ‘{п}.
Вклад р[пI адаптивной книги шифров вычитается из взвешенного целевого сигнала tfn), чтобы получать остаточный сигнал efn):
в W = t[nf— р /л/. 05л <аббтл_ size.
Остаточный сигнал е(п] «фильтруется е обратном направлении», чтобы получггь tffn]
Поиск фиксированный книги шифров также состоит из предварительного выбора и фазы выбора. Для огм6ужл**кея фикгирпвямной «миги имфрпя игяппняуитг» РРР-*кыга шифров Кажлый ммгтпр «миги шифров ш»п ет sbfrm_size импульсов, кэ которых Np импульсов могут быть с амплитудой +1. 0 или -1. Эти Np импульсов позиционируются в регулярную сетку, определенную фазой р и междуимпульсньш промежутком D таким образом. что позиции сетки равш р* Di. где / между 0 и Np. Оставшиеся lsbfrm_size-Np) имгтугъсое являются нулевыми. О и Np зависят от установок битовой скорости, как дано в табгиде 87.
Чтобы уменьшить сложность, локальная РРЕ-книга шифров генерируется для каждого подфрейма, содержащего подмножество 16 входов. У всех векторов этой локальной RPE-книги шифров одна и та же фазе Р. которая вычисляется следующим образом: max = 0:
(or (р = 0:р < D: р++)
{
tmp_max = О: tor(l-0;t<Np-1:t**)
{
tmp max +» abs(tf[p+D ’ (]);
{
if (bnp_max > max)
{
max = tmp max:
P = p.
}
)
Определив фазу P, нужно чтобы амплитуда импутъса 1,0<=/<Wp была нулем, или равной знаку соответствующего отсчета tf [л]. Знак сохраняется в атр{1\ следующим образом:
(or (1 = 0; К Np: (+*)
{
84
ГОСТ Р 53556.3—>2012
атрЮ = *дп(гГ(Р + 0’ф:
)
где знак равен +1 для эначешм. больших 0 и -1 — в ином случае.
Для импульсов Np-4 возможность нулевой амплитуды исхлочена априорно в тех поэмдиях. где О (л] максимален. Поэтому испогъзуется массив pos[]. который имеет следующую семантику:
pos(I] = 0 указывает, что возможность нулевой аышыгуды включена для импутъса I. pos(I] = 1 указывает, что возможность нулевой амгомтуды исключена.
Чтобы определить массив ровЦ. используется следующий алгоритм:
1. Инициализировать post] нулями,
2. Определить л таким образом, чтобы выполнялось ate(tf [Р + D * п])> = ate (tf [Р ♦ О * fl) для всех i не равных л.
3. pos{n] = 1,
4. tf\P*D‘ni = 0.
5. Продолжить с шагом 2, пока не фиксируются Ыр-4 позм^ий.
На основе Рагтф(] и pos генерируется локальная РРЕ-книга шифров cf[k%n], используя следующий алгоритм: for (X = 0; к< /&■*++>
{
for(n-0:n< $bfrm_size): п++)
{
}
)
for 0-О; К Ыр; /++)
{
cffl)}(P+D’I}=ampp}:
}
т = 1:
for 0 = 0: К Ыр: )**)
{
if (posp]==0)
{
с-т:
k»f(q-0:q<e;q**)
{
for fn = ft л < Np: n++)
{
сЦт](Р+ОЪ1 = cffqffP+D «л/.
}
cffm+*-ffP+D’l} = ft
}
}
)
На основе локальной РРЕ-книги шифров предварительно выбираются 5 векторов из 16 для поиска с обратной связью. Предварительная выборка достигается путем оценки элемента для О <= * <16:
(«Млп \2
I Cf[*||n| tf[rt]
—'»a ЕП1]—
с сфМ представлением вектора локагъной РРЕ-ккиги шифров. Bf[k] является энергией этого вектора пита шифров, фильтрованного фильтром синтеза уменьиинкюй сложности Sjz). Индексы предвыбранных векторов сохраняются а Щф
Используя эти предвыбранные индексы, выпотяется поиск фиксированный книги шифров с обратной связью. С помощью поиска фиксированной книги шифров с обратной связью разыскивается индекс г. максимизирующий элемент
Шт *d*-1
rf[r]«2‘Gf- 1 •И*УМИ-«а—
л *0
ibfrm U34 ~1
I У2 ИМ.
л-е
85
ГОСТ Р 53556.3—2012
Сигнал е{п] представляет остзтмшй сигнал поиска адаптивной ю-мги шифров, а у(г](п] — свертка с
импульсной реакцией h{n]. Gf — квантованный коэффициент усилетя д. который определяется согласно
9 =
КМЮ -1
1 вИуИ(п]
я-0_
«Млп *в*-1
1 У21гЦп]
я-в
Процесс квантования усиления фиксированной от шифров дается ниже, где 6р — предыдущее квантованное усиление фиксированной книги шифров. if (fksi subframe)
{
forfm = 0: g > cbf_gain_quant{m} && m < 30: m **);
Gf = cbf_gain(mj:
}
else
{
g-g/Gp:
for(m -0:g> cbl_gain_quanl_dilfm) &&m< 7: m ++): g — Gjp * сЫ_да/п dUffmJ:}
}
gam_indices{0} = m.
Представления cbf_gam и сЫ даю <fif даются в табгмце 89 и таблице 90: табтещы квантования сЫ gain Quart и cb(_gain_Quant_ctf даются ю«же.
Наконец, декодер моделируется, вькюгмяя следующие шаги: подсчггывается возбуждение фмссироеанной книги шифров, суммируются возбуждение фиксированной и адаптивной книг шифров, обновляется память адаптивной книги шифров, обновляется память фильтров.
Детальное огмсание этих шагов приводится в декодере.
Табгмцы В.11. В.12. В.13 используются для квантования усиления
Таблица В. 11 — Табтщэ квантования для усиления адаптивной книги шифров
Индекс |
C6e_9»m_quart |
О |
0.1622 |
1 |
0.2542 |
2 |
0.3285 |
3 |
0.3900 |
4 |
0.4457 |
5 |
0.4952 |
6 |
0.5425 |
7 |
0.5887 |
в |
0.6341 |
9 |
0.6783 |
10 |
0.7227 |
11 |
0.7664 |
12 |
0.8104 |
13 |
0.8556 |
14 |
0.9005 |
15 |
0.9487 |
Индекс |
С6е_9* «_еиеп( |
16 |
0.9989 |
17 |
1.0539 |
18 |
1.1183 |
19 |
1.1933 |
20 |
1.2877 |
21 |
1.4136 |
22 |
1.5842 |
23 |
1.8559 |
24 |
2.3603 |
25 |
3.8348 |
26 |
7.6697 |
27 |
15.339 |
28 |
30.679 |
29 |
61.357 |
30 |
122.71 |
31 |
245.43 |
86
ГОСТ Р 53556.3—2012
Таблица В.12 — Таб/ыца квантования для усиления фиксированной nwm шифров
Индекс |
Cb/_gam_quant |
Индекс |
СЫ_дат_диап1 |
|
0 |
2.4726 |
16 |
82.3374 |
|
1 |
3.1895 |
17 |
95.3755 |
|
2 |
4.2182 |
18 |
109.8997 |
|
3 |
5.6228 |
19 |
126.3037 |
|
4 |
7.3781 |
20 |
144.3995 |
|
5 |
9.5300 |
21 |
165.5142 |
|
б |
12.1013 |
22 |
190.9742 |
|
7 |
15.2262 |
23 |
220.6299 |
|
8 |
19.0319 |
24 |
258.2699 |
|
9 |
23.6342 |
25 |
305.5086 |
|
10 |
29.1562 |
26 |
368.5894 |
|
11 |
35.3606 |
27 |
453.5156 |
|
12 |
42.8301 |
28 |
573.6164 |
|
13 |
51.1987 |
29 |
801.6422 |
|
14 |
60.6440 |
30 |
9999.9 |
|
15 |
70.9884 |
31 |
||
Таблица В.13 — Таблица квантования для разностностного усиления фиксированной ю-мги шифров |
||||
Индекс |
Cbf_g*m_quaal |
Индекс |
Cbf_gam_guanl |
|
0 |
0.2500 |
16 |
1.3356 |
|
1 |
0.5378 |
17 |
1.8869 |
|
2 |
0.7795 |
18 |
4.2000 |
|
3 |
1.0230 |
19 |
9999.9 |
В.9.2 Мультмимлульсиое возбуждение В.9-2.1 Описание инструмента
Для кодера CELP, базирующегося на мульти импульсном возбуждаем, выходом анажза возбуждения является sjgna/_mode, rmcjndex. &hape_de#3yt). shape_pos/tions[]. s/iape_»gns{] и gain_tndex[). Коэффициенты формы и усиления генерируют каждый подфрейм. Вектор s/iape_de/ayf] содержит задержку адаптивной книги шифров для каждого подфрейма. в то время как векторы sSiape_positions{] и shape_s<gns{] содержат позиции импульса и знаки соответственно. Усиление адаптивной книги шифров и мультиимпульсное усиление для каждого подфрейма представляют собой вектор, квантованный и сохранений в векторе gam_indexf}.
В.9 22 Определения Вход
PP_wiputSignaf}: Этот массив содержит прадобреботанный входной сигнал и имеет размерность sfrm_sae int_Qipc_coeiTioents(]: Этот массив содержит коэффициенты интерполироваьмого и квантованного LPC Wnumjcoefftf. Этот массив содержит взеешение коэффициенты фильтра жслигеля Wden_coeff[f: Этот мэсоге содержит взвешенные коэффициенты фигьтра знаменателя Выход
signal_mode: Эго поле содержит флажок голосовой/неголосоеой rmcjndex: Эго поле определяет индекс для мощности сигнала
s/>ape_d6/ayQ: Этот массив имеет размерность nmf_subframes. Он содержит задержку книги шифров для адаптивной и фиксированной книг шифров
s/>ape_positfons(]: Этот массив имеет размерность nrof_sut/rames. Он содержит позиции импугъса s/jape_s#gns[J. Этот массив имеет размерность nmf_subframes. Он содержит знаки импульса gatn_rtdex[): Этот массив имеет размерность nrnt_subframes. Он содержит квантованное усиление вектора для адаптивной пеки шифров и мультиимпульса
87
ГОСТ Р 53S56.3—2012
Конфигурация
frame_size: Это поле указывает ч«сло отсчетов в одном фрейме st>frm_s/ze: Это поле указывает «мело отсчетов в одном поофрейме nrof_subfr3mes Это попе указывает число подфреймов в одном фрейме lpc_order. Эго поле указывает порядок LPC В.9.2.3 Процесс кодирования
Для кодера режима II сигнал возбуждения извлекается и кодируется на основе анагмза через синтез с тремя шагами, поиска адаптивной м*гм шифров для периодического компонента, поиска фиксированной ими имфрое для непериодического компонента и квантования усиления для каждого компонента. Целевой сигнал получают, вычитая реакцию на нулевой вход фильтров синтеза и перцепционного взвешивания из взвешенного входного речевого сигнала.
Квантование энергии фрейма
Среднеквадратичное (/ms) значение отсчетов входа подфрейма вычисляется в последнем подфрейме Значение /ms скалярно-квантованное по шкале д-law. Значения rms других подфреймов получают лмыейной интерполяцией квантованных эчачений rms в последнем подфрейме текущего и предыдущего фреймов. Квантор») ныв значения rms используются для нормализации усиления.
Оценка шага без обратной связи и решете о режиме
Процедуры разомкнутой (без обратной связи) оценки шага и решения о режиме выполняются совместно каждый интервал анализа 10 мс. используя пврцепциочый взвешенный сигнал. Оценка шага выбирается, чтобы минимизировать квадратичную ошибку между текущим и предыдущим блоками взвешенных входных отсчетов. Усиление предсказания шага вычисляется для каждого интервала анализа. Каждый фрейм классифицируется в оды из четырех режимов, основываясь на среднем усилении пред сказа ыя шага. Режимы О и 1 соответствуют неголосовому и переходному фреймам соответственно. Режимы 2 и 3 соответствуют голосовьм фреймам, и у последнего более высокая периодичность, чем у предыдущего. Если длина подфрейма равна 5 мс. тот же самый шаг оценки используется в двух подфреймах для помеха шага с обратной связью.
Кодирование сигнала возбуждения
Сигнал возбуждения представлен линейной комбинацией адаптивного вектора кода и фиксированного вектора кода, масштабированных их соответствующими усилениями. Каждый компонент сигнала воэбуждетя последовательно выбирается процедурой помеха «анализа через синтез» гак, чтобы перцепционная взвешенная ошибка между входным сигналом и восстановленным сигналом была минимальна. Параметрами адаптивного вектора кода является задержка с обратной связью и усиление. Задержка с обратной связью выбирается в диапазоне. блихом оценочной задержке без обратной связи. Адаптивный вектор кода генерируется из блока прошлых отсчетов сигнала возбуждения с выбранной задержкой с обратной связью. Фиксированный вектор кода содержит носколысо ненулевых импульсов. Позиции импульсов ограничены в алгебраической структуре. Таблица ограничения позиций импульса устанавливается исходя из параметров. Чтобы улучшить производительность, после определения многочисленных наборов кандидатов позиций импульса выполняется комбинаторный помех между кандидатами позиции импульса и индексом амплитуды импульса. Усиления для адаптивного и для мулътиимпульс-ного вектора кода нормализуются и еекторно вактуются. Коэффициент нормализации вычисляется из квантованных коэффициентов LP. квэнговатого rms подфрейма и rms сигнала возбуждения. Кьмга ходов усилетя изменяется в соответствии с режимом.
Поиск адаптивной книги шифров
Для каждого подфрейма оптимальная задержка определяется через анализ с обратной связью, так что среднеквадратичная ошибка между целевым сигналом х(л) и взвешенным синтезируемым сигналом у^п) адаптивного вектора кода минимальна
Е, = X <х(л> » 9t /*(«»*• *вр-в<<<<*+8.
•-о
где (ф — задержка без обратной связи, определенная в анализе шага без обратной связи. д, является оглима/ьным усилением следующим образом
1 *(л)у, (л)
л « 0
в» = *-1 •
I yf («)
л-0
Оптимальная задержка шага закодирована 8 битами, основываясь на соотношении между s/7ape_jfKrtces(0J и задержкой (см. процесс декодирования).
Поиск фиксированной п-мги цмфров
Вектор фиксированной книги шифров представлен позищюй импульса и амплитудами импульса. Поэицм* импульса и амплитуды раэысшваются. чтобы минимизировать среднеквадратичную ошибку между целевым сиг-налюм и взвешенным синтезируемым сигналом.
88
ГОСТ Р 53556.3—>2012
X <хИ — д, у, И — g. ** (n)f.
Л-e
где д, является оптимальным усилением следующим образом:
9k »
w.i
Г.
••о
(х(л) — д, y,(n))zk(n)
Н-1
I *?<«>
Л-В
где к указывает возможную комбинацию s/»ape_xx*ces[ 1 ] и s/iepe_indfces(2) (см. 4.2). Вектор фиксированной книги шифров создается из позиций имгтугъса и ампхмтуд импульса (см. 4.2). Взвешенный сигнал zjn) вычисляется. пропуская вектор ф*мсироо»вюй книги шифров через фигьтр смчтеза LP 1/A(z) и фильтр перцепционного взвешивания W(z).
Квантование усиления
Усиления для адаптивного вектора кода и фиксированного вектора кода нормализуются остаточной энергией предсказания гз и скалярно квантуются. Остаточгая энергии rs вычисляется на основе энерпм фрейма и коэффициентов отражения. Энергия фрейма вычисляется каждый лодфрейм как среднеквадратичное (RMC) значение и квантуется в домене fj-iaw. Коэффициенты отражемгя k(i) конвертируются из интерполированных коэффициентов LPCs int_Qlpc_coe№oants{f. Следовательно остаточная энергия лредскаэа мя (rs) подфрейма равна
п = аЫгт_ teng.emp2 1″|(1 — к2 <)).
i-i
где N0 — порядок анагмза LP. q_amp — квантооавюя амтимтуда RtJC. a sbfrm_ten — опта подфрвйма. Квантование усиления выполняется путем поиска пары коэффициентов усиления, которые миюгмизируют ошибку между целевым и взвешенным синтезируемым сигналом. Ошибка агг , обусловленная квантованием усиления дается выражением:
«Мм во»- 1/ 1
вГТд = X (врСТУдс A(iaPtG^nCB[rn] ЭС_5У°(0
po*sc
1
«Мм дел -1
pow_ac= X ac_ex*(i)
Д.0
pow_sc = X sc_ex*( r).
1-0
где /пил — мчдексы. ac_ex(t) — выбранный адаптивный вектор кода. ac_syn(i) — ситал. который синтезируется из ac_ex(i) и перцепционно взвешивается. sc_ex(t) — выбранный стохэстичеаий вектор кода, и sc_syn(i) — сигнал, который синтезируется из sc_ex(i) и перцепциото взвешивается.
Пара индексов п и гп. которые ьынимизируют ошибку елг0. выбирается и сохраняется е gain_indtces{]. Затем квантованное адаптивное усиление qacg. квантованное стохастическое qscg и сигнал возбуждения decoded. excHal/on(i) вычисляется следующим образом.
decoded. exota6on(/) = qacg • ac_ex(i) + gscg ■ sc_ex(/) (О £ i £ sblrm_Len — 1)
qacg = J ^_
4 * Ypcw.ae
qacg = l 4 * ypotv.sc
■ ;4dap#Ga»nCB[m] RxedGainCSfn]
89
ГОСТ Р 53556.3—2012
В.9.3 Мультмимпульсное возбуждение с масштабируемой битовой скоростью В.9.3.1 Описание инструмента
Выходом анализа возбуждения расширения являются sftape_en/)_posit/ons{]. shap&_enh_signs[] и дакт_елЛ_кх*ех{}. №дексы формы и усиления генерируются каждый подфрейм. Векторы sftape_enb_posffions(] и s/upe_enft_s>gns[| содержат позиции импульса расширены и знаки соответственно. Мультмимпульсное усиламо расширения для каждого подфрейма является скалярной величнной. квантованной и сохраненной в векторе gain_index(].
В.9.3.2 Определения Вход
PP_nputSignal[}-. Этот массив содержит предобрвботанный входной сипчал и имеет размерность sfrm_size int_Qipc_coet6cientsl): Этот массив содержит интерполированные и квантованные коэффициенты LPC Wnum_coeff[]’. Этот массив содержит взвешенные коэффициенты фильтра нклигеля Wden_coefflf. Этот массив содержит взвешенные коэффициенты фигътра знаменателя Выход
srtape_en/»_pos*ons(]: Этот массив имеет размерность nrof_subframes. Он содержит позиции импульса shepe_en/i_signs(]: Этот массив имеет размерность nrof_subframes. Он содерхсит знаки импульса gain_enh_indexl]. Этот маосив имеет размерность nrof_subtrames Он содержит квантованные усиления вектора для адаптивной книги шифров и мультишпульса Конфигурация
n_lag_can<Mates: Это поле указьеает число кандидатов задержки frame_size: Это поле указывает ннсло отсчетов в одном фрейме sb/rm_size: Это попе указывает нюло отсчетов в одном подфрейме nrof_subframes Эго поле указывает число подфроймов в одном фрейме. ipejorder. Это поле указывает порядок LPC В.9-3.3 Процесс кодирования
Вектор фиксированной книги амфрое представлен позиирюй импугъса и амплитудами импульса. Позицм* и амплитуды импугъсов разыскиваются, чтобы минимизировать среднеквадратичную ошибку между целевым сигналом и взвешенным синтезированным сигналом.
N.J
£* « £(*(‘0-дгУ|(л>-д*г*<п))2.
л-К
где д, является оптимальным усилением спедуккдем образом:
М.1
I (х(п) — д, /г(л))г*(п)
• -0
9* —-лГП-•
I zUn)
л»0
где к указывает возможную комбинацию shapejanh_positkxts и shape_enh_s>gns (см. 4.2). Вектор фиксированной пеги шифров создается из позиций импульса и амплитуд импульса (см. 42). Взвешенный сипчал zk(n) вычисляется путем фильтрации, пропуская вектор фиксированной книги шифров через фигътр синтеза LP VA(z) и фильтр перцепционного взвешивания W(z).
8.9.4 Мультмимпульсное возбуждение для инструмента расширения полосы пропускания В.9.4.1 Описамо инструмента
Выходом анализа возбуждения 8 инструменте расширения полосы пропускания являются shape_bws_ deiayl), shape_bws_pos№ons(). sftape_£H*s_srignsQ и gatn_invs_/nOej(1], Индексы формы и усиления генерируются каждый подфрейм Вектор sftape_bws_de/ayf] содерхсит задержку адалпвной книги шифров для кзхсдого под-фрейма. е то время как векторы shape_bws_positions{] и sfcape_bivs_5igrcs{] содержат поэмрм и знак импугъса соответственно. Усиление адаптивной книги шифров и мультиммпульсное усило! ыо для каждого подфреймз являются вектором, квантованным и сохранении в векторе ga*i_bws_&xiex[].
В.9.4.2 Определения Вход
PP_nputSignal[f. Этот массив содержит пред обработанный входной сигнал и имеет размерность sfrm_size int_Qlpc_coefTicientsl): Этот массив содержит интерполированные и квангооачыв коэффициенты LPC 1Улит_соеЛ27. Этот массив содержит коэффициенты фильтра взвешивания числителя Wden_coeff[j-. Этот массив содержит коэффициенты фильтра взвешивания знаменателя Выход
shape_i»vs_cte/ay(]: Этот массив имеет размерность nrof_subframes_tMfs. Он содержит задержку книги шифров для адаптивных и фиксированных книг шифров
90
ГОСТ Р 53556.3—2012
shape_bws_possttons\}: Этот массив имеет размерность nrof_subframes_bws. Он содержит позиции им-путъса
shape_bws_stgns[]: Этот массив имеет размерность nrof_subframes_bws, содержит знаки импугъса gaw7_bws_indexl]. Этот массив имеет размерность nrof_subframes_tms. Он содержит квантованное усиление вектора для адаптивной книги шифров и мульгиимпульсной Конфигурация
n_lag_candidates: Это попе указьеэет число кандодагое задержки (rame_size: Это поле указывает ччспо отсчетов в одном фрейме
sbfrm_size: Это поле указывает число отсчетов в одном подфрейме в инструменте расширения полосы пропускания
nrvf_subframes_bws: Это поле указывает число подфреймов в инструменте расширения полосы пропускания
lpc_order. Эго поле указывает порядок LPC В.9.4.3 Процесс кодирования
Для уиструмента расширения полосы пропускания сигнал возбуждения извлекается и кодируется на основе анализа через синтез с тремя шагами поиском адаптивной книги шифров для периодического компонента, поиском фиксированной ими шифров для непериодического компонента и квантованием усиления для каждого компонента. Целевой сигнал получаот, вычитая реакцио фильтров синтеза и перцепционного взвешивания на нулевой входной сигнал из взвешенного входного речевого сигнала.
Квантование энергии фрейма
Используется то же самое среднеквадратичное (/ms) значение, как для CELP с частотой дисфетизацуи
8 кГц.
Оцежа шага без обратной связи и речи» мо о режиме
Оценка шага без обратной связи выполняется путем преобразования задержки шага с частотой дискретизации 8 кГц (см. процесс декодирования). Используется тот же самый режим, как у CELP частоты дисжретизэцуи 8 кГц.
Кодирование сигнала возбуждения
Сипел возбуждения представлен линейной комбинацией адаптивного вектора кода и двух фиксированных векторов кода, масштабированных их соответствующим! усилениям!. Задержка шага выбирается в диапазоне около предполагаемой задержки шага без обратной свяж. Один из двух фиксированных векторов кода получают путем рэсиирения частоты дискретизации фиксированного вектора кода, используемой в кодере частоты дискретизации 8 кГц. Другой фиксированной вектор кода определяется процедурой поиска «анагмз через синтез». Помех адаптивной книги шифров
Для каждого подфрейма оптимальная задержха определяется посредством анализа с обратной связью так. что среднеквадратичная ошибка между целевым сигналом х(п) и взвешенным синтезированным сигналом yfn) адаптивного вектора кода минимизируется.
^ =»£(*(/»-9, У, <«)>*. (^-8</<<вв + 8.
л-0
где — задержха без обратной свяж. определенная в анализе шага без обратной связи, д, является оптима/ъ-ным усилением следующим образом.
9: —
t (х(л), у,(л)
#-* —
1 Уfin)
Разгмчие между оптимальной задержкой изага и задержхой шага без обратной связи кодируется 3 битами, основываясь на соотношение! между shape_bws_ctelay м дифференциальной задержкой (см. процесс декодирования).
Поиос фиксированной книги шифров 1
Фиксирований вектор кода 1 получают увехыченмем частоты дискретизации фиксированного вектора кода, используемого в кодере с частотой дискретизации 8 кГц (см. 5.7.4.3.4),
Поив фиксированной ичиги шифров 2
Фиксированный вектор книги шифров представлен позицией импульса и амгимтудами импульса. Позиции и амплитуды импугъса разыскиваются так. чтобы мишмизировать среднеквадратичную ошибку между целевым сигналом и взвешенным синтезированным сигналом
Е* ■
л-а
91
ГОСТ Р 53556.3—2012
где д, является оптимальным усилением спедуюиенм образом:
«.1
I (*(л)-9«Уг («))*» (л)
«•о
9к—мП-•
1 4 <л)
■ -0
где к указывает возможную комбинацмо shape_bws_posibons и shape_b#s_signs (см. 4.2). Вектор фиксированной ктги шифров создается из позиций импульса и амплитуд импутъса (см. 4.2). Взвешенный сигнал z„(n) подсчитывается. пропуская вектор фиксированной книги шифров через фильтр синтеза LP 11А (г), и перцепционный взве-имвающий фильтр W(z).
Квантование усиления
Усиления для адаптивного вектора кода и двух фиксированных векторов кода нормагмзуются остаточной энергией предсказания га и квантуются. Остаточная энергия га вычисляется на основант энергт фрейма и коэффициентов отражения. Энергия фрейма подсчитывается каждый подфрвйм нас среднеквадратичное (РАЮ) значение и квантуется в домене закона fi-taw. Коэффициенты отражения k(i) преобразуются из Интерполирован-ш LPCs rt_Q/pc_coeffraents(l. Следовательно, остатоыая энергия предсказания (га) подфрейма равна
га = sbfrm_ len-<t_»mp3 f|(1 — А2»)).
где Np является порядком анагмза LP. q_amp — квантора пая амплитуда РАЮ и sbfrw_fen — длина подфрейма
Усиления для адаптиаюго вектора кода и фиксированного вектора кода 2 является оокторно квантованы ми. Усиление для фиксированного вектора кода 1 является скалярно квантованным. Эти операции квантования достигаются минимизацией перцелционио взвешенного исхажвния (с обратной связью).
В.10 Мультиплексор потока бит CELP В.10.1 Описание инструмента
Инструмент мультиплексор потока бит CELP мультиплексирует фрейм в поток бит.
В.10.2 Определения
Все элементы потока бит и переменные поддержки были определи ы в 5.3 и 5.4.
В.10.3 Процесс кодирования
Параметры кодируются а поток бит согласно синтаксису, огмсанному а разделе 3.
В.11 Инструмент сжатия тишины CELP В.11.1 Модуль VAD
Модуль VAD принимает решение о том. является ли фрейм фреймом паузы а разговоре или фреймом разговора, основываясь на том. насколько изменяются характеристики входного сигнала. Характеристики представлены четырьмя параметрами: энергиям полной полосы и нижней полосы, LSPs и частотой перехода через нуль фрейма входного сигнала. Временное решение принимается через каждые 80 отсчетов, и конокюе решете для фрейма принимается на оо-юее временных решений с ограничением затягивания. Для широкополосного режима параметры характеристик вычисляются исходя из входной речи с пониженной дискретизацией от 16 кГц до8 нГц.
В.11.1.1 Определения Вход
PP_tnpulSignalf] Этот массив содержит предобработайный речевой сигнал. Размерность равна frame_stze Выход
VAD_Hag: Это попе содержит флажок VAD (см. таблицу 103).
Элементы справки, используемые в модуле VAD:
4ос_олЗег порядок LP
sbfrmjsize: тело отсчетов в подфрейме
frame_size: число отсчетов во фрейме
n_subframe: тело подфреймое во фрейме
В.11.1.2 Уменьшение дискретизации для широкополосного случая
Сигнал s_vad(|. испотъзуемый в модуле VAD. генерируется предварительной обработкой входного сигнала тем же способом, как это огмеано в В.4. Когда частота дискретизации составляет 16 кГц. частота дискретизации входного сигнала понижается до 8 кГц после предварительной обработки.
В.11.1.3 Вычисление параметров
LSPs входного сигнала, fspf] вычисляются из коэффициентов LPCs 4K_coeffioenfs[]. которые даются модулем взвешивания UPEG-4 CELP. описатым в В.8. Энергия полной полосы Р. энергия нижней полосы Р, между 0 и 1 кГц и частота перехода через нуль Z вычисляются следующим образом.
92
ГОСТ Р 53556.3—2012
Р = 10togfC/?/0/
Р, = I0togiehr Rh
во
ZsJq IJ»*» I*- — **»[*_ **\i — IjJ.
где h — вектор импульсной передаточной функцмч фильтра FIR с частотой среза 1 кГц. R(0] — первый коэффициент автокорреляц|ы и R — матрица автокорреляции Toephte (Теплица) с коэффициентами автокорреляции в каждой диагонали. Эти параметры подсчитываются каждые 10 мс. Их средние значения обновляется следующим образом:
Р = аР + (1 — а)Р
р = 6Р + <1 — й)Р,
Z = nZ + (1 — n)Z
Lsp(/] = dLsp[/] + (1 — d)L$p[r]. i s 1,….фс_ order.
где a = 0.995. b = 0.995. c = 0,998 и d — 0.75. Каждые 80 отсчетов оцемеаются следуюиде дифференциагъ-ные параметры, чтобы принять временное решение, характеризуется ли входной сигнал как разговорами или как пауза в разговоре:
др = Р — Р
Др, = Й, — Р,
&Z в Z — Z
фс вмн
ALspm «X
В.11.1.4 Временное решение о речевой активности
Если удовлетворяется любое из следующих неравенств, флажок временной голосовой активности. vad flap sobfi! для
frm siге [samples]
1 = 0 —80(sempiee)- устанаегмвается в 1.
>f(
ALsp > 0,0009 or
ALsp > 0.00175 * JZ + 0.00085 or
.\LSP > -0.UU4OO * AZ * 0.00110 ОГ
JP<-0.47 or
JP < -2,5 ‘ JZ — 0.5 or
JP < 2.0 * JZ — 0.6 or
AP < 2.5 * JZ-0.7 or
AP < -2.91 ‘ AZ-0.482 or
AP < 880,0 * ALsp — 1.22 or
AP, < 1400.0 ’ ALsp — 1.55 or
AP, > 0.929 * AP + 0.114 or
JP,<-1.5 * JP-0.9or
JP,<0.714* JP-0.214
)
{
vad_Rag_sub{i} = 1;
} else {
vad_ ftag_ subfi] = 0:
}
B.11.1.5 Решение о речевой активности фрейма
Флажок голосовой активности фрейма vad_flag определяется на основании временного флажка vad_ffag_sub{]. что выполняется в соответствующем фрейме следующим образом: vad_8ag = vad_tiag_sub fOJ и vad_fteg_sub [1] и …о vad_Rag_sub [L-1J. гps «ш» замещает логическое ИЛИ.
[Tsp[i] — Lsp [r]f . / = \…lpc_order
93
ГОСТ Р 53556.3—2012
В.11.1.6 Затягивание
Затягивание применяется к конечному решению VAD. VAD_fiag, после переключения из речевого фрейма в фрейм с отсутствием речи:
| I first 80 ш sec afler the active — voce period <vad flag = 1}
VAD flag = {
[vad _ flag. otherwise
Когда период речевой активности (vad_flag=1) короче, чем 80 мс. VAD_ftag всегда равен vad_flag.
В11-2 Модуль DTX
Модуль DTX обнаруживает фреймы, в вторых входные характеристики изменяются во время фреймов паузы в разговоре. В первом фрейме во время каждого периода паузы в разговоре и во фрейме, где обнаружено изменение, модуль DTX извлекает параметры, энергию фрейма и LSPs речевого входа и кодирует эти параметры. Есть три режима DTX; DTX_flag = 0.1 и 2 в зависимости от того, какая информация передается. Когда обнаружено изменение в LSPs [DTX_flag = 1). закодированные параметры LSP и RMC а также ТХ_Яад передаются как информация HR-SID. Когда обнаружено изменение среднеквадратичного значения RMS (энергия фрейма) {DTXJRag — 2), передаются только закодированный параметр RMS и ТХ_Пад как информация LR-SID. Иначе передается только ТХ_Пад.
В. 11.2.1 Определения Вход
PP_tnputSignaf] Этот массив содержит предобработ энный речевой сигнал. Размерность равна frame_siza TX_flag Это поле содержит режим передачи (см. таблицу 103)
Выход
VAD_tlag Это поле содержит флажок VAD (см. таблицу 103).
Элементы справки, испогъзуемые в модуле DTX. t>c_order: порядок LP frame_size: число отсчетов во фрейме п subframe: ч«сло подфреймов во фрейме В?11.2.2 Анапа LP
Испогъзуются тот же самый анализ LP и преобразование LPC-\o-LSP. как описанные е подпункте В.5. Это дает кекаантоважые LSPs JspOI).
В.11.2.3 Усреднение LSP
Среднее LSP tep_avf j вычисляется из неквантооаиых LSPs <sp(](| следующим образом:
t-»
tep_av[r] = (1/f.) X,fcpl/№L * = &…lpc_order — 1.
1-о
где ispfyX] являются несвантоважными LSPs в /-№ новом фрейме, которые вычислены из не квантованных LPCs /рс_соеМс*епа{). описанных в В.б. L — число фреймов за 80 мс.
В.11.2.4 Вычисление RMS
RMS входного сигнала вычисляется способом, идентижгыы описанному в В.9. Это вы-мспение дает некван-тоеанное RMS хлогтл(] в каждом подфрейме.
В.11.2.5 Усреднение RMS
Среднее RMS входного сигнала xnorm_av{] вычисляется из некеэнтованного RMC хпогглЦ следующим образом:
1Г.1
xnorm_av = (17JW) ^хполпЦ].
где М является чгслом подфреймов за 80 мс. Кроме того xnorm_av_end является xnorm_av[n_subframe-1]. где n_subframe — это число подфреймов во фрейме.
В.11.2.6 Обнаружение изменения характеристик
Любое изменение а характеристиках обнаруживается на основе изменения энергии фрейма и спектра, вычисленного исходя из входного сигнала следующим образом:
ОТХ_Пад = 0
4 f20togic xnorm_std — 29tog10 xnorm_end\ > Ош0в) DTX_Bag = 2
МЯГ
П X i/sp_»d[r] — fsp_av[i\X>Dbp)DTX_Hag =t
i -1
где LSPs нормализованы к диапазону от 0 до 1. Порог &ялеут перекпочэется согласно xnorm_sxi. как показано в табл нею В.14. Порог изменяется согласно частоте дискретизации: 0,002 для 8 кГц и 0.0015 для 16 кГц.
94
ГОСТ Р 53556.3—>2012
fsp_3v_sid и xnorm_sid являются tep_av и xnorm_av_end последнего фрейма SID соответственно. Есть ьмнимагъ-«м период, где обнаружена не производится. Длина этого периода обычно 20 ыс. но во время первых 40 мс периода паузы в разговоре — это 0 мс.
Таблица В.14 — Соотношения между Эдл*. и xnorm_sid
20foglgxnorm_sid. rffi |
D <SB |
< 1.0; |
о (О* |
1.0-5.0 |
4.0 |
5.0 — 9.0 |
3.0 |
9.0 — 12.0 |
2.5 |
12.0 < |
2.0 |
В.11.2.7 Кодирование параметров
Срехнее значение LSP Jsp.avf] кодируется, используя тот же процесс, который описан в В.6 с исключениями. описи» чими в 5.9.3. Кодирование среднего RMS xnorni_avfl идвнтичю кодированию, описанному в В.9. за ноиючеьмем того что параметры fj-faw независимы от режима сигнала и установлены как rms_max = 7932 и mujaw = 1024.
В.11.2.8 Локальный декодер CNG
Локагьное декодирование CNG вылогчяется для того, чтобы обновить буфера для фильтра оегтеза LP. Обработка иденторма процессу декодирования в декодере.
95
ГОСТ Р 53556.3—2012
Библиография
[1| ИСО/14ЭК 14496-3:2009 Информационные технологии. Кодирование аудиовизуальных
объектов. Часть 3. Аудио (ИСО/МЭК 14496-3:2009 hiformabon technology — Со&пд of autto-wsual obfOds — Part 3: Autfo)
96
ГОСТ Р 53556.3—2012
УДК 621.396:006.354 ОКС 33.170
Ключевые слова: звуковое вещание, электрические параметры, каналы и тракты, технологии MPEG-кодировамв*. синтетический звук, масштабирование, защита от ошибок, поток битов расширения, психоакустическая модель
97
Редактор £ В. Вахрушева Технический редактор в. Н. Прусакова Корректор С. И. Фирсова Компьютерная верстка 3. И. Мартыновой
Сдано в набор 03.10-2013. Подписано а печать 05.03.20 14 Формат 60×84’^ Бумага офсетная Гарнитура А риал Печать офсетная Уел. печ. я. 11.63. Ун.-над. п. 11.35. Тяраж 58 экз. Зак. 1440
•ГУП «СТАН0АРТИМФОРМ». 123095 Мосжаа. Гранатный пер. 4. nww.90sta1fo.ru infoQ90sbnfo.ru
Набрано м отпечатано в Калужской типографии стандартов. 248021 Калуга, уа. Московская. 256