Главная // Актуальные документы // ГОСТ Р (Государственный стандарт)СПРАВКА
Источник публикации
М.: Стандартинформ, 2014
Примечание к документу
Документ
введен в действие с 1 сентября 2014 года.
Название документа
"ГОСТ Р 53556.8-2013. Национальный стандарт Российской Федерации. Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. Часть III (MPEG-4 audio). Параметрическое кодирование высококачественных звуковых сигналов (SSC)"
(утв. и введен в действие Приказом Росстандарта от 25.10.2013 N 1212-ст)
"ГОСТ Р 53556.8-2013. Национальный стандарт Российской Федерации. Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. Часть III (MPEG-4 audio). Параметрическое кодирование высококачественных звуковых сигналов (SSC)"
(утв. и введен в действие Приказом Росстандарта от 25.10.2013 N 1212-ст)
Утвержден и введен в действие
Приказом Федерального агентства
по техническому регулированию
и метрологии
от 25 октября 2013 г. N 1212-ст
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
ЗВУКОВОЕ ВЕЩАНИЕ ЦИФРОВОЕ
КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ
ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ.
ЧАСТЬ III
(MPEG-4 AUDIO)
ПАРАМЕТРИЧЕСКОЕ КОДИРОВАНИЕ ВЫСОКОКАЧЕСТВЕННЫХ ЗВУКОВЫХ
СИГНАЛОВ (SSC)
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).
Technical description of parametric coding
for high quality audio
ISO/IEC 14496-3:2009
(NEQ)
ГОСТ Р 53556.8-2013
Дата введения
1 сентября 2014 года
1 РАЗРАБОТАН Санкт-Петербургским филиалом Центрального научно-исследовательского института связи "Ленинградское отделение" (ФГУП ЛО ЦНИИС)
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 480 "Связь"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 25 октября 2013 г. N 1212-ст
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 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru)
Стандарт описывает схему параметрического кодирования для сжатия высококачественного аудио MPEG-4 audio. Краткое наименование - SSC (SinuSoidal Coding). При скоростях передачи приблизительно 24 Кбит/с стерео и на частоте дискретизации 44,1 кГц схема кодирования SSC предлагает качество, которое необходимо для многих приложений.
SSC использует четыре различных инструмента, которые вместе параметризуют аудиосигнал. Эти инструменты состоят из моделирования переходного процесса, моделирования синусоид, моделирования шума и моделирования образа стерео. Одна из отличительных особенностей SSC состоит в том, что оно оказывает поддержку декодера для независимого темпа и масштабирования шага при почти любой дополнительной сложности.
Инструмент переходного процесса
Инструмент переходного процесса захватывает чрезвычайно динамичные события входного аудиосигнала. Эти события эффективно моделируются посредством ограниченного количества синусоид, которые формируются посредством огибающей.
Инструмент синусоид речевого выхода для инструментов FA и для дублирования MP с информацией о форме губ.
Инструмент синусоид захватывает детерминированные события входного аудиосигнала. Природа медленного изменения синусоидальных компонентов для типичных аудиосигналов используется, соединяя синусоиды по последовательным фреймам. Посредством дифференциального кодирования могут быть эффективно представлены параметры частоты, амплитуды и фазы.
Шумовой инструмент
Шумовой инструмент захватывает стохастические или недетерминированные события входного аудиосигнала. В декодере в качестве возбуждения используется генератор белого шума. Чтобы управлять

и спектральными свойствами шума в аудиосигнале применяется

и спектральная огибающая.
Инструмент параметрического кодирования стерео
Инструмент параметрического кодирования стерео в состоянии захватывать стереообраз входного аудиосигнала в ограниченном количестве параметров, требуя только небольшого служебного сигнала в пределах от нескольких Кбит/с для среднего качества до приблизительно 9 Кбит/с для более высокого качества. Вместе с монофоническим смешиванием входного сигнала стерео, сгенерированного параметрическим инструментом кодирования стерео, инструмент параметрического декодирования стерео в состоянии регенерировать стереосигнал. Это - универсальный инструмент, который может работать в комбинации с любым монофоническим кодером. В
Приложении А настоящего стандарта приводится нормативное описание комбинации
HE -
AAC с инструментом параметрического кодирования стерео.
SSC также может работать в двойном режиме моно. В этом случае инструмент параметрического кодирования стерео не используется. Инструмент параметрического стерео предназначается для низких скоростей передачи.
2.1 фрейм: Основная единица, которая может декодироваться сама по себе (требуется информация заголовка файла для общих настроек декодера).
2.2 фильтр Лагерра: Структура фильтра, используемого в анализе шумов и синтезе.
2.3 аудио фрейм: Содержит все данные, чтобы декодировать SSC-кодированный фрейм как автономный модуль (требуется информация заголовка файла для общих настроек декодера). Для аудио фреймов с refresh_sinusoids = = % 1 и refresh_noise = = % 1 полный фрейм всегда может быть восстановлен, иначе в случае произвольного доступа возможно, что части сигнала не могут быть восстановлены (например, синусоидальные продолжения, шум).
2.4 подфрейм: Мелкоструктурированность в пределах фрейма.
2.5 fs: Частота дискретизации в герцах.
2.6 сегмент: Интервал выборок, которые могут быть синтезированы на основе параметров, которые соответствуют подфрейму. Размер сегмента 2*S.
2.7 окно: Функция, которая используется, чтобы взвешивать синтезируемые выборки в пределах сегмента так, чтобы получить достоверный синтез.
2.8 LSF: Спектральная частота линии.
2.9 наложение и дробление: Аддитивный метод объединения перекрывающихся интервалов во время синтеза сигнала.
2.10 процесс связывания: Метод отслеживания синусоидальных компонент в течение продолжительного времени.
2.11 рождение: Первый компонент синусоидальной дорожки.
2.12 продолжение: Компонент синусоидальной дорожки, который находится не в начале или конце дорожки.
2.13 смерть: Последний компонент синусоидальной дорожки.
2.14 SMR: Отношение сигнала к маскировке.
2.15 частичный: Синусоида ограниченной продолжительности.
2.16 IID: Межканальные различия в интенсивности.
2.17 IPD: Межканальная разность фаз.
2.18 OPD: Полная Разность фаз.
2.19 ICC: Межканальная когерентность.
3.1 Арифметические операторы

Округление x к минус бесконечность

Округление x к плюс бесконечность.
mod Оператор модуля:

. Определенный только для положительных значений
x и
y.

Гамма функция распределения, определенная как

.
x? y:z Если x является истиной, тогда y, иначе z.
Чтобы описать различные типы данных, используемые в кодированном потоке битов, определяются следующие мнемоники.
uimsbf | Целое число без знака, старший значащий бит в начале. |
simsbf | Целое число со знаком, старший значащий бит в начале. |
bslbf | Левый бит потока битов в начале |
[0, 10] | Число в диапазоне от 0 до, и включая 10. |
[0, 10> | Число в диапазоне от 0 до, но исключая 10. |
3.5 Численное представление
%X | Представление двоичного числа (например, %01111100). |
$X | Представление шестнадцатеричного числа (например, 7$C). |
X | Число без префикса используют представление десятичного числа (например, 124). |
S | Число выборок в подфрейме. |
L | Число выборок в сегменте; L = 2*S. |
numQMFSlots | Число выборок поддиапазона QMF на элемент ps_data (). Для SSC этот параметр фиксируется в 24. |
4 Полезные нагрузки для
SSC аудио объектного типа
4.1 Конфигурация декодера (
SSCSpecificConfig)
Синтаксис
SSCSpecificConfig () смотри
таблицу 1.
Таблица 1
Синтаксис
SSCSpecificConfig ()
Синтаксис | Количество битов | Мнемоника |
SSCSpecificConfig ( channelConfiguration ) { | | |
decoder_level | 2 | uimsbf |
update rate | 4 | uimsbf |
synthesis_method if (channelConfiguration != 1) { | 2 | uimsbf |
mode_ext if ((channelConfiguration = = 2) && (mode_ext = = 1)) { | 2 | uimsbf |
reserved } } } | 2 | uimsbf |
4.2 Полезная нагрузка потока битов
SSC
Полезная нагрузка потока битов
SSC приведена в
таблицах 2 -
14.
Таблица 2
Синтаксис
ssc_
audio_
frame ()
Синтаксис | Количество битов | Мнемоника |
ssc_audio_frame () { ssc_audio_frame_header() ssc_audio_frame_data() } | | |
Таблица 3
Синтаксис ssc_audio_frame_header ()
Синтаксис | Количество битов | Мнемоника |
ssc_audio_frame_header () { | | |
refresh_sinusoids | 1 | uimsbf |
refresh_sinusoids_next_frame | 1 | uimsbf |
refresh_noise for (ch = 0; ch < nrof_channels; ch++) { | 1 | uimsbf |
s_nrof_continuations[0][ch] } | Примечание | uimsbf |
n_nrof_den | 5 | uimsbf |
n_nrof_lsf | Примечание | uimsbf |
freq_granularity | 2 | uimsbf |
amp granularity | 2 | uimsbf |
phasejitter_present if (phase_jitter_present = = 1) { | 1 | uimsbf |
phasejitter_percentage | 2 | uimsbf |
phasejitter_band } } | 2 | uimsbf |
Примечание: См. описание s_nrof_continuations и n_nrof_lsf в 5.2. |
Таблица 4
Синтаксис ssc_audio_frame_data ()
Синтаксис | Количество битов | Мнемоника |
ssc_audio_frame_data() { for (sf = 0; sf < nrof_subframes; sf++) { | | |
for (ch = 0; ch < nrof_channels; ch++) { ssc_mono_subframe(sf,ch) if ((channelConfiguration = = 2) && (mode_ext = = 1) && (mod(sf+1,4)= =0)) { ps_data() } } } } | | |
Таблица 5
Синтаксис ssc_mono_subframe ()
Синтаксис | Количество битов | Мнемоника |
ssc_mono_subframe (sf,ch) { subframe_transients(sf, ch) subframe_sinusoids(sf, ch) subframe_noise(sf, ch) } | | |
Таблица 6
Синтаксис subframe_transients ()
Синтаксис | Количество битов | Мнемоника |
subframe_transients (sf, ch) { | | |
t_transient_present[sf][ch] if (t_transient_present[sf][ch] = = 1) { | 1 | uimsbf |
t_loc[sf][ch] | Примечание | uimsbf |
if (t_type[sf][ch]= =1) { | 2 | uimsbf |
t_b_par[sf][ch] | 3 | uimsbf |
t_chi_par[sf][ch] | 3 | uimsbf |
t_nrof_sin[sf][ch] t_nrof_sin[sf][ch]++ for (i = 0; i < t_nrof_sin[sf][ch]; i++) { | 3 | uimsbf |
t_freq[sf][ch][i] | 9 | uimsbf |
t_amp[sf][ch][i] | 5 | uimsbf |
t_phi[sf][ch][i] } } } } | 5 | simsbf |
Примечание: См. описание t_loc в 5.2. |
Таблица 7
Синтаксис subframe_sinusoids()
Синтаксис | Количество битов | Мнемоника |
subframe_sinusoids(sf, ch) { n = 0; p=0; q=0; /* Continuations */ if (sf > 0) { noc = 0; while (tmp_cont[ch][noc] > 0) { noc++;} s_nrof_continuations[sf][ch] = noc; } if ((refresh_sinusoids = = 1) && (sf = = 0)) { for (i = 0; i < s_nrof_continuations[sf][ch]; i++, n++) { | | |
s_cont[sf][ch][n] = ssc_huff_dec(huff_scont,bs_codeword); | 2..5 | bslbf |
s_freq_coarse[sf][ch][n] = ssc_huff_dec(huff_sfreqc,bs_codeword); | 7..25 | bslbf |
s_freq_finefsf][ch][n] | 0..3 | simsbf |
s_amp_coarse[sf][ch][n] = ssc_huff_dec(huff_sampca,bs_codeword); | 3..16 | bslbf |
s_amp_fine[sf][ch][n] | 0..3 | simsbf |
s_phi[sf][ch][n] if (s_cont[sf][ch][n] > 0) { | 5 | simsbf |
s_adpcm_grid[sf][ch][n] = ssc_huff_dec(huff_sgrid,bs_codeword); | 3..7 | bslbf |
s_delta_cont_freq_pha[sf+1 ][ch][p] p++; } if (s_cont[sf][ch][n] > 1) { | 2 | uimsbf |
s_delta_cont_freq_pha[sf+2][ch][q] q++; } } } else { for (i = 0; i < s_nrof_continuations[sf][ch]; i++, n++) { if (sf = = 0) { | 2 | uimsbf |
s_cont[sf][ch][n] = ssc_huff_dec(huff_scont,bs_codeword); } else { s_cont[sf][ch][n] = tmp_cont[ch][n] - 1; } if (s_cont[sf][ch][n] > 0) } p++; } if (s_cont[sf][ch][n] > 1) { if ((refresh_sinusoids_next_frame = = 0) || (nrof_subframes-sf > 2)) { | 2..5 | bslbf |
s_delta_cont_freq_pha[sf+2][ch][q] } q++; } | 2 | uimsbf |
s_delta_cont_amp[sf][ch][n] = ssc_huff_dec(huff_sampcr[amp_granularity],bs_codeword); } } /* Births */ | 1..15 | bslbf |
s_nrof_births[sf][ch] = ssc_huff_dec(huff_nrofbirths,bs_codeword); if (s_nrof_births[sf][ch] > 0) { | 3..15 | bslbf |
s_cont[sf][ch][n] = ssc_huff_dec(huff_scont,bs_codeword); | 2..5 | bslbf |
s_freq_coarse[sf][ch][n] = ssc_huff_dec(huff_sfreqba,bs_codeword); | 7..21 | bslbf |
s_freq_fine[sf][ch][n] | 0..3 | simsbf |
s_amp_coarse[sf][ch][n] = ssc_huff_dec(huff_sampba,bs_codeword); | 3..15 | bslbf |
s_amp_fine[sf][ch][n] | 0..3 | simsbf |
s_phi[sf][ch][n] if (s cont[sf][ch][n] > 0) { if ((refresh_sinusoids_next_frame = = 0) || (nrof_subframes-sf > 1)) { | 5 | simsbf |
s_delta_cont_freq_pha[sf+1][ch][p] } p++; } if (s_cont[sf][ch][n] > 1) } if ((refresh_sinusoids_next_frame = = 0) || nrof_subframes-sf > 2)) { | 2 | uimsbf |
s_delta_cont_freq_pha[sf+2][ch][q] } q++; } n++; for (i = 1; i < s_nrof_births[sf][ch]; i++, n++) { | 2 | uimsbf |
s_cont[sf][ch][n] = ssc_huff_dec(huff_scont,bs_codeword); | 2..5 | bslbf |
s_delta_birth_freq_coarse[sf][ch][n] = ssc_huff_dec(huff_sfreqbr,bs_codeword); | 5..23 | bslbf |
s_delta_birth_freq_fine[sf][ch][n] | 0..3 | simsbf |
s_delta_birth_amp_coarse[sf][ch][n] = ssc_huff_dec(huff_sampbr,bs_codeword); | 2..21 | bslbf |
s_delta_birth_amp_fine[sf][ch][n] | 0..3 | simsbf |
s_phi[sf][ch][n] if (s_cont[sf][ch][n] > 0) { if ((refresh_sinusoids_next_frame = = 0) || (nrof_subframes-sf > 1)) { | 5 | simsbf |
s_delta_cont_freq_pha[sf+1][ch][p] } p++; } if (s_cont[sf][ch][n] > 1) { if ((refresh_sinusoids_next_frame = = 0) || (nrof_subframes-sf > 2)) { | 2 | uimsbf |
s_delta_cont_freq_pha[sf+2][ch][q] } q++; } } } /* Keep track of sinusoids that continue in next sub-frame(s) */ for (i = 0, k = 0; i < n; i++) { if (s_cont[sf][ch][i] > 0) { tmp_cont[ch][k] = s_cont[sf][ch][i]; k++; } } } | 2 | uimsbf |
Примечание - переменные p, q используются в качестве индексов позиции для subframe+1 и subframe+2, соответственно. |
Таблица 8
Синтаксис subframe_noise()
Синтаксис | Количество битов | Мнемоника |
subframe_noise (sf, ch) { if ((refresh noise = = 1) && (sf= = 0)) { | | |
n_laguerre[ch] | 2 | uimsbf |
n_laguerre_granularity[sf][ch] for (i = 0; i < n_nrof_den; I++) { | 1 | uimsbf |
n_lar_den_coarse[sf][ch][i] = ssc_huff_dec(huff_nlag,bs_codeword); If (n_laguerre_granularity[sf][ch]= =1) { | 1..18 | bslbf |
n_lar_den_fine[sf][ch][i] } } | 2 | simsbf |
n_gain[sf][ch] | 7 | uimsbf |
n_lsf[sf][ch][0] = ssc_huff_dec(huff_nlsf,bs_codeword); for (i = 1; i < n_nrof_lsf; i++) { | 2..9 | bslbf |
n_delta_lsf[sf][ch][i] = ssc_huff_dec(huff_nlsf,bs_codeword); } } else { if ( mod(sf,2) = = 0 ) { | 2..9 | bslbf |
n_laguerre_granularity[sf][ch] for (i = 0; i < n_nrof_den; i++) { | 1 | uimsbf |
n_delta_lar_den_coarse[sf][ch][i] = ssc_huff_dec(huff_nlag,bs_codeword); if(n_laguerre_granularity[sf][ch]= =1) { | 1..18 | bslbf |
n_delta_lar_den fine[sf][ch][i] } } } if ( mod(sf,4) = = 0 ) { | 2 | simsbf |
n_delta_gain[sf][ch] = ssc_huff_dec(huff_ngain,bs_codeword); | 1..12 | bslbf |
if (n_overlap_lsf = = 1) { for ( i = n_nrof_overlap_lsf; i < n_nrof_lsf; i++) { | 1 | uimsbf |
n_delta_lsf[sf][ch][i] = ssc_huff_dec(huff_nlsf,bs_codeword); } } else { | 2..9 | bslbf |
n_lsf[sf][ch][0] = ssc_huff_dec(huff_nlsf,bs_codeword); for (i = 1; i < n_nr_of_lsf; i++) { | 2..9 | bslbf |
n_delta_lsf[sf][ch][i] = ssc_huff_dec(huff_nlsf,bs_codeword); } } } } } | 2..9 | bslbf |
Таблица 9
Синтаксис ps_data()
Синтаксис | Количество битов | Мнемоника |
ps_data() { | | |
if (enable_ps_header) { | 1 | uimsbf |
if (enable_iid) { | 1 | uimsbf |
iid_mode nr_iid_par = nr_iid_par_tab[iid_mode] nr_ipdopd_par = nr_ipdopd_par_tab[iid_mode] } | 3 | uimsbf |
if (enable_icc) { | 1 | uimsbf |
icc_mode nr_icc_par = nr_icc_par_tab[icc_mode] } | 3 | uimsbf |
enable_ext } | 1 | uimsbf |
frame_class | 1 | uimsbf |
num_env_idx num_env = num_env_tab[frame_class][num_env_idx] if (frame_class) { for (e=0 ; e<num_env ; e++) { | 2 | uimsbf |
border_position[e] } } for (e=0; e<num_env; e++) { if (enable_iid) { | 5 | uimsbf |
iid_dt[e] iid_data() } } for (e=0; e<num_env; e++) { if (enable_icc) { | 1 | uimsbf |
icc_dt[e] icc_data() } } if (enable_ext) { | 1 | uimsbf |
cnt = ps_extension_size if (cnt = = 15) | 4 | uimsbf |
cnt += esc_count num_bits_left = 8 * cnt while (num_bits_left > 7) { | 8 | uimsbf |
ps_extension_id num_bits_left -= 2 ps_extension(ps_extension_id, num_bits_left) } | 2 | uimsbf |
fill_bits } } | num_bits_left | |
Таблица 10
Синтаксис ps_extension()
Синтаксис | Количество битов | Мнемоника |
ps_extension(ps_extension_id, num_bits_left) { if (ps_extension_id = = 0) { | | |
if (enable_ipdopd) { for (e=0; e<num_env ; e++) { | 1 | uimsbf |
ipd_dt[e] ipd_data() | 1 | uimsbf |
opd_dt[e] opd_data() num_bits_left -= ipd_bits + opd_bits + 2 } } | 1 | uimsbf |
reserved_ps num_bits_left -= 2 } } | 1 | uimsbf |
Таблица 11
Синтаксис iid_data()
Синтаксис | Количество битов | Мнемоника |
iid_data() if (iid_dt[e]) { for (b=0; b<nr_iid_par; b++) { | | |
iid_par_dt[e][b] = ssc_huff_dec(huff_iid_dt[iid_quant], bs_codeword); } } else { for (b=0; b<nr_iid_par; b++) { iid_par_df[e][b] = | 1...20 | |
ssc_huff_dec(huff_iid_df[iid_quant], bs_codeword); } } } | 1...18 | |
Таблица 12
Синтаксис icc_data()
Синтаксис | Количество битов | Мнемоника |
icc_data() { if (icc_dt[e]) { for (b=0; b<nr_icc_par; b++) { | | |
icc_par_dt[e][b] = ssc_huff_dec(huff_icc_dt,bs_ codeword); } } else { for (b=0 ; b<nr_icc_par; b++) { | 1...14 | bslbf |
icc_par_df[e][b] = ssc_huff_dec(huff_icc_df,bs_codeword); } } } | 1...13 | bslbf |
Таблица 13
Синтаксис ipd_data()
Синтаксис | Количество битов | Мнемоника |
ipd_data() { if (ipd_dt[e]) { for (b=0 ; b<nr_ipdopd_par; b++) { ipd_par_dt[e][b] = ssc_huff_dec(huff_ipd_dt, | | |
bs codeword); } } else { for (b=0 ; b<nr_ipdopd_par; b++) { | 1...5 | bslbf |
ipd_par_df[e][b] = ssc_huff_dec(huff_ipd_df,bs_codeword); } } } | 1...4 | bslbf |
Таблица 14
Синтаксис | Количество битов | Мнемоника |
opd_data() { if (opd_dt[e]) { for (b=0 ; b<nr_ipdopd_par; b++) { opd_par_dt[e][b] = | | |
ssc_huff_dec(huff_opd_dt,bs_codeword); } } else { for (b=0; b<nr_ipdopd_par; b++) { opd_par_df[e][b] = | 1...5 | bslbf |
ssc_huff_dec(huff_opd_df,bs_codeword); } } } | 1...5 | bslbf |
decoder_
level - пределы сложности для настроек декодера. Декодер, который поддерживает определенный уровень сложности, не в состоянии декодировать поток битов, который кодируется согласно более высокому уровню сложности. Этот декодер в состоянии декодировать поток битов, который кодируется согласно более низкому уровню сложности
(таблица 15).
Таблица 15
decoder_ level | Уровень сложности | max_nrof_sinusoids | max_nrof_den | Число битов для s_nrof_continuation | Число битов для n_nrof_lsf |
00 | Зарезервировано | Na | Na | Na | Na |
01 | Носитель | 60 | 24 | 6 | 4 |
10 | Зарезервировано | Na | Na | Na | Na |
11 | Зарезервировано | Na | Na | Na | Na |
max_nrof_sinusoids - максимальное количество синусоид, которое допускается.
max_nrof_den - максимальное значение для n_nrof_den.
update_rate - четыре бита, указывающие размер подфрейма S.
Таблица 16 показывает соотношение между
update_
rate и размером подфрейма
S в выборках.
Таблица 16
update_rate | S |
0000 | Зарезервировано |
0001 | Зарезервировано |
0010 | Зарезервировано |
0011 | Зарезервировано |
0100 | 384 |
0101 | Зарезервировано |
0110 | Зарезервировано |
0111 | Зарезервировано |
1000 | Зарезервировано |
1001 | Зарезервировано |
1010 | Зарезервировано |
1011 | Зарезервировано |
1100 | Зарезервировано |
1101 | Зарезервировано |
1110 | Зарезервировано |
1111 | Зарезервировано |
synthesis_
method - два бита, предоставляющие информацию о предпочтительном синтезе для специально закодированной программы
(таблица 17).
Таблица 17
Synthesis_method | Оптимальный синтез |
00 | Наложение и добавление |
01 | Зарезервировано |
10 | Зарезервировано |
11 | Зарезервировано |
mode_
ext - в сочетании с
channelConfiguration биты
mode_
ext обеспечивают полную конфигурацию канала. Число битов зависит от
channelConfiguration (таблица 18).
Таблица 18
channelConfiguration | Количество битов для mode_ext | nrof_channels |
1 | 0 | 1 |
2 | 2 | Согласно mode_ext |
0, 3 ... 15 | Na | Na |
Для
channelConfiguration = = 2, применяется
таблица 19:
Таблица 19
Конфигурация канала в случае, если
channelConfiguration= = 2
mode_ext | Полная конфигурация канала | nrof_channels |
00 | Двойной моно (ch0=left, ch1=right) | 2 |
01 | Параметрическое Стерео | 1 |
10 | Зарезервировано | Na |
11 | Зарезервировано | Na |
Зарезервировано - два зарезервированных бита; должно быть установлено в %0.
5.2 Декодирование полезной нагрузки потока битов SSC
ssc_audio_frame () - синтаксический элемент, который содержит единственный фрейм SSC
ssc_audio_frame_header () - синтаксический элемент, который содержит данные заголовка для единственного фрейма SSC
ssc_audio_frame_data () - синтаксический элемент, который содержит данные для единственного фрейма SSC
ssc_huff_dec () - процедура декодирования Хаффмана.
refresh_sinusoids - один бит, указывающий, как кодируются синусоидальные продолжения первого подфрейма во фрейме. Если этот бит равняется %0, данные продолжающейся дорожки дифференцированно кодируются относительно последнего подфрейма предыдущего фрейма. Если этот бит равняется %1, данные продолжающейся дорожки в первом подфрейме фрейма кодируются как абсолютные значения.
refresh_sinusoids_next_frame - один бит, обеспечивающий дополнительный предпросмотр фрейма для декодирования ADPCM синусоидальных параметров. Если этот бит устанавливается в %1, следующий фрейм является фреймом обновления. В этом случае бит refresh_sinusoids должен быть установлен в %1 в следующем фрейме. Если этот бит устанавливается в %0, следующий фрейм не является фреймом обновления.
refresh_noise - один бит, указывающий, как кодируются шумовые параметры первого подфрейма во фрейме. Если этот бит равняется %0, шумовые параметры дифференцированно кодируются относительно последнего подфрейма предыдущего фрейма. Если этот бит равняется %1, шумовые параметры в первом подфрейме фрейма кодируются как абсолютные значения.
s_nrof_continuations [sf] [ch] - для подфрейма sf и канала ch, это значение представляет число продолжений. В случае sf = = 0 значение s_nrof_continuations обеспечивается в потоке битов. Для остальных значений sf значение s_nrof_continuations получается неявно. Число битов, требуемых для s_nrof_continuations [0] [ch], зависит от максимального количества разрешенных синусоид, которое зависит от сложности декодера, указанной в decoder_level.
n_nrof_den - число коэффициентов LAR знаменателя фильтра FIR для генерации шума.
n_nrof_lsf - число коэффициентов LSF, используемых для генерации огибающей для генерации шума. Число битов, требующихся для n_nrof_lsf, зависит от сложности декодера, указанной decoder_level.
freq_granularity - гранулярность дифференцированно или абсолютно кодированных частотных параметров, используемых в subframe_sinusoids (). Этот параметр определяет число битов, которые будут считаны из тонкоструктурной части параметров частоты.
amp_granularity - гранулярность дифференцированно или абсолютно кодированных амплитудных параметров, используемых в subframe_sinusoids (). Этот параметр определяет таблицу Хаффмана, которая будет использоваться, или число битов, которые будут считаны из тонкоструктурной части амплитудных параметров.
phase_jitter_present - один бит, чтобы указать на присутствие параметров дрожания фазы. Если этот бит равняется %0, никакого дрожания фазы нет. Если этот бит равняется %1, дрожание фазы присутствует.
phase_jitter_percentage - это двухбитовое целое число без знака, указывающее процент расстояния. Полное расстояние равняется половине шага квантования. Максимальное дрожание, применяемое к частотным компонентам

