ГОСТ Р 53556.7-2013
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Звуковое вещание цифровое
КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ. ЧАСТЬ III (MPEG-4 AUDIO)
Параметрическое кодирование звуковых сигналов (HILN)
Sound broadcasting digital. Coding of signals of sound broadcasting with reduction of redundancy for transfer on digital communication channels. A part III (MPEG-4 audio). Parametric audio coding (HILN)
ОКС 33.170
Дата введения 2014-09-01
Предисловие
1 РАЗРАБОТАН Санкт-Петербургским филиалом Центрального научно-исследовательского института связи "Ленинградское отделение" (ФГУП ЛО ЦНИИС)
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 480 "Связь"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 22 ноября 2013 г. ТК* 1704-ст
4 Настоящий стандарт разработан с учетом основных нормативных положений международного стандарта ИСО/МЭК 14496-3:2009* "Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио" (ISO/IEC 14496-3:2009 "Information technology - Coding of audio-visual objects - Part 3: Audio", NEQ)
5 ВВЕДЕН ВПЕРВЫЕ
6 ПЕРЕИЗДАНИЕ. Август 2020 г.
Правила применения настоящего стандарта установлены в . Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
1 Область действия
Параметрическое аудиокодирование обеспечивает инструменты HILN, которые дополняют другие инструменты кодирования естественного аудио в области уровней очень низких битовых скоростей. Их внимание сосредоточено на представлении монофонических музыкальных сигналов с низкой и промежуточной сложностью контента в диапазоне 4-16 Кбит/с. HILN задействует высокую степень интерактивности путем неявной поддержки изменения скорости и шага во время воспроизведения с возможностью масштабируемости скорости передачи. Кроме того возможная комбинация с инструментами параметрического кодирования речи HVXC допускает очень эффективные схемы кодирования речи и музыкальных сигналов.
1.1 Технический обзор
Параметрическое аудиокодирование MPEG-4 использует метод HILN (Гармонические и отдельные линии плюс шум), чтобы кодировать такие аудиосигналы, как музыка на скоростях передачи 4 Кбит/с и выше, используя масштабируемое параметрическое представление аудиосигнала. HILN позволяет независимо изменять скорости и шаг во время декодирования. Кроме того HILN может быть объединено с параметрическим кодированием речи MPEG-4 (HVXC), чтобы сформировать интегрированный параметрический кодер, охватывающий более широкий диапазон сигналов и скоростей передачи.
Интегрированный параметрический кодер может работать в следующих режимах:
Таблица 1 - Режимы работы параметрического кодера
|
|
PARAmode | Описание |
0 | только HVXC |
1 | только HILN |
2 | переключение HVXC/HILN |
3 | смешанный HVXC/HILN |
PARAmodes 0 и 1 представляют режимы фиксированных HVXC и HILN. PARAmode 2 разрешает автоматическое переключение между HVXC и HILN в зависимости от типа текущего входного сигнала. В PARAmode 3 декодеры HVXC и HILN могут использоваться одновременно, и их выходные сигналы добавляются (смешиваются) в параметрическом декодере.
В режимах "коммутируемые HVXC/HILN" и "смешанные HVXC/HILN" инструменты декодера HVXC и HILN работают альтернативно или одновременно согласно PARAswitchMode или PARAmixMode текущего фрейма. Чтобы получить надлежащее временное выравнивание выходных сигналов декодера HVXC и HILN прежде, чем они будут добавлены, буфер FIFO компенсирует разницу во времени между задержкой декодера HVXC и HILN.
Чтобы избежать трудных переходов на границах фрейма, когда декодеры HVXC или HILN включаются или выключаются, соответствующие выходные сигналы декодера появляются и спадают постепенно. Для декодера HVXC применяется линейное изменение 20 мс, когда он включается или выключается. Декодер HILN не требует дополнительного замирания из-за гладких окон синтеза, используемых в синтезаторе HILN. Необходимо только сбросить декодер HILN (numLine = 0), если текущий фрейм потока битов не содержит HILNframe ().
2 Термины и определения
В настоящем стандарте применены термины и сокращения с соответствующими определениями, используемые в .
3 Синтаксис потока битов
Естественный объект аудио MPEG-4, использующий параметрическое кодирование, передается в одном или нескольких элементарных потоках: поток базового уровня, поток дополнительного уровня улучшения и один или более дополнительных потоков уровня расширения.
Синтаксис потока битов описывается в коде pseudo-C.
Мнемоники LARH1, LARH2, LARH3, LARN1, LARN2, DIA, DIF, DHF, DFS указывают, что используется кодовая комбинация "vlclbf".
Мнемонический SDC указывает, что используется кодовая комбинация "vlclbf", которая декодируется HILN SubDivisionCode, используя параметры для SDCdecode (), как дано в описании синтаксиса потока битов.
3.1 Конфигурация декодера (ParametricSpecificConfig)
Информация о конфигурации декодера для параметрического кодирования передается в ParametricSpecificConfig () базового уровня и элементарном потоке уровня улучшения или расширения.
Параметрический базовый уровень - конфигурация
Параметрический кодер в немасштабируемом режиме или базовом уровне в масштабируемом режиме HILN используют ParametricSpecificConfig () с isBaseLayer == 1.
Параметрический уровень улучшения/расширения HILN - конфигурация
Чтобы использовать HILN в качестве ядра в режиме "масштабируемый T/F с ядром", в дополнение к базовому уровню HILN требуется уровень улучшения HILN. При работе с масштабируемой скоростью передачи HILN в дополнение к базовому уровню HILN разрешаются один или более уровней расширения HILN. Уровень улучшения и уровень расширения используют ParametricSpecificConfig () с isBaseLayer == 0.
Таблица 2 - Синтаксис ParametricSpecificConfig ()
|
|
|
|
Синтаксис | Количество битов | Мнемоника | |
ParametricSpecificConfig () |
|
| |
{ |
|
| |
| isBaseLayer; | 1 | uimsbf |
| if (isBaseLayer) { |
|
|
| PARAconfig (); |
|
|
| } |
|
|
| else { |
|
|
| HILNenexConfig (); |
|
|
| } |
|
|
} |
|
|
3.1.1 Конфигурация параметрического декодера аудио
Таблица 3 - Синтаксис PARAconfig ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
PARAconfig () |
|
| ||
{ |
|
| ||
| PARAmode; | 2 | uimsbf | |
| if (PARAmode! = 1) { |
|
| |
| ErHVXCconfig (); |
|
| |
} |
|
| ||
| if (PARAmode! = 0) { |
|
| |
| HILNconfig (); |
|
| |
| } |
|
| |
| PARAextensionFlag; | 1 | uimsbf | |
| if (PARAextensionFlag) { |
|
| |
| /* to be defined in MPEG 4 Phase 3 */ |
|
| |
| } |
|
| |
} |
|
|
Таблица 4 - PARAmode
|
|
|
PARAmode | Длина фрейма | Описание |
0 | 20 мс ( 160 выборок) | только HVXC |
1 | см. 3.1.2 и 5.1.4.3.3 | только HILN |
2 | 40 мс ( 320 выборок) | переключение HVXC/HILN |
3 | 40 мс ( 320 выборок) | смешивание HVXC/HILN |
3.1.2 Конфигурация декодера HILN
Таблица 5 - Синтаксис HILNconfig
|
|
|
|
Синтаксис | Количество битов | Мнемоника | |
HILNconfig () |
|
| |
{ |
|
| |
| HILNquantMode; | 1 | uimsbf |
| HILNmaxNumLine; | 8 | uimsbf |
| HILNsampleRateCode; | 4 | uimsbf |
| HILNframeLength; | 12 | uimsbf |
| HILNcontMode; | 2 | uimsbf |
} |
|
|
Таблица 6 - Синтаксис HILNenexConfig ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
HILNconfig () |
|
| ||
{ |
|
| ||
| HILNenhaLayer | 1 | uimsbf | |
| if (HILNenhaLayer) { |
|
| |
| HILNenhaQuantMode | 2 | uimsbf | |
| } |
|
| |
} |
|
|
Таблица 7 - HILNsampleRateCode
|
|
|
HILNsampleRateCode | sampleRate | maxFlndex |
0 | 96000 | 890 |
1 | 88200 | 876 |
2 | 64000 | 825 |
3 | 48000 | 779 |
4 | 44100 | 765 |
5 | 32000 | 714 |
6 | 24000 | 668 |
7 | 22050 | 654 |
8 | 16000 | 603 |
9 | 12000 | 557 |
10 | 11025 | 544 |
11 | 8000 | 492 |
12 | 7350 | 479 |
13 | зарезервировано | зарезервировано |
14 | зарезервировано | зарезервировано |
15 | зарезервировано | зарезервировано |
Таблица 8 - linebits
|
|
|
|
|
|
|
|
|
|
HILNmaxNumLine | 0 | 1 | 2..3 | 4..7 | 8..15 | 16..31 | 32..63 | 64..127 | 128..255 |
linebits | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Таблица 9 - HILNcontMode
|
|
HILNcontMode | Дополнительное продолжение линии декодером (см. подпункт 5.1.4.3.1) |
0 | гармонические линии <-> отдельные линии и линии гармоник <-> линии гармоник |
1 | режим 0 плюс отдельные линии <-> отдельные линии |
2 | дополнительное продолжение линий декодером отсутствует |
3 | (зарезервировано) |
Число битов улучшения частоты (fEnhbits [i]) в HILNenhaFrame () вычисляется следующим образом:
fEnhbits [i] = max (0, fEnhbitsBase [ILFreqlndex [i]] + fEnhbitsMode [HILNenhaQuantMode])
fEnhbits [i] = max (0, fEnhbitsBase [harmFreqlndex] + fEnhbitsMode [HILNenhaQuantMode] + fEnhbitsHarm [i])
Таблица 10 - fEnhbitsBase
|
|
|
ILFreqlndex | harmFreqlndex | fEnhbitsBase |
0..159 | 0..1243 | 0 |
160..269 | 1244..1511 | 1 |
270..380 | 1512..1779 | 2 |
381..491 | 1780..2047 | 3 |
492..602 |
| 4 |
603..713 |
| 5 |
714..890 |
| 6 |
Таблица 11 - fEnhbitsMode
|
|
|
|
|
HILNenhaQuantMode | 0 | 1 | 2 | 3 |
fEnhbitsMode | -3 | -2 | -1 | 0 |
Таблица 12 - fEnhbitsHarm
|
|
|
|
|
|
i | 0 | 1 | 2..3 | 4..7 | 8..9 |
fEnhbitsHarm [i] | 0 | 1 | 2 | 3 | 4 |
Таблица 13 - Константы HILN
|
|
tmbits | 4 |
atkbits | 4 |
decbits | 4 |
tmEnhbits | 3 |
atkEnhbits | 2 |
decEnhbits | 2 |
phasebits | 5 |
3.2 Фрейм потока битов (sIPacketPayload)
Динамические данные для параметрического кодирования передаются как пакетная полезная нагрузка SL в элементарном потоке базового уровня и дополнительного уровня улучшения или расширения.
Параметрический базовый уровень - полезная нагрузка устройства доступа.
Для параметрического кодера в немасштабируемом режиме или для базового уровня в масштабируемом режиме HILN определяется следующая полезная нагрузка фрейма потока битов:
|
|
sIPacketPayload { | |
| PARAframe (); |
} |
Параметрический уровень улучшения/расширения HILN - полезная нагрузка устройства доступа.
Чтобы проанализировать и декодировать уровень улучшения HILN, запрашивается декодируемая информация из базового уровня HILN.
Чтобы проанализировать и декодировать уровень расширения HILN, запрашивается декодируемая информация из базового уровня HILN и возможного нижнего уровня расширения HILN. Синтаксис потока битов уровней расширения HILN описывается способом, который требует, чтобы фреймы базового потока битов HILN и расширения анализировались в надлежащем порядке:
|
|
|
1 | HILNbasicFrame () | фрейм базового потока битов |
2 | HILNextFrame (1) | фрейм 1-го потока битов расширения (если доступен фрейм базового потока битов) |
3 | HILNextFrame (2) | фрейм 2-го потока битов расширения (если доступны фреймы базового потока и 1-го потока битов расширения) |
4 | и т.д. |
|
Для уровня улучшения и уровня расширения в масштабируемом режиме HILN определяется следующая полезная нагрузка фрейма потока битов:
|
|
sIPacketPayload { | |
| HILNenexFrame (); |
} |
3.2.1 Фрейм параметрического потока битов аудио
Таблица 14 - Синтаксис PARAframe ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
PARAframe () |
|
| ||
{ |
|
| ||
if (PARAmode == 0) { |
|
| ||
ErHVXCframe (HVXCrate); |
|
| ||
| } |
|
| |
| else if (PARAmode == 1) { |
|
| |
| HILNframe (); |
|
| |
| } |
|
| |
| else if (PARAmode == 2) { |
|
| |
| switchFrame (); |
|
| |
| } |
|
| |
| else if (PARAmode == 3) { |
|
| |
| mixFrame (); |
|
| |
| } |
|
| |
} |
|
|
Таблица 15 - Синтаксис switchFrame ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
switchFrame () |
|
| ||
{ |
|
| ||
| PARAswitch Mode; | 1 |
| |
| if (PARAswitchMode == 0) { |
| uimsbf | |
| ErHVXCdoubleframe (HVXCrate); |
|
| |
| } |
|
| |
| else { |
|
| |
| HILNframe (); |
|
| |
| } |
|
| |
} |
|
|
В каждом фрейме выбирается один из следующих PARAswitchModes:
Таблица 16 - PARAswitchMode
|
|
PARAswitchMode | Описание |
0 | только HVXC |
1 | только HILN |
Таблица 17 - Синтаксис mixFrame ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
mixFrame () |
|
| ||
{ |
|
| ||
| PARAmixMode; | 2 | uimsbf | |
| if (PARAmixMode == 0) { |
|
| |
| ErHVXCdoubleframe (HVXCrate); |
|
| |
| } |
|
| |
| else if (PARAmixMode == 1) { |
|
| |
| ILNframe (); |
|
| |
| ErHVXCdoubleframe (2000); |
|
| |
| } |
|
| |
| else if (PARAmixMode == 2) { |
|
| |
| HILNframe (); |
|
| |
| ErHVXCdoubleframe (4000); |
|
| |
| } |
|
| |
| else if (PARAmixMode == 3) { |
|
| |
| HILNframe (); |
|
| |
| } |
|
| |
} |
|
|
В каждом фрейме выбирается один из следующих PARAmixModes:
Таблица 18 - PARAmixMode
|
|
PARAmixMode | Описание |
0 | только HVXC |
1 | HVXC 2 Кбит/с и HILN |
2 | HVXC 4 Кбит/с и HILN |
3 | только HILN |
Таблица 19 - Синтаксис HVXCdoubleframe ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
ErHVXCdoubleframe (rate) |
|
| ||
{ |
|
| ||
| if (rate> = 3000) { |
|
| |
| ErHVXCfixframe (4000); |
|
| |
| ErHVXCfixframe (rate); |
|
| |
| } |
|
| |
| else { |
|
| |
| ErHVXCfixframe (2000); |
|
| |
| ErHVXCfixframe (rate); |
|
| |
| } |
|
| |
} |
|
|
3.2.2 Фрейм потока битов HILN
Таблица 20 - Синтаксис HILNframe ()
|
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | |||
HILNframe () |
|
| |||
| { |
|
| ||
| numLayer = 0; |
|
| ||
| HILNbasicFrameESC0 (); |
|
| ||
| HILNbasicFrameESC1 (); |
|
| ||
| HILNbasicFrameESC2 (); |
|
| ||
| HILNbasicFrameESC3 (); |
|
| ||
| HILNbasicFrameESC4 (); |
|
| ||
| layNumLine [0] = numLine; |
|
| ||
| layPrevNumLine [0] = prevNumLine; |
|
| ||
| for (k = 0; k <prevNumLine; k ++) { |
|
| ||
| layPrevLineContFlag [0] [k] = prevLineContFlag [k]; |
|
| ||
| } |
|
| ||
} |
|
|
Таблица 21 - Синтаксис HILNbasicFrameESC0 ()
|
|
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||||
HILNbasicFrameESC0 () |
|
| ||||
| { |
|
| |||
| prevNumLine = numLine; |
|
| |||
| /* prevNumLine is set to the number of lines | */ |
|
| ||
| /* in the previous frame | */ |
|
| ||
| /* prevNumLine = 0 for the first bitstream frame | */ |
|
| ||
| numLine; | linebits | uimsbf | |||
| harm Flag; | 1 | uimsbf | |||
| noiseFlag; | 1 | uimsbf | |||
| envFlag; | 1 | uimsbf | |||
| phaseFlag; | 1 | uimsbf | |||
| maxAmpllndexCoded; | 4 | uimsbf | |||
| maxAmpllndex = 4*maxAmpllndexCoded; |
|
| |||
| if (harmFlag) { |
|
| |||
| HARMbasicParaESC0 (); |
|
| |||
| } |
|
| |||
| if (noiseFlag) { |
|
| |||
| NOISEbasicParaESC0 (); |
|
| |||
| } |
|
| |||
} |
|
|
Таблица 22 - Синтаксис HILNbasicFrameESC1 ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
HILNbasicFrameESC1 () |
|
| ||
{ |
|
| ||
| if (harmFlag) { |
|
| |
| HARMbasicParaESC1 (); |
|
| |
| } |
|
| |
| if (noiseFlag) { |
|
| |
| NOISEbasicParaESC1 (); |
|
| |
| } |
|
| |
| INDIbasicParaESC1 (); |
|
| |
} |
|
|
Таблица 23 - Синтаксис HILNbasicFrameESC2 ()
|
|
|
|
Синтаксис | Количество битов | Мнемоника | |
HILNbasicFrameESC2 () |
|
| |
{ |
|
| |
| INDIbasicParaESC2 (); |
|
|
} |
|
|
Таблица 24 - Синтаксис HILNbasicFrameESC3 ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
HILNbasicFrameESC3 () |
|
| ||
{ |
|
| ||
| if (envFlag) { |
|
| |
| envTmax; | tmbits | uimsbf | |
| envRatk; | atkbits | uimsbf | |
| envRdec | decbits | uimsbf | |
} |
|
| ||
if (harmFlag) { |
|
| ||
| HARMbasicParaESC3 (); |
|
| |
} |
|
| ||
if (noiseFlag) { |
|
| ||
| NOISEbasicParaESC3 (); |
|
| |
} |
|
| ||
INDIbasicParaESC3 (); |
|
| ||
| if (harmFlag) { |
|
| |
| harmFreqStretch; | 1..7 | HFS | |
| } |
|
| |
} |
|
|
Таблица 25 - Синтаксис HILNbasicFrameESC4 ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
HILNbasicFrameESC4 () |
|
| ||
{ |
|
| ||
| if (harmFlag) { |
|
| |
| HARMbasicParaESC4 (); |
|
| |
| } |
|
| |
| if (noiseFlag) { |
|
| |
| NOISEbasicParaESC4 (); |
|
| |
| } |
|
| |
| INDIbasicParaESC4 (); |
|
| |
} |
|
|
Таблица 26 - Синтаксис HARMbasicParaESC0 ()
|
|
|
|
Синтаксис | Количество битов | Мнемоника | |
HARMbasicParaESC0 () |
|
| |
{ |
|
| |
| prevHarmAmpllndex = harmAmpllndex; |
|
|
| prevHarmFreqlndex = harmFreqlndex; |
|
|
| harmContFlag; | 1 | uimsbf |
| harmEnvFlag; | 1 | uimsbf |
| if (! harmContFlag) { |
|
|
| harmAmplRel; | 6 | uimsbf |
| harmAmpllndex = maxAmpllndex + harmAmplRel; |
|
|
| harmFreqlndex; | 11 | uimsbf |
| } |
|
|
} |
|
|
Таблица 27 - Синтаксис HARMbasicParaESC1 ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
HARMbasicParaESC1 () |
|
| ||
{ |
|
| ||
| numHarmParalndex; | 4 | uimsbf | |
| numHarmPara = numHarmParaTable [numHarmParalndex]; |
|
| |
| пит Harm Linelndex; | 5 | uimsbf | |
| numHarmLine = numHarmLineTable [numHarmLinelndex]; |
|
| |
| if (harmContFlag) { |
|
| |
| contHarmAmpl | 3..8 | DIA | |
| harmAmpllndex = prevHarmAmpllndex + contHarmAmpi; |
|
| |
| contHarmFreq | 2..9 | DHF | |
| harmFreqlndex = prevHarmFreqlndex + contHarmFreq; |
|
| |
| } |
|
| |
| for (i = 0; i <2; i ++) { |
|
| |
| harmLAR [i]; | 4..19 | LARH1 | |
| } |
|
| |
} |
|
|
Таблица 28 - Синтаксис HARMbasicParaESC3 ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
HARMbasicParaESC3 () |
|
| ||
{ |
|
| ||
| for (i = 2; i <min (7, numHarmPara); i ++) { |
|
| |
| harmLAR [i]; | 3..18 | LARH2 | |
| } |
|
| |
| for (i = 7; i <numHarmPara; i ++) { |
|
| |
| harmLAR [i]; | 2..17 | LARH3 | |
| } |
|
| |
} |
|
|
Таблица 29 - Синтаксис HARMbasicParaESC4 ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
HARMbasicParaESC4 () |
|
| ||
{ |
|
| ||
| if (phaseFlag &&! harmContFlag) { |
|
| |
| numHarmPhase; | 6 | uimsbf | |
| } |
|
| |
| else { |
|
| |
| numHarmPhase = 0; |
|
| |
| } |
|
| |
| for (i = 0; i <numHarmPhase; i ++) { |
|
| |
| harmPhase [i]; | phasebits | uimsbf | |
| harmPhaseAvail [i] = 1; |
|
| |
| } |
|
| |
| for (i = numHarmPhase; i <numHarmLine; i ++) { |
|
| |
| harmPhaseAvail [i] = 0; |
|
| |
| } |
|
| |
} |
|
|
Таблица 30 - numHarmParaTable
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
numHarmParaTable [i] | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 13 | 15 | 17 | 19 | 21 | 23 | 25 |
Таблица 31 - numHarmLineTable
|
|
|
|
|
|
|
|
|
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
numHarmLineTable [i] | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
i | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
numHarmLineTable [i] | 12 | 14 | 16 | 19 | 22 | 25 | 29 | 33 |
i | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
numHarmLineTable [i] | 38 | 43 | 49 | 56 | 64 | 73 | 83 | 94 |
i | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
numHarmLineTable [i] | 107 | 121 | 137 | 155 | 175 | 197 | 222 | 250 |
Таблица 32 - Синтаксис NOISEbasicParaESC0 ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
NOISEbasicParaESC0 () |
|
| ||
{ |
|
| ||
| prevNoiseAmpllndex = noiseAmpllndex; |
|
| |
| noiseContFlag; | 1 | uimsbf | |
| noiseEnvFlag; | 1 | uimsbf | |
| if (! noiseContFlag) { |
|
| |
| noiseAmplRel; | 6 | uimsbf | |
| noiseAmpllndex = maxAmpllndex + noiseAmplRel; |
|
| |
| } |
|
| |
} |
|
|
Таблица 33 - Синтаксис NOISEbasicParaESC1 ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
NOISEbasicParaESC1 () |
|
| ||
{ |
|
| ||
| if (noiseContFlag) { |
|
| |
| contNoiseAmpl;
| 3..8 | DIA | |
| noiseAmpllndex = prevNoiseAmpllndex + |
|
| |
| contNoiseAmpl; |
|
| |
| } |
|
| |
| numNoiseParalndex; | 4 | uimsbf | |
| numNoisePara = numNoiseParaTable [numNoiseParalndex]; |
|
| |
| for (i = 0; / <min (2, numNoisePara); i ++) { |
|
| |
| noiseLAR [i]; | 2..17 | LARN1 | |
| } |
|
| |
} |
|
|
Таблица 34 - Синтаксис NOISEbasicParaESC3 ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
NOISEbasicParaESC3 () |
|
| ||
{ |
|
| ||
| for (i = 2; i <numNoisePara; i ++) { |
|
| |
| noiseLAR [i]; | 1..18 | LARN2 | |
| } |
|
| |
} |
|
|
Таблица 35 - Синтаксис NOISEbasicParaESC4 ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
NOISEbasicParaESC4 () |
|
| ||
{ |
|
| ||
| if (noiseEnvFlag) { |
|
| |
| noiseEnvTmax; | tmbits | uimsbf | |
| noiseEnvRatk; | atkbits | uimsbf | |
| noiseEnvRdec; | decbits | uimsbf | |
| } |
|
| |
} |
|
|
Таблица 36 - numNoiseParaTable
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
numNoiseParaTable [i] | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 11 | 13 | 15 | 17 | 19 | 21 | 23 | 25 |
Таблица 37 - Синтаксис INDIbasicParaESC1 ()
|
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | |||
INDIbasicParaESC1 () |
|
| |||
{ |
|
| |||
| for (k = 0; k <prevNumLine; k ++) { |
|
| ||
| prevLineContFlag [k]; | 1 | uimsbf | ||
| } |
|
| ||
| i = 0; |
|
| ||
| for (k = 0; k <prevNumLine; k ++) { |
|
| ||
| if (prevLineContFlag [k]) { |
|
| ||
| linePred [i] = k; |
|
| ||
| lineContFlag [i ++] = 1; |
|
| ||
| } |
|
| ||
| } |
|
| ||
| while (i <numLine) { |
|
| ||
| lineContFlag [i ++] = 0; |
|
| ||
| } |
|
| ||
} |
|
|
Таблица 38 - Синтаксис INDIbasicParaESC2 ()
|
|
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||||
INDIbasicParaESC2 () |
|
| ||||
{ |
|
| ||||
| lastNLFreq = 0; |
|
| |||
| for (i = 0; i <prevNumLine; 1 ++) { |
|
| |||
| prevlLFreqlndex [i] = ILFreqlndex [i]; |
|
| |||
| prevlLAmplIndex [i] = ILAmpllndex [i]; |
|
| |||
| } |
|
| |||
| for (i = 0; i <numLine; 1 ++) { |
|
| |||
| if (envFlag) { |
|
| |||
| lineEnvFlag [i]; | 1 | uimsbf | |||
| } |
|
| |||
| } |
|
| |||
| for (i = 0; i <numLine; i ++) { |
|
| |||
| if (! lineContFlag [i]) { |
|
| |||
| if (numLine-1-i <7) { |
|
| |||
| ILFreqlnc [i]; | 0..14 | SDC | |||
| /* SDCdecode (maxFindexlastNLFreq, */ |
|
| |||
| /* sdclLFTable [numLine-1-i]) */ |
|
| |||
| } |
|
| |||
| else { |
|
| |||
| ILFreqlnc [i]; | 0..14 | SDC | |||
| /* SDCdecode (maxFindexlastNLFreq, */ |
|
| |||
| /* sdclLFTable [7]) */ |
|
| |||
| } |
|
| |||
| ILFreqlndex [i] = lastNLFreq + ILFreqlnc [i]; |
|
| |||
| lastNLFreq = ILFreqlndex [i]; |
|
| |||
| если (HILNquantMode) { |
|
| |||
| ILAmplRel [i]; |
|
| |||
| /* SDCdecode (50, sdclLATable) */ | 4..10 | SDC | |||
| ILAmpllndex [i] = maxAmpllndex + ILAmplRel [i]; |
|
| |||
| } |
|
| |||
| else { |
|
| |||
| ILAmplRel [i]; | 3..9
| SDC
| |||
| /* SDCdecode (25, sdclLATable) */ |
|
| |||
| ILAmpllndex [i] = maxAmpllndex + |
|
| |||
| 2*ILAmplRel [i]; |
|
| |||
| } |
|
| |||
| } |
|
| |||
| } |
|
| |||
} |
|
|
Таблица 39 - Синтаксис INDIbasicParaESC3 ()
|
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | |||
INDIbasicParaESC3 () |
|
| |||
{ |
|
| |||
| for (i = 0; i <numLine; i ++) { |
|
| ||
| if (lineContFlag [i]) { |
|
| ||
| DILFreq [i]; | 2..10 | DIF | ||
| ILFreqlndex [i] = prevlLFreqlndex [linePred [i]] + |
|
| ||
| DILFreq [i]; |
|
| ||
| DILAmpl[i]; | 3..8 | DIA | ||
| ILAmpllndex [i] = prevlLAmpllndex [linePred [i]] + |
|
| ||
| DILAmpl[i]; |
|
| ||
| } |
|
| ||
| } |
|
| ||
} |
|
|
Таблица 40 - Синтаксис INDIbasicParaESC4 ()
|
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | |||
INDIbasicParaESC4 () |
|
| |||
{ |
|
| |||
| if (phaseFlag) { |
|
| ||
| numLinePhase; | linebits | uimsbf | ||
| } |
|
| ||
| else { |
|
| ||
| numLinePhase = 0; |
|
| ||
| } |
|
| ||
| j = 0; |
|
| ||
| for (i = 0; i <numLine; i ++) { |
|
| ||
| if (! linePred [i] && j <numLinePhase) { |
|
| ||
| linePhase [i]; | phasebits | uimsbf | ||
| linePhaseAvail [i] = 1; |
|
| ||
| j ++; |
|
| ||
| } |
|
| ||
| else { |
|
| ||
| linePhaseAvail [i] = 0; |
|
| ||
| } |
|
| ||
| } |
|
| ||
} |
|
|
Таблица 41 - Синтаксис HILNenexFrame ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
HILNenexFrame () |
|
| ||
{ |
|
| ||
| HILNenhaLayer value in в ParametricSpecificConfig () */ |
|
| |
| /* thisElementary Stream must be used here! */ |
|
| |
| if (HILNenhaLayer) { |
|
| |
| HILNenhaFrame (); |
|
| |
| } |
|
| |
| else { |
|
| |
| numLayer ++; |
|
| |
| HILNextFrame (numLayer); |
|
| |
| } |
|
| |
} |
|
|
Таблица 42 - Синтаксис HILNenhaFrame ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
HILNenhaFrame () |
|
| ||
{ |
|
| ||
| if (en vFlag) { |
|
| |
| envTmaxEnha; | tmEnhbits | uimsbf | |
| envRatkEnha; | atkEnhbits | uimsbf | |
| envRdecEnha; | decEnhbits | uimsbf | |
| } |
|
| |
| if (harmFlag) { |
|
| |
| HARMenhaPara (); |
|
| |
| } |
|
| |
| INDIenhaPara (); |
|
| |
} |
|
|
Таблица 43 - Синтаксис HARMenhaPara ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
HARMenhaPara () |
|
| ||
{ |
|
| ||
| for (i = 0; i <min (numHarmLine, 10); i ++) { |
|
| |
| harmFreqEnha [i]; | fEnhbits [i] | uimsbf | |
| harmPhase [I]; | phasebits | uimsbf | |
| } |
|
| |
} |
|
|
Таблица 44 - Синтаксис INDIenhaPara ()
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | ||
INDIenhaPara () |
|
| ||
{ |
|
| ||
| for (i = 0; 1 <numLine; i ++) { |
|
| |
| lineFreqEnha [i]; | fEnhbits [i] | uimsbf | |
| linePhase [i]; | phasebits | uimsbf | |
| } |
|
| |
} |
|
|
Таблица 45 - Синтаксис HILNextFrame ()
|
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | |||
HILNextFrame (numLayer) |
|
| |||
{ |
|
| |||
| layPrevNumLine [numLayer] = layNumLine [numLayer]; |
|
| ||
| /* layPrevNumLine [numLayer] = 0 for the */ |
|
| ||
| /* first bitstream frame */ |
|
| ||
| addNumLine [numLayer]; | linebits | uimsbf | ||
| if (phaseFlag) { |
|
| ||
| layNumLinePhase [numLayer]; | linebits | uimsbf | ||
| } |
|
| ||
| layNumLine [numLayer] = layNumLine [numLayer-1] + |
|
| ||
| addNumLine [numLayer]; |
|
| ||
| for (k = 0; к <layPrevNumLine [numLayer-1]; к ++) { |
|
| ||
| if (layPrevLineContFlag [numLayer-1] [k]) { |
|
| ||
| layPrevLineContFlag [numLayer] [k] = 1; |
|
| ||
| } |
|
| ||
| else { |
|
| ||
| layPrevLineContFlag [numLayer] [k]; | 1 | uimsbf | ||
| } |
|
| ||
| } |
|
| ||
| for (k = layPrevNumLine [numLayer-1]; |
|
| ||
| k <layPrevNumLine [numLayer]; k ++) { |
|
| ||
| layPrevLineContFlag [numLayer] [k]; | 1 | uimsbf | ||
| } |
|
| ||
| i = layNumLine [numLayer-1]; |
|
| ||
| for (k = 0; k <layPrevNumLine [numLayer-1]; k ++) { |
|
| ||
| if (! layPrevLineContFlag [numLayer-1] [k] && |
|
| ||
| layPrevLineContFlag [numLayer] [k]) { |
|
| ||
| linePred [i] = k; |
|
| ||
| lineContFlag [i ++] = 1 |
|
| ||
| } |
|
| ||
| } |
|
| ||
| for (k = layPrevNumLine [numLayer-1]; |
|
| ||
| k <layPrevNumLine [numLayer]; k ++) { |
|
| ||
| if (layPrevLineContFlag [numLayer] [k]) { |
|
| ||
| linePred [I] = k; |
|
| ||
| lineContFlag [i ++] = 1; |
|
| ||
| } |
|
| ||
| } |
|
| ||
| while (i <layNumLine [numLayer]) { |
|
| ||
| lineContFlag [i ++] = 0; |
|
| ||
| } |
|
| ||
| INDIextPara (numLayer); |
|
| ||
| if (phaseFlag) { |
|
| ||
| INDIextPhasePara (numLayer); |
|
| ||
| } |
|
| ||
} |
|
|
Таблица 46 - Синтаксис INDIextPara ()
|
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | |||
INDIextPara (numLayer) |
|
| |||
{ |
|
| |||
| lastNLFreq = 0; |
|
| ||
| for (i = layPrevNumLine [numLayer-1]; |
|
| ||
| i <layPrevNumLine [numLayer]; i ++) { |
|
| ||
| prevlLFreqlndex [i] = ILFreqlndex [i]; |
|
| ||
| prevlLAm pi Index [i] = ILAmpllndex [i]; |
|
| ||
| } |
|
| ||
| for (i = layNumLine [numLayer-1]; |
|
| ||
| i <layNumLine [numLayer]; i ++) { |
|
| ||
| if (envFlag) { |
|
| ||
| lineEnvFlag [i]; | 1 | uimsbf | ||
| } |
|
| ||
| if (lineContFlag [i]) { |
|
| ||
| DILFreq [i]; | 2..10 | DIF | ||
| ILFreqlndex [i] = prevlLFreqlndex [HnePred [i]] + DILFreq [i]; |
|
| ||
| DILAmpl [i]; | 3..8 | DIA | ||
| ILAmpllndex [i] = prevlLAmpllndex [HnePred [i]] + |
|
| ||
| DILAmpl [i]; |
|
| ||
| } |
|
| ||
| else { |
|
| ||
| if (layNumLine [numLayer] - 1-i <7) { |
|
| ||
| ILFreqlnc [i]; | 0..14 | SDC | ||
| /* SDCdecode (maxFindexlastNLFreq, */ |
|
| ||
| /* sdclLFTable [layNumLine [numLayer] - 1-i]) */ |
|
| ||
| } |
|
| ||
| else { |
|
| ||
| ILFreqlnc [i]; | 0..14 | SDC | ||
| /* SDCdecode (maxFindexlastNLFreq, */ |
|
| ||
| /* sdclLFTable [7]) */ |
|
| ||
| } |
|
| ||
| ILFreqlndex [i] = lastNLFreq + ILFreqlnc [i]; |
|
| ||
| lastNLFreq = ILFreqlndex [i]; |
|
| ||
| if (HILNquantMode) { |
|
| ||
| ILAmplRel [i]; | 4..10 | SDC | ||
| /* SDCdecode (50, sdclLATable) */ |
|
| ||
| ILAmpllndex [i] = maxAmpllndex + ILAmplRel [i]; |
|
| ||
| } |
|
| ||
| else { |
|
| ||
| ILAmplRel [i]; | 3..9 | SDC | ||
| /* SDCdecode (25, sdclLATable) */ |
|
| ||
| ILAmpllndex [i] = maxAmpllndex + 2*ILAmplRel [i]; |
|
| ||
| } |
|
| ||
| } |
|
| ||
} |
|
|
Таблица 47 - Синтаксис INDIextPhasePara ()
|
|
|
|
|
|
Синтаксис | Количество битов | Мнемоника | |||
INDIextPhasePara (numLayer) |
|
| |||
{ |
|
| |||
| j = 0; |
|
| ||
| for (i = layNumLine[numLayer-1]; i < layNumLine[numLayer]; |
|
| ||
| i++; { |
|
| ||
| if (! linePred [i] && j < layNumLinePhase[numLayer]) { |
|
| ||
| linePhase [i]; | phasebits | uimsbf | ||
| linePhaseAvail [i] = 1; |
|
| ||
| j++; |
|
| ||
| } |
|
| ||
| else { |
|
| ||
| linePhaseAvail [i] = 0; |
|
| ||
| } |
|
| ||
| } |
|
| ||
} |
|
|
3.2.3 Сборники кодов HILN
Таблица 48 - Код LARH1 (harmLAR [0..1])
|
|
|
|
Кодовая комбинация | harmLAR [i] | Кодовая комбинация | harmLAR [i] |
1000000000000000100 | -6,350
| 0100 | 0,050 |
1000000000000000101 | -6,250
| 0101 | 0,150 |
1000000000000000110 | -6,150
| 0110 | 0,250 |
1000000000000000111 | -6,050
| 0111 | 0,350 |
100000000000000100 | -5,950
| 00100 | 0,450 |
100000000000000101 | -5,850
| 00101 | 0,550 |
100000000000000110 | -5,750
| 00110 | 0,650 |
100000000000000111 | -5,650
| 00111 | 0,750 |
10000000000000100 | -5,550
| 000100 | 0,850 |
10000000000000101 | -5,450
| 000101 | 0,950 |
10000000000000110 | -5,350
| 000110 | 1,050 |
10000000000000111 | -5,250
| 000111 | 1,150 |
1000000000000100 | -5,150
| 0000100 | 1,250 |
1000000000000101 | -5,050
| 0000101 | 1,350 |
1000000000000110 | -4,950
| 0000110 | 1,450 |
1000000000000111 | -4,850
| 0000111 | 1,550 |
100000000000100 | -4,750
| 00000100 | 1,650 |
100000000000101 | -4,650
| 00000101 | 1,750 |
100000000000110 | -4,550
| 00000110 | 1,850 |
100000000000111 | -4,450
| 00000111 | 1,950 |
10000000000100 | -4,350
| 000000100 | 2,050 |
10000000000101 | -4,250
| 000000101 | 2,150 |
10000000000110 | -4,150
| 000000110 | 2,250 |
10000000000111 | -4,050
| 000000111 | 2,350 |
Окончание таблицы 48
|
|
|
|
Кодовая комбинация | harmLAR [i] | Кодовая комбинация | harmLAR [i] |
1000000000100 | -3,950
| 0000000100 | 2,450 |
1000000000101 | -3,850
| 0000000101 | 2,550 |
1000000000110 | -3,750
| 0000000110 | 2,650 |
1000000000111 | -3,650
| 0000000111 | 2,750 |
100000000100 | -3,550
| 00000000100 | 2,850 |
100000000101 | -3,450
| 00000000101 | 2,950 |
100000000110 | -3,350
| 00000000110 | 3,050 |
100000000111 | -3,250
| 00000000111 | 3,150 |
10000000100 | -3,150
| 000000000100 | 3,250 |
10000000101 | -3,050
| 000000000101 | 3,350 |
10000000110 | -2,950
| 000000000110 | 3,450 |
10000000111 | -2,850
| 000000000111 | 3,550 |
1000000100 | -2,750
| 0000000000100 | 3,650 |
1000000101 | -2,650
| 0000000000101 | 3,750 |
1000000110 | -2,550
| 0000000000110 | 3,850 |
1000000111 | -2,450
| 0000000000111 | 3,950 |
100000100 | -2,350
| 00000000000100 | 4,050 |
100000101 | -2,250
| 00000000000101 | 4,150 |
100000110 | -2,150
| 00000000000110 | 4,250 |
100000111 | -2,050
| 00000000000111 | 4,350 |
10000100 | -1,950
| 000000000000100 | 4,450 |
10000101 | -1,850
| 000000000000101 | 4,550 |
10000110 | -1,750
| 000000000000110 | 4,650 |
10000111 | -1,650
| 000000000000111 | 4,750 |
1000100 | -1,550
| 0000000000000100 | 4,850 |
1000101 | -1,450
| 0000000000000101 | 4,950 |
1000110 | -1,350
| 0000000000000110 | 5,050 |
1000111 | -1,250
| 0000000000000111 | 5,150 |
100100 | -1,150
| 00000000000000100 | 5,250 |
100101 | -1,050
| 00000000000000101 | 5,350 |
100110 | -0,950
| 00000000000000110 | 5,450 |
100111 | -0,850
| 00000000000000111 | 5,550 |
10100 | -0,750
| 000000000000000100 | 5,650 |
10101 | -0,650
| 000000000000000101 | 5,750 |
10110 | -0,550
| 000000000000000110 | 5,850 |
10111 | -0,450
| 000000000000000111 | 5,950 |
1100 | -0,350
| 0000000000000000100 | 6,050 |
1101 | -0,250
| 0000000000000000101 | 6,150 |
1110 | -0,150
| 0000000000000000110 | 6,250 |
1111 | -0,050
| 0000000000000000111 | 6,350 |
Таблица 49 - Код LARH2 (harmLAR [2..6])
|
|
|
|
Кодовая комбинация | harmLAR[.] | Кодовая комбинация | harmLAR[.] |
100000000000000010 | -4,725
| 010 | 0,075 |
100000000000000011 | -4,575
| 011 | 0,225 |
10000000000000010 | -4,425
| 0010 | 0,375 |
10000000000000011 | -4,275
| 0011 | 0,525 |
1000000000000010 | -4,125
| 00010 | 0,675 |
1000000000000011 | -3,975
| 00011 | 0,825 |
100000000000010 | -3,825
| 000010 | 0,975 |
100000000000011 | -3,675
| 000011 | 1,125 |
10000000000010 | -3,525
| 0000010 | 1,275 |
10000000000011 | -3,375
| 0000011 | 1,425 |
1000000000010 | -3,225
| 00000010 | 1,575 |
1000000000011 | -3,075
| 00000011 | 1,725 |
100000000010 | -2,925
| 000000010 | 1,875 |
100000000011 | -2,775
| 000000011 | 2,025 |
10000000010 | -2,625
| 0000000010 | 2,175 |
10000000011 | -2,475
| 0000000011 | 2,325 |
1000000010 | -2,325
| 00000000010 | 2,475 |
1000000011 | -2,175
| 00000000011 | 2,625 |
100000010 | -2,025
| 000000000010 | 2,775 |
100000011 | -1,875
| 000000000011 | 2,925 |
10000010 | -1,725
| 0000000000010 | 3,075 |
10000011 | -1,575
| 0000000000011 | 3,225 |
1000010 | -1,425
| 00000000000010 | 3,375 |
1000011 | -1,275
| 00000000000011 | 3,525 |
100010 | -1,125
| 000000000000010 | 3,675 |
100011 | -0,975
| 000000000000011 | 3,825 |
10010 | -0,825
| 0000000000000010 | 3,975 |
10011 | -0,675
| 0000000000000011 | 4,125 |
1010 | -0,525
| 00000000000000010 | 4,275 |
1011 | -0,375
| 00000000000000011 | 4,425 |
110 | -0,225
| 000000000000000010 | 4,575 |
111 | -0,075
| 000000000000000011 | 4,725 |
Таблица 50 - Код LARH3 (harmLAR [7..24])
|
|
|
|
Кодовая комбинация | harmLAR[.] | Кодовая комбинация | harmLAR[.] |
10000000000000001 | -2,325
| 01 | 0,075 |
1000000000000001 | -2,175
| 001 | 0,225 |
100000000000001 | -2,025
| 0001 | 0,375 |
10000000000001 | -1,875
| 00001 | 0,525 |
1000000000001 | -1,725
| 000001 | 0,675 |
100000000001 | -1,575
| 0000001 | 0,825 |
Окончание таблицы 50
|
|
|
|
Кодовая комбинация | harmLAR[.] | Кодовая комбинация | harmLAR[.] |
10000000001 | -1,425
| 00000001 | 0,975 |
1000000001 | -1,275
| 000000001 | 1,125 |
100000001 | -1,125
| 0000000001 | 1,275 |
10000001 | -0,975
| 00000000001 | 1,425 |
1000001 | -0,825
| 000000000001 | 1,575 |
100001 | -0,675
| 0000000000001 | 1,725 |
10001 | -0,525
| 00000000000001 | 1,875 |
1001 | -0,375
| 000000000000001 | 2,025 |
101 | -0,225
| 0000000000000001 | 2,175 |
11 | -0,075
| 00000000000000001 | 2,325 |
Таблица 51 - Код LARN1 (noiseLAR [0, 1])
|
|
|
|
Кодовая комбинация | noiseLAR[.] | Кодовая комбинация | noiseLAR[.] |
10000000000000001 | -4,65
| 01 | 0,15 |
1000000000000001 | -4,35
| 001 | 0,45 |
100000000000001 | -4,05
| 0001 | 0,75 |
10000000000001 | -3,75
| 00001 | 1,05 |
1000000000001 | -3,45
| 000001 | 1,35 |
100000000001 | -3,15
| 0000001 | 1,65 |
10000000001 | -2,85
| 00000001 | 1,95 |
1000000001 | -2,55
| 000000001 | 2,25 |
100000001 | -2,25
| 0000000001 | 2,55 |
10000001 | -1,95
| 00000000001 | 2,85 |
1000001 | -1,65
| 000000000001 | 3,15 |
100001 | -1,35
| 0000000000001 | 3,45 |
10001 | -1,05
| 00000000000001 | 3,75 |
1001 | -0,75
| 000000000000001 | 4,05 |
101 | -0,45
| 0000000000000001 | 4,35 |
11 | -0,15
| 00000000000000001 | 4,65 |
Таблица 52 - Код LARN2 (noiseLAR [2..24])
|
|
|
|
Кодовая комбинация | noiseLAR[.] | Кодовая комбинация | noiseLAR[.] |
110000000000000001 | -6,35
| 101 | 0,35 |
11000000000000001 | -5,95
| 1001 | 0,75 |
1100000000000001 | -5,55
| 10001 | 1,15 |
110000000000001 | -5,15
| 100001 | 1,55 |
11000000000001 | -4,75
| 1000001 | 1,95 |
1100000000001 | -4,35
| 10000001 | 2,35 |
110000000001 | -3,95
| 100000001 | 2,75 |
11000000001 | -3,55
| 1000000001 | 3,15 |
1100000001 | -3,15
| 10000000001 | 3,55 |
Окончание таблицы 52
|
|
|
|
Кодовая комбинация | noiseLAR[.] | Кодовая комбинация | noiseLAR[.] |
110000001 | -2,75
| 100000000001 | 3,95 |
11000001 | -2,35
| 1000000000001 | 4,35 |
1100001 | -1,95
| 10000000000001 | 4,75 |
110001 | -1,55
| 100000000000001 | 5,15 |
11001 | -1,15
| 1000000000000001 | 5,55 |
1101 | -0,75
| 10000000000000001 | 5,95 |
111 | -0,35
| 100000000000000001 | 6,35 |
0 | 0,00
|
|
|
Таблица 53 - Код DIA
|
|
|
|
Кодовая комбинация | Значение | Кодовая комбинация | Значение |
111 1 1111 | -25
| 001 | 1 |
111 1 1110 | -24
| 011 0 | 2 |
111 1 1101 | -23
| 100 0 | 3 |
111 1 xxxx | -y
| 101 0 0 | 4 |
111 1 0001 | -11
| 101 0 1 | 5 |
111 1 0000 | -10
| 110 0 00 | 6 |
110 1 11 | -9
| 110 0 01 | 7 |
110 1 10 | -8
| 110 0 10 | 8 |
110 1 01 | -7
| 110 0 11 | 9 |
110 1 00 | -6
| 111 0 0000 | 10 |
101 1 1 | -5
| 111 0 0001 | 11 |
101 1 0 | -4
| 111 0 xxxx | у |
100 1 | -3
| 111 0 1101 | 23 |
011 1 | -2
| 111 0 1110 | 24 |
010 | -1
| 111 0 1111 | 25 |
000 | 0
|
|
|
Таблица 54 - Код DIF
|
|
|
|
Кодовая комбинация | Значение | Кодовая комбинация | Значение |
11 11 1 11111 | -42
| 01 0 | 1 |
11 11 1 11110 | -41
| 10 0 0 | 2 |
11 11 1 11101 | -40
| 10 0 1 | 3 |
11 11 1 xxxxx | -y
| 11 00 0 | 4 |
11 11 1 00001 | -12
| 11 01 0 0 | 5 |
11 11 1 00000 | -11
| 11 01 0 1 | 6 |
11 10 1 11 | -10
| 11 10 0 00 | 7 |
11 10 1 10 | -9
| 11 10 0 01 | 8 |
11 10 1 01 | -8
| 11 10 0 10 | 9 |
11 10 1 00 | -7
| 11 10 0 11 | 10 |
11 01 1 1 | -6
| 11 11 0 00000 | 11 |
Окончание таблицы 54
|
|
|
|
Кодовая комбинация | Значение | Кодовая комбинация | Значение |
11 01 1 0 | -5
| 11 11 0 00001 | 12 |
11 00 1 | -4
| 11 11 0 xxxxx | y |
10 1 1 | -3
| 11 11 0 11101 | 40 |
10 1 0 | -2
| 11 11 0 11110 | 41 |
01 1 | -1
| 11 11 0 11111 | 42 |
00 | 0
|
|
|
Таблица 55 - Код DHF
|
|
|
|
Кодовая комбинация | Значение | Кодовая комбинация | Значение |
11 1 111111 | -69
| 01 0 | 1 |
11 1 111110 | -68
| 10 0 00 | 2 |
11 1 111101 | -67
| 10 0 01 | 3 |
11 1 xxxxxx | -y
| 10 0 10 | 4 |
11 1 000001 | -7
| 10 0 11 | 5 |
11 1 000000 | -6
| 11 0 000000 | 6 |
10 1 11 | -5
| 11 0 000001 | 7 |
10 1 10 | -4
| 11 0 xxxxxx | y |
10 1 01 | -3
| 11 0 111101 | 67 |
10 1 00 | -2
| 11 0 111110 | 68 |
01 1 | -1
| 11 0 111111 | 69 |
00 | 0
|
|
|
Таблица 56 - Код HFS
|
|
|
|
Кодовая комбинация | Значение | Кодовая комбинация | Значение |
1 1 1 1111 | -17
| 1 0 0 | 1 |
1 1 1 1110 | -16
| 1 0 1 0000 | 2 |
1 1 1 1101 | -15
| 1 0 1 0001 | 3 |
1 1 1 xxxx | -у
| 1 0 1 xxxx | у |
1 1 1 0001 | -3
| 1 0 1 1101 | 15 |
1 1 1 0000 | -2
| 1 0 1 1110 | 16 |
1 1 0 | -1
| 1 0 1 1111 | 17 |
0 | 0
|
|
|
Примечания к таблицам 53-56 - Группировка битов в пределах кодовой комбинации (например, "1 1 1 1111") обеспечивается только для лучшей удобочитаемости. Кодовые комбинации, не перечисленные явно в сборниках кодов (например, "1 1 1 хххх"), определяются постепенным увеличением неявной части кодовой комбинации "хххх" (uimsbf) и величины "у" соответствующего значения. Во всех случаях кодовые комбинации и значения для двух самых маленьких и трех самых больших величин перечисляются явно.
3.2.4 HILN SubDivisionCode (SDC)
Код SubDivisionCode (SDC) является алгоритмически сгенерированным кодом изменяемой длины, основанным на данной таблице и данном числе различных кодовых комбинаций.
Идея этой схемы кодирования заключается в разделении функции плотности вероятности на две части, которые представляют равную вероятность. Один бит передается, чтобы определять расположение части, значение которой будет кодировано. Это разделение повторяется, пока ширина части не единица, и затем ее позиция равна позиции кодируемого значения. Позиции границ извлекаются из таблицы 32 квантованных значений с фиксированной точкой. Помимо этой таблицы (параметр "tab") также необходимо число различных кодовых комбинаций (параметр "k").
Для получения доступа к полной версии без ограничений вы можете выбрать подходящий тариф или активировать демо-доступ.