Lines Matching refs:cod_info
66 * initializes cod_info, scalefac and xrpow
73 init_xrpow_core_c(gr_info * const cod_info, FLOAT xrpow[576], int upper, FLOAT * sum)
79 tmp = fabs(cod_info->xr[i]);
83 if (xrpow[i] > cod_info->xrpow_max)
84 cod_info->xrpow_max = xrpow[i];
111 init_xrpow(lame_internal_flags * gfc, gr_info * const cod_info, FLOAT xrpow[576])
115 int const upper = cod_info->max_nonzero_coeff;
118 cod_info->xrpow_max = 0;
127 gfc->init_xrpow_core(cod_info, xrpow, upper, &sum);
136 for (i = 0; i < cod_info->psymax; i++)
142 memset(&cod_info->l3_enc[0], 0, sizeof(int) * 576);
160 psfb21_analogsilence(lame_internal_flags const *gfc, gr_info * const cod_info)
163 FLOAT *const xr = cod_info->xr;
165 if (cod_info->block_type != SHORT_TYPE) { /* NORM, START or STOP type, but not SHORT blocks */
227 init_outer_loop(lame_internal_flags const *gfc, gr_info * const cod_info)
231 /* initialize fresh cod_info
233 cod_info->part2_3_length = 0;
234 cod_info->big_values = 0;
235 cod_info->count1 = 0;
236 cod_info->global_gain = 210;
237 cod_info->scalefac_compress = 0;
239 cod_info->table_select[0] = 0;
240 cod_info->table_select[1] = 0;
241 cod_info->table_select[2] = 0;
242 cod_info->subblock_gain[0] = 0;
243 cod_info->subblock_gain[1] = 0;
244 cod_info->subblock_gain[2] = 0;
245 cod_info->subblock_gain[3] = 0; /* this one is always 0 */
246 cod_info->region0_count = 0;
247 cod_info->region1_count = 0;
248 cod_info->preflag = 0;
249 cod_info->scalefac_scale = 0;
250 cod_info->count1table_select = 0;
251 cod_info->part2_length = 0;
253 cod_info->sfb_lmax = 17;
254 cod_info->sfb_smin = 9;
255 cod_info->psy_lmax = 17;
258 cod_info->sfb_lmax = SBPSY_l;
259 cod_info->sfb_smin = SBPSY_s;
260 cod_info->psy_lmax = gfc->sv_qnt.sfb21_extra ? SBMAX_l : SBPSY_l;
262 cod_info->psymax = cod_info->psy_lmax;
263 cod_info->sfbmax = cod_info->sfb_lmax;
264 cod_info->sfbdivide = 11;
266 cod_info->width[sfb]
268 cod_info->window[sfb] = 3; /* which is always 0. */
270 if (cod_info->block_type == SHORT_TYPE) {
274 cod_info->sfb_smin = 0;
275 cod_info->sfb_lmax = 0;
276 if (cod_info->mixed_block_flag) {
281 cod_info->sfb_smin = 3;
282 cod_info->sfb_lmax = cfg->mode_gr * 2 + 4;
285 cod_info->psymax
286 = cod_info->sfb_lmax
287 + 3 * (9 - cod_info->sfb_smin);
288 cod_info->sfbmax = cod_info->sfb_lmax + 3 * (9 - cod_info->sfb_smin);
291 cod_info->psymax
292 = cod_info->sfb_lmax
293 + 3 * ((gfc->sv_qnt.sfb21_extra ? SBMAX_s : SBPSY_s) - cod_info->sfb_smin);
294 cod_info->sfbmax = cod_info->sfb_lmax + 3 * (SBPSY_s - cod_info->sfb_smin);
296 cod_info->sfbdivide = cod_info->sfbmax - 18;
297 cod_info->psy_lmax = cod_info->sfb_lmax;
306 ix = &cod_info->xr[gfc->scalefac_band.l[cod_info->sfb_lmax]];
307 memcpy(ixwork, cod_info->xr, 576 * sizeof(FLOAT));
308 for (sfb = cod_info->sfb_smin; sfb < SBMAX_s; sfb++) {
319 j = cod_info->sfb_lmax;
320 for (sfb = cod_info->sfb_smin; sfb < SBMAX_s; sfb++) {
321 cod_info->width[j] = cod_info->width[j + 1] = cod_info->width[j + 2]
323 cod_info->window[j] = 0;
324 cod_info->window[j + 1] = 1;
325 cod_info->window[j + 2] = 2;
330 cod_info->count1bits = 0;
331 cod_info->sfb_partition_table = nr_of_sfb_block[0][0];
332 cod_info->slen[0] = 0;
333 cod_info->slen[1] = 0;
334 cod_info->slen[2] = 0;
335 cod_info->slen[3] = 0;
337 cod_info->max_nonzero_coeff = 575;
341 memset(cod_info->scalefac, 0, sizeof(cod_info->scalefac));
344 psfb21_analogsilence(gfc, cod_info);
368 bin_search_StepSize(lame_internal_flags * const gfc, gr_info * const cod_info,
376 cod_info->global_gain = start;
377 desired_rate -= cod_info->part2_length;
382 nBits = count_bits(gfc, xrpow, cod_info, 0);
407 cod_info->global_gain += step;
408 if (cod_info->global_gain < 0) {
409 cod_info->global_gain = 0;
412 if (cod_info->global_gain > 255) {
413 cod_info->global_gain = 255;
418 assert(cod_info->global_gain >= 0);
419 assert(cod_info->global_gain < 256);
421 while (nBits > desired_rate && cod_info->global_gain < 255) {
422 cod_info->global_gain++;
423 nBits = count_bits(gfc, xrpow, cod_info, 0);
425 gfc->sv_qnt.CurrentStep[ch] = (start - cod_info->global_gain >= 4) ? 4 : 2;
426 gfc->sv_qnt.OldValue[ch] = cod_info->global_gain;
427 cod_info->part2_3_length = nBits;
541 loop_break(const gr_info * const cod_info)
545 for (sfb = 0; sfb < cod_info->sfbmax; sfb++)
546 if (cod_info->scalefac[sfb]
547 + cod_info->subblock_gain[cod_info->window[sfb]] == 0)
722 gr_info * const cod_info, FLOAT const *distort, FLOAT xrpow[576], int bRefine)
729 if (cod_info->scalefac_scale == 0) {
738 for (sfb = 0; sfb < cod_info->sfbmax; sfb++) {
774 for (sfb = 0; sfb < cod_info->sfbmax; sfb++) {
775 int const width = cod_info->width[sfb];
786 cod_info->scalefac[sfb]++;
789 if (xrpow[j + l] > cod_info->xrpow_max)
790 cod_info->xrpow_max = xrpow[j + l];
809 inc_scalefac_scale(gr_info * const cod_info, FLOAT xrpow[576])
815 for (sfb = 0; sfb < cod_info->sfbmax; sfb++) {
816 int const width = cod_info->width[sfb];
817 int s = cod_info->scalefac[sfb];
818 if (cod_info->preflag)
825 if (xrpow[j + l] > cod_info->xrpow_max)
826 cod_info->xrpow_max = xrpow[j + l];
829 cod_info->scalefac[sfb] = s >> 1;
831 cod_info->preflag = 0;
832 cod_info->scalefac_scale = 1;
848 inc_subblock_gain(const lame_internal_flags * const gfc, gr_info * const cod_info, FLOAT xrpow[576])
851 int *const scalefac = cod_info->scalefac;
854 for (sfb = 0; sfb < cod_info->sfb_lmax; sfb++) {
863 for (sfb = cod_info->sfb_lmax + window; sfb < cod_info->sfbdivide; sfb += 3) {
867 for (; sfb < cod_info->sfbmax; sfb += 3) {
875 if (cod_info->subblock_gain[window] >= 7)
882 cod_info->subblock_gain[window]++;
883 j = gfc->scalefac_band.l[cod_info->sfb_lmax];
884 for (sfb = cod_info->sfb_lmax + window; sfb < cod_info->sfbmax; sfb += 3) {
886 int const width = cod_info->width[sfb];
889 s = s - (4 >> cod_info->scalefac_scale);
898 int const gain = 210 + (s << (cod_info->scalefac_scale + 1));
904 if (xrpow[j + l] > cod_info->xrpow_max)
905 cod_info->xrpow_max = xrpow[j + l];
912 j += cod_info->width[sfb] * (window + 1);
913 for (l = -cod_info->width[sfb]; l < 0; l++) {
915 if (xrpow[j + l] > cod_info->xrpow_max)
916 cod_info->xrpow_max = xrpow[j + l];
942 gr_info * const cod_info, FLOAT const *distort, FLOAT xrpow[576], int bRefine)
947 amp_scalefac_bands(gfc, cod_info, distort, xrpow, bRefine);
954 status = loop_break(cod_info);
962 status = scale_bitcount(gfc, cod_info);
972 if (!cod_info->scalefac_scale) {
973 inc_scalefac_scale(cod_info, xrpow);
977 if (cod_info->block_type == SHORT_TYPE && cfg->subblock_gain > 0) {
978 status = inc_subblock_gain(gfc, cod_info, xrpow)
979 || loop_break(cod_info);
985 status = scale_bitcount(gfc, cod_info);
1011 outer_loop(lame_internal_flags * gfc, gr_info * const cod_info, const FLOAT * const l3_xmin, /* allowed distortion */
1029 (void) bin_search_StepSize(gfc, cod_info, targ_bits, ch, xrpow);
1040 (void) calc_noise(cod_info, l3_xmin, distort, &best_noise_info, &prev_noise);
1041 best_noise_info.bits = cod_info->part2_3_length;
1043 cod_info_w = *cod_info;
1128 if (cod_info->block_type != SHORT_TYPE) /* NORM, START or STOP type */
1139 best_part2_3_length = cod_info->part2_3_length;
1141 *cod_info = cod_info_w;
1167 cod_info_w = *cod_info;
1185 assert((cod_info->global_gain + cod_info->scalefac_scale) <= 255);
1194 trancate_smallspectrums(gfc, cod_info, l3_xmin, xrpow);
1218 gr_info *const cod_info = &l3_side->tt[gr][ch];
1227 best_huffman_divide(gfc, cod_info);
1231 ResvAdjust(gfc, cod_info);
1245 VBR_encode_granule(lame_internal_flags * gfc, gr_info * const cod_info, const FLOAT * const l3_xmin, /* allowed distortion of the scalefactor */
1272 over = outer_loop(gfc, cod_info, l3_xmin, xrpow, ch, this_bits);
1282 real_bits = cod_info->part2_3_length;
1286 bst_cod_info = *cod_info;
1306 *cod_info = bst_cod_info;
1319 memcpy(cod_info->l3_enc, bst_cod_info.l3_enc, sizeof(int) * 576);
1321 assert(cod_info->part2_3_length <= Max_bits);
1416 gr_info *const cod_info = &gfc->l3_side.tt[gr][ch];
1418 if (cod_info->block_type != SHORT_TYPE) { /* NORM, START or STOP type */
1428 init_outer_loop(gfc, cod_info);
1429 bands[gr][ch] = calc_xmin(gfc, &ratio[gr][ch], cod_info, l3_xmin[gr][ch]);
1522 gr_info *const cod_info = &l3_side->tt[gr][ch];
1524 /* init_outer_loop sets up cod_info, scalefac and xrpow
1526 ret = init_xrpow(gfc, cod_info, xrpow);
1534 VBR_encode_granule(gfc, cod_info, l3_xmin[gr][ch], xrpow,
1543 ret = cod_info->part2_3_length + cod_info->part2_length;
1617 gr_info *const cod_info = &gfc->l3_side.tt[gr][ch];
1621 init_outer_loop(gfc, cod_info);
1622 if (0 != calc_xmin(gfc, &ratio[gr][ch], cod_info, l3_xmin[gr][ch]))
1672 gr_info *const cod_info = &l3_side->tt[gr][ch];
1674 /* init_outer_loop sets up cod_info, scalefac and xrpow
1676 if (0 == init_xrpow(gfc, cod_info, xrpow[gr][ch])) {
1739 gr_info const *const cod_info = &l3_side->tt[gr][ch];
1740 ResvAdjust(gfc, cod_info);
1829 gr_info const *const cod_info = &l3_side->tt[gr][ch];
1833 if (cod_info->block_type == SHORT_TYPE) {
1931 gr_info *cod_info;
1947 cod_info = &l3_side->tt[gr][ch];
1949 if (cod_info->block_type != SHORT_TYPE) { /* NORM, START or STOP type */
1962 /* cod_info, scalefac and xrpow get initialized in init_outer_loop
1964 init_outer_loop(gfc, cod_info);
1965 if (init_xrpow(gfc, cod_info, xrpow)) {
1970 ath_over = calc_xmin(gfc, &ratio[gr][ch], cod_info, l3_xmin);
1974 (void) outer_loop(gfc, cod_info, l3_xmin, xrpow, ch, targ_bits[gr][ch]);
1977 assert(cod_info->part2_3_length <= MAX_BITS_PER_CHANNEL);
1978 assert(cod_info->part2_3_length <= targ_bits[gr][ch]);
2020 gr_info *cod_info;
2038 cod_info = &l3_side->tt[gr][ch];
2040 if (cod_info->block_type != SHORT_TYPE) { /* NORM, START or STOP type */
2052 /* init_outer_loop sets up cod_info, scalefac and xrpow
2054 init_outer_loop(gfc, cod_info);
2055 if (init_xrpow(gfc, cod_info, xrpow)) {
2060 (void) calc_xmin(gfc, &ratio[gr][ch], cod_info, l3_xmin);
2061 (void) outer_loop(gfc, cod_info, l3_xmin, xrpow, ch, targ_bits[ch]);
2065 assert(cod_info->part2_3_length <= MAX_BITS_PER_CHANNEL);
2066 assert(cod_info->part2_3_length <= targ_bits[ch]);