of bits less or equal to 1. If that is the case (the “use_context” case from the following C function), the corresponding block info is encoded with 1 or 0 bits based on the allocated number of bits, while the rest of the time-frequency blocks are encoding with GR encoding with parameter equal to 1. 

short decode azimuth ((/DIRECTION * qdirection, unsigned short * bitstream, int * pbit_pos, short j , short subframes ) { int bit_pos; snort nbits, nb, k ; unsigned char use context, byteBuffer; nbits = 0 ; bit_pos = *pbit_pos; use_context = 0 ; for(k=0;k< subframes; k++) { if (qdirection->bits sph idx[j] [k] <= 1 ) { use_context = 1 ; } } if (use_context == 1 ) { for(k=0;k< subframes; k++) { if (qdirection->bits_sph_idx [j] [k] == 0 ) { qdirection->azimuth index[j] [k] = 0 ; qdirection->azimuth [j] [k] = 0 ; } g 1 , { if (qdirection->bits_sph_idx [j] [k] == 1 ) { bit pos = read inv bit buff (bitstream, &byteBuffer, bit_pos, 1); qdirection->azimuth index[j] [k] = (unsigned short) byteBuffer; qdirection->azimuth [j] [k] = qdirection->azimuth index[j] [k]*(-180); } e se { bit pos = read GR (bitstream, &qdirection->azimuth index[j] [k], bit pos, GR_ORD_AZ - (qdirection->bits_sph_idx [j] [k] == 2), &nb) ; nbits += nb; qdirection->azimuth [j] [k] = deindex azimuth (qdirection->azimuth index[j] [k] , 