.
phase_
jitter_
band - два бита, указывающие уровень представления частоты, из которого должно быть применено дрожание фазы,
таблица 20.
Таблица 20
Полоса дрожания фазы, выраженная в уровнях представления
phase_jitter_band | Уровень представления частоты fjitter, min |
00 | 0 |
01 | 800 |
10 | 1600 |
11 | 2400 |
nrof_subframes - число подфреймов в одном фрейме. Это значение фиксируется в 8.
ssc_mono_subframe () - синтаксический элемент, который содержит данные для одного подфрейма SSC.
ps_data () - синтаксический элемент, который содержит параметрические данные стерео.
subframe_transients () - синтаксический элемент, который содержит переходные данные для одного подфрейма SSC.
subframe_sinusoids () - синтаксический элемент, который содержит данные синусоид для одного подфрейма SSC.
subframe_noise () - синтаксический элемент, который содержит данные о шуме для одного подфрейма SSC.
t_transient_present [sf] [ch] - один бит, указывающий, присутствует ли переходное состояние в подфрейме sf, канала ch. Если t_transient_present [sf] [ch] = = %1, переходное состояние присутствует. Если t_transient_present [sf] [ch] = = %0, переходное состояние отсутствует.
t_
loc[sf] [ch] - указание расположения переходного состояния в подфрейме
sf канала
ch, выраженное в числе выборок от начала подфрейма. Допустимый диапазон для
t_
loc равен [0,
S>. Число битов, которое используется, чтобы представить
t_
loc, вычисляется согласно

, где
S представляет размер подфрейма в выборках.
t_
type [sf] [ch] - два бита для указания типа переходного состояния в подфрейме
sf канала
ch (таблица 21).
Таблица 21
Типы переходного состояния
t_type | Тип |
00 | Шаг |
01 | Мейкснера (Meixner) |
10 | Зарезервировано |
11 | Зарезервировано |
t_b_par[sf] [ch] - для переходного состояния типа Мейкснера в подфрейме sf канала ch, эти 3 бита содержат значение для атаки огибающей перехода, обозначенное как 'b-параметр'. Допустимые значения для t_b_par [0, 1, 2, 3]. Остальные значения резервируются. Значение b вычисляется как b = t_b_par + 2.
t_
chi_
par [sf] [ch] - для переходного состояния типа Мейкснера в подфрейме
sf канала
ch, эти 3 бита хранят значение для спада огибающей переходного состояния, обозначенное как

. Допустимые значения для
t_
chi_
par равны [0, 1, 2, 3]. Остающиеся значения резервируются. Значения

сведены в
таблицу 22.
Таблица 22
Квантованные значения для b и

| t_b_par |
0 | 1 | 2 | 3 |
t_chi_par | 0 | 0,9688 | 0,9685 | 0,9683 | 0,9681 |
1 | 0,9763 | 0,9756 | 0,9750 | 0,9744 |
2 | 0,9839 | 0,9827 | 0,9817 | 0,9807 |
3 | 0,9914 | 0,9898 | 0,9884 | 0,9870 |
t_nrof_sin [sf] [ch] - для переходного состояния типа Мейкснера в подфрейме sf канала ch, эти 3 бита представляют число синусоид, которые присутствуют под огибающей. Число синусоид под огибающей Мейкснера равно значению в потоке плюс один.
t_freq [sf] [ch] [i] - для переходного состояния типа Мейкснера в подфрейме sf канала ch эти биты представляют частоту в радианах i-ой синусоиды под огибающей переходного состояния.
где tfq представляет деквантизованную абсолютную частоту в радианах.
t_amp [sf] [ch] [i] - для переходного состояния типа Мейкснера в подфрейме sf канала ch эти биты представляют амплитуду i-ой синусоиды под огибающей перехода.

,
где tab представляет логарифмическую базу квантования, tab = 1885,1. tab представляет деквантованную абсолютную амплитуду.
t_
phi [sf] [ch] [i] - для переходного состояния типа Мейкснера в подфрейме
sf канала
ch эти биты представляют фазу
i-ой синусоиды под огибающей переходного состояния. Декодированное значение преобразовывается в значение фазы в радианах в диапазоне

определяется для начала переходного состояния.

,
где
tpe представляет абсолютную ошибку фазы

, и
tpq представляет деквантизованную абсолютную фазу (в радианах). Допустимый диапазон для
t_
phi равен [-16, 15].
noc - локальная переменная, которая считает число продолжений в предыдущем подфрейме.
tmp_cont [ch] [noc] - локальный массив, который содержит копию s_cont-параметров предыдущего подфрейма, необходимую для того, чтобы правильно проанализировать поток (извлечь число продолжений и отслеживать сколько подфреймов должна продолжаться синусоидальная дорожка в текущем фрейме).
s_cont [sf] [ch] [n] - для подфрейма sf и канала ch, эта величина указывает, сколько компонент подфреймов n будет продолжаться в текущем фрейме (если компонент будет продолжаться также в следующем фрейме к числу подкадров, которые он продолжается в текущем фрейме, должна быть добавлена единица. Если значение равно 0, это указывает на прекращение компонента n в подкадре sf, что называют смертью). Допустимый диапазон для s_cont составляет [0, 9].
s_freq_coarse [sf] [ch] [n] - для подфрейма sf и канала ch это значение представляет грубый параметр частоты n-ой синусоиды.
s_freq_fine [sf] [ch] [n] - для подфрейма sf и канала ch это целое число со знаком представляет более высокий уровень детализации дополнительно к грубому параметру частоты. Число битов, которые будут считаны достигает (3 - freq_granularity). Уровень представления частоты frl является суммой грубой частоты, точной частоты, масштабируемой по сетке гранулярности.
frl[n] = s_freq_coarse [sf] [ch] [n] + s_freq_fine [sf] [ch] [n]·2freq_granularity.
Дрожание фазы применяется только в комбинации с масштабированием шага и темпа. Если phase_jitter_present = = %1 и frl > fjitter,min параметр дрожания фазы будет

,
где x содержит случайное число, равномерно распределенное между 0 и 1, сгенерированное для каждого параметра частоты в подфрейме, соответствуя вышеуказанным требованиям. Декодируемое значение преобразовывается в деквантованное абсолютное значение частоты fq в радианах, используя следующее уравнение:
s_amp_coarse [sf] [ch] [n] - для подфрейма sf и канала ch это значение представляет грубый амплитудный параметр n-ой синусоиды.
s_amp_fine [sf] [ch] [n] - для подфрейма sf и канала ch этот параметр представляет более высокий уровень детализации дополнительно к грубому амплитудному параметру. Число битов, которые будут считаны, насчитывает до (3 - amp_granuiarity). Уровень представления амплитуды sarl является суммой грубой амплитуды, точной амплитуды, масштабируемой по сетке гранулярности
sarl[n] = s_amp_coarse [sf] [ch] [n] + s_amp_fine [sf] [ch] [n]·2amp_granulanty.
Декодируемое значение преобразовывается в деквантованное линейное значение амплитуды saq в диапазоне [1, 215 - 1] в соответствии с

,
где sab = 1,0218 является базой логарифмического квантования. Его значение соответствует максимальной ошибке 0,1875 дБ.
s_
phi [sf] [ch] [n] - для подфрейма
sf и канала
ch это представляет фазовый параметр
n-ой синусоиды. Это значение преобразовывается в значение фазы в радианах в диапазоне

в соответствии с
spq[n] = 2·spe·s_phi[sf] [ch] [n],
где
spe представляет ошибку абсолютной фазы

, а
spq представляет деквантизованную абсолютную фазу (в радианах). Допустимый диапазон для
s_
phi равен [-16, 15].
s_
adpcm_
grid [sf] [ch] [n] - для подфрейма
sf и канала
ch это значение представляет начальный индекс в
таблице 35 как использующийся в декодере
ADPCM для
n-ой синусоиды. Эта
таблица используется, чтобы декодировать информацию о синусоидах.
s_delta_cont_freq_pha [sf] [ch] [n] - для подфрейма sf и канала ch это значение представляет уровни представления для n-ой синусоиды, которые служат вводом в декодер ADPCM. Чтобы компенсировать эту задержку декодера на 2 подфрейма, уровни представления передаются заранее на 2 подфрейма. В синтаксисе потока битов будущие уровни представления обозначаются индексами sf+1 и sf+2, указывающими уровни представления двух последующих подфреймов, соответственно. В случае, если sf+1 или sf+2 превышает nrof_subframes, уровень представления присваивается следующему фрейму. В этом случае новое число подфреймов в следующем фрейме будет (sf+1) - nrof_subframes или (sf+2) - nrof_subframes соответственно.
s_delta_cont_amp [sf][ch][n] - для подфрейма sf и канала ch это представляет дифференциальный амплитудный параметр n-ой синусоиды. Это значение преобразовывается в линейное амплитудное значение в диапазоне [1, 215-1] в соответствии с
sarl[n] = sarl,psf + s_delta_cont_amp [sf] [ch] [n],
где sarl представляет уровень представления амплитуды, а sarl,psf представляет уровень представления амплитуды в предыдущем подфрейме. Для деквантизации sarl в saq смотрите s_amp_fine. В случае, если амплитудная гранулярность, amp_granularity текущего фрейма отличается от гранулярности предыдущего фрейма, перед применением дифференциально кодированных значений гранулярность значения предыдущего фрейма преобразовывается в гранулярность текущего фрейма согласно

,
где

представляет уровень представления амплитуды предыдущего подфрейма, и
amp_
granularity представляет гранулярность текущего подфрейма.
s_nrof_births [sf] [ch] - для подфрейма sf и канала ch это значение представляет число рождений. Позволенный диапазон [0, max_nrof_sinusoids-s_nrof_continuations [sf] [ch]].
s_delta_birth_freq_coarse [sf] [ch] [n] - для подфрейма sf и канала ch это значение представляет дифференциальный, грубый параметр частоты n-ой синусоиды.
s_delta_birth_freq_fine [sf] [ch] [n] - для подфрейма sf и канала ch это представляет более высокий уровень детализации в сравнении с грубым дифференциальным параметром частоты. Число битов, которые будут считаны, равно (3 - freq_granularity). Уровень представления дельта-частоты dfrl будет
dfrl = s_delta_birth_freq_coarse [sf] [ch] [n] + s_delta_birth_freq_fine [sf] [ch] [n]·2freq_granularity.
Декодированное значение n-ой синусоиды преобразовывается в значение частоты в герцах, используя уровень представления частоты предыдущего рождения frl подкадра sf ((n-1)-ая синусоида)
frl[n] = frl[n-1] + dfrl[n],
где frl представляет уровень представления частоты. Модификация frl из-за дрожания фазы использует те же самые правила, как установленные под s_freq_fine. О деквантизации frl в fq смотрите также s_freq_fine.
s_delta_birth_amp_coarse [sf] [ch] [n] - для подфрейма sf и канала ch это представляет дифференциальный, грубый амплитудный параметр n-ой синусоиды.
s_delta_birth_amp_fine [sf] [ch] [n] - для подфрейма sf и канала ch это представляет более высокий уровень детализации грубого амплитудного параметра. Число битов, которые будут считаны, составляет (3 - amp_granularity). Уровень дельта-представления амплитуды sdarl
sdarl[n] = s_delta_birth_amp_coarse [sf] [ch] [n] + s_delta_birth_amp_fine [sf] [ch] [n]·2amp_granularity.
Декодированное значение для n-ой синусоиды преобразовывается в линейное амплитудное значение, используя уровень представления амплитуды предыдущего рождения sarl ((n-1)-ая синусоида):
sarl[n] = sarl[n-1] + sdrl[n],
где sarl представляет уровень представления амплитуды.
n_
laguerre [ch] -

коэффициент фильтра Лагерра для синтеза шума, см.
таблицу 23.
Таблица 23
Возможные значения для

n_laguerre | |
00 | 0 |
01 | 0,5 |
10 | 0,7 |
11 | Зарезервировано |
n_laguerre_granularity [sf] [ch] - 1 бит, обозначающий точность квантования коэффициентов Лагерра.
n_lar_den_coarse [sf] [ch] [i] - для подфрейма sf и канала ch это представляет номер коэффициента LAR знаменателя i.
n_lar_den_fine [sf] [ch] [i] - для подфрейма sf и канала ch это представляет более высокий уровень детализации относительно грубого параметра коэффициента LAR знаменателя. Уровень представления nlarrl является суммой грубого LAR знаменателя и точного LAR знаменателя:
nlarrl [i] = n_lar_den_coarse [sf] [ch] [i] + n_lar_den_fine [sf] [ch] [i]
и преобразовывается в коэффициент LAR согласно:

.
n_gain [sf] [ch] - для подфрейма sf и канала ch это значение представляет коэффициент усиления. Уровень представления усиления ngainrl получается как:
ngainrl = n_gain [sf][ch]
n_lsf[sf][ch][i] - для подфрейма sf и канала ch это значение представляет номер коэффициента LSF i. Разрешенный диапазон для n_lsf составляет [0,255]. Параметры деквантизованного LSF nlsfq получают так:

.
n_delta_lsf [sf] [ch] [i] - для подфрейма sf и канала ch это значение представляет номер дифференциального коэффициента LSF i. Они получаются, используя следующий алгоритм
для i > 0:

.
n_delta_lar_den_coarse [sf] [ch] [i] - для подфрейма sf и канала ch это представляет номер дифференциального коэффициента LAR знаменателя i.
n_delta_lar_den_fine [sf] [ch] [i] - для подфрейма sf и канала ch это представляет более высокий уровень детализации для грубого параметра коэффициента LAR знаменателя. Уровень представления ndlarrl является суммой дифференциального грубого LAR знаменателя и дифференциального точного LAR знаменателя:
ndlarrl [i] = n_delta_lar_den_coarse [sf] [ch] [i] + n_delta_lar_den_fine [sf] [ch] [i]
и преобразовывается в коэффициент LAR согласно
nlarrl [i] = nlar'rl, psf [i] + ndlarrl [i],
где nlarrl [i] и nlarrl, psf [i] представляют уровень представления LAR текущего и предыдущего подфреймов, соответственно. В случае, когда n_laguerre_granularity изменяется от %1 до %0 проходя от подфрейма sf-1 к sf, значение nlarrl, psf [i] сначала преобразовывается в наиболее грубую сетку квантования согласно:

,
где nlar'rl,psf [i] представляет уровень представления LAR предыдущего подфрейма.
n_delta_gain [sf] [ch] - для подфрейма sf и канала ch это значение представляет дифференцированный коэффициент усиления и преобразовывается в уровень представления ngainrl согласно:
ngainrl = ngainrl, p4sf + n_delta_gain [sf] [ch],
где ngainrl,p4sf представляет уровень представления усиления для подфрейма sf-4.
n_overlap_lsf - один бит, указывающий, перекрываются ли коэффициенты LSF из предыдущего определения в канале ch.
enable_ps_header - один бит, указывающий, присутствует ли информация заголовка PS. Если установлен в %1, данные заголовка PS, конфигурирующие декодер PS, передаются. Иначе, сохраняется последняя конфигурация.
enable_iid - один бит, обозначающий присутствие параметров IID. Если enable_iid устанавливается в %1, параметры межканального различия интенсивности (IID) будут отправлены с этого момента в потоке битов. Если enable_iid= =%0, никакие параметры IID не будут отправлены с этого момента в потоке битов.
iid_
mode - конфигурация параметров
IID (число полос и сетка квантования,
iid_
quant) определяется
iid_
mode. Поддерживаются восемь различных конфигураций для параметров
IID (таблица 24).
Таблица 24
iid_mode | nr_iid_par_tab | nr_ipdopd_par_tab | iid_quant | Диапазон индекса |
0 (000) | 10 | 5 | 0 | -7 ... 7 |
1 (001) | 20 | 11 | -7 ... 7 |
2 (010) | 34 | 17 | -7 ... 7 |
3 (011) | 10 | 5 | 1 | -15 ... 15 |
4 (100) | 20 | 11 | -15 ... 15 |
5 (101) | 34 | 17 | -15 ... 15 |
6 (110) | Зарезервировано | | | |
7 (111) | Зарезервировано | | | |
Если данные IID не отправляются в потоке битов, все параметры IDD сбрасываются в 0 (то есть index=0).
Сетки значения по умолчанию и тонкого квантования для
IDD,
iid_
quant = %0 и
iid_
quant = %1 назначаются, как предусмотрено в
таблице 25 и
таблице 26, соответственно.
Таблица 25
Сетка квантования по умолчанию для
IID.
Индекс | -7 | -6 | -5 | -4 | -3 | -2 | -1 | 0 |
IID [дБ] | -25 | -18 | -14 | -10 | -7 | -4 | -2 | 0 |
Индекс | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
IID [дБ] | 2 | 4 | 7 | 10 | 14 | 18 | 25 | |
Таблица 26
Сетка тонкого квантования для
IID.
Индекс | -15 | -14 | -13 | -12 | -11 | -10 | -9 | -8 |
IID [дБ] | -50 | -45 | -40 | -35 | -30 | -25 | -22 | -19 |
Индекс | -7 | -6 | -5 | -4 | -3 | -2 | -1 | 0 |
IID [дБ] | -16 | -13 | -10 | -8 | -6 | -4 | -2 | 0 |
Индекс | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
IID [дБ] | 2 | 4 | 6 | 8 | 10 | 13 | 16 | 19 |
Индекс | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |
IID [дБ] | 22 | 25 | 30 | 35 | 40 | 45 | 50 | |
Конфигурация параметров межканальной разности фаз (
IPD)/полной разности фаз (
OPD), строго связывается с конфигурацией
IID. Это также иллюстрируется в
таблице 24.
enable_icc - один бит, обозначающий присутствие параметров ICC. Если enable_icc будет установлен в %1, то параметры межканальной когерентности (ICC) будут отправлены с этого момента в потоке битов. Если enable_icc = = %0, никакие параметры ICC не будут отправлены с этого момента в потоке битов.
icc_
mode - конфигурация параметров межканальной когерентности (число полос и сетка квантования) определяется
icc_
mode. Для параметров
ICC поддерживаются восемь различных конфигураций
(таблица 27).
Таблица 27
icc_mode | nr_icc_par_tab | Диапазон индекса | Процедуры смешивания |
0 (000) | 10 | 0 ... 7 | Ra |
1 (001) | 20 | 0 ... 7 |
2 (010) | 34 | 0 ... 7 |
3 (011) | 10 | 0 ... 7 | Rb |
4 (100) | 20 | 0 ... 7 |
5 (101) | 34 | 0 ... 7 |
6 (110) | зарезервировано | | |
7 (111) | зарезервировано | | |
Если никакие данные
ICC не отправляются в потоке битов, все параметры
ICC сбрасываются в 1 (то есть
index=0). Сетка квантования по умолчанию для
ICC приводится в
таблице 28.
Таблица 28
Сетка квантования для
ICC
Индекс | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 1 | 0,937 | 0,84118 | 0,60092 | 0,36764 | 0 | -0,589 | -1 |
enable_ext - уровень расширения PS задействуется, используя бит enable_ext. Если он устанавливается в %1, параметры IPD и OPD отправляются. Если это отключается, то есть %0, уровень расширения пропускается, и enable_ipdopd устанавливается в %0.
frame_class - бит frame_class определяет, располагаются ли позиции параметров текущего фрейма равномерно на протяжении фрейма (FIX_BORDERS: frame_class = = %0) или они определяются, используя позиции, описанные border_position (VAR_BORDERS: frame_class = = %1).
num_
env_
idx - число (наборов) параметров (огибающих) на фрейм определяется, используя
num_
env_
idx. В случае фиксированного интервала параметров (
frame_
class = = %0) и переменного интервала параметров (
frame_
class = = %1) это соотношение показано в
таблице 29.
Таблица 29
Число наборов параметров
num_
env как функция
num_
env_
idx
в случае фиксированного и переменного интервала
num_env_idx | num_env_tab [frame_class] [num_env_idx] |
frame_class = = 0 | frame_class = = 1 |
0 | 0 | 1 |
1 | 1 | 2 |
2 | 2 | 3 |
3 | 4 | 4 |
num_env - локальная переменная, обозначающая число огибающих стерео (наборов параметров). num_env = = 0 сигнализирует о том, что никакие новые параметры стерео не передаются, и что последние параметры в предыдущем элементе ps_data() должны сохраняться неизменными и применяться к текущему элементу ps_data().
border_position [e] - в случае расположения параметров с переменными интервалами позиции параметров определяются border_position [e]. Он содержит индекс выборки QMF ne для набора параметров e текущего элемента ps_data ().
iid_dt [e] - этот флаг описывает для индекса огибающей e, кодируются ли параметры IID дифференцированно в течение времени (iid_dt= = %1) или по частоте (iid_dt= = %0). В случае, когда iid_mode текущего элемента ps_data () отличается от iid_mode предыдущего элемента ps_data (), iid_dt [0] должно иметь значение 0%, принуждая к дифференцированному кодированию частоты.
iid_data () - синтаксический элемент, содержащий данные IID.
icc_dt [e] - этот флаг описывает для индекса огибающей e, кодируются ли параметры ICC дифференцированно в течение времени (icc_dt = = %1) или по частоте (icc_dt = = %0). В случае, когда icc_mode текущего элемента ps_data () отличается от icc_mode предыдущего элемента, ps_data (), icc_dt [0] должно иметь значение 0%, принуждая к дифференцированному кодированию частоты.
icc_data () - синтаксический элемент, содержащий данные ICC.
cnt - локальная переменная, обозначающая число байтов, используемых для элемента ps_extension ().
ps_extension_size - длиной уровня расширения PS является ps_extension_size, измеренный в байтах. Если размер расширения приводит к использованию кода escape (ps_extension_size = = 15), длина уровня расширения увеличивается на дополнительное количество байтов.
esc_count - в случае, если используется код escape (ps_extension_size = = 15), esc_count описывает дополнительную длину уровня расширения PS, измеренную в байтах.
num_bits_left - локальная переменная, описывающая число битов, остающихся для чтения в элементе ps_extension ().
ps_
extension_
id - идентификационная бирка (версия) уровня расширения
PS дается
ps_
extension_
id. В данный момент поддерживается только одна версия
(таблица 30).
Таблица 30
ps_extension_id | Версия |
00 (0) | v0 |
01 (1) | Зарезервировано |
10 (2) | Зарезервировано |
11 (3) | Зарезервировано |
fill_bits - эти fill_bits выполняют побайтное выравнивание данных ps_extension ().
enable_
ipdopd - применение параметров
IPD и
OPD в потоке битов обозначается
enable_
ipdopd. Если установлено (
enable_
ipdopd = = %1), параметры
IPD и
OPD отправляются, если отключено (
enable_
ipdopd = = %0), параметры
IPD и
OPD для текущего фрейма в потоке битов не отправляются. В случае
enable_
iid = = %0,
enable_
ipdopd не должен быть установлен в %1. Сетка квантования и для
IPD, и для
OPD обеспечивается в
таблице 31. Если данные
IPD или
OPD не отправляются в потоке битов, все параметры
IPD и
OPD устанавливаются в 0 (то есть
index=0).
Таблица 31
Сетка квантования для
IPD/OPD
Индекс | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Уровень представления | 0 | | | | | | | |
ipd_dt [e] - этот флаг описывает для индекса огибающей e, кодируются ли параметры IPD дифференцированно в течение времени (ipd_dt = = %1) или по частоте (ipd_dt = = %0). В случае, когда iid_mode текущего элемента ps_data () отличается от iid_mode предыдущего элемента ps_data (), у ipd_dt [0] должно быть значение 0%, принуждающее к измененному кодированию частоты.
ipd_data () - синтаксический элемент, содержащий данные IPD.
opd_dt [e] - этот флаг описывает для индекса огибающей e, кодируются ли параметры OPD дифференцированно в течение времени (opd_dt = = %1) или по частоте (opd_dt = = %0). В случае, когда iid_mode текущего элемента ps_data () отличается от iid_mode предыдущего элемента ps_data (), у opd_dt [0] должно быть значение 0%, принуждающее к иному кодированию частоты.
opd_data () - синтаксический элемент, содержащий данные OPD.
reserved_ps - этот бит зарезервирован и имеет значение %0.
iid_par_dt [e] [b] - в случае дифференцированного кодирования параметров IID в течение времени (iid_dt [e] = = %1), iid_par_dt [e] [b] описывает различие индекса IID относительно позиции параметра bый для огибающей e-1. Если никакой предыдущий параметр не доступен, iid_par_dt [e] [b] представляет различие индекса IID относительно декодируемого значения 0 (т.е index=0). Индекс IID iid_par [e] [b], определяется как:
iid_par [e] [b] = iid_par [e-1[b] + iid_par_dt [b],
где
iid_
par [e-1
] [b] представляет индекс
IID предыдущей огибающей
e-1. Значение
IID,
iid [b], получается при использовании
iid_
par [e] [b], как индекса к
таблице 25 или
таблице 26, в зависимости от
iid_
mode.
iid_par_df [e] [b] - в случае дифференцированного кодирования параметров IID по частоте (iid_dt [e] = = %0), iid_par_df [e] [b] описывает отличие IID относительно (b-1)-го параметра в огибающей e. Если никакие предыдущие параметры не доступны, iid_par_df [e] [b] представляет отличие IID относительно декодируемого значения 0 (то есть index=0). Индекс IID, iid_par [e] [b], определяется как:
iid_par [e] [0] = iid_par_df [e] [0],
iid_par [e] [b] = iid_par [e] [b-1] + iid_par_df [e] [b] для b > 0,
где
iid_
par [e] [b-1
] представляет индекс
IID предыдущего значения
IID для огибающей
e. Величина
IID,
iid [b], получается при использовании
iid_
par [e] [b], как индекса к
таблице 25 или
таблице 26, в зависимости от
iid_
mode.
icc_par_dt [e] [b] - в случае дифференцированного кодирования параметров ICC в течение времени (icc_dt [e] = = %1), icc_par_dt [e] [b] описывает отличие относительно bой позиции параметра для огибающей e-1. Если никакой предыдущий параметр не доступен, icc_par_dt [e] [b] представляет различие в ICC относительно декодируемого значения 1 (то есть index=0). Индекс ICC, icc_par [e] [b] определяется как:
icc_par [e] [b] = icc_par [e-1] [b] + icc_par_dt [e] [b],
где
icc_
par [e-1
] [b] представляет индекс
ICC предыдущей огибающей
e-1. Значение
ICC,

получается при использовании
icc_
par [e] [b], как индекса к
таблице 28.
icc_par_df [e] [b] - в случае дифференцированного кодирования параметров ICC по частоте (icc_dt [e]= = %0), icc_par_df [e] [b] описывает отличие соотносительно (b-1)го параметра для огибающей e. Если предыдущие параметры недоступны, icc_par_df [e] [b] представляет отличие ICC относительно декодируемого значения 1 (то есть index=0). Индекс ICC, icc_par [e] [b] определяется как:
icc_par [e] [0] = icc_par_df [e] [0],
icc_par [e] [b] = icc_par_[e] [b-1] + icc_par_df [e] [b] для b > 0,
где
icc_
par [e] [b-1
] представляет индекс
ICC предыдущего значения
ICC для огибающей
e. Значение
ICC 
получается при использовании
icc_
par [e] [b], как индекса к
таблице 28.
ipd_par_dt [e] [b] - в случае дифференцированного кодирования параметров IPD в течение времени (ipd_dt [e]= = %1), ipd_par_dt [e] [b] описывает отличие IPD относительно bой позиции параметра для огибающей e. Если никакой предыдущий параметр не доступен, ipd_par_dt [e] [b] представляет отличие IPD относительно декодируемого значения 0 (то есть index=0). Для параметров IPD по модулю 8 применяется дифференцированное кодирование. Индекс IPD, ipd_par [e] [b], определяется как:
ipd_par [e] [b] = mod(ipd_par[e-1][b] + ipd_par_dt] [e] [b], 8)
где
ipd_
par [e-1
] [b] представляет индекс
IPD предыдущей огибающей,
e-1. Величина
IPD,
ipd [
b], получается при использовании
ipd_
par [e] [b], как индекса к
таблице 31.
ipd_par_df [e] [b] - в случае дифференцированного кодирования параметров IPD по частоте (ipd_dt [e] = = %0), ipd_par_df [e] [b] описывает различие IPD относительно (b-1)го параметра для огибающей e. Если предыдущие параметры недоступны, ipd_par_df [e] [b] представляет отличие IPD относительно декодируемого значения 0 (то есть index=0). Для параметров IPD по модулю 8 применяется дифференцированное кодирование. Индекс IPD, ipd_par [e] [b], определяется как:
ipd_par [e] [0] = ipd_par_df [e] [0] [e] [0],
ipd_par [e] [b] = mod(ipd_par[e][b-1]+ ipd_par_df) [e] [b], 8) для b > 0,
где
ipd_
par [e] [b-1
] представляет индекс
IPD предыдущего значения
IPD для огибающей
e. Значение
IPD,
ipd [b] получается при использовании
ipd_
par [e] [b], как индекса к
таблице 31.
opd_par_dt [e] [b] - в случае дифференцированного кодирования параметров OPD в течение времени (opd_dt [e] = = %1), opd_par_dt [e] [b] описывает отличие OPD относительно bой позиции параметра для огибающей (e-1). Если предыдущие параметры недоступны, opd_par_dt [e] [b] представляет отличие OPD относительно декодируемого значения 0 (то есть index=0). Замечание: для параметров OPD по модулю 8 применяется дифференцированное кодирование. Индекс OPD, opd_par [e] [b], определяется как:
opd_par [e] [b] = mod(opd_par[e-1][b] + opd_par_dt[e][b],8),
где
opd_
par [e-1
] [b] представляет индекс
OPD предыдущей огибающей,
e-1. Значение
OPD,
opd [
b], получается при использовании
opd_
par [e] [b], как индекса к
таблице 31.
opd_par_df [e] [b] - в случае дифференцированного кодирования параметров OPD в течение времени (opd_dt [e]= = %0), opd_par_dt [e] [b] описывает отличие OPD относительно (b-1)ой позиции параметра для огибающей e. Если предыдущие параметры не доступны, opd_par_df [e] [b] представляет отличие OPD относительно декодируемого значения 0 (то есть index=0). Для параметров OPD по модулю 8 применяется дифференцированное кодирование. Индекс OPD, opd_par [e] [b], определяется как:
opd_par [e] [0] = opd_par_df [e] [0]
opd_par [e] [b] = mod (opd_par [e] [b-1] + opd_par_df [e] [b], 8) для b > 0,
где
opd_
par [e] [b-1
] представляет индекс
OPD предыдущего значения
OPD для огибающей
e. Величина
OPD,
opd [
b], получается при использовании
opd_
par [e] [b], как индекса к
таблице 31.
5.3 Индексация подфреймов
В случае, когда дифференцированное кодирование применяется от одного подфрейма до следующего, может быть назначен отрицательный индекс подфрейма sf фрейма k. В этом случае отрицательный подфрейм должен быть скорректирован согласно sf = sf + nrof_subframes.
Полученный таким образом индекс подфрейма находится во фрейме k-1. Точно так же в случае, когда sf больше, чем nrof_subframes, подфрейм должен быть скорректирован согласно sf = sf - nrof_subframes.
Индекс подфрейма, полученный таким образом, находится во фрейме k+1.
После деформатирования потока битов монофонический сигнал M восстанавливается как комбинация переходных процессов, синусоид и шума. Впоследствии используются параметры стерео, чтобы восстановить левый и правый сигналы из монофонического кодированного сигнала. Для двойного моно и моно параметрический декодер стерео не используется.
Параметрический декодер состоит из трех декодеров: декодера переходов, синусоидального декодера и декодера шума. Декодируемый сигнал получается суммированием выходов этих трех декодеров. В описании декодеров в параметрическом декодере индексация подфрейма sf и канала ch иногда для ясности опускается.
Определяются два типа переходных процессов, переходный процесс шага и переходный процесс типа Мейкслера. Декодирование переходного процесса шага включает только интерпретацию позиции. Для типа Мейкслера должны декодироваться параметризованная огибающая g[n] и ряд синусоид.
6.1.1 Переходный процесс шага
Переходный процесс шага не генерирует собственный сигнал, но он используется, чтобы изменить форму окна для того, чтобы синтезировать синусоидальные и шумовые компоненты.
6.1.2 Переходный процесс Мейкслера
Для декодирования переходного процесса Мейкслера сначала должна быть сгенерирована огибающая. Для огибающей требуются следующие параметры: стартовая позиция
tloc, начальный наклон, обозначенный t_b_par (параметр
b) и наклон спада, представленный
t_
chi_
par (параметр

)
(рисунок 1).
Рисунок 1 - Огибающая Мейкслера описывается функцией
g[n].
Наклоном атаки управляет параметр b. Спадом управляет
параметр

