ГОСТ Р 53556.11—2014
Часть В содержит выборки, для которых соответствующее усеченное целое число у не равно 0.
Перед декодированием потока битов в части В должно быть считано compressedjag [с] для части В.
Если compresscd_flag [с] равняется 0. поток битов упаковывается несжатым. Если compresscd_flag [с]
равняется 1, выборки части В сжимаются, используя схему сжатия Masked-LZ. В этом случае для по
тока битов в части В применяется распаковка Masked-LZ.
Необходимые биты этих выборок различаются от 0 до 23 битов в зависимости от highest_byte [с],
acf_mantissa [с] и соответствующего усеченного целого числа у.
Самая высокая длина различия в битахnb/fs[c][n], которая будет кодироваться, определяется сле
дующим образом:
nbits[c][n]= min (wordJength[c][n], highestjyte’b).
где wordjength [с) [л] показано в таблице 45,
«highest_byte (с)» обозначает наибольшую длину байта всех значений различия мантиссы во
фрейме. «highestjyte [с]» равно 0, если у исходных данных с плавающей точкой имеется точность
16-битового целого числа.
Таблица 45 — Необходимаядлина словадляразличия мантиссы (когда ac(_mantissa[c]равняется0)
Состояниеac/_mantissalc}
Диапазон абсолютногоцелогозначения |х|
wordlenglh
acl_mantissa(с]==0
(общий множительравен 1.0)
|х| = 0
32
2" £ |х1 < 2|л*1)
(0 £л< 23)
23-л
6.9.3.2.4 Различия мантиссы (когда acf_mantissa [с] не равно 0)
Если acf_mantiisa [с] не 0. мантисса различия восстанавливается следующим способом.
Последовательность различий во фрейме упаковывается. У каждой выборки есть уникальная
длина слова фактической информации, где длина определяется значением соответствующего целого
числа. Каждое значение различия мантиссы Dfc][n] восстанавливается следующим образом.
Поток битов для реконструкции значений различия разделяется на две части (часть А и часть В).
Часть А содержит выборки, необходимые для кодирования всех 32 битов. Это выборки, для которых
соответствующее усеченное целое число у равняется 0. Если усеченное целочисленное значение яв
ляется нулем, получаются исходные данные с плавающей точкой.
Если partAJag [с] равняется 0. все значения в части А являются нулями или в части А нет ни
каких выборок. Когда partAJiag (с] не является нулем, в части А есть выборки, и compressedJ a g дол жен
быть считан. Если compressedjag [с] равняется 0. все потоки битов упаковываются несжатые. Если
compressedjag [с] равняется 1, выборки части А сжимаются, используя схему сжатия Masked-LZ. В этом
случае для потока битов в части А применяется распаковка Masked-LZ.
Часть В содержит выборки, для которых соответствующее усеченное целое число у не равно 0.
compressedjag [с] для части В должно быть считано до декодирования потока битов в части В. Если
compressedjag (с] равняется 0. поток битов упаковывается несжатым. Если compressedjag [с] рав
няется 1. выборки части В сжимаются, используя схему сжатия Masked-LZ. В этом случае для потока
битов в части В применяется распаковка Masked-LZ. Необходимые биты этих выборок различаются от 0
до 23 битов в зависимости от highest_byte (с]. acf_mantissa [с] и соответствующего усеченного целого
числа у.
Наибольшая длина в битах различия nbils [с} [л], которое будет кодировано, определяется следу
ющим образом
nbits[c][n]= min (wordJength[c][nJ. highest_byte[c)’8).
где wordjength [cj [л] показано в таблице 46.
»highestjyte (с)» обозначает наибольшую длину байта всех значений мантиссы различия во
фрейме. «highest_byte [с]» равно 0. если у исходных данных с плавающей точкой имеется точность 16-
битного целого числа.
Таблица 46 — Необходимаядлина словадля различия мантиссы (когда acf_mantissa[c]не равно 0)
Состояние ac/_maof/ssa(c)
у
Диапазон абсолютного целого значения i
\
1
vord_lengib
ас/_талГниа[с]==0
(общий множитель не равен 1.0)
|у| = 0
32
|у| != 0
23
61