ГОСТ Р 53556.10—2014
Nr_Of_Sogments является числом сегментов для текущего звукового канала. Максимальное
количество сегментов является MAXNRSEGS. MAXNRSEGS должно быть 4 для FiHer_Segmentation. 8
для Ptablo_Segmentation и 4 для Filter_And_Ptable_Segmentation.
Resolution_Read указывает, была ли считана переменная Resolution в этом или предыдущем
Channel_Segmontation. Rosolution_Read устанавливается в истину в Channel_Segmentation первого
звукового канала с больше чем одним сегментом. Если Prediction Filters и Ptables используют
независимую сегментацию, они также используют и независимое Resolution_Read.
Segment_Length [Seg_Nr] содержит длину сегмента в байтах, где:
1 <= Seg_Nr <= Nr_Of_Sogments.
Start[Seg_Nr] является стартовой позицией в байтах Segment[Seg_Nr],
6.2.1.1.5.2.2.1End_Of_Channel_Segm
Если End_Of_Channel_Segm является нулем, будет следовать одно или более значений для
Scaled_Longth. Если End_Of_Channel_Segm равно единице, структура Channol_Sogmentation
заканчивается.
6.2.1.1.5.2.2.2Resolution
Каждое значение Scaled_Length умножается на Resolution (разрешение), чтобы получить длину
сегмента в байтах. Разрешение сохраняется только однажды, в начале первого звукового канала с
больше чем одним сегментом. Если у всех звуковых каналов имеется только один сегмент, Resolution не
кодируется.
Разрешение должно быть в диапазоне от 1 до Frame_Length - MINSEGLEN. MINSEGLEN
должно составлять 128 байтов для Filter_Segmentation, 4 байта для Ptab!e_Segmentation и 128 байтов
для Filter_And_Ptable_Segmentation.
6.2.1.1.5.2.2.3Scaled_Length
Для каждого сегмента, кроме последнего, значение Scaled_Length кодируется. Длина сегмента
в байтах вычисляется по следующей формуле:
Segment_Length [Seg_Nr] = Resolution * Scalod_Length [Seg_NrJ.
где 1 <= S_Nr <Nr_Of_Segments.
Минимальная длина сегмента каждого Segment является MINSEGLEN.
Для Ptable_Segmentation длина первого сегмента каждого звукового канала должна быть
(Prcd_Order (Filter\Channel_Nr) [1fl +7)/8 байтов.
Число битов, необходимых для кодирования Scaled_Length[Seg_Nr]. зависит от значения
диапазона. Диапазон (Range) должен быть вычислен по формуле:
Range
-
Trunc Frame Length-Start
[Sec?
Nr
)-
MINSEGLEN
j
(
Resolution
j
Если 2n~ <Range<2n. чтобы закодировать
битов, см. таблицу 16. Минимальное значение
Scaled_Length[Seg_Nr) должны использоваться n
Range равно 1. Длина последнего сегмента не
кодируется. Длина последнего сегмента может быть вычислена, исходя из длины фрейма и
стартовой позиции последнего сегмента по формуле:
Segment_Length [Nr_Of_Segments] = Frame_Length - Start[Nr_Of_Segments].
Таблица 16 - Диапазон и биты для кодирования Scaled_Length
Диапазон
Используемые биты
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2..3
4..7
8..15
16..31
32..63
64..127
128..255
256..511
512..1023
1024.2047
2048.4095
4096.8191
12