Время старта огибающей tloc для простоты объяснения принимается как n = 0. Эта огибающая g[n] сгенерирована согласно

,

,
для n = 1, включая tend, конечная позиция переходного окна tend определяется ниже. Максимум amax находится в позиции tmax и дается приближениями

,

,
Эти сложные выражения, особенно выражение для
amax, были оценены для допустимых значений
t_
b_
par и
t_
chi_
par и сводятся в
таблицу 32.
Таблица 32
tmax для всех возможных значений
t_
b_
par и
t_
chi_
par
tmax | t_b_par |
0 | 1 | 2 | 3 |
t_chi_par | 0 | 15 | 30 | 45 | 59 |
1 | 20 | 39 | 57 | 75 |
2 | 30 | 56 | 79 | 100 |
3 | 57 | 96 | 126 | 150 |
Таблица 33
amax для всех возможных значений t_b_par и t_chi_par
amax | t_b_par |
0 | 1 | 2 | 3 |
t_chi_par | 0 | 0,152713500109658 | 0,131630525645664 | 0,120142673294398 | 0,112550174511598 |
1 | 0,132843681407528 | 0,115639700421076 | 0,106510539071702 | 0,100663024431527 |
2 | 0,109279971016712 | 0,0971964875412947 | 0,0909719057150294 | 0,0872632874594248 |
3 | 0,0797175749717262 | 0,0744985442180281 | 0,0723059623257423 | 0,0715041477354716 |
Переходный процесс должен быть синтезирован до tend. Позиция tend определяется как конец второго полного последующего подфрейма после позиции переходного процесса tloc.
tend = 3·S - tloc - 1.
Подсчет выборок в подфрейме начинается с 0. Если переходный процесс стартует точно в начале подфрейма (tloc = 0), то tend = 3*S-1.
6.1.3 Синусоиды под огибающей
Получающееся представление переходного процесса получается путем комбинирования огибающей и синусоид согласно

,
для n вплоть до n=0 и включая tend.
6.2.1 Соединение
Фрейм обновления, обозначенный refresh_sinusoids = = %1, используется, чтобы указать, стартует ли фрейм с абсолютных значений для всех продолжений или стартует с дифференциально кодированных продолжений. Для рождения каждой синусоидальной дорожки во фрейме в потоке битов предоставляется s_cont, чтобы сигнализировать о числе подфреймов, в которых продолжается дорожка после текущего подфрейма в этом фрейме. В случае, если дорожка продолжается в первом подфрейме следующего фрейма, к этому числу добавляется 1. Если дорожка продолжается после первого подфрейма следующего фрейма, к этому числу добавляется 2. Основываясь на этой информации, декодер в состоянии соединить параметры, которые принадлежат дорожке.
s_cont заполняется в следующем порядке:
1) продолжения;
2) рождения (отсортированные по частоте в порядке возрастания).
При прохождении от одного подфрейма к следующему декодер отслеживает число продолжений, s_nrof_continuations [sf]. Число продолжений, существующих в подфрейме sf+1, может быть непосредственно получено из числа записей в s_cont [sf], не равных нулю. Для первого подфрейма в фрейме s_nrof_continuations читается из потока битов, чтобы задействовать произвольный доступ.
Общее количество синусоидальных компонентов в подфрейме sf, s_nrof_sin [sf], вычисляется так:
sf = = 0:
s_nrof_sin[0]=s_nrof_continuations[0][ch]+s_nrof_births[0][ch],
sf > 0
6.2.2 Декодирование синусоидальных параметров
В описании ниже мы принимаем, что имеет место синусоидальная дорожка длины

, в подфреймах
sf =
[K,
K+k + 1
]. Для рождений дорожки (
sf =
K) частота и фаза индекса синусоиды
n представляются
fq [K] [ch] [n] и
spq [K] [ch] [n], соответственно. Для продолжений, чтобы получить информацию о частоте и фазе для подфрейма, требуются уровни представления вместе с отслеживанием информации.
Для продолжения (
sf = [
K +
1,
K+k -1]) уровни представления
s_
delta_
cont_
freq_
pha [sf] [ch] [n] преобразовываются в квантованную ошибку прогноза

, используя
таблицу 35 с индексом = = 2. Квантованная ошибка прогноза

затем умножается на масштабный коэффициент
c [sf] [ch] [n]. Для первого продолжения
c [K+1
] [ch] [p], где
p представляет индекс синусоиды в подфрейме
K+1, зависит от частоты рождения, то есть
fq [
K].
Таблица 34 показывает значение масштабного коэффициента
c для возможных частотных диапазонов
fq [
K].
Таблица 34
Таблица масштабных коэффициентов
Частотный диапазон, Гц | Масштабный коэффициент c[K+1] |
[0 - 500] | 1/8 |
< 500 - 1000] | 1/4 |
< 1000 - 4000] | 1/2 |
< 4000 - 22050] | 1 |
Для других продолжений sf = [K + 2, K+k - 1] c изменяется согласно полученным уровням представления вдоль дорожки посредством блока "Backward Adaptation". Если s_delta_cont_freq_pha [sf] [ch] [n] равно 1 или 2 (внутренний уровень) для подфрейма sf, то c для подфрейма sf+1 устанавливается в
c [sf + 1] [ch] [p] = c [sf] [ch] [n] x 2-1/4.
Если s_delta_cont_freq_pha [sf] [ch] [n] равняется 0 или 3 (внешний уровень), то c для подфрейма sf+1 устанавливается в
c [sf + 1] [ch] [p] = c [sf] [ch] [n] x 21/2.
Чтобы избежать очень маленьких или очень больших записей по ошибке прогноза, адаптация выполняется только если абсолютное значение внутреннего уровня 0,75
c [
sf+1] [
ch] [
p] находится между

и

.
При получении квантованной ошибки прогноза

вывод фильтра прогноза добавляется к ней, приводя к развернутой фазе

:

.
Используется прогнозирующее устройство второго порядка. Поведение ввода - вывода фильтра таково

,
где
q является индексом синусоиды в подфрейме
sf-1,

является вводом и

является выводом фильтра прогноза.
Чтобы инициализировать фильтр прогноза, нужно одно значение из предыдущих значений для ввода

, где
K является индексом подфрейма рождения дорожки. Так как это значение не доступно, предполагаем, что частота является постоянной в подфрейме
(K-1
). Для рождения дорожки имеем информацию о частоте и фазе, таким образом, можем вычислить ввод в
(K-1
) и
K согласно:

,

,
где S представляет интервал обновления. Развернутые фазы являются отфильтрованными по низким частотам LPF-phase блока. Это делается следующим образом:

,
где sf является индексом подфрейма вдоль дорожки. В конце дорожки (sf = K+k - 1), применяется следующее правило:

.
Восстановленные фазы получаются из сглаженных развернутых фаз следующим образом:

.
Чтобы получить частоту, развернутые фазы должны дифференцироваться вдоль дорожки. Дифференциация реализуется приближением. Частота получается с помощью:

,
где
S представляет интервал обновления и

. Когда фаза рождения и частота рождения известны в декодере, вычисляются частоты

последующих фреймов. Чтобы ослабить сигнал с шумами, которые вносятся этой дифференциацией, применяется фильтр низких частот на частоты (
LPF-freq):

.
Для первого продолжения дорожки (sf = K + 1) определение изменяется на:

.
Также последняя частота в дорожке (sf = K+k - 1) получается другим способом:

.
Для дорожек длиной

продолжение вычисляется согласно

.
Таким образом получаются фазы и частоты из уровней представления s_delta_cont_freq_pha.
Во фреймах обновлений применяется следующая процедура. Если
sf =
[K, ...,
K+
R, ...,
K+k-1
], подфрейм
K+
R является первым подфреймом фрейма с
refresh_
sinusoids = = %1. Подфрейм (
K+
R-1) является последним подфреймом фрейма с
refresh_
sinusoids_
next_
frame = = %1. Значения фазы и частоты для подфрейма с подфрейма
K до и включая подфрейм
K+
R-1 получаются как описано выше, как будто дорожка заканчивается в подфрейме (
K+
R-1). Значения фазы и частоты для подфрейма
K+
R до подфрейма (
K+k - 1) получаются как описано выше, как будто подфрейм
K+
R является рожденным. Для инициализации квантованной ошибки прогноза

используется в качестве индекса к
таблице 35 и
c [K+
R] [ch] [n] = 1.
Таблица 35
Квантованная ошибка прогноза

| s_delta_cont_freq_pha |
Индекс | 0 | 1 | 2 | 3 |
0 | -4,2426 | -1,0607 | 1,0607 | 4,2426 |
1 | -3,5676 | -0,8919 | 0,8919 | 3,5676 |
2 | -3,0000 | -0,7500 | 0,7500 | 3,0000 |
3 | -2,5227 | -0,6307 | 0,6307 | 2,5227 |
4 | -2,1213 | -0,5303 | 0,5303 | 2,1213 |
5 | -1,7838 | -0,4460 | 0,4460 | 1,7838 |
6 | -1,5000 | -0,3750 | 0,3750 | 1,5000 |
7 | -1,2613 | -0,3153 | 0,3153 | 1,2613 |
8 | -1,0607 | -0,2652 | 0,2652 | 1,0607 |
9 | -0,8919 | -0,2230 | 0,2230 | 0,8919 |
10 | -0,7500 | -0,1875 | 0,1875 | 0,7500 |
11 | -0,6307 | -0,1577 | 0,1577 | 0,6307 |
12 | -0,5303 | -0,1326 | 0,1326 | 0,5303 |
13 | -0,4460 | -0,1115 | 0,1115 | 0,4460 |
14 | -0,3750 | -0,0938 | 0,0938 | 0,3750 |
15 | -0,3153 | -0,0788 | 0,0788 | 0,3153 |
16 | -0,2652 | -0,0663 | 0,0663 | 0,2652 |
17 | -0,2230 | -0,0557 | 0,0557 | 0,2230 |
18 | -0,1875 | -0,0469 | 0,0469 | 0,1875 |
19 | -0,1577 | -0,0394 | 0,0394 | 0,1577 |
20 | -0,1326 | -0,0331 | 0,0331 | 0,1326 |
21 | -0,1115 | -0,0279 | 0,0279 | 0,1115 |
В случае, когда phase_jitter_present устанавливается в %1, и фаза и частота получаются посредством декодирования ADPCM, никакое дрожание фазы не применяется.
6.2.3 Синтез синусоид для сегментов без переходного процесса
Параметры синусоид используются, чтобы синтезировать синусоидальные компоненты. Это делается на основе сегмента, состоящего из выборок L.
Синтез использует стратегию 50% перекрытия и добавления. Чтобы синтезировать подфрейм, в начале нового фрейма должны быть доступными параметры предыдущего подфрейма. Это означает, что должны быть доступными параметры последнего подфрейма в предыдущем фрейме.
Фактический синтез синусоиды выполняется согласно

