ГОСТ Р 53556.12-2014
if((cur_bp[g][sfl>]>=0)&& {lazy_bplgilsfb] >())){
width =swb_offset[g[[sfb
+1/ -
swb_offset[g][sfb);
for (win
=0:
win<window_groupjenfg]
;
win++){
for (bin=0:bin<width;bin++){
sym = (abs(res[gIfwin]lsfb][bin ])&(
1
<<cur_bp[g][sfb]))?
1:0;
sgn = (sign( res[g][w i n } [ b i n ] ) +
1J/2;
if (intervalfgj[winJfsfb][bin]>res[g[[win][sfb][bin]+(l<<cur_bp[g][sfl>]) {
encode(symfreq); /* encode bit-plane cur_bp
*/
ifWis_sig[g][win][sfb][bin[)&&(sym)){
encode(sgnJreq_sign);
/*
encode sign bit ifnecessary */
iS-Siglg]fwin][sfb][bin] =
1;
/
}
I
I
}
)
cnr_bplg]lsfb]—;
I
I
}
The ВРСС/СВЛС lazy coding mode is started after thefirst NUMJBP bit-planes have been coded.
/* BPGC/CBAC lazy coding process */
flush_encode(); /* flush the AC encoder before lazy coding
*/
while (there exists ntax_bp[g][sfb]-i
>=
()){
for (g=0;g<num_windaw_groups;g++)(
for (sfl>
=
0;sfb<ninn_sfh:sjb++){
if <(eur_bp[g][sfb]>=0) && (lazy_bplg][sfb] >0)){
width
=
swb_offset[g][sfb
+1/ -
swb_qffset[g][sfb];
for (win
=0;
win<window_groupjenfg]:win++)/
for (
/>m=0;
bin<width;bin++){
sym
=
(absfresfg][ win][sjh][bin])&( \«cur_bp[g][sfb]))?\:Q:
sgn = (sign(resfgjfwinj[sfb]/Ып[)+
1JP2;
if (intervalfg][win][sfb][bin]>res[g][win][sfb][hin]+(
1<
<cur_bp[g][sfb]) [
write_bit(sym); /* encode bit-plane cur_bp*/
if((!bs_sig[g][ win] [ sfb][ bin])&&(sym))[
61