x264参数配置-preset

x264中preset等级有10个,表示编码速度的快慢。
相比tune,preset主要调节lookahead长度参考帧列表帧数量可用宏块划分模式运动搜索方法运动搜索窗口下采样质量是否使用B帧是否自适应B帧连续B帧数量权重预测方法direct方法trellis量化是否子块独立参考帧

static const char * const x264_preset_names[] = { 
"ultrafast", "superfast",  "veryfast", 
 "faster",  "fast",  "medium",  "slow", 
 "slower",  "veryslow",   "placebo", 0 };

ultrafast

 if( !strcasecmp( preset, "ultrafast" ) )	//特快
    {
        param->i_frame_reference = 1;		//参考帧数量1
        param->i_scenecut_threshold = 0;	//不使用场景切换判断
        param->b_deblocking_filter = 0;		//关闭环路滤波
        param->b_cabac = 0;					//使用cavlc
        param->i_bframe = 0;				//不适用B帧
        param->analyse.intra = 0;			//不允许intra子块划分,只能能有16x16
        param->analyse.inter = 0;			//不允许inter子块划分,只能有16x16和skip
        param->analyse.b_transform_8x8 = 0;			//不使用8x8dct
        param->analyse.i_me_method = X264_ME_DIA;	//菱形搜索运动估计
        param->analyse.i_subpel_refine = 0;			//不允许下采样运动搜索
        param->rc.i_aq_mode = 0;					//不使用adaptive qp
        param->analyse.b_mixed_references = 0;		//不允许宏块各划分子块独立参考
        param->i_bframe_adaptive = X264_B_ADAPT_NONE;//不使用B帧自适应
        param->rc.b_mb_tree = 0;					//不使用宏块树
        param->analyse.i_weighted_pred = X264_WEIGHTP_NONE;//
        param->analyse.b_weighted_bipred = 0;
        param->rc.i_lookahead = 0;					//码控lookahead队列大小0
    }

superfast

    else if( !strcasecmp( preset, "superfast" ) )	//超快
    {
		//这间参考只允许intra8x8和intra4x4
        param->analyse.inter = X264_ANALYSE_I8x8|X264_ANALYSE_I4x4;
        param->analyse.i_me_method = X264_ME_DIA;	//钻石搜索
        param->analyse.i_subpel_refine = 1;			//允许下采样运动搜索
        param->i_frame_reference = 1;				//参考帧列表1帧
        param->analyse.b_mixed_references = 0;		//不允许宏块各划分子块独立参考
        param->analyse.i_trellis = 0;				//不适用trellis量化
        param->rc.b_mb_tree = 0;					//不允许宏块树
        param->analyse.i_weighted_pred = X264_WEIGHTP_SIMPLE;//P帧权重预测
        param->rc.i_lookahead = 0;					//lookahead队列长度0
    }

veryfast

    else if( !strcasecmp( preset, "veryfast" ) )
    {
        param->analyse.i_subpel_refine = 2;			//下采样进度2
        param->i_frame_reference = 1;				//参考帧列表1帧
        param->analyse.b_mixed_references = 0;		//不允许宏块各划分子块独立参考帧
        param->analyse.i_trellis = 0;				//不适用trellis量化
        param->analyse.i_weighted_pred = X264_WEIGHTP_SIMPLE;//P帧权重预测
        param->rc.i_lookahead = 10;					//lookahead队列长度10
    }

faster

    else if( !strcasecmp( preset, "faster" ) )
    {
        param->analyse.b_mixed_references = 0;	//不允许宏块各划分子块独立参考帧
        param->i_frame_reference = 2;			//参考帧列表2帧
        param->analyse.i_subpel_refine = 4;		//下采样精度4
        param->analyse.i_weighted_pred = X264_WEIGHTP_SIMPLE;//P帧权重预测simple
        param->rc.i_lookahead = 20;			//lookahead队列长度20
    }