, для
n = [0,
L - 1].
Фазовая информация
spq определяется для середины сегмента (=(
L-1)/2). Фазовая информация исходной фазы
spq вычисляется из
s_
phi (см.
5.2). Для продолжений фаза вычисляется как описано в
6.2.2.
В перекрытии и добавлении выбирается следующее, дополнительное симметричное окно амплитуды

, для
n = [0,
L - 1].
Сегмент длины L получается из

, для
n = [0,
L - 1].
Синусоидальное добавление для подфрейма sf тогда вычисляется, используя добавление из предыдущего подфрейма согласно:

, для
n = [0,
S - 1].
6.2.4 Синтез синусоид для сегментов без переходного процесса
Для синусоид с частотой ниже 400 Гц должно использоваться только окно ws[n].
Для других синусоид для синтеза сегмента применяются другие формы окна, в зависимости от компонента (продолжение, рождение, или отмирание).
Следующее выражение точно описывает окно ws [n]

.
6.2.4.2 Отмирание и переходный процесс во второй половине сегмента
Следующее выражение описывает окно ws [n]

.
Шум синтезируется в интервалах 4 подфреймов или 2L выборок. Модель для синтеза шума состоит из генератора псевдослучайных чисел, временного регулятора огибающей, механизма окна для перекрытия и добавления, и фильтра IIR.
Временная огибающая H[n] представляется при использовании единственного усиления и ряда линейных спектральных частот (LSFs), представляющих коэффициенты LPC. Как усиление, так и LSFs обновляются один раз каждые 4 подфрейма (2L выборок). Коэффициенты Лагерра представляются параметрами LAR. Они обновляются раз за 2 подфрейма (L выборок), то есть вдвое чаще малой частоты обновления, которая используется для временной огибающей.
Чтобы предотвратить разрывы, интервалы, которые изменяются временной огибающей, имеют перекрытие 25%. В области перекрытия используется окно Ханнинга. Первые 4 сгенерированные подфрейма 2L выборок стартуют с постепенного появления, используя окно Ханнинга.
Окно wn определяется так
6.3.1 Генерация шума
Шум генерируется с помощью генератора псевдослучайных чисел, определенный линейной конгруэнтной последовательностью U
U [n+1] = mod (a*U [n] + c, m),
где U [0] является начальным значением, a множитель, c инкремент и m модуль (с m = 232). В начале декодирования начальное значение устанавливается в channel_number (0 = левый, 1 = правый), приводя к независимым источникам шума для каждого канала. Для генерации каждого следующего интервала шума начальное значение устанавливается в конечное значение предыдущего интервала. Алгоритм приводится ниже.
#define RAND_SCALE | (1/4294967296,0) |
#define RAND_FACTOR | 1664525L |
#define RAND_OFFSET | 1013904223L |
Double noiseUDN (unsignedlong *lp_seed) |
{ |
*lp_seed = (*lp_seed * RAND_FACTOR+RAND_OFFSET) & 0xFFFFFFFF; |
return *lp_seed * RAND SCALE; |
} |
Этот алгоритм возвращает значение U = [0, 1>. Нормальное распределение X получается добавлением 12 последовательных выборок распределения (U - 0,5). Для следующей выборки X используются 12 новых последовательных выборок. Используя это нормальное распределение X, посредством фильтрации шума генерируется спектральный шум.
Чтобы избежать разрывов в генерации шума, перекрывающиеся временные интервалы берутся от генератора шума холостого хода. Это реализуется, копируя начальное число из предыдущего интервала в текущий интервал во время перекрытия.
6.3.2 Временная огибающая
Временная огибающая применяется к интервалу 2L+4S/3 выборок, которые сгенерированы генератором случайного шума. Форма временной огибающей представляется временным доменом, эквивалентным Line Spectral Frequencies, которые являются представлением коэффициентов LPC. Параметр дополнительного усиления используется, чтобы масштабировать всю огибающую. Так как у интервалов LSF имеется перекрытие 25%, существует потенциальная избыточность в параметрах LSF в этой области перекрытия. В случае, когда присутствует эта избыточность, кодируется только один набор LSFs, допустимый для двух огибающих в области перекрытия. Об этой ситуации сообщается параметром n_overlap_lsf. В случае refresh_noise = = %1 первый LSF и усиление для этого определенного интервала кодируются в абсолютных значениях посредством параметров n_lsf и n_gain. Последующие LSFs кодируются дифференцированно со ссылкой друг на друга.
В случае refresh_noise = = %0, параметр усиления для этого интервала кодируется дифференцированно со ссылкой на усиление предыдущего фрейма посредством параметра n_delta_gain. Кодирование параметров LSF в той ситуации зависит от установки n_overlap_lsf. В случае refresh_noise = = %0 и n_overlap_lsf = = %0, LSF кодируется как в ситуации где refresh_noise = = %1. В случае refresh_noise = = %0 и n_overlap_lsf= =%1, число коэффициентов LSF, n_nrof_overlap, вычисляется из предыдущего определения в канале ch согласно
n_nrof_overlap = 0;
for (i = 0; i <n_nrof_lsf; i ++) {
if (n_lsf [sf-4] [ch] [i]> = 192) n_nrof_overlap ++
}
Коэффициенты LSF, которые перекрываются, копируются из предыдущего определения согласно
for (i = 0, j = n_nrof_lsf - n_nrof_overlap; i <n_nrof_overlap; i ++, j ++)
{
n_lsf [sf] [ch] [i] = n_lsf [sf-4] [ch] [i] - 192
}
6.3.2.1 Декодирование параметров усиления и LSF
Усиление масштабирует всю временную огибающую. Существуют две огибающих на фрейм, усиление для первой и второй временной огибающей кодируется в sf = 0 и sf = 4 соответственно. Коэффициент усиления G, который фактически применяется к временной огибающей, вычисляется как
Декодируемые LSFs, nlsfq преобразовываются в a-параметры, используя следующие уравнения. Все LSFs преобразовываются к позициям на единичном круге
Эти позиции разделяются на два полинома:

,

.
Для обоих полиномов комплексно сопряженные элементы связываются

,

.
Полиномы вычисляются следующим образом

,

.
В случае, если n_nr_of_lsf нечетен, полиномы изменяются так
PQ = PQ(z + 1)(z - 1).
В случае, если n_nr_of_lsf четный
PP = PP(z - 1),
PQ = PQ(z - 1)
Полином A(z) дается как

.
В конечном счете огибающая H [n], где n является индексом выборки, вычисляется как:
Последовательность шума умножается на временную огибающую. В случае n_nr_of_lsf = = 0, H [n] определяется как
6.3.3 Шумовая фильтрация
Фильтр синтеза Лагерра применяется после работы по перекрытию - добавлению.
Параметры для фильтрации Лагерра обновляются каждые 2 подфрейма (выборок). Чтобы удостовериться, что в генерации первой выборки уже получается требуемая спектральная плотность, должны быть установлены начальные состояния фильтра. Это реализуется копированием конечных состояний после генерации интервала в начальные состояния для генерации следующего интервала. В случае, если refresh_noise = = %0, или запуска декодирования, начальные состояния фильтра будут установлены в 0. Так, используя первый набор параметров для следующих 2 подфреймов (с новыми параметрами) в качестве начальных состояний, используются конечные состояния фильтра, полученные в результате его предыдущей работы. Для обновлений параметров LAR используется дифференциальное кодирование относительно параметров LAR предыдущего интервала.
В потоке битов, для каждого подфрейма, коэффициенты для структуры фильтра Лагерра кодируются в нотации Log Area Ratio (LAR). Первый шаг реконструкции параметров Лагерра является деквантизацией LARs. Коэффициенты parcor ('rfc') получаются из деквантованных LARs. Последний шаг является преобразованием коэффициентов FIR обратно в коэффициенты Лагерра.
6.3.3.1 Квантованные LARs
Коэффициенты
LAR в знаменателе деквантуются, умножая значение, закодированное в потоке битов на постоянное

, которое определяется как

,
где dynr=2*8 является динамическим диапазоном коэффициентов LAR (от -8 до +8), и levels=2bits-2, с bits=9 представляет число уровней представления.
6.3.3.2 Преобразование LARs в parcors
Следующий алгоритм описывает преобразование m коэффициентов LAR, nlarq в m (m=n_nrof_den) parcors 'rfc'.
for (i=0; i <m; i ++)
{
rfc [i] = (exp (nlarq [i])-1)/(exp (nlarq [i]) +1)
}
6.3.3.3 Преобразование parcors в коэффициенты FIR
Следующий алгоритм описывает преобразование m коэффициентов parcor, 'rfc' в m+1 a-параметров 'p'.
for (k=0; k <m; k ++)
{
d [k] = - rfc [k];
for (i=0; i <k; i ++)
{
d [i] = tmp [i] +rfc [k] *tmp [k-i-1];
}
for (i=0; i <=k; i ++)
{
tmp [i] = d [i];
}
}
p [0] = 1,0;
for (k = 0; k <м.; k ++)
{
p [k+1] = -d [k];
}
6.3.3.4 Преобразование коэффициентов FIR в коэффициенты Лагерра
a-параметры p преобразуются обратно в коэффициенты Лагерра a, используя следующий алгоритм

,

,
где m = [n_nrof_den-1.. 0] и

.
6.4 Параметрическое стерео
6.4.1 Параметры стерео
В представлении образа стерео используются три различных типа параметров стерео:
1) межканальное различие в интенсивности или IID, определенный относительными уровнями ограниченного полосой сигнала;
2) межканальное и полное различие фаз, IPD и OPD, определяющее поведение фазы ограниченного полосой сигнала;
3) межканальная когерентность ICC, определяющая (не)сходство левого и правого ограниченного полосой сигнала.
Ввод в параметрический стереодекодер состоит из монофонического параметрически сгенерированного сигнала, полученного посредством синтеза переходного процесса, синусоид и шума. Вывод состоит из левого и правого представления стерео соответственно.
6.4.2 Блок фильтров анализа QMF
Этот блок фильтров идентичен 64 блоку фильтров комплексного анализа QMF. Однако в уравнении матрицы M (k, n) множитель "(2*n+1)" нужно заменить на "(2*n-1)". Ввод в блок фильтров является блоками из 64 выборок монофонического синтезируемого сигнала M. Для каждого блока блок фильтров выводит один слот из 64 выборок QMF.
6.4.3 Фильтрация низкой частоты
Поддиапазоны
QMF далее разделяются, чтобы получить более высокую разрешающую способность по частоте, задействующую надлежащий анализ и синтез стерео для более низких частот. В зависимости от числа полос стерео были определены две гибридных конфигурации. Обзор разделений и типа фильтра, который используется, чтобы выполнить разделение, см. в
таблице 36.
Таблица 36
Обзор разделения низкой частоты для доступных конфигураций
Конфигурация, число полос стерео | Поддиапазон QMF p | Число полос QP | Фильтр |
10, 20 | 0 | 8 | Тип A |
1 | 2 | Тип B |
2 | 2 |
34 | 0 | 12 | Тип A |
1 | 8 |
2 | 4 |
3 | 4 |
4 | 4 |
Тип A:

.
Тип B:

,
где
gp представляет фильтры прототипа в поддиапазоне
QMF p.
Qp представляет число подподдиапазонов в поддиапазоне
QMF p,
q индекс подподдиапазона в канале
QMF p и
n индекс времени. Все прототипные фильтры длиной 13 имеют задержку 6 выборок
QMF. Прототипные фильтры перечисляются в
таблице 37 и
таблице 38 для конфигураций 10, 20 и 34 полосы стерео соответственно.
Таблица 37
Коэффициенты прототипного фильтра для фильтров, которые
разделяют нижние поддиапазоны QMF для конфигураций
10 и 20 полос стерео
n | g0[n], Q0 = 8 | g1,2[n], Q1,2 = 2 |
0 | 0,00746082949812 | 0 |
1 | 0,02270420949825 | 0,01899487526049 |
2 | 0,04546865930473 | 0 |
3 | 0,07266113929591 | -0,07293139167538 |
4 | 0,09885108575264 | 0 |
5 | 0,11793710567217 | 0,30596630545168 |
6 | 0,125 | 0,5 |
7 | 0,11793710567217 | 0,30596630545168 |
8 | 0,09885108575264 | 0 |
9 | 0,07266113929591 | -0,07293139167538 |
10 | 0,04546865930473 | 0 |
11 | 0,02270420949825 | 0,01899487526049 |
12 | 0,00746082949812 | 0 |
Таблица 38
Коэффициенты прототипного фильтра для фильтров, которые
разделяют нижние поддиапазоны QMF для конфигурации
34 полосы стерео
n | g0[n], Q0 = 12 | g1[n], Q1 = 8 | g2,3,4, Q2,3,4 = 4 |
0 | 0,04081179924692 | 0,01565675600122 | -0,05908211155639 |
1 | 0,03812810994926 | 0,03752716391991 | -0,04871498374946 |
2 | 0,05144908135699 | 0,05417891378782 | 0 |
3 | 0,06399831151592 | 0,08417044116767 | 0,07778723915851 |
4 | 0,07428313801106 | 0,10307344158036 | 0,16486303567403 |
5 | 0,08100347892914 | 0,12222452249753 | 0,23279856662996 |
6 | 0,08333333333333 | 0,12500000000000 | 0,25000000000000 |
7 | 0,08100347892914 | 0,12222452249753 | 0,23279856662996 |
8 | 0,07428313801106 | 0,10307344158036 | 0,16486303567403 |
9 | 0,06399831151592 | 0,08417044116767 | 0,07778723915851 |
10 | 0,05144908135699 | 0,05417891378782 | 0 |
11 | 0,03812810994926 | 0,03752716391991 | -0,04871498374946 |
12 | 0,04081179924692 | 0,01565675600122 | -0,05908211155639 |
Чтобы выравнять по времени все выборки, приходящие из гибридного блока фильтров, компенсируют задержку остающихся поддиапазонов QMF, которые не фильтровались. Эта задержка составляет 6 выборок поддиапазона QMF. Это означает

для
k = [3... 63] (10, 20 полос стерео) или
k = [5... 63] (34 полосы стерео). Чтобы компенсировать полную задержку гибридного блока фильтров анализа, первые 10 наборов (6 от задержки и 4 от фильтра
QMF) гибридных поддиапазонов сбрасывается и поэтому не принимается во внимание при обработке.
Результатом этой работы является слот гибридных выборок поддиапазона, состоящих из LF (низкая частота) части поддиапазона sub QMF и HF (высокая частота) части поддиапазона QMF.
6.4.4 Кадрирование
Один фрейм параметрического аудио включает два фрейма данных стерео. Параметры стерео в пределах фрейма стерео могут быть присвоены одному или более слотам. Границы фрейма стерео и позиции ne слотов, которым были присвоены параметры стерео, определяют так называемые области. Параметры стерео определяются для последнего слота.
6.4.5 Декорреляция
Посредством всечастотной фильтрации и задержки, выборки поддиапазона sub sk(n) преобразовываются в декоррелированные выборки поддиапазона sub dk (n), где k представляет частоту в гибридном спектре, а n - индекс времени.
6.4.5.1 Константы
DECAY_SLOPE=0,05 | Наклон затухания всечастотного фильтра. |
NR_ALLPASS_LINKS=3 | Число связей фильтра для всечастотного фильтра |
NR_PAR_BANDS | Число полос частот, которые могут адресоваться индексом параметра, b (k). |
| , 10 или 20 полос стерео |
, 34 полосы стерео |
NR_BANDS | Число полос частот, которые могут адресоваться индексом поддиапазона sub, k. |
| , 10 или 20 полос стерео, |
, 34 полосы стерео |
DECAY_CUTOFF | Стартовая полоса частот для наклона затухания всечастотного фильтра |
| , 10 или 20 полос стерео |
, 34 полосы стерео |
NR_ALLPASS_BANDS | Число полос всечастотного фильтра |
| , 10 или 20 полос стерео, |
, 34 полосы стерео |
SHORT_DELAY_BAND | Первая полоса стерео, использующая короткую, в одну выборку, задержку |
| , 10 или 20 полос стерео |
, 34 полосы стерео |
aSmooth = 0,25 | Коэффициент сглаживания |
6.4.5.2 Вычисление декоррелируемого сигнала dk(z)
Процесс декорреляции для первой полосы частот NR_ALLPASS_BANDS sk(n) основан на всечастотном фильтре, описанном в Z-домене. Его функция передачи для каждой полосы k определяется:
для 0 <= k < NR_ALLPASS_BANDS.
Матрица длины фрагментарной задержки,
QFract_
allpass(
k,
m) и вектор фрагментарной задержки,

определяются выражением

,
и

, 0 <=
k <
NR_
ALLPASS_
BANDS, где

обозначает мнимую единицу. Постоянная длины фракционной задержки

.
Вектора коэффициентов фильтра
a(m) и вектора длины задержки
d(m) см. в
таблице 39.
Вектор gDecaySlope содержит независимые от времени факторы для того, чтобы сделать всечастотный фильтр вариантом частотнозависимого. Это определяется выражением:
Для верхних полос NR_ALLPASS_BANDS <= k < NR_BANDS функция передачи Hk(z) равняется задержке согласно:
Hk(z) = z-D(k), где D(k) определяется
6.4.5.3 Обнаружение переходов
Чтобы обработать переходные процессы и другие быстрые огибающие времени, всечастотный фильтр должен быть ослаблен при этих сигналах. Это делается по следующей схеме:
сначала определяется матрица входной мощности P (i, n), которая содержит сумму выборок поддиапазона sub в квадрате каждой полосы параметра

,
Применяется пиковое затухание к мощности входного сигнала согласно:
для 0
<= i < NR_
PAR_
BAND.

является фактором пикового затухания.
Впоследствии входная мощность и сигналы пикового затухания мощности фильтруются с функцией передачи Z-домена
HSmooth (z):
PSmoothNrg (i,z) = HSmooth (z)·P(i, z),
PSmoothPeakDecayDiffNrg (i,z) = HSmooth (z)·PPeakDecayNrg (i, z) - P(i, z)),
для 0 <= I < NR_PAR_BANDS, где

.
Аттенюатор переходов GTransientRatio вычисляется следующим образом:
для 0
<= i < NR_
PAR_
BANDS, где

фактор воздействия перехода.
Наконец аттенюатор переходов GTransientRatio отображается в полосы согласно:
GTransientRatioMapped(k,n) = GTransientRatio(b(k),n) , 0 <= k < NR_PAR_BANDS.
6.4.5.4 Примените сокращения для перехода к декоррелируемому сигналу
Пусть dk (z) будет декоррелируемым сигналом и sk (z) входным сигналом моно в Z-домене для каждой полосы. Тогда dk (z) определяется согласно:
dk (z) = GTransientRatioMapped(k,z)·Hk(z)·sk(z), где 0 <= k < NR_PAR_BANDS.
Таблица 39
Векторы коэффициентов фильтра, векторы длины задержки
d24kHz(m) и d48kHz(m)
m | a(m) | d(m) |
0 | 0 ,65143905753106 | 3 |
1 | 0 ,56471812200776 | 4 |
2 | 0 ,48954165955695 | 5 |
Таблица 40
Вектор длины задержки fcenter_20
k | fcenter_20(k) |
0 | -3/8 |
1 | -1/8 |
2 | 1/8 |
3 | 3/8 |
4 | 5/8 |
5 | 7/8 |
6 | 5/4 |
7 | 7/4 |
8 | 9/4 |
9 | 11/4 |
Таблица 41
Вектор длины задержки fcenter_34
k | fcenter_34(k) |
0 | 1/12 |
1 | 3/12 |
2 | 5/12 |
3 | 7/12 |
4 | 9/12 |
5 | 11/12 |
6 | 13/12 |
7 | 15/12 |
8 | 17/12 |
9 | -5/12 |
10 | -3/12 |
11 | -1/12 |
12 | 17/8 |
13 | 19/8 |
14 | 5/8 |
15 | 7/8 |
16 | 9/8 |
17 | 11/8 |
18 | 13/8 |
19 | 15/8 |
20 | 9/4 |
21 | 11/4 |
22 | 13/4 |
23 | 7/4 |
24 | 17/4 |
25 | 11/4 |
26 | 13/4 |
27 | 15/4 |
28 | 17/4 |
29 | 19/4 |
30 | 21/4 |
31 | 15/4 |

, 10
<= k < NR_
ALLPASS_
BANDS.

, 32
<= k < NR_
ALLPASS_
BANDS.
Таблица 42
Фракционный вектор длины задержки q(m)
(m) | q(m) |
0 | 0,43 |
1 | 0,75 |
2 | 0,347 |
Таблица 43
Пиковые факторы затухания

