• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/minidlna/ffmpeg-0.5.1/libavcodec/

Lines Matching refs:rcc

67     RateControlContext *rcc= &s->rc_context;
109 rcc->rc_eq_eval = ff_parse(s->avctx->rc_eq ? s->avctx->rc_eq : "tex^qComp", const_names, func1, func1_names, NULL, NULL, &error);
110 if (!rcc->rc_eq_eval) {
116 rcc->pred[i].coeff= FF_QP2LAMBDA * 7.0;
117 rcc->pred[i].count= 1.0;
119 rcc->pred[i].decay= 0.4;
120 rcc->i_cplx_sum [i]=
121 rcc->p_cplx_sum [i]=
122 rcc->mv_bits_sum[i]=
123 rcc->qscale_sum [i]=
124 rcc->frame_count[i]= 1; // 1 is better because of 1/0 and such
125 rcc->last_qscale_for[i]=FF_QP2LAMBDA * 5;
127 rcc->buffer_index= s->avctx->rc_initial_buffer_occupancy;
141 rcc->entry = av_mallocz(i*sizeof(RateControlEntry));
142 rcc->num_entries= i;
145 for(i=0; i<rcc->num_entries; i++){
146 RateControlEntry *rce= &rcc->entry[i];
155 for(i=0; i<rcc->num_entries - s->max_b_frames; i++){
169 assert(picture_number < rcc->num_entries);
170 rce= &rcc->entry[picture_number];
198 rcc->short_term_qsum=0.001;
199 rcc->short_term_qcount=0.001;
201 rcc->pass1_rc_eq_output_sum= 0.001;
202 rcc->pass1_wanted_bits=0.001;
238 rcc->i_cplx_sum [rce.pict_type] += rce.i_tex_bits*rce.qscale;
239 rcc->p_cplx_sum [rce.pict_type] += rce.p_tex_bits*rce.qscale;
240 rcc->mv_bits_sum[rce.pict_type] += rce.mv_bits;
241 rcc->frame_count[rce.pict_type] ++;
245 q= get_qscale(s, &rce, rcc->pass1_wanted_bits/rcc->pass1_rc_eq_output_sum, i);
246 rcc->pass1_wanted_bits+= s->bit_rate/(1/av_q2d(s->avctx->time_base)); //FIXME misbehaves a little for variable fps
257 RateControlContext *rcc= &s->rc_context;
260 ff_eval_free(rcc->rc_eq_eval);
261 av_freep(&rcc->entry);
270 RateControlContext *rcc= &s->rc_context;
276 //printf("%d %f %d %f %f\n", buffer_size, rcc->buffer_index, frame_size, min_rate, max_rate);
280 rcc->buffer_index-= frame_size;
281 if(rcc->buffer_index < 0){
283 rcc->buffer_index= 0;
286 left= buffer_size - rcc->buffer_index - 1;
287 rcc->buffer_index += av_clip(left, min_rate, max_rate);
289 if(rcc->buffer_index > buffer_size){
290 int stuffing= ceil((rcc->buffer_index - buffer_size)/8);
294 rcc->buffer_index -= 8*stuffing;
309 RateControlContext *rcc= &s->rc_context;
330 rcc->qscale_sum[pict_type] / (double)rcc->frame_count[pict_type],
332 /* rcc->last_qscale_for[FF_I_TYPE],
333 rcc->last_qscale_for[FF_P_TYPE],
334 rcc->last_qscale_for[FF_B_TYPE],
335 rcc->next_non_b_qscale,*/
336 rcc->i_cplx_sum[FF_I_TYPE] / (double)rcc->frame_count[FF_I_TYPE],
337 rcc->i_cplx_sum[FF_P_TYPE] / (double)rcc->frame_count[FF_P_TYPE],
338 rcc->p_cplx_sum[FF_P_TYPE] / (double)rcc->frame_count[FF_P_TYPE],
339 rcc->p_cplx_sum[FF_B_TYPE] / (double)rcc->frame_count[FF_B_TYPE],
340 (rcc->i_cplx_sum[pict_type] + rcc->p_cplx_sum[pict_type]) / (double)rcc->frame_count[pict_type],
344 bits= ff_parse_eval(rcc->rc_eq_eval, const_values, rce);
350 rcc->pass1_rc_eq_output_sum+= bits;
380 RateControlContext *rcc= &s->rc_context;
383 const double last_p_q = rcc->last_qscale_for[FF_P_TYPE];
384 const double last_non_b_q= rcc->last_qscale_for[rcc->last_non_b_pict_type];
386 if (pict_type==FF_I_TYPE && (a->i_quant_factor>0.0 || rcc->last_non_b_pict_type==FF_P_TYPE))
393 if(rcc->last_non_b_pict_type==pict_type || pict_type!=FF_I_TYPE){
394 double last_q= rcc->last_qscale_for[pict_type];
401 rcc->last_qscale_for[pict_type]= q; //Note we cannot do that after blurring
404 rcc->last_non_b_pict_type= pict_type;
436 RateControlContext *rcc= &s->rc_context;
455 double expected_size= rcc->buffer_index;
464 q_limit= bits2qp(rce, FFMAX((min_rate - buffer_size + rcc->buffer_index) * s->avctx->rc_min_vbv_overflow_use, 1));
479 q_limit= bits2qp(rce, FFMAX(rcc->buffer_index * s->avctx->rc_max_available_vbv_use, 1));
488 //printf("q:%f max:%f min:%f size:%f index:%d bits:%f agr:%f\n", q,max_rate, min_rate, buffer_size, rcc->buffer_index, bits, s->avctx->rc_buffer_aggressivity);
650 RateControlContext *rcc= &s->rc_context;
654 rce= &rcc->entry[picture_number];
671 RateControlContext *rcc= &s->rc_context;
692 const int last_var= s->last_pict_type == FF_I_TYPE ? rcc->last_mb_var_sum : rcc->last_mc_mb_var_sum;
693 update_predictor(&rcc->pred[s->last_pict_type], rcc->last_qscale, sqrt(last_var), s->frame_bits);
698 assert(picture_number<rcc->num_entries);
699 rce= &rcc->entry[picture_number];
744 bits= predict_size(&rcc->pred[pict_type], rce->qscale, sqrt(var));
757 rcc->i_cplx_sum [pict_type] += rce->i_tex_bits*rce->qscale;
758 rcc->p_cplx_sum [pict_type] += rce->p_tex_bits*rce->qscale;
759 rcc->mv_bits_sum[pict_type] += rce->mv_bits;
760 rcc->frame_count[pict_type] ++;
763 rate_factor= rcc->pass1_wanted_bits/rcc->pass1_rc_eq_output_sum * br_compensation;
776 rcc->short_term_qsum*=a->qblur;
777 rcc->short_term_qcount*=a->qblur;
779 rcc->short_term_qsum+= q;
780 rcc->short_term_qcount++;
782 q= short_term_q= rcc->short_term_qsum/rcc->short_term_qcount;
789 rcc->pass1_wanted_bits+= s->bit_rate/fps;
810 rcc->last_qscale= q;
811 rcc->last_mc_mb_var_sum= pic->mc_mb_var_sum;
812 rcc->last_mb_var_sum= pic->mb_var_sum;
830 RateControlContext *rcc= &s->rc_context;
837 uint64_t all_available_bits= (uint64_t)(s->bit_rate*(double)rcc->num_entries/fps);
846 for(i=0; i<rcc->num_entries; i++){
847 RateControlEntry *rce= &rcc->entry[i];
850 rcc->i_cplx_sum [rce->pict_type] += rce->i_tex_bits*rce->qscale;
851 rcc->p_cplx_sum [rce->pict_type] += rce->p_tex_bits*rce->qscale;
852 rcc->mv_bits_sum[rce->pict_type] += rce->mv_bits;
853 rcc->frame_count[rce->pict_type] ++;
865 qscale= av_malloc(sizeof(double)*rcc->num_entries);
866 blurred_qscale= av_malloc(sizeof(double)*rcc->num_entries);
873 rcc->buffer_index= s->avctx->rc_buffer_size/2;
876 for(i=0; i<rcc->num_entries; i++){
877 qscale[i]= get_qscale(s, &rcc->entry[i], rate_factor, i);
882 for(i=rcc->num_entries-1; i>=0; i--){
883 RateControlEntry *rce= &rcc->entry[i];
889 for(i=0; i<rcc->num_entries; i++){
890 RateControlEntry *rce= &rcc->entry[i];
900 if(index < 0 || index >= rcc->num_entries) continue;
901 if(pict_type != rcc->entry[index].new_pict_type) continue;
909 for(i=0; i<rcc->num_entries; i++){
910 RateControlEntry *rce= &rcc->entry[i];
936 for(i=0; i<rcc->num_entries; i++){
938 i, rcc->entry[i].new_qscale, rcc->entry[i].new_qscale / FF_QP2LAMBDA); */
939 qscale_sum += av_clip(rcc->entry[i].new_qscale / FF_QP2LAMBDA, s->avctx->qmin, s->avctx->qmax);
948 (float)qscale_sum / rcc->num_entries);