ГО С Т Р 53556.12-2014
1
encode{ freqjtilencefposition!):
position*+;
if(position>2)position
= 2;
dumb
/
if(amp
/=
(1 <<(max_bplg]lwinj[sfbj *
1 - U
encode(0,freq_silencefpositionI): /* encode of terminating
0 V
if(amp)
encode/sgnfreqjsgn):
/*
encode ofsign symbol*/
I
/
}
I
}
}
I
Следующий псевдокод объясняет, как в
BPGC/CBAC
арифметически кодируется двоич
ный символ и процессы низкоэнергетического режима кодирования.
Определения:
/tidefine CODE_WL
16
//Idefine PRE_SHT
14
(//define TOP_ VALUE (((long) l < < CODE_WL)-l)
//Idefine QTR_VALUE(TOP_VALUE/
4+1
)
/Нdefine HALF_VALUE (2*QTR_VALUE)
///define TRDQTR_VALUE
(3*
QTR_VALUE)
Инициализация:
low
= 0;
high
=
TOP_VALUE:
fi)ils
= 0;
Подпрограмма кодирования:
void encode/int sym, intfreq)
f
range
=
(long)(high-low)*
1;
if(sym)
high = low * (range*freq»PRE_SHT)-
1;
63