6.4.6 Обработка стерео
Наборы выборок поддиапазона
sub sk(
n) и
dk(
n) обрабатываются согласно сигналам стерео. Эти сигналы определяются на полосу стерео. Все гибридные выборки поддиапазона в пределах полосы стерео обрабатываются согласно сигналам в этой соответствующей полосе стерео.
Таблица 48 и
таблица 49 указывают гибридные выборки поддиапазона, которые попадают в каждый стереодиапазон для конфигурации стереодиапазона (10, 20) и 34.
k проходит диапазон от [0 ... 70] или [0 ... 90] для конфигурации стереодиапазона (10, 20) или 34, соответственно.
6.4.6.1 Отображение
Число полос стерео, которое фактически используется для обработки сигналов, зависит от числа
IDD и доступных параметров для
ICC согласно отношению, данному в
таблице 44. В случае, если никакие
IID или параметры
ICC не были переданы в текущем фрейме (
enable_
iid = = %0 или
enable_
icc = = %0), число
IID или параметр
ICC, соответственно, считается равным 20. В случае, если никакой
IID и никакие параметры
ICC не были переданы в текущем фрейме (
enable_
iid = = %0 и
enable_
icc = = %0), число полос стерео в предыдущем фрейме сохраняется неизменным и используется также для обработки текущего фрейма.
Таблица 44
Число полос стерео зависит от числа параметров для
IID и
ICC
Число параметров IID | Число параметров ICC | Число полос стерео |
10 | 10 | 20 (то есть, конфигурация 10, 20 полос стерео) |
10 | 20 |
20 | 10 |
20 | 20 |
10, 20 | 34 | 34 |
34 | 10, 20 |
34 | 34 |
В случае, когда число параметров для
IID и
ICC отличается от числа полос стерео, требуется отображение из меньшего числа параметров в большее число параметров. Для отображения от 10 до 20 параметров это реализуется копированием каждого параметра как показано в
таблице 45. Для отображения от 20 до 34 параметров это реализуется согласно
таблице 45. Для отображения от 10 до 34 параметров сначала 10 параметров отображаются на 20 параметров, а потом на 34 параметра.
Таблица 46 дает инверсное отображение от 34 параметров до 20.
Таблица 45
Отображение от 10 до 20 параметров в 34
Сетка параметров |
34 | 20 | 10 |
idx0 | idx0 | idx0 |
idx1 | (idx0+idx1)/2 | idx0 |
idx2 | idx1 | idx0 |
idx3 | idx2 | idx1 |
idx4 | (idx2+idx3)/2 | idx1 |
idx5 | idx3 | idx1 |
idx6 | idx4 | idx2 |
idx7 | idx4 | idx2 |
idx8 | idx5 | idx2 |
idx9 | idx5 | idx2 |
idx10 | idx6 | idx3 |
idx11 | idx7 | idx3 |
idx12 | idx8 | idx4 |
idx13 | idx8 | idx4 |
idx14 | idx9 | idx4 |
idx15 | idx9 | idx4 |
idx16 | idx10 | idx5 |
idx17 | idx11 | idx5 |
idx18 | idx12 | idx6 |
idx19 | idx13 | idx6 |
idx20 | idx14 | idx7 |
idx21 | idx14 | idx7 |
idx22 | idx15 | idx7 |
idx23 | idx15 | idx7 |
idx24 | idx16 | idx8 |
idx25 | idx16 | idx8 |
idx26 | idx17 | idx8 |
idx27 | idx17 | idx8 |
idx28 | idx18 | idx9 |
idx29 | idx18 | idx9 |
idx30 | idx18 | idx9 |
idx31 | idx18 | idx9 |
idx32 | idx19 | idx9 |
idx33 | idx19 | idx9 |
Таблица 46
Отображение параметров
IID,
ICC,
IPD и
OPD из 34 полос
стерео в 20 полос стерео. Для параметров IPD и OPD это
отображение применяется до и включая idx10 и idx16 для 20
и 34 полос стерео соответственно
20 полос стерео | 34 полосы стерео |
idx0 | (2*idx0 + idx1)/3 |
idx1 | (idx1 + 2*idx2)/3 |
idx2 | (2*idx3 + idx4)/3 |
idx3 | (idx4 + 2*idx5)/3 |
idx4 | (idx6 + idx7)/2 |
idx5 | (idx8 + idxg)/2 |
idx6 | idx10 |
idx7 | idx11 |
idx8 | (idx12 + idx13)/2 |
idx9 | (idx14 + idx15)/2 |
idx10 | idx16 |
idx11 | idx17 |
idx12 | idx18 |
idx13 | idx19 |
idx14 | (idx20 + idx21)/2 |
idx15 | (idx22 + idx23)/2 |
idx16 | (idx24 + idx25)/2 |
idx17 | (idx26 + idx27)/2 |
idx18 | (idx28 + idx29 + idx30 + idx31)/4 |
idx19 | (idx32 + idx33)/2 |
Процесс усреднения, обозначенный (
idx0 +
idx1)/2 в
таблице 45 и (2*
idx0 +
idx1)/2 в
таблице 46, выполняется для представления целочисленного индекса
idxk параметров
IID или
ICC перед деквантизацией, согласно целочисленной арифметике
ANSI-C.
Параметры IPD/OPD следуют за отображением для параметров IID, принимая во внимание относительное количество параметров для IPD/OPD. Следовательно для IPD/OPD применяется то же самое отображение как для IID, но только для более низкого числа параметров. Для верхних полос стерео, где никакие данные IPD/OPD не передаются, параметры IPD/OPD обнуляются.
Если число полос стерео изменяется от 10, 20 в предыдущем фрейме к 34, коэффициенты
h11(
b),
h12(
b),
h21(
b) и
h22(
b) в конце предыдущего фрейма отображаются от 20 до 34 полос стерео согласно
таблице 45 (путем замены
idxb на
hij (
b), где
ij равно 11, 12, 21 или 22). Коэффициенты
H11(
k,
n),
H12(
k,
n),
H21(
k,
n) и
H22(
k,
n) для конца предыдущего фрейма извлекаются согласно четырем уравнениям, приведенным в
6.4.6.3 перед дальнейшей обработкой, как определено в
6.4.6.4. Параметры состояния сглаживания
IPD/OPD сбрасываются, то есть
opd(
b,
ne-1) = 0,
ipd(
b,
ne-1) = 0,
opd(
b,
ne) = 0 и
ipd(
b,
ne) = 0. Разрешающая способность по частоте гибридного блока фильтров анализа
QMF изменяется на конфигурацию 34 полосы стерео. Параметры состояния процесса декорреляции сбрасываются в нуль.
Если число полос стерео изменяется от 34 в предыдущем фрейме к 10, 20 в текущем фрейме, коэффициенты
h11(
b),
h12(
b),
h21(
b) и
h22(
b) в конце предыдущего фрейма отображаются от 34 до 20 полос стерео согласно
таблице 46 (заменяя
idxb на
hij(b), где
ij равно 11, 12, 21, или 22). Коэффициенты
H11(k,
n),
H12(k,
n),
H21(k,
n) и
H22(k,
n) для конца предыдущего фрейма извлекаются согласно четырем уравнениям, приведенным в
6.4.6.3 перед дальнейшей обработкой, как определено в
6.4.6.4. Переменные состояния сглаживания
IPD/OPD сбрасываются, то есть,
opd (b,
ne-1) = 0,
ipd (b,
ne-1) = 0,
opd (b,
ne) = 0 и
ipd (b,
ne) = 0. Разрешающая способность по частоте гибридного блока фильтров анализа
QMF изменяется на конфигурацию 20 полос стерео. Параметры состояния процесса декорреляции сбрасывается, чтобы обнулиться
(таблица 47).
Таблица 47
Изменение числа полос стерео.
Предыдущий фрейм | Текущий фрейм |
10/20 полос | 34 полосы |
10/20 полос | - | Отображение hij (b) согласно таблицы 45, сброс параметров состояния |
34 полосы | Отображение hij (b) согласно таблицы 46, сброс параметров состояния | - |
6.4.6.2 Смешивание
Чтобы генерировать сигналы поддиапазона QMF для выборок поддиапазона n = ne + 1... ne+1 требуются параметры в положении ne и ne+1, а также сигналы как домена поддиапазона sk(n) и dk(n) для n = ne + 1... ne+1. Для IPD/OPD дополнительно необходимы параметры в позиции ne-1. ne представляет стартовую позицию для огибающей e. В случае e = 0, n-1 представляет позицию последнего параметра предыдущего фрейма стерео. Для первого фрейма стерео параметры IPD/OPD в позиции n-1 инициализируются в нуль. В случае класса фрейма = = %1 (VAR_BORDERS), позиции границы ne получаются с помощью border_position [e]. В случае класса фрейма = = %0 (FIX_BORDERS), позиции границы ne получаются посредством формулы
Сигналы поддиапазона sub стерео создаются как:
lk(n) = H11(k,n)sk(n) + H21(k,n)dk(n)
rk(n) = H11(k,n)sk(n) + H21(k,n)dk(n)
Чтобы получить матрицы H11(k,n), H12(k,n), H21(k,n) и H22(k,n) сначала должны быть вычислены векторы h11 (b), h12 (b), h21 (b) и h22 (b), где параметр b используется в качестве индекса параметра. Сначала преобразуются к линейному домену различия в интенсивности (IDD) для позиции параметра ne+1

,
где iid (b) представляет декодированное значение IID для полосы стерео b в дБ. В зависимости от конфигурации режима ICC используются смешивающая процедура Ra или Rb. Для обеих смешивающих процедур используются параметры для позиции параметра ne+1.
6.4.6.2.1 Смешивающая процедура Ra
В случае использования смешивающей процедуры Ra применяется следующий метод.
Из различий в интенсивности вычисляются два вектора масштабного коэффициента c1 и c2

.
Исходя из них и параметра

вычисляются коэффициенты
hxy (
b) согласно
6.4.6.2.2 Процедура смешивания Rb
В случае, когда используется процедура смешивания Rb, применяется следующий метод.
Чтобы предотвратить неустойчивость, в случае значения

меньше чем 0,05,

устанавливается в 0,05. В случае если
c (
b) не равно 1

,
иначе

. После исправления по модулю
a(
b) значения
c(
b) и

снова используются, чтобы получить коэффициенты
hxy(
b).

,

,

,

,

,

,

.
6.4.6.3 Фазовые параметры
6.4.6.3.1 Фазовые параметры заблокированы
Если IPD и OPD заблокированы (enable_ipdopd = = 0), применяется следующая процедура. Чтобы получить H11(k, ne+1), H12(k, ne+1), H21(k, ne+1) и H22(k, ne+1), используем следующие уравнения:
H11(k, ne+1) = h11(b(k))
H12(k, ne+1) = h12(b(k))
H21(k, ne+1) = h21(b(k))
H22(k, ne+1) = h22(b(k))
6.4.6.3.2 Фазовые параметры задействованы
В случае, если IPD и OPD задействованы (enable_ipdopd = = 1), применяется следующая процедура. Сначала значения IPD и OPD сглаживаются во времени согласно
В случае, когда число параметров
IPD/OPD для позиции параметра
ne-1 и/или
ne отличается от числа параметров
IPD/OPD для позиции параметра
ne+1, они отображаются в число параметров
IPD/OPD для позиции параметра
ne+1, используя
таблицу 45 и
таблицу 46.
Векторы h11(b), h12(b), h21(b) и h22(b) изменяются согласно:

.
Чтобы получить H11(k, ne+1), H12(k, ne+1), H21(k, ne+1) и H22(k, ne+1) используются следующие уравнения
H11(k, ne+1) = h11(b (k))
H12(k, ne+1) = h12(b (k))
H21(k, ne+1) = h21(b (k))
H22(k, ne+1) = h22(b (k)),
где
b(
k) определяется в
таблице 48 и
таблице 49. Для индексов, обозначенных
a* используются следующие уравнения:
H11(k, ne+1) = h11 * (b (k))
H12(k, ne+1) = h12 * (b (k))
H21(k, ne+1) = h21 * (b (k))
H22(k, ne+1) = h22 * (b (k)),
где hxx* представляет комплексно сопряженным с hxx.
Таблица 48
Отображение параметров от 20 полос до 71 поддиапазона
Индекс k поддиапазона | Канал QMF | Индекс параметра b(k) | Примечание |
0 | 0 | 1* | Sub QMF |
1 | 0 | 0* | |
2 | 0 | 0 |
3 | 0 | 1 |
4 | 0 | 2 |
5 | 0 | 3 |
6 | 1 | 4 |
7 | 1 | 5 |
8 | 2 | 6 |
9 | 2 | 7 |
10 | 3 | 8 | QMF (только) |
11 | 4 | 9 | |
12 | 5 | 10 |
13 | 6 | 11 |
14 | 7 | 12 |
15 | 8 | 13 |
16 - 17 | 9 - 10 | 14 |
18 - 20 | 11 - 13 | 15 |
21 - 24 | 14 - 17 | 16 |
25 - 29 | 18 - 22 | 17 |
30 - 41 | 23 - 34 | 18 |
42 - 70 | 35 - 63 | 19 |
Таблица 49
Отображение параметров из 34 полос в 91 поддиапазон
sub
Индекс k поддиапазона | Канал QMF | Индекс параметра b(k) | Примечание |
0 | 0 | 0 | Sub QMF |
1 | 0 | 1 | |
2 | 0 | 2 |
3 | 0 | 3 |
4 | 0 | 4 |
5 | 0 | 5 |
6 - 7 | 0 | 6 |
8 | 0 | 7 |
9 | 0 | 2* |
10 | 0 | 1* |
11 | 0 | 0* |
12 - 13 | 1 | 10 |
14 | 1 | 4 |
15 | 1 | 5 |
16 | 1 | 6 |
17 | 1 | 7 |
18 | 1 | 8 |
19 | 1 | 9 |
20 | 2 | 10 |
21 | 2 | 11 |
22 | 2 | 12 |
23 | 2 | 9 | |
24 | 3 | 14 |
25 | 3 | 11 |
26 | 3 | 12 |
27 | 3 | 13 |
28 | 4 | 14 |
29 | 4 | 15 |
30 | 4 | 16 |
31 | 4 | 13 |
32 | 5 | 16 | QMF (только) |
33 | 6 | 17 | |
34 | 7 | 18 |
35 | 8 | 19 |
36 | 9 | 20 |
37 | 10 | 21 |
38 - 39 | 11 - 12 | 22 |
40 - 41 | 13 - 14 | 23 |
42 - 43 | 15 - 16 | 24 |
44 - 45 | 17 - 18 | 25 |
46 - 47 | 19 - 20 | 26 |
48 - 50 | 21 - 23 | 27 |
51 - 53 | 24 - 26 | 28 |
54 - 56 | 27 - 29 | 29 |
57 - 59 | 30 - 32 | 30 |
60 - 63 | 33 - 36 | 31 |
64 - 67 | 37 - 40 | 32 |
68 - 90 | 41 - 63 | 33 |
Промежуточные значения для H11(k, n), H12(k, n), H21(k, n) и H22(k, n) в позициях n = ne + 1... ne+1 получаются посредством линейной интерполяции, соответствующей

.
Особые случаи:
а) для первой области фрейма стерео с n = 0... n0 - 1 применяется следующее:

