ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ
НАЦИОНАЛЬНЫМ
СТАНДАРТ
РОССИЙСКОЙ
ФЕДЕРАЦИИ
Звуковое вещание цифровое
КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ
Часть 3
(MPEG-4 AUDIO)
Кодирование речевых сигналов с использованием гармонических векторов — HVXC
ISO/IEC 14496-3:2009 (NEQ)
Издание официальное
Москва
Стандартинформ
2014
Предисловие
1 РАЗРАБОТАН Санкт-Петербургским филиалом Центрального научно-исследовательского института связи «Ленинградское отделение» (ФГУП ЛО ЦНИИС)
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 480 «Связь»
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 20 ноября 2012 г. № 941-ст
4 Настоящий стандарт разработан с учетом основных нормативных положений международного стандарта ИСО/МЭК 14496-3:2009 «Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио» (ISO/IEC 14496-3:2009 «Information technology — Coding of audio-visual objects — Part 3: Audio»)
5 ВВЕДЕН ВПЕРВЫЕ
Правила применения настоящего стандарта установлены в ГОСТР 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок—в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячно издаваемом информационном указателе «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования—на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru)
©Стандартинформ,2014
Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии
II
Таблица 23 — Синтаксис ErHVXCframe () |
Синтаксис |
Количество
битов |
Мнемоника |
ErHVXCframeQ
{
if (HVXCvarMode == 0) {
ErHVXCfixframe(HVXCrate);
}
else {
ErHVXCvarframe(HVXCrate);
}
} |
|
|
|
Таблица 24 — Синтаксис ErHVXCenhaframe () |
Синтаксис |
Количество
битов |
Мнемоника |
ErHVXCenhaframeQ
{
if (HVXCvarMode == 0) { ErHVXCenh fixframeQ;
}
else {
ErHVXCenh varframeQ;
}
} |
|
|
|
3.4.1 Синтаксис потока битов режима фиксированной скорости
Таблица 25 — Синтаксис ErHVXCfixframe () |
Синтаксис |
Количество
битов |
Мнемоника |
ErH VXCfixfram e(rate)
{
if (rate == 2000){ 2k_ESC0(); 2k_ESC1(); 2k_ESC2();
2k ESC3Q;
}
else if (rate >= 3700) { 4k_ESC0(rate); 4k_ESC1 (rate); 4k_ESC2(); 4k_ESC3();
4k ESC4(rate);
}
} |
|
|
|
8
Синтаксис |
Количество
битов |
Мнемоника |
2k ESC0Q { |
|
|
VUV, 1-0; |
2 |
uimcbf |
if (VUV != 0) { |
|
|
LSP4, 0; |
1 |
uimcbf |
SE gain, 4-0; |
5 |
uimcbf |
LSP1, 4-0; |
5 |
uimcbf |
Pitch, 6-1; |
6 |
uimcbf |
LSP2, 6; |
1 |
uimcbf |
LSP3, 4; |
1 |
uimcbf |
LSP2, 5; |
1 |
uimcbf |
}
else { |
|
|
LSP4, 0; |
1 |
uimcbf |
VX gain1[0], 3-0; |
4 |
uimcbf |
VX gain1[1], 3-0; |
4 |
uimcbf |
LSP1, 4-0; |
5 |
uimcbf |
LSP2, 6-3; |
4 |
uimcbf |
LSP3, 4-3; |
2 |
uimcbf |
}
} |
|
|
Таблица 27 — Синтаксис 2k_ESC1 () |
Синтаксис |
Количество
битов |
Мнемоника |
2k ESC1Q {
if (VUV != 0) {
SE shapel, 3-0;
} |
4 |
uimcbf |
else {
LSP2, 2-0; |
3 |
uimcbf |
LSP3, 2; |
1 |
uimcbf |
}
} |
|
|
|
Таблица 28 — Синтаксис 2k_ESC2 () |
Синтаксис |
Количество
битов |
Мнемоника |
2k ESC2Q {
if (VUV != 0) { |
|
|
SE shape2, 3-0;
}
else { |
4 |
uimcbf |
LSP3, 1-0; |
2 |
uimcbf |
VX shapel[0], 5-4;
}
} |
2 |
uimcbf |
|
Синтаксис |
Количество
битов |
Мнемоника |
2к ESC3Q {
if (VUV != 0) { LSP2, 4-0; |
5 |
uimcbf |
LSP3, 3-0; |
4 |
uimcbf |
Pitch, 0; |
1 |
uimcbf |
}
else {
VX_shape1[0], 3-0; |
4 |
uimcbf |
VX shape 1[1], 5-0; |
6 |
uimcbf |
}
} |
|
|
Таблица 30 — Синтаксис 4k_ESC0 () |
Синтаксис |
Количество
битов |
Мнемоника |
4k ESC0() { |
|
|
VUV, 1-0; if (VUV != 0) { |
2 |
uimcbf |
LSP4, 0; |
1 |
uimcbf |
SEgain, 4-0; |
5 |
uimcbf |
LSP1, 4-0; |
5 |
uimcbf |
Pitch, 6-1; |
6 |
uimcbf |
LSP2, 6-3; |
4 |
uimcbf |
SE_shape3, 6-2; |
5 |
uimcbf |
LSP3, 4; |
1 |
uimcbf |
LSP5, 7; |
1 |
uimcbf |
SE_shape4, 9; |
1 |
uimcbf |
SE_shape5, 8; if (rate >= 4000) { |
1 |
uimcbf |
SE shape6, 5;
}
}
else { |
1 |
uimcbf |
LSP4, 0; |
1 |
uimcbf |
VX_gain1[0], 3-0; |
4 |
uimcbf |
VX gainlfl], 3-0; |
4 |
uimcbf |
LSP1, 4-0; |
5 |
uimcbf |
LSP2, 6-3; |
4 |
uimcbf |
LSP3, 4; |
1 |
uimcbf |
LSP5, 7; |
1 |
uimcbf |
VX_gain2[0], 2-0; |
3 |
uimcbf |
VX_gain2[1], 2-0; |
3 |
uimcbf |
VX_gain2[2], 2-0; if (rate >= 4000) { |
3 |
uimcbf |
VX gain2[3], 2-1;
}
}
} |
2 |
uimcbf |
|
Синтаксис |
Количество
битов |
Мнемоника |
4к ESCI(rate)
{
if (VUV != 0) {
SE_shape4, 8-0; |
9 |
uimcbf |
SE_shape5, 7-0; |
8 |
uimcbf |
if (rate >= 4000) {
SE shape6, 4-0; |
5 |
uimcbf |
}
}
else {
if (rate >= 4000) { VX gain2[3], 0; |
1 |
uimcbf |
}
LSP2, 2-0; |
3 |
uimcbf |
LSP3, 3-0; |
4 |
uimcbf |
LSP5, 6-0; |
7 |
uimcbf |
VX shapel[0], 5-0; |
6 |
uimcbf |
VX shapelfl], 5; |
1 |
uimcbf |
}
} |
|
|
Таблица 32 — Синтаксис 4k_ESC2 () |
Синтаксис |
Количество |
Мнемоника |
|
битов |
|
4k ESC2Q { |
|
|
if (VUV != 0) { |
|
|
SE shapel, 3-0; |
4 |
uimcbf |
} |
|
|
else { |
|
|
VX shapel[1], 4-1; |
4 |
uimcbf |
} |
|
|
} |
|
|
|
Таблица 33 — Синтаксис 4k_ESC3 () |
Синтаксис |
Количество |
Мнемоника |
|
битов |
|
4k ESC3() |
|
|
{ |
|
|
if (VUV != 0) { |
|
|
SE shape2, 3-0; |
4 |
uimcbf |
} |
|
|
else { |
|
|
VX_shape1[1], 0; |
1 |
uimcbf |
VX shape2[0], 4-2; |
3 |
uimcbf |
} |
|
|
} |
|
|
|
Синтаксис |
Количество |
Мнемоника |
|
битов |
|
4к ESC4(rate) { |
|
|
if (VUV != 0) { |
|
|
LSP2, 2-0; |
3 |
uimcbf |
LSP3, 3-0; |
4 |
uimcbf |
LSP5, 6-0; |
7 |
uimcbf |
Pitch, 0; |
1 |
uimcbf |
SE shape3, 1-0; |
2 |
uimcbf |
} |
|
|
else { |
|
|
VX shape2[0], 1-0; |
2 |
uimcbf |
VX shape2[1], 4-0; |
5 |
uimcbf |
VX shape2[2], 4-0; if (rate >= 4000) { |
5 |
uimcbf |
VX shape2[3], 4-0; |
5 |
uimcbf |
} |
|
|
} |
|
|
} |
|
|
3.4.2 Синтаксис потока битов для масштабируемого режима
Синтаксис потока битов базового уровня для масштабируемого режима такой же самый как синтаксис ErHVXCfixframe (2000). Синтаксис потока битов уровня расширения, ErHVXCenhaFrame (), для масштабируемого режима показан ниже.
Таблица 35 — Синтаксис ErHVXCenhfixframe () |
Синтаксис |
Количество
битов |
Мнемоника |
ErHVXCenh fixframe() {
Enh ESCOQ;
Enh ESC1Q;
Enh ESC2Q;
} |
|
|
|
Таблица 36 — Синтаксис EnhESCO () |
Синтаксис |
Количество
битов |
Мнемоника |
Enh ESC0()
{
if (VUV != 0) { |
|
|
SE shape3, 6-2; |
5 |
uimcbf |
LSP5, 7; |
1 |
uimcbf |
SE shape4, 9; |
1 |
uimcbf |
SE shape5, 8; |
1 |
uimcbf |
SE shape6, 5; |
1 |
uimcbf |
SE shape4, 8-6;
}
else { |
3 |
uimcbf |
|
|
LSP5, 7; |
1 |
uimcbf |
VX gain2[0], 2-0 |
3 |
uimcbf |
VX gain2[1], 2-0 |
3 |
uimcbf |
VX gain2[2], 2-0 |
3 |
uimcbf |
VX gain2[3], 2-1 |
2 |
uimcbf |
}
} |
|
|
|
Синтаксис |
Количество |
Мнемоника |
|
битов |
|
Enh ESC1Q { |
|
|
if (VUV != 0) { |
|
|
SE_shape4, 5-0; |
6 |
uimcbf |
SE_shape5, 7-0; |
8 |
uimcbf |
SE shape6, 4-0; |
5 |
uimcbf |
} |
|
|
else { |
|
|
VX gain2[3], 0; |
1 |
uimcbf |
LSP5, 6-0; |
7 |
uimcbf |
VX shape2[0], 4-0; |
5 |
uimcbf |
VX shape2[1], 4-0; |
5 |
uimcbf |
VX shape2[2], 4; |
1 |
uimcbf |
} |
|
|
} |
|
|
|
Таблица 38 — Синтаксис Enh_ESC2 () |
Синтаксис |
Количество |
Мнемоника |
|
битов |
|
Enh ESC2Q |
|
|
{
if (VUV != 0) { |
|
|
LSP5, 6-0; |
7 |
uimcbf |
SE shape3, 1-0; |
2 |
uimcbf |
} |
|
|
else { |
|
|
VX shape2[2], 3-0; |
4 |
uimcbf |
VX shape2[3], 4-0; |
5 |
uimcbf |
} |
|
|
} |
|
|
|
3.4.3 Синтаксис потока битов режима с варируемой скоростью передачи данных |
Таблица 39 — Синтаксис ErHVXCvarframe () |
Синтаксис |
Количество
битов |
Мнемоника |
ErHVXCvarframe(rate)
{
if (rate == 2000) {
if (var ScalableFlag == 1) { BaseVar ESCOQ; BaseVar ESC1(); BaseVar ESC2Q; BaseVar_ESC3();
} else {
Var2k ESCOQ;
Var2k ESC1Q;
Var2k ESC2Q;
Var2k ESC3Q;
}
} else {
Var4k ESC0();
Var4k ESC1Q;
Var4k ESC2Q;
Var4k ESC3Q;
Var4k ESC4Q;
}
} |
|
|
|
Синтаксис |
Количество
битов |
Мнемоника |
Var2k ESC0Q { |
|
|
VUV, 1-0; |
2 |
uimcbf |
if (VUV == 2 || VUV==3){ |
|
|
LSP4, 0; |
1 |
uimcbf |
SEgain, 4-0; |
5 |
uimcbf |
LSP1, 4-0; |
5 |
uimcbf |
Pitch, 6-1; |
6 |
uimcbf |
LSP2, 6; |
1 |
uimcbf |
LSP3, 4; |
1 |
uimcbf |
LSP2, 5; |
1 |
uimcbf |
}
else if (VUV == 0) { |
|
|
LSP4, 0; |
1 |
uimcbf |
VXgainlfO], 3-0; |
4 |
uimcbf |
VXgainlfl], 3-0; |
4 |
uimcbf |
LSP1, 4-0; |
5 |
uimcbf |
LSP2, 6-3; |
4 |
uimcbf |
LSP3, 4-3; |
2 |
uimcbf |
}
} |
|
|
Таблица 41 — Синтаксис Var2k_ESC1 () |
Синтаксис |
Количество
битов |
Мнемоника |
Var2k ESC1Q {
if (VUV == 2 || VUV==3){ SE shapel, 3-0; |
4 |
uimcbf |
}
else if (VUV == 0) { LSP2, 2-0; |
3 |
uimcbf |
LSP3, 2; |
1 |
uimcbf |
}
} |
|
|
|
Таблица 42 — Синтаксис Var2k_ESC2 () |
Синтаксис |
Количество
битов |
Мнемоника |
Var2k ESC2Q {
if (VUV == 2 || VUV==3){ |
|
|
SE_shape2, 3-0;
} |
4 |
uimcbf |
else if (VUV == 0) { |
|
|
LSP3, 1-0;
}
} |
2 |
uimcbf |
|
Синтаксис |
Количество
битов |
Мнемоника |
Var2k ESC3Q {
if (VUV == 2 || VUV==3){ LSP2, 4-0; |
5 |
uimcbf |
LSP3, 3-0; |
4 |
uimcbf |
Pitch, 0; |
1 |
uimcbf |
}
} |
|
|
Таблица 44 — Синтаксис Var4k_ESC0 () |
Синтаксис |
Количество
битов |
Мнемоника |
Var4k ESC0() { |
|
|
VUV,1-0; |
2 |
uimcbf |
if (VUV == 2 || VUV==3) { |
|
|
LSP4, 0; |
1 |
uimcbf |
SE gain, 4-0; |
5 |
uimcbf |
LSP1, 4-0; |
5 |
uimcbf |
Pitch, 6-1; |
6 |
uimcbf |
LSP2, 6-3; |
4 |
uimcbf |
SE_shape3, 6-2; |
5 |
uimcbf |
LSP3, 4; |
1 |
uimcbf |
LSP5, 7; |
1 |
uimcbf |
SE_shape4, 9; |
1 |
uimcbf |
SE_shape5, 8; |
1 |
uimcbf |
SE shape6, 5; |
1 |
uimcbf |
}
else if (VUV == 0) { |
|
|
LSP4, 0; |
1 |
uimcbf |
VXgainlfO], 3-0; |
4 |
uimcbf |
VX_gain1[1], 3-0; |
4 |
uimcbf |
LSP1, 4-0; |
5 |
uimcbf |
LSP2, 6-3; |
4 |
uimcbf |
LSP3, 4-3; |
2 |
uimcbf |
}
else { |
|
|
UpdateFlag, 0; |
1 |
uimcbf |
if (UpdateFlag == 1) { |
|
|
LSP4, 0; |
1 |
uimcbf |
VX gainlfO], 3-0; |
4 |
uimcbf |
LSP1, 4-0; |
5 |
uimcbf |
LSP2, 6-3; |
4 |
uimcbf |
LSP3, 4-3; |
2 |
uimcbf |
}
}
} |
|
|
|
Синтаксис |
Количество
битов |
Мнемоника |
Var4k ESC1Q {
if (VUV == 2 || VUV==3){ SE_shape4, 8-0; |
9 |
uimcbf |
SE_shape5, 7-0; |
8 |
uimcbf |
SE shape6, 4-0; |
5 |
uimcbf |
}
else if (VUV == 0) { LSP2, 2-0; |
3 |
uimcbf |
LSP3, 2-0; |
3 |
uimcbf |
VX shape1[0], 5-0; |
6 |
uimcbf |
VX shape1[1], 5-0; |
6 |
uimcbf |
}
else {
if (UpdateFlag == 1) { LSP2, 2-0; |
3 |
uimcbf |
LSP3, 2-0; |
3 |
uimcbf |
}
}
} |
|
|
Таблица 46 — Синтаксис Var4k_ESC2 () |
Синтаксис |
Количество |
Мнемоника |
|
битов |
|
Var4k ESC2Q |
|
|
{ |
|
|
if (VUV == 2 || VUV==3){ |
|
|
SE shapel, 3-0; |
4 |
uimcbf |
} |
|
|
} |
|
|
|
Таблица 47 — Синтаксис Var4k_ESC3 () |
Синтаксис |
Количество |
Мнемоника |
|
битов |
|
Var4k ESC3() |
|
|
{ |
|
|
if (VUV == 2 || VUV==3){ |
|
|
SE shape2, 3-0; |
4 |
uimcbf |
} |
|
|
} |
|
|
|
Таблица 48 — Синтаксис Var4k_ESC4 () |
Синтаксис |
Количество
битов |
Мнемоника |
Var4k ESC4Q {
if (VUV == 2 || VUV==3){ LSP2, 2-0; |
3 |
uimcbf |
LSP3, 3-0; |
4 |
uimcbf |
LSP5, 6-0; |
7 |
uimcbf |
Pitch, 0; |
1 |
uimcbf |
SE shape3, 1-0; |
2 |
uimcbf |
}
} |
|
|
|
Синтаксис |
Количество
битов |
Мнемоника |
BaseVar ESC0() { |
|
|
VUV, 1-0; |
2 |
uimcbf |
if (VUV == 2 || VUV==3) { |
|
|
LSP4, 0; |
1 |
uimcbf |
SEgain, 4-0; |
5 |
uimcbf |
LSP1, 4-0; |
5 |
uimcbf |
Pitch, 6-1; |
6 |
uimcbf |
LSP2, 6; |
1 |
uimcbf |
LSP3, 4; |
1 |
uimcbf |
LSP2, 5; |
1 |
uimcbf |
}
else if (VUV == 0) { |
|
|
LSP4, 0; |
1 |
uimcbf |
VXgainlfO], 3-0; |
4 |
uimcbf |
VX gainlfl], 3-0; |
4 |
uimcbf |
LSP1, 4-0; |
5 |
uimcbf |
LSP2, 6-3; |
4 |
uimcbf |
LSP3, 4-3; |
2 |
uimcbf |
}
else { |
|
|
UpdateFlag, 0; |
1 |
uimcbf |
if (UpdateFlag ==1) { |
|
|
LSP4, 0; |
1 |
uimcbf |
VXgainlfO], 3-0; |
4 |
uimcbf |
LSP1, 4-0; |
5 |
uimcbf |
LSP2, 6-3; |
4 |
uimcbf |
LSP3, 4-3; |
2 |
uimcbf |
}
}
} |
|
|
Таблица 50 — Синтаксис BaseVarESCI () |
Синтаксис |
Количество
битов |
Мнемоника |
BaseVar ESC1Q {
if (VUV == 2 || VUV==3) { SE shapel, 3-0; |
4 |
uimcbf |
}
else if (VUV ==0) { LSP2, 2-0; |
3 |
uimcbf |
LSP3, 2; |
1 |
uimcbf |
}
else {
if (UpdateFlag == 1) { LSP2, 2-0; |
3 |
uimcbf |
LSP3, 2-0; |
3 |
uimcbf |
}
}
} |
|
|
|
ГОСТ P 53556.2—2012Содержание
1 Область применения........................................ 1
2 Термины и определения...................................... 1
3 Синтаксис потока битов...................................... 1
3.1 Конфигурация декодера (HvxcSpecificConfig).......................... 1
3.2 Фрейм потока битов (alPduPayload)............................... 2
3.3 Конфигурация декодера (ErrorResilientHvxcSpecificConfig)................... 6
3.4 Фрейм потока битов (alPduPayload)............................... 7
4 Семантика потока битов...................................... 19
4.1 Конфигурация декодера (HvxcSpecificConfig, ErrorResilientHvxcSpecificConfig).......... 19
4.2 Фрейм потока битов (alPduPayload)............................... 19
5 Инструменты декодера HVXC.................................... 20
5.1 Обзор............................................. 20
5.2 Декодер LSP.......................................... 21
5.3 Декодер гармонического VQ.................................. 25
5.4 Декодер временного домена.................................. 28
5.5 Интерполяция параметров для управления скоростью...................... 29
5.6 Синтезатор речевой компоненты................................ 31
5.7 Синтезатор неречевой компоненты............................... 41
5.8 Декодер варьируемой скорости................................ 43
5.9 Расширение режима варьируемой скорости HVXC....................... 45
Приложение А (справочное) Инструменты кодера HVXC....................... 48
Приложение Б (справочное) Инструменты декодера HVXC...................... 62
Приложение В (справочное) Определения системного уровня..................... 64
Приложение Г (справочное) Пример установки инструмента ЕР и маскировки ошибок для HVXC... 65
Синтаксис |
Количество
битов |
Мнемоника |
BaseVar ESC2Q {
if (VUV == 2 || VUV==3) { SE shape2, 3-0; |
4 |
uimcbf |
}
else if (VUV == 0) { LSP3, 1-0; |
2 |
uimcbf |
VX shape 1[0], 5-4; |
2 |
uimcbf |
}
} |
|
|
|
Таблица 52 — Синтаксис BaseVar_ESC3 () |
Синтаксис |
Количество
битов |
Мнемоника |
BaseVar ESC3()
{
if (VUV == 2 || VUV==3) { LSP2, 4-0; |
5 |
uimcbf |
LSP3, 3-0; |
4 |
uimcbf |
Pitch, 0; |
1 |
uimcbf |
}
else if (VUV == 0) {
VX shape 1[0], 3-0; |
4 |
uimcbf |
VX shape 1[1], 5-0; |
6 |
uimcbf |
}
} |
|
|
|
3.4.4 Уровень расширения масштабируемого режима с переменной скоростью передачи данных
Таблица 53 — Синтаксис ErHVXCenh varframe () |
ErHVXCenh varframeQ
{
EnhVar_ESC0(); EnhVar_ESC1 (); EnhVar_ESC2();
}
Таблица 54 — Синтаксис EnhVarESCO () |
Синтаксис |
Количество |
Мнемоника |
|
битов |
|
EnhVar ESC0() { |
|
|
if (VUV == 2 || VUV==3){ |
|
|
SE shape3, 6-2; |
5 |
uimcbf |
LSP5, 7; |
1 |
uimcbf |
SE_shape4, 9; |
1 |
uimcbf |
SE_shape5, 8; |
1 |
uimcbf |
SE_shape6, 5; |
1 |
uimcbf |
SE shape4, 8-6; |
3 |
uimcbf |
} |
|
|
} |
|
|
|
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Звуковое вещание цифровое КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ Часть 3 (MPEG-4 AUDIO)
Кодирование речевых сигналов с использованием гармонических векторов — HVXC
Sound broadcasting digital.
Coding of signals of sound broadcasting with reduction of redundancy for transfer on digital communication channels. A part 3 (MPEG-4 audio). Harmonic Vector Excitation Coding
Дата введения — 2013—09—01
1 Область применения
Параметрическое речевое кодирование MPEG-4 использует алгоритм гармонического кодирования с векторным возбуждением (HVXC), где используется гармоническое кодирование остаточных сигналов LPC для речевых сегментов и кодирование с векторным возбуждением (VXC) для неречевых сегментов. HVXC позволяет кодировать речевые сигналы на 2,0 Кбит/с, и 4,0 Кбит/с масштабируемой схемой, где возможно декодирование потока 2,0 Кбит/с используя поток битов 2,0 Кбит/с, и поток битов 4,0 Кбит/с. HVXC также обеспечивает кодирование потока битов с варьируемой битовой скоростью, где типичная средняя скорость передачи информации в битах составляет приблизительно 1,2—1,7 Кбит/с. Возможно независимое изменение скорости и шага во время декодирования, которое является мощной функциональной возможностью для быстрого поиска в базе данных. Длина фрейма равна 20 мс, и может быть выбрана одна из четырех различных алгоритмических задержек 33,5 мс, 36 мс, 53,5 мс, 56 мс.
Кроме того, как расширение HVXC, тип объекта ERHVXC предлагает эластичный синтаксис ошибок и режим с переменной скоростью передачи данных на 4,0 Кбит/с.
2 Термины и определения
Термины и определения в соответствии с ГОСТ Р 53556.0-2009.
3 Синтаксис потока битов
Естественный Звуковой Объектный HVXC/ER HVXC передается в одном или двух элементарных потоках: потоке базового уровня и опционном потоке уровня расширения.
Когда инструмент HVXC используется с инструментом защиты от ошибок, таким как инструмент MPEG-4 ЕР, должен использоваться порядок битов, упорядоченных в соответствии с чувствительностью к ошибкам. HVXC с эластичным синтаксисом ошибок и режимом переменной скорости передачи данных на 4,0 Кбит/с, описанным в 3.3 и 3.4, называют ER HVXC.
Синтаксис потока битов описан в коде pseudo-C.
3.1 Конфигурация декодера (HvxcSpecificConfig)
Информация о конфигурации декодера для типа объекта HVXC передается в DecoderConfigDescriptor() базового уровня и Elementary Stream опционного уровня расширения.
Издание официальное
Требуется следующий HvxcSpecificConfig ():
Синтаксис |
Количество
битов |
Мнемоника |
HvxcSpecificConfig () { isBaseLayer if (isBaseLayer) { HVXCconfig ()
}
} |
1 |
uimcbf |
Тип объекта HVXC обеспечивает немасштабируемые режимы и масштабируемый режим базового уровня 2,0 Кбит/с плюс уровня расширения на 2,0 Кбит/с. В этом масштабируемом режиме конфигурация базового уровня должна быть следующей:
HVXCvarMode - О HVXC fixed bit rate
HVXCrateMode = 0 HVXC 2kbps
isBaseLayer - 1 base layer
Таблица 1 — Синтаксис HVXCconfig () |
Синтаксис |
Количество
битов |
Мнемоника |
HVXCconfigQ
{
HVXCvarMode; |
|
|
1 |
uimcbf |
HVXCrateMode; |
2 |
uimcbf |
extensionFlag; if (extensionFlag) {
< to be defined in MPEG-4 Version 2
> |
1 |
uimcbf |
|
Таблица 2 — Режим HVXCvarMode |
HVXCvarMode |
Описание |
0
1 |
HVXC fixed bit rate HVXC variable bit rate |
|
ТаблицаЗ — Режим HVXCrateMode |
HVXCrateMode |
HVXCrate |
Описание |
0 |
2000 |
HVXC 2,0 kbit/s |
1 |
4000 |
HVXC 4,0 kbit/s |
2 |
3700 |
HVXC 3,7 kbit/s |
|
Таблица 4 — Константы HVXC |
|
3.2 Фрейм потока битов (alPduPayload)
Динамические данные для типа объекта HVXC передаются как полезная нагрузка AL-PDU в базовом уровне и опционном уровне расширения Elementary Stream.
Базовый уровень HVXC— полезная нагрузка Модуля Доступа alPduPayload {
HVXCframeQ;
}
Уровень расширения HVXC — полезная нагрузка Модуля Доступа
2
Чтобы анализировать и декодировать уровень расширения HVXC, требуется информация, декодированная из базового уровня HVXC. alPduPayload {
HVXCenhaFrameQ
}
Таблица 5 — Синтаксис фрейма HVXCframe () |
Синтаксис |
Количество
битов |
Мнемоника |
HVXCframeQ
{
if (HVXCvarMode == 0) {
Н VXCfixfram е (HVXC rate);
}
else {
HVXCvarframe();
}
} |
|
|
|
3.2.1 Фрейм потока битов HVXC
Таблица 6 — Синтаксис HVXCfixframe (rate) |
|
Таблица 7 — Синтаксис HVXCenhaFrame () |
Синтаксис |
Количество
битов |
Мнемоника |
HVXCenhaFrameQ
{
idLsp2();
idExc2(4000);
} |
|
|
|
Таблица 8 — Синтаксис idLspI () |
Синтаксис |
Количество
битов |
Мнемоника |
idLspI () |
|
|
{ |
|
|
LSP1; |
5 |
uimcbf |
LSP2; |
7 |
uimcbf |
LSP3; |
5 |
uimcbf |
LSP4; |
1 |
uimcbf |
} |
|
|
|
3
Синтаксис |
Количество |
Мнемоника |
|
битов |
|
idLsp2 () { |
|
|
LSP5; |
8 |
uimcbf |
} |
|
|
Таблица 10 — Синтаксис idVUV () |
Синтаксис |
Количество
битов |
Мнемоника |
idVUV () |
|
|
{ |
|
|
VUV; |
8 |
uimcbf |
} |
|
|
|
Таблица 11 — VUV (для режима фиксированной скорости передачи битов) |
VUV |
Описание |
0 |
Unvoiced Speech |
1 |
Mixed Voiced Speech-1 |
2 |
Mixed Voiced Speech-2 |
|
Таблица 12 — Синтаксис idExcl () |
Синтаксис |
Количество
битов |
Мнемоника |
idExcl ()
{
if (VUV != 0) { |
|
|
Pitch; |
7 |
uimcbf |
SEshapel; |
4 |
uimcbf |
SE_shape2; |
4 |
uimcbf |
SE gain;
}
else{
for (sf_num=0; sf_num < NUM SUBF1; sf_num++){ |
5 |
|
VX shapel [sf_num]; |
6 |
uimcbf |
VX gainl [sf num];
}
}
} |
4 |
uimcbf |
|
Синтаксис |
Количество
битов |
Мнемоника |
idExc2(rate)
{
if (VUV != 0) { |
|
|
SE_shape3; |
7 |
uimcbf |
SE_shape4; |
10 |
uimcbf |
SE shape5; if (rate >= 4000) { |
9 |
uimcbf |
SE shape6;
}
}
else {
for (sf_num=0; sf_num < NUM SUBF2-1; sf_num++){ |
6 |
uimcbf |
VX_shape2[sf_num]; |
5 |
uimcbf |
VX gain2[sf num];
}
if (rate >= 4000) { |
3 |
uimcbf |
VX_shape2[3]; |
5 |
uimcbf |
VX gain2[3];
}
}
} |
3 |
uimcbf |
idLspI (), idExcl (), idVUV() обработаны как базовый уровень в случае масштабируемого режима. idLsp2 (), idExc2 () обработаны как уровень расширения в случае масштабируемого режима
Таблица 14 — Синтаксис HVXCvarframe ()
HVXCvarframeQ
{
idvarVUVQ; idvarLsp 1 (); idvarExclQ
Таблица 15 — Синтаксис idvarVUV () |
Синтаксис |
Количество |
Мнемоника |
|
битов |
|
idvarVUVQ
{ |
|
|
VUV; |
2 |
uimcbf |
} |
|
|
|
Таблица 16 — VUV (для режима варьируемой битовой скорости) |
VUV |
Описание |
0 |
Unvoiced Speech |
1 |
Background Noise |
2 |
Mixed Voiced Speech |
3 |
Voiced Speech |
|
Таблица 17 — Синтаксис idvarLspI () |
Синтаксис |
Количество
битов |
Мнемоника |
idvarLsp 1 ()
{
if (VUV!= 1) { LSP1; |
5 |
uimcbf |
LSP2; |
7 |
uimcbf |
LSP3; |
5 |
uimcbf |
LSP4; |
1 |
uimcbf |
}
} |
|
|
|
Таблица 18 — Синтаксис idvarExcl () |
Синтаксис |
Количество
битов |
Мнемоника |
idvarExcl ()
{
if (VUV!= 1) { if (VUV!= 0) { |
|
|
Pitch; |
7 |
uimcbf |
SEShapel; |
4 |
uimcbf |
SE_Shape2; |
4 |
uimcbf |
SE Gain;
}
else {
for (sf num=0; sf num<NUM SUBF1; sf num++) |
5 |
uimcbf |
{
VX gainlfsf num];
}
}
}
} |
4 |
uimcbf |
|
3.3 Конфигурация декодера (ErrorResilientHvxcSpecificConfig)
Информация конфигурации декодера для типа объекта ERHVXC передается в DecoderConfigDescriptor () базового уровня и в Elementary Stream опционного уровня расширения.
Требуется следующий ErrorResilientHvxcSpecificConfig ():
ErrorResilientHvxcSpecificConfig () { isBaseLayer 1 uimcbf if (isBaseLayer) {
ErHVXCconfig();
}}
Тип объекта ER HVXC обеспечивает немасштабируемые режимы и масштабируемые режимы. В масштабируемых режимах конфигурация базового уровня должна быть следующей:
HVXCrateMode = О ER_HVXC 2,0 kbit/s isBaseLayer - 1 base layer
6
ГОСТ P 53556.2—2012
Таблица 19 — Синтаксис ErHvxcConfig () |
Синтаксис |
Количество
битов |
Мнемоника |
ErHVXCconfig()
{ |
|
|
HVXCvarMode; |
1 |
uimcbf |
HVXCrateMode; |
2 |
uimcbf |
extensionFlag; if (extensionFlag) { |
1 |
uimcbf |
var ScalableFlag;
}
} |
1 |
uimcbf |
|
Таблица 20 — Режим HVXCvarMode |
HVXCvarMode |
Описание |
0 |
ERHVXC fixed bitrate |
1 |
ERHVXC variable |
|
Таблица 21 — HVXCrateMode |
HVXCrateMode |
HVXCrate |
Описание |
0 |
2000 |
ERHVXC 2,0 K6um/c |
1 |
4000 |
ERHVXC 4,0 K6um/c |
2 |
3700 |
ERHVXC 3,7 K6um/c |
3 (reserved) |
|
|
|
Таблица 22 — varScalableFlag |
var_ScalableFlag |
Описание |
0 |
ERHVXC variable rate non-scalable |
1 |
ERHVXC variable rate scalable mode |
|
3.4 Фрейм потока битов (alPduPayload)
Динамические данные для типа объекта ERHVXC передаются как полезная нагрузка AL-PDU в базовом уровне и Elementary Sfream опционного уровня расширения.
Базовый уровень ER HVXC — полезная нагрузка Модуля Доступа alPduPayload {
ErHVXCframe ();
}
Уровень расширения ER HVXC— полезная нагрузка Модуля Доступа.
Чтобы анализировать и декодировать уровень расширения ER HVXC, требуется информация, декодированная из базового уровня ER HVXC. alPduPayload {
ErHVXCenhaFrame ();
}
7