fast

    else if( !strcasecmp( preset, "fast" ) )
    {
        param->i_frame_reference = 2;		//参考帧列表2帧
        param->analyse.i_subpel_refine = 6;	//下采样质量6
        param->analyse.i_weighted_pred = X264_WEIGHTP_SIMPLE;//P帧权重预测simple
        param->rc.i_lookahead = 30;		//lookahead队列30帧
    }

medium

    else if( !strcasecmp( preset, "medium" ) )
    {
        /* Default is medium 
		   默认即medium */
    }

slow

    else if( !strcasecmp( preset, "slow" ) )
    {
        param->analyse.i_subpel_refine = 8;//下采样质量8
        param->i_frame_reference = 5;	//参考帧列表最多5帧
        param->analyse.i_direct_mv_pred = X264_DIRECT_PRED_AUTO;//direct预测模式自动
        param->analyse.i_trellis = 2;	//trellis量化 2
        param->rc.i_lookahead = 50;		//lookhead队列50帧
    }

slower

    else if( !strcasecmp( preset, "slower" ) )
    {
        param->analyse.i_me_method = X264_ME_UMH;	//运动搜索方法为非对称十字六边形网络搜索
        param->analyse.i_subpel_refine = 9;		//下采样质量9
        param->i_frame_reference = 8;		//参考帧列表8帧
        param->i_bframe_adaptive = X264_B_ADAPT_TRELLIS;//使用viterbi最优路径自适应决定B帧
        param->analyse.i_direct_mv_pred = X264_DIRECT_PRED_AUTO;
        param->analyse.inter |= X264_ANALYSE_PSUB8x8;	//允许低于8x8的inter,即8x4,4x8,4x4
        param->analyse.i_trellis = 2;					//trellis量化 2
        param->rc.i_lookahead = 60;				//lookahead队列60帧
    }

veryslow

    else if( !strcasecmp( preset, "veryslow" ) )
    {
        param->analyse.i_me_method = X264_ME_UMH;//运动搜索方法为非对称十字六边形网络搜索
        param->analyse.i_subpel_refine = 10;	//下采样质量10
        param->analyse.i_me_range = 24;		//运动搜索范围24像素
        param->i_frame_reference = 16;		//参考帧列表16帧
        param->i_bframe_adaptive = X264_B_ADAPT_TRELLIS;	//使用viterbi最优路径自适应决定B帧
        param->analyse.i_direct_mv_pred = X264_DIRECT_PRED_AUTO;//direct预测模式自动
        param->analyse.inter |= X264_ANALYSE_PSUB8x8;	//允许低于8x8的inter,即8x4,4x8,4x4
        param->analyse.i_trellis = 2;			//trellis量化 2
        param->i_bframe = 8;					//允许最多个连续B帧
        param->rc.i_lookahead = 60;				//lookahead队列60帧
    }

placebo

    else if( !strcasecmp( preset, "placebo" ) )
    {
        param->analyse.i_me_method = X264_ME_TESA;	//运动估计方法为TESA
        param->analyse.i_subpel_refine = 11;	//下采样运动估计质量11
        param->analyse.i_me_range = 24;			//整像素运动搜索范围
        param->i_frame_reference = 16;			//参考帧数量16
        param->i_bframe_adaptive = X264_B_ADAPT_TRELLIS;	//自适应B帧TRELLIS方法
        param->analyse.i_direct_mv_pred = X264_DIRECT_PRED_AUTO;//direct预测模式自动
        param->analyse.inter |= X264_ANALYSE_PSUB8x8;	//允许低于8x8的inter,即8x4,4x8,4x4
        param->analyse.b_fast_pskip = 0;		//关闭快速pskip决定
        param->analyse.i_trellis = 2;			//trellis量化 2
        param->i_bframe = 16;					//允许最多16个连续B帧
        param->rc.i_lookahead = 60;				//lookahead队列60帧
    }
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值