,
где Hxx(k, n-1) представляет коэффициенты Hxx(k, nnum_evn-1), полученные из предыдущего фрейма стерео.
Для первого фрейма стерео Hxx(k, n-1) инициализируется в нуль,
б) для последней области фрейма стерео с n = (k, nnum_evn-1)... numQMFSlots-1 применяется следующее:
H11(k, n) = H11(k, nnum_evn-1)
H12(k, n) = H12(k, nnum_evn-1)
H21(k, n) = H21(k, nnum_evn-1)
H22(k, n) = H22(k, nnum_evn-1).
6.4.6.5 Процедура для неполных наборов параметров
В случае, если никакие параметры не были переданы в текущем фрейме ни для
IDD,
ICC, ни для
IPD/OPD или их комбинации, значения параметров для текущего фрейма получаются согласно переменной
num_
env, как дается в
таблицах 50,
51 и
52.
Таблица 50
Источник параметров для
IID в случае
отсутствия передачи параметров
| enable_iid |
0 | 1 |
num_env =0 | Набор параметров IID, чтобы присвоить значение по умолчанию | Сохраненные параметры IID |
num_env > 0 | Набор параметров IID, чтобы присвоить значение по умолчанию | Не определено |
Таблица 51
Источник параметров для
ICC в случае отсутствия передачи
параметров
| enable_icc |
0 | 1 |
num_env =0 | Набор параметров ICC, чтобы присвоить значение по умолчанию | Сохраненные параметры ICC |
num_env > 0 | Набор параметров ICC, чтобы присвоить значение по умолчанию | Не определено |
Таблица 52
Источник параметров для
IPD/OPD в случае отсутствия передачи
параметров
| enable_ipdopd |
0 | 1 |
num_env =0 | Набор параметров IPD/OPD, чтобы присвоить значение по умолчанию | Сохраненные параметры IPD/OPD |
num_env > 0 | Набор параметров IPD/OPD, чтобы присвоить значение по умолчанию | Не определено |
В случае, если параметры должны быть установлены в значение по умолчанию, параметры в позициях, определенных ne, устанавливаются в их значения по умолчанию (index=0).
В случае, если параметры должны быть сохранены, различают две ситуации. Если enable_ipdopd = = %1, четыре вектора H11(k, n), H12(k, n), H21(k, n) и H22(k, n) для всего n = [0, ..., numQMFSlots-1] копируются из тех же самых четырех векторов в позиции n=numQMFSlots-1 в предыдущем элементе ps_data (). Если enable_ipdopd = = %0, четыре вектора H11(k, n), H12(k, n), H21(k, n) и H22(k, n) для всего n = [0, ..., numQMFSlots-1] устанавливаются в четыре вектора h11(b(k)), h12(b(k)), h21(b(k)) и h22(b(k)), соответственно, где n=numQMFSlots-1 в предыдущем элементе ps_data ().
6.4.7 Гибридный блок фильтров синтеза QMF
Гибридные сигналы поддиапазона обработки стерео lk(n) и rk(n) подаются в гибридные блоки фильтров синтеза, которые реализуются как сумматоры выборок sub QMF. Два блока фильтров синтеза идентичны блоку фильтров синтеза 64 комплексных QMF. Вводом в блок фильтров являются слоты 64 выборок QMF. Для каждого слота блок фильтров выводит один блок из 64 выборок одного канала реконструируемого сигнала стерео.
6.5 Ситуации запуска/остановки для декодирования
Декодирование выборки должно запускаться и заканчиваться определенным образом. Этот подпункт объясняет, как поступать с запуском и остановкой процесса декодирования.
6.5.1 Запуск декодирования
Запуск декодирования происходит для первого фрейма выборки или во время произвольного доступа в выборке.
Для синусоид предыдущий (несуществующий) подфрейм должен быть заполнен сигналом нуля. Тогда методом перекрытия-добавления генерируется естественное постепенное появление синусоидальных компонентов первого подфрейма.
Для шума предыдущий (несуществующий) подфрейм должен быть заполнен сигналом нуля. Метод перекрытия-добавления тогда генерирует естественное постепенное появление шумового компонента первого подфрейма.
Совместимый декодер, который получает данные PS, должен вывести моносигнал в два выходных канала, пока не будет принят первый элемент ps_data () с enable_ps_header = = 1, в котором для всех задействованных параметров используется дифференциальное кодирование частоты и num_env> 0, гарантируя, что данные PS могут правильно декодироваться.
6.5.2 Прекращение декодирования
Прекращение декодирования происходит для последнего фрейма выборки, или во время произвольного доступа в выборке (прекращение процесса декодирования "вручную" (например, остановка, пропуск, пауза)).
Для шага переходного процесса не требуются никакие специальные предосторожности. Для переходного процесса Мейкслера возможно, что хвостовая часть не закончилось в конце выборки. Рекомендуется прекратить генерацию вывода для переходного процесса Мейкслера в конце выборки.
Для синусоид следующий (несуществующий) подфрейм должен быть заполнен сигналом нуля. Метод перекрытия-добавления тогда генерирует естественное постепенное исчезновение для синусоидальных компонентов последнего подфрейма.
Для шума следующий (несуществующий) подфрейм должен быть заполнен сигналом нуля. Метод перекрытия-добавления используется когда генерирует естественное постепенное исчезновение для шумового компонента последнего подфрейма.
(обязательное)
КОМБИНАЦИЯ ИНСТРУМЕНТА
SBR С ПАРАМЕТРИЧЕСКИМ
ИНСТРУМЕНТОМ СТЕРЕО
А.1 Краткий обзор
Параметрический инструмент кодирования стерео (инструмент PS) может использоваться в комбинации с инструментом SBR. В этом случае аудиосигнал с первого канала передается в AAC+SBR (то есть, HE-AAC), и инструмент PS используется, чтобы восстановить сигнал второго стерео канала от этого монофонического сигнала. Элемент потока битов ps_data () передает информацию, необходимую инструменту PS, и переносится в sbr_extension () контейнер потока битов SBR.
Использование этого параметрического расширения стерео HE AAC сообщается или неявно присутствием параметрических данных стерео в потоке битов, или явно сигнализируя соответствующий AudioObjectType в audioSpecificConfig. Следовательно, неявная сигнализация требует, если sbr_extension () с bs_extension_id = = EXTENSION_ID_PS находится в части SBR потока битов, декодер, поддерживающий комбинацию SBR и PS, должен управлять инструментом PS, чтобы генерировать выходной сигнал стерео. Если никакой элемент ps_data () не доступен в части SBR монофонического потока битов HE-AAC, нормальный монофонический сигнал сгенерирован инструментом SBR и отображен на выходной сигнал стерео, в котором левый и правый канал содержат тот же самый монофонический сигнал.
А.2 Синтаксис потока битов и семантика
Элемент потока битов ps_data () переносят в sbr_extension () контейнер, обеспеченный потоком битов SBR.
Таблица А.1
Синтаксис sbr_extension ()
Синтаксис | Количество битов | Мнемосхема |
sbr_extension (bs_extension_id, num_bits_left) { switch (bs_extension_id) { case EXTENSION_ID_PS: | | |
num_bits_left - = ps_data (); break; default: | | Примечание |
bs_fill_bits; num_bits_left = 0; break; } } | num_bits_left | bslbf |
Примечание: ps_data () возвращает число чтения битов. |
А.3 Процесс декодирования
Семантика и декодирующий процесс для инструмента
PS определяется в
5.2 и
6.4. Когда инструмент
PS объединяется с
SBR, фрейм стерео идентичен фрейму
SBR и состоит из 32 сложных выборок на полосу
QMF для 1024 структурированной
AAC (30 выборок для 960 структурированной).
Чтобы позволить эффективную реализацию инструмента PS, частичный сброс decorrelator параметров состояния выполняется для каждого фрейма стерео для всех поддиапазонов QMF выше самого высокого поддиапазона QMF, сгенерированного инструментом SBR
dk(n)=0
sk(n)=0,
где n < ne, kmax <= k < NR_BANDS, ne является первой выборкой в текущем фрейме стерео
и
Если никакой ps_data () элемент не присутствовал в предыдущем фрейме, то полный сброс decorrelator параметров состояния выполняется, вызывая состояния:
dk(n)=0
sk(n)=0,
где n < ne, 0 <= k < NR_BANDS, и ne является первой выборкой в текущем фрейме стерео.
Инструмент PS использует оцененное комплексу представление QMF, и поэтому не может использоваться в комбинации с низкой версией питания инструмента SBR. Если DRC используется в комбинации с SBR, то DRC применяется в домене QMF к выводу инструмента PS до синтеза QMF filterbanks. Тот же самый factor(k, l) применяется и к левому и к правому звуковому каналу.
А.4 Базовая версия параметрического инструмента кодирования стерео
Чтобы облегчить реализацию инструмента декодера PS на платформах с очень ограниченными вычислительными ресурсами, используется базовая версия инструмента PS. Декодер PS, реализовывая эту базовую версию, всегда использует гибридную структуру фильтра для 20 полос стерео и не реализует синтез IPD/OPD и смешивающийся режим Rb. Это приводит к сокращению вычислительной сложности приблизительно на 25% по сравнению с неограниченным инструментом PS. Базовая версия инструмента PS поддерживает полный синтаксис потока битов для ps_data (). Однако, данные IPD/OPD игнорируются и сбрасываются к IPD=OPD=0 до синтеза стерео. Если 34 конфигурации полосы стерео используются для IID или параметров ICC в потоке битов, декодируемые параметры отображаются на 20 полос стерео. Базовый декодер всегда использует смешивающий Pa режим независимо от значения icc_mode.
(обязательное)
НОРМАТИВНЫЕ ТАБЛИЦЫ
Б.1 Таблицы Хаффмана для SSC
Функция ssc_huff_dec () используется как:
date = ssc_huff_dec (t_huff, codeword),
где t_huff является выбранной таблицей Хаффмана, и codeword является словом, считанным из потока битов.
Таблица Б.1
huff_sgrid
Индекс | huff_sgrid |
0 | 100001 |
1 | 11101 |
2 | 11110 |
3 | 1100 |
4 | 1101 |
5 | 1010 |
6 | 0111 |
7 | 001 |
8 | 1011 |
9 | 0110 |
10 | 1001 |
11 | 0101 |
12 | 0000 |
13 | 0001 |
14 | 11100 |
15 | 01001 |
16 | 111111 |
17 | 111110 |
18 | 100000 |
19 | 010001 |
20 | 010000 |
21 | 10001 |
Таблица Б.2
huff_sampba
Индекс | huff_sampba |
0 | 110010010 |
8 | 0100111 |
16 | 1100101 |
24 | 110011 |
32 | 01110 |
40 | 01111 |
48 | 0101 |
56 | 1001 |
64 | 1101 |
72 | 001 |
80 | 000 |
88 | 1111 |
96 | 1110 |
104 | 1011 |
112 | 1010 |
120 | 1000 |
128 | 0110 |
136 | 11000 |
144 | 01000 |
152 | 010010 |
160 | 0100110 |
168 | 11001000 |
176 | 1100100111 |
184 | 11001001101 |
192 | 110010011001 |
200 | 110010011000100 |
208 | 110010011000101 |
216 | 110010011000110 |
224 | 110010011000111 |
232 | 11001001100000 |
240 | 11001001100001 |
Таблица Б.3
huff_sampbr
Индекс | huff_sampbr |
-240 | 111111110110001000010 |
-232 | 111111110110001000011 |
-224 | 111111110110001000100 |
-216 | 111111110110001000101 |
-208 | 111111110110001000110 |
-200 | 111111110110001000111 |
-192 | 111111110110001001000 |
-184 | 111111110110001001001 |
-176 | 111111110110001001010 |
-168 | 111111110110001001011 |
-160 | 111111110110001001100 |
-152 | 111111110110001001101 |
-144 | 111111110110001001110 |
-136 | 111111110110001001111 |
-128 | 111111110110001010000 |
-120 | 111111110110100 |
-112 | 11111111011001 |
-104 | 1111111111100 |
-96 | 111111110111 |
-88 | 11111111110 |
-80 | 1111111100 |
-72 | 111101101 |
-64 | 11110111 |
-56 | 1111010 |
-48 | 111100 |
-40 | 111110 |
-32 | 11101 |
-24 | 0111 |
-16 | 010 |
-8 | 00 |
0 | 10 |
8 | 110 |
16 | 0110 |
24 | 11100 |
32 | 1111110 |
40 | 11111110 |
48 | 111101100 |
56 | 1111111110 |
64 | 11111111010 |
72 | 111111111111 |
80 | 1111111111101 |
88 | 11111111011011 |
96 | 1111111101100011 |
104 | 111111110110101 |
112 | 111111110110000 |
120 | 111111110110001010001 |
128 | 111111110110001010010 |
136 | 111111110110001010011 |
144 | 111111110110001010100 |
152 | 111111110110001010101 |
160 | 111111110110001010110 |
168 | 111111110110001010111 |
176 | 111111110110001011000 |
184 | 111111110110001011001 |
192 | 111111110110001011010 |
200 | 111111110110001011011 |
208 | 111111110110001011100 |
216 | 111111110110001011101 |
224 | 111111110110001011110 |
232 | 111111110110001011111 |
240 | 11111111011000100000 |
Таблица Б.4
huff_sampca
Индекс | huff_sampca |
0 | 01101101011 |
8 | 01101100 |
16 | 0011000 |
24 | 0110111 |
32 | 011010 |
40 | 00111 |
48 | 10011 |
56 | 0100 |
64 | 0111 |
72 | 1010 |
80 | 1101 |
88 | 000 |
96 | 1111 |
104 | 1110 |
112 | 1100 |
120 | 1011 |
128 | 1000 |
136 | 0101 |
144 | 0010 |
152 | 10010 |
160 | 01100 |
168 | 001101 |
176 | 0011001 |
184 | 011011011 |
192 | 0110110100 |
200 | 011011010101 |
208 | 0110110101001 |
216 | 01101101010001 |
224 | 0110110101000010 |
232 | 0110110101000011 |
240 | 011011010100000 |
Таблица Б.5
huff_sampcr [0]
Индекс | huff_sampcr [0] |
-26 | 111001010111000 |
-25 | 01101101110 |
-24 | 1110010101111 |
-23 | 000111001011 |
-22 | 011010111110 |
-21 | 111001010100 |
-20 | 00011100100 |
-19 | 01101011110 |
-18 | 11100101100 |
-17 | 0001110110 |
-16 | 0110101110 |
-15 | 1110010100 |
-14 | 000111000 |
-13 | 011010110 |
-12 | 00011011 |
-11 | 01101010 |
-10 | 11100100 |
-9 | 0001111 |
-8 | 0110111 |
-7 | 001000 |
-6 | 111000 |
-5 | 00101 |
-4 | 11101 |
-3 | 0011 |
-2 | 1111 |
-1 | 110 |
0 | 10 |
1 | 010 |
2 | 0111 |
3 | 0000 |
4 | 01100 |
5 | 00010 |
6 | 001001 |
7 | 1110011 |
8 | 0110100 |
9 | 0001100 |
10 | 01101100 |
11 | 00011010 |
12 | 011011010 |
13 | 000111010 |
14 | 1110010111 |
15 | 0110110110 |
16 | 0001110011 |
17 | 11100101101 |
18 | 01101101111 |
19 | 00011101110 |
20 | 111001010110 |
21 | 111001010101 |
22 | 011010111111 |
23 | 000111001010 |
24 | 11100101011101 |
25 | 00011101111 |
26 | 111001010111001 |
Таблица Б.6
huff_sampcr [1]
Индекс | huff_sampcr [1] |
-26 | 100111001011 |
-24 | 11011100010 |
-22 | 110111101110 |
-20 | 11011110110 |
-18 | 1101110000 |
-16 | 100111000 |
-14 | 110111100 |
-12 | 11011101 |
-10 | 1001111 |
-8 | 110110 |
-6 | 11010 |
-4 | 1100 |
-2 | 111 |
0 | 0 |
2 | 101 |
4 | 1000 |
6 | 10010 |
8 | 100110 |
10 | 11011111 |
12 | 10011101 |
14 | 110111001 |
16 | 1101111010 |
18 | 1001110011 |
20 | 11011100011 |
22 | 10011100100 |
24 | 110111101111 |
26 | 100111001010 |
Таблица Б.7
huff_sampcr [2]
Индекс | huff_sampcr [2] |
-28 | 01011000101 |
-24 | 010110000 |
-20 | 010110011 |
-16 | 01011011 |
-12 | 0101111 |
-8 | 0100 |
-4 | 00 |
0 | 1 |
4 | 011 |
8 | 01010 |
12 | 0101110 |
16 | 01011010 |
20 | 010110010 |
24 | 0101100011 |
28 | 01011000100 |
Таблица Б.8
huff_sampcr [3]
Индекс | huff_sampcr [3] |
-32 | 00010101 |
-24 | 000100 |
-16 | 0000 |
-8 | 01 |
0 | 1 |
8 | 001 |
16 | 00011 |
24 | 0001011 |
32 | 00010100 |
Таблица Б.9
huff_sfreqba
Индекс | huff_sfreqba |
0 | 101111110100101100100 |
8 | 101111110100101100101 |
16 | 101111110100101100110 |
24 | 101111110100101100111 |
32 | 101111110100101101000 |
40 | 101111110100101101001 |
48 | 101111110100101101010 |
56 | 101111110100101101011 |
64 | 101111110100101101100 |
72 | 101111110100101101101 |
80 | 101111110100101101110 |
88 | 101111110100101101111 |
96 | 101111110100101110000 |
104 | 101111110100101110001 |
112 | 101111110100101110010 |
120 | 101111110100101110011 |
128 | 101111110100101110100 |
136 | 10111111010011 |
144 | 101111110100101110101 |
152 | 101111110101 |
160 | 10111111011 |
168 | 100010000 |
176 | 001010010 |
184 | 01000010 |
192 | 101111111 |
200 | 111001101 |
208 | 00010001 |
216 | 111001110 |
224 | 111100001 |
232 | 101010101 |
240 | 010000011 |
248 | 1111101001 |
256 | 111100010 |
264 | 111001111 |
272 | 100111011 |
280 | 010111011 |
288 | 1111101010 |
296 | 100010001 |
304 | 0111000011 |
312 | 001010011 |
320 | 1111101011 |
328 | 000100100 |
336 | 000100101 |
344 | 1111101100 |
352 | 000100110 |
360 | 110000000 |
368 | 00110110 |
376 | 010000110 |
384 | 011101010 |
392 | 011101011 |
400 | 00010100 |
408 | 010111100 |
416 | 111100011 |
424 | 110000001 |
432 | 010111101 |
440 | 011101100 |
448 | 011101101 |
456 | 1101001100 |
464 | 1010101001 |
472 | 100111100 |
480 | 00011111 |
488 | 010111110 |
496 | 1111101101 |
504 | 111010000 |
512 | 110000010 |
520 | 00000100 |
528 | 00100000 |
536 | 111010001 |
544 | 111100100 |
552 | 111010010 |
560 | 110000011 |
568 | 01000100 |
576 | 10010101 |
584 | 01010001 |
592 | 10101001 |
600 | 101010110 |
608 | 111100101 |
616 | 011101110 |
624 | 00000101 |
632 | 10001001 |
640 | 01100000 |
648 | 01100001 |
656 | 101010111 |
664 | 100111101 |
672 | 111010011 |
680 | 101011000 |
688 | 10101101 |
696 | 10000010 |
704 | 110100111 |
712 | 00000110 |
720 | 100010100 |
728 | 001010100 |
736 | 110101000 |
744 | 010111111 |
752 | 01010010 |
760 | 011000100 |
768 | 011101111 |
776 | 111100110 |
784 | 110101001 |
792 | 111110111 |
800 | 110000100 |
808 | 111010100 |
816 | 011000101 |
824 | 1010110010 |
832 | 111100111 |
840 | 01110001 |
848 | 11001110 |
856 | 01110010 |
864 | 011110000 |
872 | 110111001 |
880 | 110101010 |
888 | 101011100 |
896 | 00101011 |
904 | 01000101 |
912 | 11001111 |
920 | 01100011 |
928 | 110111100 |
936 | 011001000 |
944 | 011001001 |
952 | 011001010 |
960 | 110111101 |
968 | 101011101 |
976 | 000100111 |
984 | 00110111 |
992 | 01100110 |
1000 | 10000011 |
1008 | 00111000 |
1016 | 011110001 |
1024 | 110000101 |
1032 | 101011110 |
1040 | 1111110000 |
1048 | 100111110 |
1056 | 10111000 |
1064 | 10111001 |
1072 | 11010110 |
1080 | 11011101 |
1088 | 111010101 |
1096 | 100111111 |
1104 | 101000000 |
1112 | 101011111 |
1120 | 110000110 |
1128 | 110111110 |
1136 | 00000111 |
1144 | 101000001 |
1152 | 010000111 |
1160 | 101100000 |
1168 | 001010101 |
1176 | 110111111 |
1184 | 00111001 |
1192 | 111111001 |
1200 | 110000111 |
1208 | 101000010 |
1216 | 111000000 |
1224 | 101100001 |
1232 | 101100010 |
1240 | 111000001 |
1248 | 111000010 |
1256 | 01010011 |
1264 | 00111010 |
1272 | 111000011 |
1280 | 1101001101 |
1288 | 111101000 |
1296 | 110101011 |
1304 | 111000100 |
1312 | 01010100 |
1320 | 111111010 |
1328 | 11010000 |
1336 | 01100111 |
1344 | 01101000 |
1352 | 101000011 |
1360 | 00001000 |
1368 | 11000100 |
1376 | 10001011 |
1384 | 011110010 |
1392 | 111101001 |
1400 | 10001100 |
1408 | 111101010 |
1416 | 01010101 |
1424 | 111000101 |
1432 | 00001001 |
1440 | 111010110 |
1448 | 111111011 |
1456 | 10100010 |
1464 | 11111000 |
1472 | 01101001 |
1480 | 01010110 |
1488 | 01101010 |
1496 | 10001101 |
1504 | 01101011 |
1512 | 110101110 |
1520 | 10010110 |
1528 | 10010111 |
1536 | 01010111 |
1544 | 01000110 |
1552 | 111000110 |
1560 | 01101100 |
1568 | 00001010 |
1576 | 01111010 |
1584 | 00101100 |
1592 | 111101011 |
1600 | 00111011 |
1608 | 01110011 |
1616 | 01111011 |
1624 | 11010001 |
1632 | 111111100 |
1640 | 100010101 |
1648 | 01011000 |
1656 | 10011000 |
1664 | 100011100 |
1672 | 10100011 |
1680 | 110001010 |
1688 | 0001110 |
1696 | 00010101 |
1704 | 10110010 |
1712 | 111010111 |
1720 | 01011001 |
1728 | 00100001 |
1736 | 00001011 |
1744 | 00100010 |
1752 | 01000111 |
1760 | 00001100 |
1768 | 111011000 |
1776 | 11000110 |
1784 | 11010010 |
1792 | 00010110 |
1800 | 01001000 |
1808 | 101001000 |
1816 | 110001011 |
1824 | 01001001 |
1832 | 10111010 |
1840 | 01111100 |
1848 | 000101110 |
1856 | 00001101 |
1864 | 10000100 |
1872 | 01011010 |
1880 | 00101101 |
1888 | 01001010 |
1896 | 111011001 |
1904 | 111111101 |
1912 | 10001111 |
1920 | 10011001 |
1928 | 10100101 |
1936 | 101100011 |
1944 | 110001110 |
1952 | 111111110 |
1960 | 10000101 |
1968 | 00101110 |
1976 | 10000110 |
1984 | 00100011 |
1992 | 11100100 |
2000 | 10011010 |
2008 | 00101111 |
2016 | 111101100 |
2024 | 01111101 |
2032 | 01110100 |
2040 | 111011010 |
2048 | 10111011 |
2056 | 10011011 |
2064 | 10010000 |
2072 | 00110000 |
2080 | 10111100 |
2088 | 01011011 |
2096 | 111011011 |
2104 | 01001011 |
2112 | 10111101 |
2120 | 10011100 |
2128 | 00110001 |
2136 | 110001111 |
2144 | 01111110 |
2152 | 10010001 |
2160 | 10110011 |
2168 | 111011100 |
2176 | 00001110 |
2184 | 10010010 |
2192 | 10111110 |
2200 | 10100110 |
2208 | 00110010 |
2216 | 00001111 |
2224 | 00011000 |
2232 | 110101111 |
2240 | 110110000 |
2248 | 111111111 |
2256 | 11111001 |
2264 | 00111100 |
2272 | 00010000 |
2280 | 10100111 |
2288 | 01101101 |
2296 | 01011100 |
2304 | 00000000 |
2312 | 00111101 |
2320 | 01001100 |
2328 | 00011001 |
2336 | 00100100 |
2344 | 110110001 |
2352 | 00111110 |
2360 | 00100101 |
2368 | 11001000 |
2376 | 00100110 |
2384 | 00000001 |
2392 | 100011101 |
2400 | 110010010 |
2408 | 00110011 |
2416 | 10000111 |
2424 | 011001011 |
2432 | 01111111 |
2440 | 00000010 |
2448 | 101101000 |
2456 | 01001101 |
2464 | 111101101 |
2472 | 00100111 |
2480 | 101101001 |
2488 | 110010011 |
2496 | 111101110 |
2504 | 111000111 |
2512 | 101101010 |
2520 | 00111111 |
2528 | 100100110 |
2536 | 111011101 |
2544 | 010011100 |
2552 | 110110010 |
2560 | 101101011 |
2568 | 101001001 |
2576 | 01000000 |
2584 | 101101100 |
2592 | 011110011 |
2600 | 100000000 |
2608 | 110010100 |
2616 | 00011010 |
2624 | 01001111 |
2632 | 100100111 |
2640 | 111001010 |
2648 | 100000001 |
2656 | 100000010 |
2664 | 101101101 |
2672 | 110010101 |
2680 | 000101111 |
2688 | 001101000 |
2696 | 111001011 |
2704 | 1110011001 |
2712 | 1101100110 |
2720 | 011011100 |
2728 | 000110110 |
2736 | 111011110 |
2744 | 110010110 |
2752 | 111101111 |
2760 | 010011101 |
2768 | 0001111011 |
2776 | 110010111 |
2784 | 010100000 |
2792 | 101101110 |
2800 | 101010000 |
2808 | 1110111110 |
2816 | 101010001 |
2824 | 100000011 |
2832 | 1110111111 |
2840 | 010100001 |
2848 | 100101000 |
2856 | 1111000000 |
2864 | 110011000 |
2872 | 110110100 |
2880 | 1010110011 |
2888 | 1101100111 |
2896 | 1111110001 |
2904 | 001101001 |
2912 | 1101101010 |
2920 | 11011010110 |
2928 | 110011001 |
2936 | 00101000 |
2944 | 11011010111 |
2952 | 011011101 |
2960 | 001101010 |
2968 | 1001010010 |
2976 | 1101101100 |
2984 | 011011110 |
2992 | 00110101100 |
3000 | 000110111 |
3008 | 101101111 |
3016 | 1001010011 |
3024 | 0101110101 |
3032 | 110011010 |
3040 | 1111000001 |
3048 | 0000001100 |
3056 | 1111101000 |
3064 | 1001110100 |
3072 | 01110000101 |
3080 | 0110111110 |
3088 | 110011011 |
3096 | 00110101101 |
3104 | 11011011010 |
3112 | 1101101110 |
3120 | 1011111100 |
3128 | 0000001101 |
3136 | 0110111111 |
3144 | 000111100 |
3152 | 10011101010 |
3160 | 11011011011 |
3168 | 11011011110 |
3176 | 0011010111 |
3184 | 0000001110 |
3192 | 0111000000 |
3200 | 11011011111 |
3208 | 01000001000 |
3216 | 101111110100101110110 |
3224 | 110111000000 |
3232 | 1101110001 |
3240 | 10011101011 |
3248 | 110111000001 |
3256 | 1110011000 |
3264 | 0000001111 |
3272 | 0111000001 |
3280 | 101111110100101110111 |
3288 | 110111000010 |
3296 | 010000010010 |
3304 | 01000001010 |
3312 | 010000010011 |
3320 | 10101010000 |
3328 | 0100000101100 |
3336 | 0001111010 |
3344 | 010000010111 |
3352 | 101111110100101111000 |
3360 | 0100000101101 |
3368 | 110111000011 |
3376 | 10101010001 |
3384 | 01011101000 |
3392 | 010111010010 |
3400 | 010111010011 |
3408 | 1011111101000 |
3416 | 101111110100101111001 |
3424 | 011100001000 |
3432 | 101111110100101111010 |
3440 | 101111110100101111011 |
3448 | 101111110100101111100 |
3456 | 101111110100101111101 |
3464 | 101111110100101111110 |
3472 | 101111110100101111111 |
3480 | 011100001001 |
3488 | 10111111010010000000 |
3496 | 10111111010010000001 |
3504 | 10111111010010000010 |
3512 | 10111111010010000011 |
3520 | 10111111010010000100 |
3528 | 10111111010010000101 |
3536 | 10111111010010000110 |
3544 | 10111111010010000111 |
3552 | 10111111010010001000 |
3560 | 10111111010010001001 |
3568 | 10111111010010001010 |
3576 | 10111111010010001011 |
3584 | 10111111010010001100 |
3592 | 10111111010010001101 |
3600 | 10111111010010001110 |
3608 | 10111111010010001111 |
3616 | 10111111010010010000 |
3624 | 10111111010010010001 |
3632 | 10111111010010010010 |
3640 | 10111111010010010011 |
3648 | 10111111010010010100 |
3656 | 10111111010010010101 |
3664 | 10111111010010010110 |
3672 | 10111111010010010111 |
3680 | 10111111010010011000 |
3688 | 10111111010010011001 |
3696 | 10111111010010011010 |
3704 | 10111111010010011011 |
3712 | 10111111010010011100 |
3720 | 10111111010010011101 |
3728 | 10111111010010011110 |
3736 | 10111111010010011111 |
3744 | 10111111010010100000 |
3752 | 10111111010010100001 |
3760 | 10111111010010100010 |
3768 | 10111111010010100011 |
3776 | 10111111010010100100 |
3784 | 10111111010010100101 |
3792 | 10111111010010100110 |
3800 | 10111111010010100111 |
3808 | 10111111010010101000 |
3816 | 10111111010010101001 |
3824 | 10111111010010101010 |
3832 | 10111111010010101011 |
3840 | 10111111010010101100 |
3848 | 10111111010010101101 |
3856 | 10111111010010101110 |
3864 | 10111111010010101111 |
3872 | 10111111010010110000 |
3880 | 10111111010010110001 |
Таблица Б.10
huff_sfreqbr
Индекс | huff_sfreqbr |
0 | 0000001011 |
8 | 101111 |
16 | 10101 |
24 | 11011 |
32 | 11001 |
40 | 10100 |
48 | 10001 |
56 | 01100 |
64 | 01101 |
72 | 01011 |
80 | 00111 |
88 | 111101 |
96 | 111110 |
104 | 111010 |
112 | 111001 |
120 | 100111 |
128 | 101100 |
136 | 011111 |
144 | 100100 |
152 | 010101 |
160 | 010000 |
168 | 001100 |
176 | 001001 |
184 | 000010 |
192 | 000001 |
200 | 000111 |
208 | 1111110 |
216 | 1111000 |
224 | 1100011 |
232 | 1110111 |
240 | 1101000 |
248 | 1001100 |
256 | 1011010 |
264 | 1100001 |
272 | 1011100 |
280 | 1000000 |
288 | 1000010 |
296 | 1001101 |
304 | 0111101 |
312 | 1001010 |
320 | 0100010 |
328 | 0111010 |
336 | 0100011 |
344 | 0001011 |
352 | 0100101 |
360 | 0100110 |
368 | 0001100 |
376 | 0010100 |
384 | 0011010 |
392 | 0010000 |
400 | 0011011 |
408 | 0010101 |
416 | 11111110 |
424 | 0001000 |
432 | 11101101 |
440 | 11100000 |
448 | 11010101 |
456 | 11100010 |
464 | 11010110 |
472 | 11000001 |
480 | 11101100 |
488 | 10110110 |
496 | 10111011 |
504 | 10110111 |
512 | 01001001 |
520 | 00010011 |
528 | 11010010 |
536 | 01010011 |
544 | 10000110 |
552 | 01110110 |
560 | 00101110 |
568 | 01001110 |
576 | 01010000 |
584 | 01001111 |
592 | 00101101 |
600 | 00000011 |
608 | 00000001 |
616 | 111100111 |
624 | 111100110 |
632 | 110100110 |
640 | 111100100 |
648 | 00001111 |
656 | 00101111 |
664 | 111111110 |
672 | 101110101 |
680 | 110101110 |
688 | 100101100 |
696 | 00010100 |
704 | 110101111 |
712 | 111000011 |
720 | 011100011 |
728 | 110100111 |
736 | 100000100 |
744 | 100000101 |
752 | 011101111 |
760 | 011100001 |
768 | 100001110 |
776 | 101110100 |
784 | 000110110 |
792 | 011100100 |
800 | 000100101 |
808 | 001011001 |
816 | 1111111110 |
824 | 1111001011 |
832 | 100101101 |
840 | 010010001 |
848 | 001000101 |
856 | 010100010 |
864 | 1100000001 |
872 | 011110010 |
880 | 1001011101 |
888 | 000110111 |
896 | 000101010 |
904 | 1110001100 |
912 | 000000100 |
920 | 000011000 |
928 | 1101010011 |
936 | 1110000100 |
944 | 000100100 |
952 | 011100010 |
960 | 1110001101 |
968 | 0111100000 |
976 | 000101011 |
984 | 0111100001 |
992 | 1101010000 |
1000 | 0111000001 |
1008 | 1101010001 |
1016 | 0111001010 |
1024 | 0111001011 |
1032 | 1000011111 |
1040 | 1100000010 |
1048 | 0010001001 |
1056 | 1101010010 |
1064 | 1100000000 |
1072 | 0111001110 |
1080 | 1110001111 |
1088 | 11111111110 |
1096 | 0000111011 |
1104 | 0111100010 |
1112 | 0111100011 |
1120 | 0001101000 |
1128 | 0111001100 |
1136 | 0111100111 |
1144 | 1001011110 |
1152 | 0010001100 |
1160 | 110000001100 |
1168 | 0111001111 |
1176 | 11111111111 |
1184 | 0111011100 |
1192 | 0010001101 |
1200 | 1000001100 |
1208 | 0010001110 |
1216 | 0010110001 |
1224 | 0111011101 |
1232 | 10010111110 |
1240 | 0100100000 |
1248 | 01111001101 |
1256 | 0000000000 |
1264 | 1001011100 |
1272 | 0001101001 |
1280 | 0000000001 |
1288 | 0000000010 |
1296 | 01001000011 |
1304 | 11100001010 |
1312 | 110000001101 |
1320 | 0001101010 |
1328 | 0000000011 |
1336 | 0001101011 |
1344 | 01110011011 |
1352 | 10010111111 |
1360 | 01010001100 |
1368 | 11100011101 |
1376 | 01010001101 |
1384 | 110000001110 |
1392 | 1000011110111 |
1400 | 11100001011 |
1408 | 11000100000 |
1416 | 01111001100 |
1424 | 00100011110 |
1432 | 0010001000 |
1440 | 11000100001 |
1448 | 11000100010 |
1456 | 01010001110 |
1464 | 01010001111 |
1472 | 0000110010 |
1480 | 111000111001 |
1488 | 00100011111 |
1496 | 10000011010 |
1504 | 11000100011 |
1512 | 00000010101 |
1520 | 10000011011 |
1528 | 111100101000 |
1536 | 10000011100 |
1544 | 01010010000 |
1552 | 010010000101 |
1560 | 01010010001 |
1568 | 110000001111 |
1576 | 00001100110 |
1584 | 0100100001001 |
1592 | 0101001001000 |
1600 | 110001001000 |
1608 | 00001100111 |
1616 | 100000111010 |
1624 | 1100010010010 |
1632 | 110001001010 |
1640 | 00101100000 |
1648 | 010100100101 |
1656 | 00001101000 |
1664 | 100000111011 |
1672 | 01010010011 |
1680 | 10000011110 |
1688 | 00101100001 |
1696 | 00001101001 |
1704 | 110001001011 |
1712 | 11000100110 |
1720 | 110001001110 |
1728 | 110001001111 |
1736 | 111100101001 |
1744 | 100000111110 |
1752 | 00001101010 |
1760 | 1100010010011 |
1768 | 00001101011 |
1776 | 00001101100 |
1784 | 00001101101 |
1792 | 110001010000 |
1800 | 100000111111 |
1808 | 000000101001 |
1816 | 1100010100010 |
1824 | 100001111000 |
1832 | 0101001001001 |
1840 | 010100101000 |
1848 | 111100101010 |
1856 | 000011011100 |
1864 | 010100101001 |
1872 | 0101001010100 |
1880 | 100001111001 |
1888 | 1100010100011 |
1896 | 010100101011 |
1904 | 000011011101 |
1912 | 1100010100100 |
1920 | 010100101100 |
1928 | 0101001010101 |
1936 | 000011011110 |
1944 | 11000101001010 |
1952 | 000011011111 |
1960 | 000011100000 |
1968 | 010100101101 |
1976 | 111100101011 |
1984 | 110001010011 |
1992 | 010100101110 |
2000 | 000011100001 |
2008 | 000011100010 |
2016 | 010100101111 |
2024 | 000011100011 |
2032 | 1100010101000 |
2040 | 0111000000000 |
2048 | 0111000000001 |
2056 | 000011100100 |
2064 | 010010000100011 |
2072 | 000011100101 |
2080 | 011100000001 |
2088 | 100001111010 |
2096 | 0111000000100 |
2104 | 1100010101001 |
2112 | 000011100110 |
2120 | 1100010101010 |
2128 | 000011100111 |
2136 | 0111000000101 |
2144 | 000011101000 |
2152 | 110001010010110 |
2160 | 000011101001 |
2168 | 01001000010001011100010 |
2176 | 110001010010111 |
2184 | 000011101010 |
2192 | 11000101010110 |
2200 | 11000101010111 |
2208 | 0111000000110 |
2216 | 0111000000111 |
2224 | 1100010101100 |
2232 | 0111001101000 |
2240 | 1100010101101 |
2248 | 11000101011100 |
2256 | 0111001101001 |
2264 | 0111001101010 |
2272 | 000011101011 |
2280 | 11000101011101 |
2288 | 11000101011110 |
2296 | 01001000010001011100011 |
2304 | 11000101011111 |
2312 | 0111001101011 |
2320 | 110001011000000 |
2328 | 110001011000001 |
2336 | 1100010110001 |
2344 | 1100010110010 |
2352 | 110001011000010 |
2360 | 01001000010001011100100 |
2368 | 110001011000011 |
2376 | 11000101100110 |
2384 | 110001011001110 |
2392 | 01001000010001011100101 |
2400 | 01001000010001011100110 |
2408 | 11000101101000 |
2416 | 1000011110110 |
2424 | 11000101101001 |
2432 | 110001011001111 |
2440 | 11000101101010 |
2448 | 110001011010110 |
2456 | 1100010110110 |
2464 | 110001011010111 |
2472 | 110001011011100 |
2480 | 110001011011101 |
2488 | 110001011011110 |
2496 | 11000101110000 |
2504 | 01001000010001011100111 |
2512 | 110001011011111 |
2520 | 01001000010001011101000 |
2528 | 11000101110001 |
2536 | 01001000010001011101001 |
2544 | 01001000010001011101010 |
2552 | 110001011100100 |
2560 | 01001000010001011101011 |
2568 | 110001011100101 |
2576 | 01001000010001011101100 |
2584 | 01001000010001011101101 |
2592 | 110001011100110 |
2600 | 110001011100111 |
2608 | 1100010111010 |
2616 | 01001000010001011101110 |
2624 | 110001011101100 |
2632 | 01001000010001011101111 |
2640 | 110001011101101 |
2648 | 01001000010001011110000 |
2656 | 01001000010001011110001 |
2664 | 01001000010001011110010 |
2672 | 110001011101110 |
2680 | 110001011101111 |
2688 | 110001011110000 |
2696 | 110001011110001 |
2704 | 110001011110010 |
2712 | 11000101111010 |
2720 | 11000101111011 |
2728 | 110001011110011 |
2736 | 110001011111000 |
2744 | 01001000010001011110011 |
2752 | 01001000010001011110100 |
2760 | 01001000010001011110101 |
2768 | 11000101111101 |
2776 | 01001000010001011110110 |
2784 | 110001011111001 |
2792 | 01001000010001011110111 |
2800 | 01001000010001011111000 |
2808 | 110001011111100 |
2816 | 01001000010001011111001 |
2824 | 110001011111101 |
2832 | 01001000010001011111010 |
2840 | 11000101111111 |
2848 | 01001000010001011111011 |
2856 | 01001000010001011111100 |
2864 | 111000111000000 |
2872 | 01001000010001011111101 |
2880 | 111000111000001 |
2888 | 111000111000010 |
2896 | 01001000010001011111110 |
2904 | 01001000010001011111111 |
2912 | 0100100001000100000000 |
2920 | 11100011100010 |
2928 | 0100100001000100000001 |
2936 | 111000111000011 |
2944 | 111000111000110 |
2952 | 0100100001000100000010 |
2960 | 111000111000111 |
2968 | 00000010100000 |
2976 | 0100100001000100000011 |
2984 | 0100100001000100000100 |
2992 | 0100100001000100000101 |
3000 | 0100100001000100000110 |
3008 | 0100100001000100000111 |
3016 | 0100100001000100001000 |
3024 | 00000010100001 |
3032 | 0100100001000100001001 |
3040 | 0100100001000100001010 |
3048 | 0100100001000100001011 |
3056 | 0100100001000100001100 |
3064 | 0100100001000100001101 |
3072 | 00000010100010 |
3080 | 0100100001000100001110 |
3088 | 0100100001000100001111 |
3096 | 0100100001000100010000 |
3104 | 00000010100011 |
3112 | 0100100001000100010001 |
3120 | 01001000010000 |
3128 | 0100100001000100010010 |
3136 | 0100100001000100010011 |
3144 | 0100100001000100010100 |
3152 | 0100100001000100010101 |
3160 | 0100100001000100010110 |
3168 | 0100100001000100010111 |
3176 | 0100100001000100011000 |
3184 | 0100100001000100011001 |
3192 | 0100100001000100011010 |
3200 | 0100100001000100011011 |
3208 | 0100100001000100011100 |
3216 | 0100100001000100011101 |
3224 | 0100100001000100011110 |
3232 | 0100100001000100011111 |
3240 | 0100100001000100100000 |
3248 | 0100100001000100100001 |
3256 | 0100100001000100100010 |
3264 | 0100100001000100100011 |
3272 | 0100100001000100100100 |
3280 | 0100100001000100100101 |
3288 | 0100100001000100100110 |
3296 | 0100100001000100100111 |
3304 | 0100100001000100101000 |
3312 | 0100100001000100101001 |
3320 | 0100100001000100101010 |
3328 | 0100100001000100101011 |
3336 | 0100100001000100101100 |
3344 | 0100100001000100101101 |
3352 | 0100100001000100101110 |
3360 | 0100100001000100101111 |
3368 | 0100100001000100110000 |
3376 | 0100100001000100110001 |
3384 | 0100100001000100110010 |
3392 | 0100100001000100110011 |
3400 | 0100100001000100110100 |
3408 | 0100100001000100110101 |
3416 | 0100100001000100110110 |
3424 | 0100100001000100110111 |
3432 | 0100100001000100111000 |
3440 | 0100100001000100111001 |
3448 | 0100100001000100111010 |
3456 | 0100100001000100111011 |
3464 | 0100100001000100111100 |
3472 | 0100100001000100111101 |
3480 | 0100100001000100111110 |
3488 | 0100100001000100111111 |
3496 | 0100100001000101000000 |
3504 | 0100100001000101000001 |
3512 | 0100100001000101000010 |
3520 | 0100100001000101000011 |
3528 | 0100100001000101000100 |
3536 | 0100100001000101000101 |
3544 | 0100100001000101000110 |
3552 | 0100100001000101000111 |
3560 | 0100100001000101001000 |
3568 | 0100100001000101001001 |
3576 | 0100100001000101001010 |
3584 | 0100100001000101001011 |
3592 | 0100100001000101001100 |
3600 | 0100100001000101001101 |
3608 | 0100100001000101001110 |
3616 | 0100100001000101001111 |
3624 | 0100100001000101010000 |
3632 | 0100100001000101010001 |
3640 | 0100100001000101010010 |
3648 | 0100100001000101010011 |
3656 | 0100100001000101010100 |
3664 | 0100100001000101010101 |
3672 | 0100100001000101010110 |
3680 | 0100100001000101010111 |
3688 | 0100100001000101011000 |
3696 | 0100100001000101011001 |
3704 | 0100100001000101011010 |
3712 | 0100100001000101011011 |
3720 | 0100100001000101011100 |
3728 | 0100100001000101011101 |
3736 | 0100100001000101011110 |
3744 | 0100100001000101011111 |
3752 | 0100100001000101100000 |
3760 | 0100100001000101100001 |
3768 | 0100100001000101100010 |
3776 | 0100100001000101100011 |
3784 | 0100100001000101100100 |
3792 | 0100100001000101100101 |
3800 | 0100100001000101100110 |
3808 | 0100100001000101100111 |
3816 | 0100100001000101101000 |
3824 | 0100100001000101101001 |
3832 | 0100100001000101101010 |
3840 | 0100100001000101101011 |
3848 | 0100100001000101101100 |
3856 | 0100100001000101101101 |
3864 | 0100100001000101101110 |
3872 | 0100100001000101101111 |
3880 | 0100100001000101110000 |
Таблица Б.11
huff_sfreqc
Индекс | huff_sfreqc |
0 | 0010001101110011010010000 |
8 | 0010001101110011010010001 |
16 | 0010001101110011010010010 |
24 | 0010001101110011010010011 |
32 | 0010001101110011010010100 |
40 | 0010001101110011010010101 |
48 | 0010001101110011010010110 |
56 | 0010001101110011010010111 |
64 | 0010001101110011010011000 |
72 | 0010001101110011010011001 |
80 | 0010001101110011011 |
88 | 0010001101110011010011010 |
96 | 001000110111001100 |
104 | 0010001101110010 |
112 | 00100011011100111 |
120 | 100110101011010 |
128 | 100110101011000 |
136 | 100110101011001 |
144 | 0010001101100 |
152 | 0010001101111 |
160 | 011001001001 |
168 | 111101000111 |
176 | 11000000000 |
184 | 0111000010 |
192 | 0010011010 |
200 | 11100010010 |
208 | 0000101111 |
216 | 0000001100 |
224 | 10110110111 |
232 | 11101011000 |
240 | 11011100010 |
248 | 10111101000 |
256 | 10101001000 |
264 | 01101011101 |
272 | 10001011101 |
280 | 11001101101 |
288 | 0101100011 |
296 | 001011100 |
304 | 0000001000 |
312 | 11000000001 |
320 | 01100100101 |
328 | 10011010001 |
336 | 0001100010 |
344 | 001010000 |
352 | 110001001 |
360 | 01101011100 |
368 | 10101110100 |
376 | 0000000001 |
384 | 1000001101 |
392 | 0111000011 |
400 | 0011101010 |
408 | 000110010 |
416 | 1111011110 |
424 | 11101101001 |
432 | 01101000000 |
440 | 10001010001 |
448 | 111101000110 |
456 | 00100011010 |
464 | 11011100000 |
472 | 0000001101 |
480 | 1001001011 |
488 | 11100111000 |
496 | 01101000001 |
504 | 11101011001 |
512 | 1011001011 |
520 | 1101010011 |
528 | 1100010000 |
536 | 0000100010 |
544 | 0000101110 |
552 | 0110101101 |
560 | 1001110111 |
568 | 001110100 |
576 | 011100011 |
584 | 001000111 |
592 | 110000011 |
600 | 111111001 |
608 | 10110110110 |
616 | 11110100010 |
624 | 1000001100 |
632 | 011010010 |
640 | 100001010 |
648 | 100100110 |
656 | 1010001011 |
664 | 0000100011 |
672 | 11001111111 |
680 | 1100000001 |
688 | 01011100 |
696 | 00000111 |
704 | 110001101 |
712 | 0100100111 |
720 | 1010100101 |
728 | 001100011 |
736 | 0100100110 |
744 | 0101000010 |
752 | 010100000 |
760 | 000110000 |
768 | 011111100 |
776 | 110000001 |
784 | 00110111 |
792 | 00000100 |
800 | 11001111110 |
808 | 10001010000 |
816 | 11011100001 |
824 | 11100010011 |
832 | 111100011 |
840 | 100001011 |
848 | 111000110 |
856 | 1011101111 |
864 | 11010100100 |
872 | 0110101100 |
880 | 0110010011 |
888 | 1001001010 |
896 | 1111011111 |
904 | 100100000 |
912 | 00111100 |
920 | 1100111110 |
928 | 1000101111 |
936 | 1011001010 |
944 | 00010100 |
952 | 1111011010 |
960 | 10100010100 |
968 | 10101110101 |
976 | 11001101000 |
984 | 0001100011 |
992 | 000110011 |
1000 | 010110000 |
1008 | 100000111 |
1016 | 010101000 |
1024 | 0110101111 |
1032 | 10111101001 |
1040 | 11101101000 |
1048 | 11001101100 |
1056 | 0111000100 |
1064 | 011101110 |
1072 | 00110011 |
1080 | 01111000 |
1088 | 1001110110 |
1096 | 11011100011 |
1104 | 0101000011 |
1112 | 1011110101 |
1120 | 1111110000 |
1128 | 1101100111 |
1136 | 1110001000 |
1144 | 011100100 |
1152 | 01001101 |
1160 | 011001000 |
1168 | 0111001010 |
1176 | 1000101001 |
1184 | 110110010 |
1192 | 10110001 |
1200 | 0111001011 |
1208 | 10011010000 |
1216 | 00111010111 |
1224 | 10100010101 |
1232 | 11100111001 |
1240 | 1100100011 |
1248 | 101001110 |
1256 | 100111010 |
1264 | 111100111 |
1272 | 001011101 |
1280 | 1100010001 |
1288 | 1111011011 |
1296 | 1010111001 |
1304 | 0011001010 |
1312 | 0111000101 |
1320 | 001001100 |
1328 | 011011110 |
1336 | 11010010 |
1344 | 00001111 |
1352 | 1010111000 |
1360 | 000110100 |
1368 | 010101001 |
1376 | 110111111 |
1384 | 01000110 |
1392 | 1001101011 |
1400 | 1110011101 |
1408 | 010010010 |
1416 | 011010001 |
1424 | 101000100 |
1432 | 001010001 |
1440 | 011000101 |
1448 | 101110110 |
1456 | 10011110 |
1464 | 10010001 |
1472 | 000010000 |
1480 | 1010111011 |
1488 | 1100110101 |
1496 | 1111110001 |
1504 | 010111111 |
1512 | 1111010000 |
1520 | 111100101 |
1528 | 111100100 |
1536 | 0001011 |
1544 | 01001100 |
1552 | 000110101 |
1560 | 1110110101 |
1568 | 010111110 |
1576 | 101100100 |
1584 | 110010110 |
1592 | 100100111 |
1600 | 111011011 |
1608 | 00001001 |
1616 | 01101010 |
1624 | 11111101 |
1632 | 111001111 |
1640 | 000000001 |
1648 | 00111001 |
1656 | 00100101 |
1664 | 11000101 |
1672 | 10001110 |
1680 | 001100100 |
1688 | 110110100 |
1696 | 01100001 |
1704 | 111011110 |
1712 | 100100100 |
1720 | 101101010 |
1728 | 111000101 |
1736 | 00011101 |
1744 | 01111100 |
1752 | 10000100 |
1760 | 00000001 |
1768 | 00000101 |
1776 | 111011111 |
1784 | 00111011 |
1792 | 110000010 |
1800 | 110001100 |
1808 | 100010101 |
1816 | 00010000 |
1824 | 00010001 |
1832 | 0110110 |
1840 | 10000110 |
1848 | 100100001 |
1856 | 011010011 |
1864 | 01000111 |
1872 | 00110000 |
1880 | 10000010 |
1888 | 00110100 |
1896 | 110111101 |
1904 | 110111001 |
1912 | 01010010 |
1920 | 10011011 |
1928 | 11011011 |
1936 | 110111110 |
1944 | 011101111 |
1952 | 11101110 |
1960 | 10011100 |
1968 | 11010011 |
1976 | 00011011 |
1984 | 110010111 |
1992 | 111110001 |
2000 | 11001110 |
2008 | 10011001 |
2016 | 111111100 |
2024 | 00001100 |
2032 | 111010100 |
2040 | 01000101 |
2048 | 11110000 |
2056 | 0100111 |
2064 | 00001110 |
2072 | 01000010 |
2080 | 111111101 |
2088 | 111101100 |
2096 | 00011100 |
2104 | 01110101 |
2112 | 01100000 |
2120 | 10001111 |
2128 | 10111110 |
2136 | 10010101 |
2144 | 1010010 |
2152 | 11100100 |
2160 | 01010111 |
2168 | 00101010 |
2176 | 01110011 |
2184 | 10101011 |
2192 | 11011000 |
2200 | 01111101 |
2208 | 00101011 |
2216 | 00110101 |
2224 | 11000011 |
2232 | 10001001 |
2240 | 111100110 |
2248 | 111100010 |
2256 | 10010100 |
2264 | 11010111 |
2272 | 11011101 |
2280 | 11111111 |
2288 | 10111000 |
2296 | 10110111 |
2304 | 11000111 |
2312 | 01100110 |
2320 | 11010101 |
2328 | 10110011 |
2336 | 111101010 |
2344 | 110111100 |
2352 | 01001010 |
2360 | 10000000 |
2368 | 1010110 |
2376 | 0001001 |
2384 | 01010101 |
2392 | 01010011 |
2400 | 01111001 |
2408 | 10010110 |
2416 | 10101000 |
2424 | 01011101 |
2432 | 11010001 |
2440 | 11001100 |
2448 | 00100000 |
2456 | 10111010 |
2464 | 0001111 |
2472 | 11101000 |
2480 | 00101111 |
2488 | 01110110 |
2496 | 11100101 |
2504 | 10101010 |
2512 | 10011111 |
2520 | 11111011 |
2528 | 10001101 |
2536 | 10000111 |
2544 | 11101100 |
2552 | 0100000 |
2560 | 01000011 |
2568 | 111101011 |
2576 | 111101001 |
2584 | 00111101 |
2592 | 10101111 |
2600 | 0010110 |
2608 | 11101001 |
2616 | 10011000 |
2624 | 11001001 |
2632 | 10110100 |
2640 | 01010001 |
2648 | 10100110 |
2656 | 10100011 |
2664 | 00110110 |
2672 | 10001100 |
2680 | 01111111 |
2688 | 01001011 |
2696 | 0111101 |
2704 | 11010000 |
2712 | 101111011 |
2720 | 110110101 |
2728 | 01011010 |
2736 | 10001000 |
2744 | 11000010 |
2752 | 11100001 |
2760 | 10100000 |
2768 | 01011001 |
2776 | 111110011 |
2784 | 10010111 |
2792 | 00111000 |
2800 | 01011110 |
2808 | 000010110 |
2816 | 110010100 |
2824 | 11100110 |
2832 | 01100111 |
2840 | 111010111 |
2848 | 00001101 |
2856 | 111110100 |
2864 | 110101000 |
2872 | 110101101 |
2880 | 11100000 |
2888 | 111101110 |
2896 | 00010101 |
2904 | 00101001 |
2912 | 011011111 |
2920 | 011100000 |
2928 | 10000001 |
2936 | 10111111 |
2944 | 000000101 |
2952 | 101111000 |
2960 | 01100011 |
2968 | 111110010 |
2976 | 111010101 |
2984 | 10100001 |
2992 | 101101100 |
3000 | 01000100 |
3008 | 110010000 |
3016 | 100010110 |
3024 | 00100001 |
3032 | 0011111 |
3040 | 01011011 |
3048 | 011111101 |
3056 | 01101110 |
3064 | 01010110 |
3072 | 10111001 |
3080 | 111000111 |
3088 | 10110000 |
3096 | 110011110 |
3104 | 111110101 |
3112 | 111110000 |
3120 | 00100111 |
3128 | 01001000 |
3136 | 011000100 |
3144 | 101111001 |
3152 | 00100010 |
3160 | 01110100 |
3168 | 110010101 |
3176 | 101001111 |
3184 | 00100100 |
3192 | 01100101 |
3200 | 101101011 |
3208 | 101010011 |
3216 | 110101100 |
3224 | 001100010 |
3232 | 000010100 |
3240 | 1110101101 |
3248 | 1001101001 |
3256 | 1101100110 |
3264 | 0010001100 |
3272 | 1100100010 |
3280 | 0000001001 |
3288 | 000000111 |
3296 | 10101001001 |
3304 | 10011010100 |
3312 | 0110100001 |
3320 | 00000110 |
3328 | 0000101011 |
3336 | 1011101110 |
3344 | 0000000000 |
3352 | 0011001011 |
3360 | 11010100101 |
3368 | 10001011100 |
3376 | 1100110111 |
3384 | 1011011010 |
3392 | 11001101001 |
3400 | 00001010101 |
3408 | 00001010100 |
3416 | 0010001101101 |
3424 | 0101100010 |
3432 | 0010011011 |
3440 | 011001001000 |
3448 | 001000110111000 |
3456 | 10011010101110 |
3464 | 10011010101111 |
3472 | 1001101010101 |
3480 | 00111010110 |
3488 | 001000110111010 |
3496 | 1001101010100 |
3504 | 0010001101110011010011011 |
3512 | 0010001101110011010011100 |
3520 | 1001101010110111 |
3528 | 001000110111011 |
3536 | 0010001101110011010011101 |
3544 | 1001101010110110 |
3552 | 0010001101110011010011110 |
3560 | 0010001101110011010011111 |
3568 | 0010001101110011010100000 |
3576 | 0010001101110011010100001 |
3584 | 0010001101110011010100010 |
3592 | 0010001101110011010100011 |
3600 | 0010001101110011010100100 |
3608 | 0010001101110011010100101 |
3616 | 0010001101110011010100110 |
3624 | 0010001101110011010100111 |
3632 | 0010001101110011010101000 |
3640 | 0010001101110011010101001 |
3648 | 0010001101110011010101010 |
3656 | 0010001101110011010101011 |
3664 | 0010001101110011010101100 |
3672 | 0010001101110011010101101 |
3680 | 0010001101110011010101110 |
3688 | 0010001101110011010101111 |
3696 | 0010001101110011010110000 |
3704 | 0010001101110011010110001 |
3712 | 0010001101110011010110010 |
3720 | 0010001101110011010110011 |
3728 | 0010001101110011010110100 |
3736 | 0010001101110011010110101 |
3744 | 0010001101110011010110110 |
3752 | 0010001101110011010110111 |
3760 | 0010001101110011010111000 |
3768 | 0010001101110011010111001 |
3776 | 0010001101110011010111010 |
3784 | 0010001101110011010111011 |
3792 | 0010001101110011010111100 |
3800 | 0010001101110011010111101 |
3808 | 0010001101110011010111110 |
3816 | 0010001101110011010111111 |
3824 | 001000110111001101000000 |
3832 | 001000110111001101000001 |
3840 | 001000110111001101000010 |
3848 | 001000110111001101000011 |
3856 | 001000110111001101000100 |
3864 | 001000110111001101000101 |
3872 | 001000110111001101000110 |
3880 | 001000110111001101000111 |
Таблица Б.12
huff_nlag
Индекс | huff_nlag |
-512 | 100010101101101100 |
-508 | 100010101101101101 |
-504 | 100010101101101110 |
-500 | 100010101101101111 |
-496 | 100010111010000000 |
-492 | 100010111010000001 |
-488 | 100010111010000010 |
-484 | 100010111010000011 |
-480 | 100010111010000100 |
-476 | 100010111010000101 |
-472 | 100010111010000110 |
-468 | 100010111010000111 |
-464 | 100010111010001000 |
-460 | 100010111010001001 |
-456 | 100010111010001010 |
-452 | 100010111010001011 |
-448 | 100010111010001100 |
-444 | 100010111010001101 |
-440 | 100010111010001110 |
-436 | 100010111010001111 |
-432 | 100010111010010000 |
-428 | 100010111010010001 |
-424 | 100010111010010010 |
-420 | 100010111010010011 |
-416 | 100010111010010100 |
-412 | 100010111010010101 |
-408 | 100010111010010110 |
-404 | 100010111010010111 |
-400 | 100010111010011000 |
-396 | 100010111010011001 |
-392 | 100010111010011010 |
-388 | 100010111010011011 |
-384 | 100010111010011100 |
-380 | 100010111010011101 |
-376 | 100010111010011110 |
-372 | 100010111010011111 |
-368 | 100010111010100000 |
-364 | 100010111010100001 |
-360 | 100010111010100010 |
-356 | 100010111010100011 |
-352 | 100010111010100100 |
-348 | 100010111010100101 |
-344 | 100010111010100110 |
-340 | 100010111010100111 |
-336 | 100010111010101000 |
-332 | 100010111010101001 |
-328 | 100010111010101010 |
-324 | 100010111010101011 |
-320 | 100010111010101100 |
-316 | 100010111010101101 |
-312 | 100010111010101110 |
-308 | 100010111010101111 |
-304 | 100010111010110000 |
-300 | 100010111010110001 |
-296 | 100010111010110010 |
-292 | 100010111010110011 |
-288 | 100010111010110100 |
-284 | 100010111010110101 |
-280 | 100010111010110110 |
-276 | 100010111010110111 |
-272 | 100010111010111000 |
-268 | 100010111010111001 |
-264 | 100010111010111010 |
-260 | 100010111010111011 |
-256 | 100010111010111100 |
-252 | 100010111010111101 |
-248 | 100010111010111110 |
-244 | 100010111010111111 |
-240 | 100010111011000000 |
-236 | 100010111011000001 |
-232 | 100010111011000010 |
-228 | 100010111011000011 |
-224 | 100010111011000100 |
-220 | 100010111011000101 |
-216 | 100010111011000110 |
-212 | 100010111011000111 |
-208 | 100010111011001000 |
-204 | 100010111011001001 |
-200 | 10001011101100101 |
-196 | 100010111011001100 |
-192 | 100010111011001101 |
-188 | 100010111011001110 |
-184 | 100010111011001111 |
-180 | 100010111011010000 |
-176 | 100010111011010001 |
-172 | 100010111011010010 |
-168 | 100010111011010011 |
-164 | 100010111011010100 |
-160 | 10001011101101011 |
-156 | 1000101001011001 |
-152 | 100010111011010101 |
-148 | 100010111011011000 |
-144 | 100010111011011001 |
-140 | 100010111011011010 |
-136 | 100010111011011011 |
-132 | 10001011101101110 |
-128 | 10001011101101111 |
-124 | 100010111011100000 |
-120 | 100010111011100001 |
-116 | 100010111011100010 |
-112 | 100010111011100011 |
-108 | 100010111011100100 |
-104 | 100010111011100101 |
-100 | 100010111011100110 |
-96 | 1000101001011010 |
-92 | 100010100100111 |
-88 | 1000101001011011 |
-84 | 1000101110111010 |
-80 | 10001010010100 |
-76 | 10001010010101 |
-72 | 10001010110010 |
-68 | 10000001101100 |
-64 | 10000001101101 |
-60 | 10001010111111 |
-56 | 1000000110111 |
-52 | 1000101011000 |
-48 | 100010101010 |
-44 | 100010101011 |
-40 | 100010111000 |
-36 | 10001010100 |
-32 | 1000000111 |
-28 | 1000101111 |
-24 | 100010110 |
-20 | 1000001 |
-16 | 100011 |
-12 | 10011 |
-8 | 1110 |
-4 | 101 |
0 | 0 |
4 | 110 |
8 | 1111 |
12 | 10010 |
16 | 100001 |
20 | 1000100 |
24 | 10000000 |
28 | 100000010 |
32 | 1000101000 |
36 | 10001010011 |
40 | 100010111001 |
44 | 100010101110 |
48 | 1000101011010 |
52 | 1000101011110 |
56 | 10001010110111 |
60 | 1000101001000 |
64 | 10001010110011 |
68 | 100010101111100 |
72 | 10001010010010 |
76 | 100010111011110 |
80 | 100010100101110 |
84 | 10001011101110110 |
88 | 100010101111101 |
92 | 100010100101111 |
96 | 1000101110111110 |
100 | 10001011101110111 |
104 | 1000101110111111 |
108 | 1000101011011000 |
112 | 100010111011100111 |
116 | 1000101011011001 |
120 | 10000001100000000 |
124 | 1000101011011010 |
128 | 10000001100000001 |
132 | 10000001100000010 |
136 | 10000001100000011 |
140 | 10000001100000100 |
144 | 10000001100000101 |
148 | 10000001100000110 |
152 | 10000001100000111 |
156 | 10000001100001000 |
160 | 10000001100001001 |
164 | 1000000110000101 |
168 | 10000001100001100 |
172 | 10000001100001101 |
176 | 1000000110000111 |
180 | 10000001100010000 |
184 | 10000001100010001 |
188 | 10000001100010010 |
192 | 1000000110001010 |
196 | 10000001100010011 |
200 | 10000001100010110 |
204 | 10000001100010111 |
208 | 10000001100011000 |
212 | 10000001100011001 |
216 | 10000001100011010 |
220 | 1000000110001110 |
224 | 10000001100011011 |
228 | 10000001100011110 |
232 | 10000001100011111 |
236 | 10000001100100000 |
240 | 10000001100100001 |
244 | 10000001100100010 |
248 | 10000001100100011 |
252 | 10000001100100100 |
256 | 10000001100100101 |
260 | 10000001100100110 |
264 | 10000001100100111 |
268 | 10000001100101000 |
272 | 10000001100101001 |
276 | 10000001100101010 |
280 | 10000001100101011 |
284 | 10000001100101100 |
288 | 10000001100101101 |
292 | 10000001100101110 |
296 | 10000001100101111 |
300 | 10000001100110000 |
304 | 10000001100110001 |
308 | 10000001100110010 |
312 | 10000001100110011 |
316 | 10000001100110100 |
320 | 10000001100110101 |
324 | 10000001100110110 |
328 | 10000001100110111 |
332 | 10000001100111000 |
336 | 10000001100111001 |
340 | 10000001100111010 |
344 | 10000001100111011 |
348 | 10000001100111100 |
352 | 10000001100111101 |
356 | 10000001100111110 |
360 | 10000001100111111 |
364 | 10000001101000000 |
368 | 10000001101000001 |
372 | 10000001101000010 |
376 | 10000001101000011 |
380 | 10000001101000100 |
384 | 10000001101000101 |
388 | 10000001101000110 |
392 | 10000001101000111 |
396 | 10000001101001000 |
400 | 10000001101001001 |
404 | 10000001101001010 |
408 | 10000001101001011 |
412 | 10000001101001100 |
416 | 10000001101001101 |
420 | 10000001101001110 |
424 | 10000001101001111 |
428 | 10000001101010000 |
432 | 10000001101010001 |
436 | 10000001101010010 |
440 | 10000001101010011 |
444 | 10000001101010100 |
448 | 10000001101010101 |
452 | 10000001101010110 |
456 | 10000001101010111 |
460 | 10000001101011000 |
464 | 10000001101011001 |
468 | 10000001101011010 |
472 | 10000001101011011 |
476 | 10000001101011100 |
480 | 10000001101011101 |
484 | 10000001101011110 |
488 | 10000001101011111 |
492 | 10001010010011000 |
496 | 10001010010011001 |
500 | 10001010010011010 |
504 | 10001010010011011 |
508 | 10001010010110000 |
512 | 10001010010110001 |
Таблица Б.13
huff_nlsf
Индекс | huff_nlsf |
7 | 10110011 |
8 | 101101110 |
9 | 101101111 |
10 | 10110010 |
11 | 1001000 |
12 | 1011000 |
13 | 100101 |
14 | 1000 |
15 | 00 |
16 | 11 |
17 | 01 |
18 | 1010 |
19 | 10111 |
20 | 10011 |
21 | 1011010 |
22 | 10010011 |
23 | 100100101 |
24 | 100100100 |
25 | 10110110 |
Таблица Б.14
huff_ngain
Индекс | huff_ngain |
-13 | 010011100 |
-12 | 010011011001 |
-11 | 010011101110 |
-10 | 010011101011 |
-9 | 01001110100 |
-8 | 01001110110 |
-7 | 0100110101 |
-6 | 010011000 |
-5 | 01000110 |
-4 | 0100010 |
-3 | 010010 |
-2 | 01011 |
-1 | 00 |
0 | 1 |
1 | 011 |
2 | 01010 |
3 | 010000 |
4 | 01001111 |
5 | 01000111 |
6 | 010011001 |
7 | 0100110111 |
8 | 0100110100 |
9 | 01001101101 |
10 | 010011101111 |
11 | 010011101010 |
12 | 010011011000 |
Таблица Б.15
huff_scont
Индекс | huff_scont |
0 | 1000 |
1 | 0100 |
2 | 101 |
3 | 011 |
4 | 001 |
5 | 1001 |
6 | 0101 |
7 | 0001 |
8 | 0000 |
9 | 11 |
Таблица Б.16
huff_nrofbirths
Индекс | huff_nrofbirths |
0 | 010 |
1 | 1010 |
2 | 1110 |
3 | 011 |
4 | 110 |
5 | 100 |
6 | 001 |
7 | 1111 |
8 | 0001 |
9 | 10111 |
10 | 10110 |
11 | 0000111 |
12 | 000010 |
13 | 0000110 |
14 | 00000011 |
15 | 00000000 |
16 | 000000101 |
17 | 0000001001 |
18 | 0000010000 |
19 | 000000100000010 |
20 | 000000100000011 |
21 | 000001001 |
22 | 00000101 |
23 | 000001100 |
24 | 00000001 |
25 | 0000010001 |
26 | 0000011010 |
27 | 0000011011 |
28 | 000000100000100 |
29 | 0000011100 |
30 | 000000100000101 |
31 | 000000100000110 |
32 | 000000100000111 |
33 | 0000011101 |
34 | 000000100001000 |
35 | 0000011110 |
36 | 000000100001001 |
37 | 000000100001010 |
38 | 0000011111 |
39 | 000000100001011 |
40 | 000000100001100 |
41 | 000000100001101 |
42 | 000000100001110 |
43 | 000000100001111 |
44 | 000000100010000 |
45 | 000000100010001 |
46 | 000000100010010 |
47 | 000000100010011 |
48 | 000000100010100 |
49 | 000000100010101 |
50 | 000000100010110 |
51 | 000000100010111 |
52 | 000000100011000 |
53 | 000000100011001 |
54 | 000000100011010 |
55 | 000000100011011 |
56 | 000000100011100 |
57 | 000000100011101 |
58 | 000000100011110 |
59 | 000000100011111 |
60 | 00000010000000 |
Таблица Б.17
huff_ipd_df и huff_ipd_dt
Индекс | huff_ipd_df | huff_ipd_dt |
0 | 1 | 1 |
1 | 000 | 010 |
2 | 0110 | 0010 |
3 | 0100 | 00011 |
4 | 0010 | 00010 |
5 | 0011 | 0000 |
6 | 0101 | 0011 |
7 | 0111 | 011 |
Таблица Б.18
huff_opd_df и huff_opd_dt
Индекс | huff_opd_df | huff_opd_dt |
0 | 1 | 1 |
1 | 001 | 010 |
2 | 0110 | 0001 |
3 | 0100 | 00111 |
4 | 01111 | 00110 |
5 | 01110 | 0000 |
6 | 0101 | 0010 |
7 | 000 | 011 |
Таблица Б.19
huff_iid_df [1] и huff_iid_dt [1]
Индекс | huff_iid_df [1] | huff_iid_dt [1] |
-30 | 011111111010110100 | 0100111011010100 |
-29 | 011111111010110101 | 0100111011010101 |
-28 | 011111110101110110 | 0100111011001110 |
-27 | 011111110101110111 | 0100111011001111 |
-26 | 011111110101110100 | 0100111011001100 |
-25 | 011111110101110101 | 0100111011010110 |
-24 | 011111111010001010 | 0100111011011000 |
-23 | 011111111010001011 | 0100111101000110 |
-22 | 011111111010001000 | 0100111101100000 |
-21 | 01111111010000000 | 010011100011000 |
-20 | 011111111010110110 | 010011100011001 |
-19 | 01111111010000010 | 010011101100100 |
-18 | 01111111010111000 | 010011101100101 |
-17 | 0111111101000010 | 010011101101101 |
-16 | 0111111110101110 | 010011110110001 |
-15 | 011111110101111 | 01001110110111 |
-14 | 01111111010001 | 01001111010110 |
-13 | 01111111101001 | 0100111000111 |
-12 | 0111111101001 | 0100111101001 |
-11 | 011111101010 | 0100111101101 |
-10 | 011111111011 | 010011101110 |
-9 | 01111111011 | 010011110111 |
-8 | 0111111011 | 01001111000 |
-7 | 0111111111 | 0100111001 |
-6 | 01111100 | 010011010 |
-5 | 0111100 | 010011111 |
-4 | 011100 | 0100000 |
-3 | 01100 | 010001 |
-2 | 0000 | 01010 |
-1 | 001 | 011 |
0 | 1 | 1 |
1 | 010 | 00 |
2 | 0001 | 01011 |
3 | 01101 | 010010 |
4 | 011101 | 0100001 |
5 | 0111101 | 01001100 |
6 | 01111101 | 010011011 |
7 | 011111100 | 0100111010 |
8 | 0111111100 | 01001111001 |
9 | 01111111100 | 01001110000 |
10 | 01111110100 | 010011101111 |
11 | 011111101011 | 010011100010 |
12 | 0111111101010 | 0100111101010 |
13 | 01111111101010 | 0100111011000 |
14 | 01111111010110 | 01001111010111 |
15 | 011111111010000 | 01001111010000 |
16 | 0111111110101111 | 010011110110010 |
17 | 0111111101000011 | 010011110100010 |
18 | 01111111010111001 | 010011100011010 |
19 | 01111111010000011 | 010011100011011 |
20 | 011111111010110111 | 0100111101100110 |
21 | 01111111010000001 | 0100111101100111 |
22 | 011111111010001001 | 0100111101100001 |
23 | 011111111010001110 | 0100111101000111 |
24 | 011111111010001111 | 0100111011011001 |
25 | 011111111010001100 | 0100111011010111 |
26 | 011111111010001101 | 0100111011001101 |
27 | 011111111010110010 | 0100111011010010 |
28 | 011111111010110011 | 0100111011010011 |
29 | 011111111010110000 | 0100111011010000 |
30 | 011111111010110001 | 0100111011010001 |
Таблица Б.20
huff_icc_dt и huff_icc_df
Индекс | huff_icc_df | huff_icc_dt |
-7 | 11111111111111 | 11111111111110 |
-6 | 11111111111110 | 1111111111110 |
-5 | 111111111110 | 11111111110 |
-4 | 1111111110 | 111111110 |
-3 | 1111110 | 1111110 |
-2 | 11110 | 11110 |
-1 | 110 | 110 |
0 | 0 | 0 |
1 | 10 | 10 |
2 | 1110 | 1110 |
3 | 111110 | 111110 |
4 | 11111110 | 11111110 |
5 | 111111110 | 1111111110 |
6 | 11111111110 | 111111111110 |
7 | 1111111111110 | 11111111111111 |
Таблица Б.21
huff_iid_df [0] и huff_iid_dt [0]
Индекс | huff_iid_df [0] | huff_iid_dt [0] |
-14 | 11111111111111011 | 1111111111111111001 |
-13 | 11111111111111100 | 1111111111111111010 |
-12 | 11111111111111101 | 1111111111111111011 |
-11 | 11111111111111010 | 11111111111111111000 |
-10 | 1111111111111100 | 11111111111111111001 |
-9 | 111111111111100 | 11111111111111111010 |
-8 | 1111111111101 | 11111111111111101 |
-7 | 1111111110 | 111111111111110 |
-6 | 111111110 | 111111111110 |
-5 | 1111110 | 1111111110 |
-4 | 111100 | 11111110 |
-3 | 11101 | 111110 |
-2 | 1101 | 1110 |
-1 | 101 | 10 |
0 | 0 | 0 |
1 | 100 | 110 |
2 | 1100 | 11110 |
3 | 11100 | 1111110 |
4 | 111101 | 111111110 |
5 | 111110 | 11111111110 |
6 | 11111110 | 1111111111110 |
7 | 11111111110 | 11111111111110 |
8 | 1111111111100 | 11111111111111100 |
9 | 11111111111100 | 1111111111111111000 |
10 | 11111111111101 | 11111111111111111011 |
11 | 111111111111101 | 11111111111111111100 |
12 | 11111111111111110 | 11111111111111111101 |
13 | 111111111111111110 | 11111111111111111110 |
14 | 111111111111111111 | 11111111111111111111 |
(справочное)
ТЕМП И ПОДАЧА, МАСШТАБИРУЕМЫЕ В ДЕКОДЕРЕ
Темп, масштабирующий аудиосигнал, необходим, чтобы изменить (мгновенную) продолжительность сигнала, сохраняя воспринятую подачу. Как правило, в темпе декодера масштабирование обрабатывается для каждого объекта отдельно:
Переходные процессы; масштабирование темпа обычно не применяется к переходному объекту. Перцепционно переходные процессы характеризуются временами атаки и временами затухания. Намного более естественный результат получается, когда продолжительность переходного процесса сохраняется.
Синусоиды; для синусоидального объектного темпа масштабирование может быть получено, применяя два изменения в декодере. Прежде всего длина окна синтеза должна быть изменена согласно масштабному коэффициенту времени, гарантирующему, что унитарное перекрытие добавляется. Во-вторых, новое фазовое значение получается для продолжений, применяя непрерывную фазовую функцию.
Шум; в пределах объекта шума темп может масштабироваться, масштабируя оба окна синтеза.
Стерео: масштабирование темпа делается, изменяя позицию параметра согласно масштабному коэффициенту времени.
Поскольку подача главным образом определяется синусоидальными частотами, один подход должен масштабировать только частоты синусоид fnew = p·fold с масштабным коэффициентом подачи p.
В.1 Непрерывная фаза
Так как фазовые значения зависят от размера подкадра S, в случае темпа и масштабирования подачи декодер переключается на непрерывную фазу. Темп и масштабирующая подачу процедура для синусоидальных компонентов делаются следующим образом. Во-первых, исходная частота и фаза получаются процессом декодирования. В случае phase_jitter_present устанавливается в %1, полученная частота повторно квантуется, приводя к уровню представления sfrl. Уровень представления частоты sfrl становится sfrl + sfjitter и деквантуется. Эта частота умножается на масштабный коэффициент подачи и используется в непрерывном фазовом вычислении.
Непрерывная фаза

вычисляется так, что фаза двух последовательных сегментов перекрывается в середине области.
Фазовая информация

и

определяется в течение середины сегмента (= (
L-1)/2). Где
f1 и
f2 представляют частоту в радианах.
Фаза продолжающегося синусоидального компонента в первом подкадре фрейма с
refresh_
sinusoids = = %1 не устанавливается в значение, считанное из потока
(s_
phi), а вычисляется из выражения для

. Если процесс декодирования запускается в этом подкадре, наугад от отмеченного подкадра, фаза продолжающегося синусоидального компонента должна быть установлена в значение, считанное из потока.
В.2 Темп, масштабирующийся для стерео
Темп, масштабирующийся для параметрического инструмента стерео, может быть достигнут, адаптируя позицию параметров.

- масштабный коэффициент темпа. Считывается предыдущее и текущее масштабируемыми позициями параметры

и

соответственно. Перемещая эти позиции в целочисленные позиции, декодирование стерео может быть выполнено как обычно. Метод, для отображения позиции параметра нецелого числа

и

к целочисленным позициям

и

дается, используя следующую рекурсию

,
где nprev является предыдущей целочисленной позицией.
Затем текущая целочисленная позиция параметра вычисляется следующим образом:
Чтобы инициировать рекурсию nprev = 0.
| ИСО/МЭК 14496-3:2009 | Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио (ISO/IEC 14496-3:2009 Information technology - Coding of audio-visual objects - Part 3: Audio) |