ffmpeg,X264編碼結果I幀QP比P幀還大


 

 

enc_ctx->profile =FF_PROFILE_H264_MAIN ;
enc_ctx->time_base.den = 24;
enc_ctx->time_base.num = 1;
enc_ctx->gop_size = 8; /* emit one intra frame every twelve frames at most */
enc_ctx->pix_fmt = AV_PIX_FMT_YUV420P;
enc_ctx->max_b_frames = 0;
enc_ctx->has_b_frames = 0;
av_opt_set(enc_ctx->priv_data, "preset", "slow", 0); ///
av_opt_set(enc_ctx->priv_data, "tune", "zerolatency", 0);

enc_ctx->bit_rate = br ;
enc_ctx->rc_min_rate = br ;
enc_ctx->rc_max_rate = br ;
enc_ctx->bit_rate_tolerance = br;
enc_ctx->rc_buffer_size = br;
enc_ctx->rc_initial_buffer_occupancy = enc_ctx->rc_buffer_size*3/4;
enc_ctx->rc_buffer_aggressivity = (float)1.0;
enc_ctx->rc_initial_cplx = 0.5;
enc_ctx->i_quant_factor = -1;

基本設置,固定碼率150k,enc_ctx->i_quant_factor默認為 -1,編碼結果

[libx264 @ 005cbb40] frame I:38 Avg QP:36.34 size: 4044
[libx264 @ 005cbb40] frame P:262 Avg QP:35.27 size: 339

I的質量比P還差。

ffmpeg中i_quant_factor的解釋

/**
* qscale factor between P and I-frames
* If > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset).
* If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).
* - encoding: Set by user.
* - decoding: unused
*/
float i_quant_factor;

 

enc_ctx->i_quant_factor = -0.7;時:

[libx264 @ 006ecb40] frame I:38 Avg QP:36.11 size: 4067
[libx264 @ 006ecb40] frame P:262 Avg QP:34.89 size: 337

 

enc_ctx->i_quant_factor = -1.4;時

[libx264 @ 0276cb40] frame I:38 Avg QP:35.34 size: 4439
[libx264 @ 0276cb40] frame P:262 Avg QP:35.17 size: 280

enc_ctx->i_quant_factor = -2;時

[libx264 @ 02beda40] frame I:38 Avg QP:34.59 size: 4155
[libx264 @ 02beda40] frame P:262 Avg QP:33.71 size: 323

 

i_quant_factor 相當於x264的參數ipratio

默認值:1.40

修改I幀量化值相比P幀量化值的目標平均增量。越大的值會提高I幀的品質。

 

原因估計:應該是i_quant_factor 絕對值越大,I幀質量越好。還有猜測可能是碼率不夠,限制了I幀的比特數。

設置固定碼率300k時:

[libx264 @ 016dbb40] frame I:38 Avg QP:29.21 size: 6367
[libx264 @ 016dbb40] frame P:262 Avg QP:29.60 size: 622


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM