private void subdivide(EChannel cod_info) {
		int scfb_anz = 0;

		if ( bigvalues_region == 0) {
			/* no big_values region */
			cod_info.region0_count = 0;
			cod_info.region1_count = 0;
		} else {

			if ( cod_info.window_switching_flag == 0 ) {

				int index0, index1;

				/* Calculate scfb_anz */
				while (scalefac_band_long[scfb_anz] < bigvalues_region)
					scfb_anz++;
				/*			assert (scfb_anz < 23); */

				index0 = (cod_info.region0_count = subdv_table[scfb_anz][0]) + 1;
				index1 = (cod_info.region1_count = subdv_table[scfb_anz][1]) + 1;

				cod_info.address1 = scalefac_band_long[index0];
				cod_info.address2 = scalefac_band_long[index0 + index1];
				cod_info.address3 = bigvalues_region;
			} else {
				if ( (cod_info.block_type == 2) && (cod_info.mixed_block_flag == 0) ) {
					cod_info.region0_count =  8;
					cod_info.region1_count =  12;
					cod_info.address1 = 36;
				} else {
					cod_info.region0_count = 7;
					cod_info.region1_count = 13;
					cod_info.address1 = scalefac_band_long[ cod_info.region0_count + 1 ];
				}
				cod_info.address2 = bigvalues_region;
				cod_info.address3 = 0;

			}
		}
	}