Lines Matching defs:rcc

81     RateControlContext *rcc   = &s->rc_context;
84 const double last_p_q = rcc->last_qscale_for[AV_PICTURE_TYPE_P];
85 const double last_non_b_q = rcc->last_qscale_for[rcc->last_non_b_pict_type];
88 (a->i_quant_factor > 0.0 || rcc->last_non_b_pict_type == AV_PICTURE_TYPE_P))
97 if (rcc->last_non_b_pict_type == pict_type || pict_type != AV_PICTURE_TYPE_I) {
98 double last_q = rcc->last_qscale_for[pict_type];
107 rcc->last_qscale_for[pict_type] = q; // Note we cannot do that after blurring
110 rcc->last_non_b_pict_type = pict_type;
149 RateControlContext *rcc = &s->rc_context;
167 double expected_size = rcc->buffer_index;
179 FFMAX((min_rate - buffer_size + rcc->buffer_index) *
199 FFMAX(rcc->buffer_index *
211 q, max_rate, min_rate, buffer_size, rcc->buffer_index,
240 RateControlContext *rcc = &s->rc_context;
261 rcc->qscale_sum[pict_type] / (double)rcc->frame_count[pict_type],
263 rcc->i_cplx_sum[AV_PICTURE_TYPE_I] / (double)rcc->frame_count[AV_PICTURE_TYPE_I],
264 rcc->i_cplx_sum[AV_PICTURE_TYPE_P] / (double)rcc->frame_count[AV_PICTURE_TYPE_P],
265 rcc->p_cplx_sum[AV_PICTURE_TYPE_P] / (double)rcc->frame_count[AV_PICTURE_TYPE_P],
266 rcc->p_cplx_sum[AV_PICTURE_TYPE_B] / (double)rcc->frame_count[AV_PICTURE_TYPE_B],
267 (rcc->i_cplx_sum[pict_type] + rcc->p_cplx_sum[pict_type]) / (double)rcc->frame_count[pict_type],
271 bits = av_expr_eval(rcc->rc_eq_eval, const_values, rce);
277 rcc->pass1_rc_eq_output_sum += bits;
312 RateControlContext *rcc = &s->rc_context;
320 (double)rcc->num_entries / fps);
328 for (i = 0; i < rcc->num_entries; i++) {
329 RateControlEntry *rce = &rcc->entry[i];
332 rcc->i_cplx_sum[rce->pict_type] += rce->i_tex_bits * rce->qscale;
333 rcc->p_cplx_sum[rce->pict_type] += rce->p_tex_bits * rce->qscale;
334 rcc->mv_bits_sum[rce->pict_type] += rce->mv_bits;
335 rcc->frame_count[rce->pict_type]++;
351 qscale = av_malloc_array(rcc->num_entries, sizeof(double));
352 blurred_qscale = av_malloc_array(rcc->num_entries, sizeof(double));
364 rcc->buffer_index = s->avctx->rc_buffer_size / 2;
367 for (i = 0; i < rcc->num_entries; i++) {
368 RateControlEntry *rce = &rcc->entry[i];
370 qscale[i] = get_qscale(s, &rcc->entry[i], rate_factor, i);
371 rcc->last_qscale_for[rce->pict_type] = qscale[i];
376 for (i = FFMAX(0, rcc->num_entries - 300); i < rcc->num_entries; i++) {
377 RateControlEntry *rce = &rcc->entry[i];
382 for (i = rcc->num_entries - 1; i >= 0; i--) {
383 RateControlEntry *rce = &rcc->entry[i];
389 for (i = 0; i < rcc->num_entries; i++) {
390 RateControlEntry *rce = &rcc->entry[i];
400 if (index < 0 || index >= rcc->num_entries)
402 if (pict_type != rcc->entry[index].new_pict_type)
411 for (i = 0; i < rcc->num_entries; i++) {
412 RateControlEntry *rce = &rcc->entry[i];
437 for (i = 0; i < rcc->num_entries; i++) {
440 rcc->entry[i].new_qscale,
441 rcc->entry[i].new_qscale / FF_QP2LAMBDA);
442 qscale_sum += av_clip(rcc->entry[i].new_qscale / FF_QP2LAMBDA,
452 (float)qscale_sum / rcc->num_entries);
473 RateControlContext *rcc = &s->rc_context;
517 res = av_expr_parse(&rcc->rc_eq_eval,
527 rcc->pred[i].coeff = FF_QP2LAMBDA * 7.0;
528 rcc->pred[i].count = 1.0;
529 rcc->pred[i].decay = 0.4;
531 rcc->i_cplx_sum [i] =
532 rcc->p_cplx_sum [i] =
533 rcc->mv_bits_sum[i] =
534 rcc->qscale_sum [i] =
535 rcc->frame_count[i] = 1; // 1 is better because of 1/0 and such
537 rcc->last_qscale_for[i] = FF_QP2LAMBDA * 5;
539 rcc->buffer_index = s->avctx->rc_initial_buffer_occupancy;
540 if (!rcc->buffer_index)
541 rcc->buffer_index = s->avctx->rc_buffer_size * 3 / 4;
554 rcc->entry = av_mallocz(i * sizeof(RateControlEntry));
555 if (!rcc->entry)
557 rcc->num_entries = i;
561 for (i = 0; i < rcc->num_entries; i++) {
562 RateControlEntry *rce = &rcc->entry[i];
572 for (i = 0; i < rcc->num_entries - s->max_b_frames; i++) {
586 av_assert0(picture_number < rcc->num_entries);
587 rce = &rcc->entry[picture_number];
612 rcc->short_term_qsum = 0.001;
613 rcc->short_term_qcount = 0.001;
615 rcc->pass1_rc_eq_output_sum = 0.001;
616 rcc->pass1_wanted_bits = 0.001;
655 rcc->i_cplx_sum[rce.pict_type] += rce.i_tex_bits * rce.qscale;
656 rcc->p_cplx_sum[rce.pict_type] += rce.p_tex_bits * rce.qscale;
657 rcc->mv_bits_sum[rce.pict_type] += rce.mv_bits;
658 rcc->frame_count[rce.pict_type]++;
660 get_qscale(s, &rce, rcc->pass1_wanted_bits / rcc->pass1_rc_eq_output_sum, i);
663 rcc->pass1_wanted_bits += s->bit_rate / get_fps(s->avctx);
673 RateControlContext *rcc = &s->rc_context;
676 av_expr_free(rcc->rc_eq_eval);
677 av_freep(&rcc->entry);
682 RateControlContext *rcc = &s->rc_context;
689 buffer_size, rcc->buffer_index, frame_size, min_rate, max_rate);
694 rcc->buffer_index -= frame_size;
695 if (rcc->buffer_index < 0) {
700 rcc->buffer_index = 0;
703 left = buffer_size - rcc->buffer_index - 1;
704 rcc->buffer_index += av_clip(left, min_rate, max_rate);
706 if (rcc->buffer_index > buffer_size) {
707 int stuffing = ceil((rcc->buffer_index - buffer_size) / 8);
711 rcc->buffer_index -= 8 * stuffing;
858 RateControlContext *rcc = &s->rc_context;
859 RateControlEntry *rce = &rcc->entry[s->picture_number];
877 RateControlContext *rcc = &s->rc_context;
893 s->last_pict_type == AV_PICTURE_TYPE_I ? rcc->last_mb_var_sum
894 : rcc->last_mc_mb_var_sum;
896 update_predictor(&rcc->pred[s->last_pict_type],
897 rcc->last_qscale,
904 if (picture_number >= rcc->num_entries) {
908 rce = &rcc->entry[picture_number];
953 bits = predict_size(&rcc->pred[pict_type], rce->qscale, sqrt(var));
965 rcc->i_cplx_sum[pict_type] += rce->i_tex_bits * rce->qscale;
966 rcc->p_cplx_sum[pict_type] += rce->p_tex_bits * rce->qscale;
967 rcc->mv_bits_sum[pict_type] += rce->mv_bits;
968 rcc->frame_count[pict_type]++;
970 rate_factor = rcc->pass1_wanted_bits /
971 rcc->pass1_rc_eq_output_sum * br_compensation;
983 rcc->short_term_qsum *= a->qblur;
984 rcc->short_term_qcount *= a->qblur;
986 rcc->short_term_qsum += q;
987 rcc->short_term_qcount++;
988 q = short_term_q = rcc->short_term_qsum / rcc->short_term_qcount;
994 rcc->pass1_wanted_bits += s->bit_rate / fps;
1022 rcc->last_qscale = q;
1023 rcc->last_mc_mb_var_sum = pic->mc_mb_var_sum;
1024 rcc->last_mb_var_sum = pic->mb_var_sum;