Lines Matching defs:rce
63 static inline double qp2bits(RateControlEntry *rce, double qp)
68 return rce->qscale * (double)(rce->i_tex_bits + rce->p_tex_bits + 1) / qp;
71 static inline double bits2qp(RateControlEntry *rce, double bits)
76 return rce->qscale * (double)(rce->i_tex_bits + rce->p_tex_bits + 1) / bits;
79 static double get_diff_limited_q(MpegEncContext *s, RateControlEntry *rce, double q)
83 const int pict_type = rce->new_pict_type;
146 static double modify_qscale(MpegEncContext *s, RateControlEntry *rce,
154 const int pict_type = rce->new_pict_type;
178 q_limit = bits2qp(rce,
198 q_limit = bits2qp(rce,
237 static double get_qscale(MpegEncContext *s, RateControlEntry *rce,
242 const int pict_type = rce->new_pict_type;
250 rce->i_tex_bits * rce->qscale,
251 rce->p_tex_bits * rce->qscale,
252 (rce->i_tex_bits + rce->p_tex_bits) * (double)rce->qscale,
253 rce->mv_bits / mb_num,
254 rce->pict_type == AV_PICTURE_TYPE_B ? (rce->f_code + rce->b_code) * 0.5 : rce->f_code,
255 rce->i_count / mb_num,
256 rce->mc_mb_var_sum / mb_num,
257 rce->mb_var_sum / mb_num,
258 rce->pict_type == AV_PICTURE_TYPE_I,
259 rce->pict_type == AV_PICTURE_TYPE_P,
260 rce->pict_type == AV_PICTURE_TYPE_B,
271 bits = av_expr_eval(rcc->rc_eq_eval, const_values, rce);
292 bits = qp2bits(rce, rco[i].qscale); // FIXME move at end to really force it?
297 q = bits2qp(rce, bits);
329 RateControlEntry *rce = &rcc->entry[i];
331 rce->new_pict_type = rce->pict_type;
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]++;
337 complexity[rce->new_pict_type] += (rce->i_tex_bits + rce->p_tex_bits) *
338 (double)rce->qscale;
339 const_bits[rce->new_pict_type] += rce->mv_bits + rce->misc_bits;
368 RateControlEntry *rce = &rcc->entry[i];
371 rcc->last_qscale_for[rce->pict_type] = qscale[i];
377 RateControlEntry *rce = &rcc->entry[i];
379 qscale[i] = get_diff_limited_q(s, rce, qscale[i]);
383 RateControlEntry *rce = &rcc->entry[i];
385 qscale[i] = get_diff_limited_q(s, rce, qscale[i]);
390 RateControlEntry *rce = &rcc->entry[i];
391 const int pict_type = rce->new_pict_type;
412 RateControlEntry *rce = &rcc->entry[i];
415 rce->new_qscale = modify_qscale(s, rce, blurred_qscale[i], i);
417 bits = qp2bits(rce, rce->new_qscale) + rce->mv_bits + rce->misc_bits;
420 rce->expected_bits = expected_bits;
562 RateControlEntry *rce = &rcc->entry[i];
564 rce->pict_type = rce->new_pict_type = AV_PICTURE_TYPE_P;
565 rce->qscale = rce->new_qscale = FF_QP2LAMBDA * 2;
566 rce->misc_bits = s->mb_num + 10;
567 rce->mb_var_sum = s->mb_num * 100;
573 RateControlEntry *rce;
587 rce = &rcc->entry[picture_number];
590 &rce->pict_type, &rce->qscale, &rce->i_tex_bits, &rce->p_tex_bits,
591 &rce->mv_bits, &rce->misc_bits,
592 &rce->f_code, &rce->b_code,
593 &rce->mc_mb_var_sum, &rce->mb_var_sum,
594 &rce->i_count, &rce->skip_count, &rce->header_bits);
626 RateControlEntry rce;
629 rce.pict_type = AV_PICTURE_TYPE_I;
631 rce.pict_type = AV_PICTURE_TYPE_B;
633 rce.pict_type = AV_PICTURE_TYPE_P;
635 rce.new_pict_type = rce.pict_type;
636 rce.mc_mb_var_sum = bits * s->mb_num / 100000;
637 rce.mb_var_sum = s->mb_num;
639 rce.qscale = FF_QP2LAMBDA * 2;
640 rce.f_code = 2;
641 rce.b_code = 1;
642 rce.misc_bits = 1;
645 rce.i_count = s->mb_num;
646 rce.i_tex_bits = bits;
647 rce.p_tex_bits = 0;
648 rce.mv_bits = 0;
650 rce.i_count = 0; // FIXME we do know this approx
651 rce.i_tex_bits = 0;
652 rce.p_tex_bits = bits * 0.9;
653 rce.mv_bits = bits * 0.1;
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);
859 RateControlEntry *rce = &rcc->entry[s->picture_number];
861 s->f_code = rce->f_code;
862 s->b_code = rce->b_code;
879 RateControlEntry local_rce, *rce;
908 rce = &rcc->entry[picture_number];
909 wanted_bits = rce->expected_bits;
912 rce = &local_rce;
938 av_assert0(pict_type == rce->new_pict_type);
940 q = rce->new_qscale / br_compensation;
941 ff_dlog(s, "%f %f %f last:%d var:%"PRId64" type:%d//\n", q, rce->new_qscale,
944 rce->pict_type =
945 rce->new_pict_type = pict_type;
946 rce->mc_mb_var_sum = pic->mc_mb_var_sum;
947 rce->mb_var_sum = pic->mb_var_sum;
948 rce->qscale = FF_QP2LAMBDA * 2;
949 rce->f_code = s->f_code;
950 rce->b_code = s->b_code;
951 rce->misc_bits = 1;
953 bits = predict_size(&rcc->pred[pict_type], rce->qscale, sqrt(var));
955 rce->i_count = s->mb_num;
956 rce->i_tex_bits = bits;
957 rce->p_tex_bits = 0;
958 rce->mv_bits = 0;
960 rce->i_count = 0; // FIXME we do know this approx
961 rce->i_tex_bits = 0;
962 rce->p_tex_bits = bits * 0.9;
963 rce->mv_bits = bits * 0.1;
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;
973 q = get_qscale(s, rce, rate_factor, picture_number);
978 q = get_diff_limited_q(s, rce, q);
992 q = modify_qscale(s, rce, q, picture_number);