Lines Matching refs:rcc
82 RateControlContext *rcc = &s->rc_context; in get_diff_limited_q() local
85 const double last_p_q = rcc->last_qscale_for[AV_PICTURE_TYPE_P]; in get_diff_limited_q()
86 const double last_non_b_q = rcc->last_qscale_for[rcc->last_non_b_pict_type]; in get_diff_limited_q()
89 (a->i_quant_factor > 0.0 || rcc->last_non_b_pict_type == AV_PICTURE_TYPE_P)) in get_diff_limited_q()
98 if (rcc->last_non_b_pict_type == pict_type || pict_type != AV_PICTURE_TYPE_I) { in get_diff_limited_q()
99 double last_q = rcc->last_qscale_for[pict_type]; in get_diff_limited_q()
108 rcc->last_qscale_for[pict_type] = q; // Note we cannot do that after blurring in get_diff_limited_q()
111 rcc->last_non_b_pict_type = pict_type; in get_diff_limited_q()
150 RateControlContext *rcc = &s->rc_context; in modify_qscale() local
168 double expected_size = rcc->buffer_index; in modify_qscale()
180 FFMAX((min_rate - buffer_size + rcc->buffer_index) * in modify_qscale()
200 FFMAX(rcc->buffer_index * in modify_qscale()
212 q, max_rate, min_rate, buffer_size, rcc->buffer_index, in modify_qscale()
241 RateControlContext *rcc = &s->rc_context; in get_qscale() local
262 rcc->qscale_sum[pict_type] / (double)rcc->frame_count[pict_type], in get_qscale()
264 rcc->i_cplx_sum[AV_PICTURE_TYPE_I] / (double)rcc->frame_count[AV_PICTURE_TYPE_I], in get_qscale()
265 rcc->i_cplx_sum[AV_PICTURE_TYPE_P] / (double)rcc->frame_count[AV_PICTURE_TYPE_P], in get_qscale()
266 rcc->p_cplx_sum[AV_PICTURE_TYPE_P] / (double)rcc->frame_count[AV_PICTURE_TYPE_P], in get_qscale()
267 rcc->p_cplx_sum[AV_PICTURE_TYPE_B] / (double)rcc->frame_count[AV_PICTURE_TYPE_B], in get_qscale()
268 … (rcc->i_cplx_sum[pict_type] + rcc->p_cplx_sum[pict_type]) / (double)rcc->frame_count[pict_type], in get_qscale()
272 bits = av_expr_eval(rcc->rc_eq_eval, const_values, rce); in get_qscale()
278 rcc->pass1_rc_eq_output_sum += bits; in get_qscale()
313 RateControlContext *rcc = &s->rc_context; in init_pass2() local
321 (double)rcc->num_entries / fps); in init_pass2()
329 for (i = 0; i < rcc->num_entries; i++) { in init_pass2()
330 RateControlEntry *rce = &rcc->entry[i]; in init_pass2()
333 rcc->i_cplx_sum[rce->pict_type] += rce->i_tex_bits * rce->qscale; in init_pass2()
334 rcc->p_cplx_sum[rce->pict_type] += rce->p_tex_bits * rce->qscale; in init_pass2()
335 rcc->mv_bits_sum[rce->pict_type] += rce->mv_bits; in init_pass2()
336 rcc->frame_count[rce->pict_type]++; in init_pass2()
352 qscale = av_malloc_array(rcc->num_entries, sizeof(double)); in init_pass2()
353 blurred_qscale = av_malloc_array(rcc->num_entries, sizeof(double)); in init_pass2()
365 rcc->buffer_index = s->avctx->rc_buffer_size / 2; in init_pass2()
368 for (i = 0; i < rcc->num_entries; i++) { in init_pass2()
369 RateControlEntry *rce = &rcc->entry[i]; in init_pass2()
371 qscale[i] = get_qscale(s, &rcc->entry[i], rate_factor, i); in init_pass2()
372 rcc->last_qscale_for[rce->pict_type] = qscale[i]; in init_pass2()
377 for (i = FFMAX(0, rcc->num_entries - 300); i < rcc->num_entries; i++) { in init_pass2()
378 RateControlEntry *rce = &rcc->entry[i]; in init_pass2()
383 for (i = rcc->num_entries - 1; i >= 0; i--) { in init_pass2()
384 RateControlEntry *rce = &rcc->entry[i]; in init_pass2()
390 for (i = 0; i < rcc->num_entries; i++) { in init_pass2()
391 RateControlEntry *rce = &rcc->entry[i]; in init_pass2()
401 if (index < 0 || index >= rcc->num_entries) in init_pass2()
403 if (pict_type != rcc->entry[index].new_pict_type) in init_pass2()
412 for (i = 0; i < rcc->num_entries; i++) { in init_pass2()
413 RateControlEntry *rce = &rcc->entry[i]; in init_pass2()
438 for (i = 0; i < rcc->num_entries; i++) { in init_pass2()
441 rcc->entry[i].new_qscale, in init_pass2()
442 rcc->entry[i].new_qscale / FF_QP2LAMBDA); in init_pass2()
443 qscale_sum += av_clip(rcc->entry[i].new_qscale / FF_QP2LAMBDA, in init_pass2()
453 (float)qscale_sum / rcc->num_entries); in init_pass2()
474 RateControlContext *rcc = &s->rc_context; in ff_rate_control_init() local
518 res = av_expr_parse(&rcc->rc_eq_eval, in ff_rate_control_init()
528 rcc->pred[i].coeff = FF_QP2LAMBDA * 7.0; in ff_rate_control_init()
529 rcc->pred[i].count = 1.0; in ff_rate_control_init()
530 rcc->pred[i].decay = 0.4; in ff_rate_control_init()
532 rcc->i_cplx_sum [i] = in ff_rate_control_init()
533 rcc->p_cplx_sum [i] = in ff_rate_control_init()
534 rcc->mv_bits_sum[i] = in ff_rate_control_init()
535 rcc->qscale_sum [i] = in ff_rate_control_init()
536 rcc->frame_count[i] = 1; // 1 is better because of 1/0 and such in ff_rate_control_init()
538 rcc->last_qscale_for[i] = FF_QP2LAMBDA * 5; in ff_rate_control_init()
540 rcc->buffer_index = s->avctx->rc_initial_buffer_occupancy; in ff_rate_control_init()
541 if (!rcc->buffer_index) in ff_rate_control_init()
542 rcc->buffer_index = s->avctx->rc_buffer_size * 3 / 4; in ff_rate_control_init()
555 rcc->entry = av_mallocz(i * sizeof(RateControlEntry)); in ff_rate_control_init()
556 if (!rcc->entry) in ff_rate_control_init()
558 rcc->num_entries = i; in ff_rate_control_init()
562 for (i = 0; i < rcc->num_entries; i++) { in ff_rate_control_init()
563 RateControlEntry *rce = &rcc->entry[i]; in ff_rate_control_init()
573 for (i = 0; i < rcc->num_entries - s->max_b_frames; i++) { in ff_rate_control_init()
587 av_assert0(picture_number < rcc->num_entries); in ff_rate_control_init()
588 rce = &rcc->entry[picture_number]; in ff_rate_control_init()
613 rcc->short_term_qsum = 0.001; in ff_rate_control_init()
614 rcc->short_term_qcount = 0.001; in ff_rate_control_init()
616 rcc->pass1_rc_eq_output_sum = 0.001; in ff_rate_control_init()
617 rcc->pass1_wanted_bits = 0.001; in ff_rate_control_init()
656 rcc->i_cplx_sum[rce.pict_type] += rce.i_tex_bits * rce.qscale; in ff_rate_control_init()
657 rcc->p_cplx_sum[rce.pict_type] += rce.p_tex_bits * rce.qscale; in ff_rate_control_init()
658 rcc->mv_bits_sum[rce.pict_type] += rce.mv_bits; in ff_rate_control_init()
659 rcc->frame_count[rce.pict_type]++; in ff_rate_control_init()
661 get_qscale(s, &rce, rcc->pass1_wanted_bits / rcc->pass1_rc_eq_output_sum, i); in ff_rate_control_init()
664 rcc->pass1_wanted_bits += s->bit_rate / get_fps(s->avctx); in ff_rate_control_init()
674 RateControlContext *rcc = &s->rc_context; in ff_rate_control_uninit() local
677 av_expr_free(rcc->rc_eq_eval); in ff_rate_control_uninit()
678 av_freep(&rcc->entry); in ff_rate_control_uninit()
683 RateControlContext *rcc = &s->rc_context; in ff_vbv_update() local
690 buffer_size, rcc->buffer_index, frame_size, min_rate, max_rate); in ff_vbv_update()
695 rcc->buffer_index -= frame_size; in ff_vbv_update()
696 if (rcc->buffer_index < 0) { in ff_vbv_update()
701 rcc->buffer_index = 0; in ff_vbv_update()
704 left = buffer_size - rcc->buffer_index - 1; in ff_vbv_update()
705 rcc->buffer_index += av_clip(left, min_rate, max_rate); in ff_vbv_update()
707 if (rcc->buffer_index > buffer_size) { in ff_vbv_update()
708 int stuffing = ceil((rcc->buffer_index - buffer_size) / 8); in ff_vbv_update()
712 rcc->buffer_index -= 8 * stuffing; in ff_vbv_update()
859 RateControlContext *rcc = &s->rc_context; in ff_get_2pass_fcode() local
860 RateControlEntry *rce = &rcc->entry[s->picture_number]; in ff_get_2pass_fcode()
878 RateControlContext *rcc = &s->rc_context; in ff_rate_estimate_qscale() local
894 s->last_pict_type == AV_PICTURE_TYPE_I ? rcc->last_mb_var_sum in ff_rate_estimate_qscale()
895 : rcc->last_mc_mb_var_sum; in ff_rate_estimate_qscale()
897 update_predictor(&rcc->pred[s->last_pict_type], in ff_rate_estimate_qscale()
898 rcc->last_qscale, in ff_rate_estimate_qscale()
905 if (picture_number >= rcc->num_entries) { in ff_rate_estimate_qscale()
909 rce = &rcc->entry[picture_number]; in ff_rate_estimate_qscale()
954 bits = predict_size(&rcc->pred[pict_type], rce->qscale, sqrt(var)); in ff_rate_estimate_qscale()
966 rcc->i_cplx_sum[pict_type] += rce->i_tex_bits * rce->qscale; in ff_rate_estimate_qscale()
967 rcc->p_cplx_sum[pict_type] += rce->p_tex_bits * rce->qscale; in ff_rate_estimate_qscale()
968 rcc->mv_bits_sum[pict_type] += rce->mv_bits; in ff_rate_estimate_qscale()
969 rcc->frame_count[pict_type]++; in ff_rate_estimate_qscale()
971 rate_factor = rcc->pass1_wanted_bits / in ff_rate_estimate_qscale()
972 rcc->pass1_rc_eq_output_sum * br_compensation; in ff_rate_estimate_qscale()
984 rcc->short_term_qsum *= a->qblur; in ff_rate_estimate_qscale()
985 rcc->short_term_qcount *= a->qblur; in ff_rate_estimate_qscale()
987 rcc->short_term_qsum += q; in ff_rate_estimate_qscale()
988 rcc->short_term_qcount++; in ff_rate_estimate_qscale()
989 q = short_term_q = rcc->short_term_qsum / rcc->short_term_qcount; in ff_rate_estimate_qscale()
995 rcc->pass1_wanted_bits += s->bit_rate / fps; in ff_rate_estimate_qscale()
1023 rcc->last_qscale = q; in ff_rate_estimate_qscale()
1024 rcc->last_mc_mb_var_sum = pic->mc_mb_var_sum; in ff_rate_estimate_qscale()
1025 rcc->last_mb_var_sum = pic->mb_var_sum; in ff_rate_estimate_qscale()