x264源码分析--bframes、b-bias参数

参数含义:bframes
最大连续b帧个数

b_bias:B帧插入强度,越大,b帧越多,


参数解析:
OPT("b-bias")
        p->i_bframe_bias = atoi(value);//B帧强度
        OPT("bframes")
            p->i_bframe = atoi(value);

代码逻辑:
i_score = fenc->i_cost_est[b-p0][p1-b];
        if( b != p1 )
            i_score = (uint64_t)i_score * 100 / (120 + h->param.i_bframe_bias);//如果是B帧,相当于cost要打折




if( pict_type != 'b' )
                rce->kept_as_ref = 1;
            switch( pict_type )
            {
                case 'I':
                    rce->frame_type = X264_TYPE_IDR;
                    rce->pict_type  = SLICE_TYPE_I;
                    break;
                case 'i':
                    rce->frame_type = X264_TYPE_I;
                    rce->pict_type  = SLICE_TYPE_I;
                    break;
                case 'P':
                    rce->frame_type = X264_TYPE_P;
                    rce->pict_type  = SLICE_TYPE_P;
                    break;
                case 'B':
                    rce->frame_type = X264_TYPE_BREF;
                    rce->pict_type  = SLICE_TYPE_B;
                    break;
                case 'b':
                    rce->frame_type = X264_TYPE_B;
                    rce->pict_type  = SLICE_TYPE_B;
                    break;
                default:  e = -1; break;
            }
x264_slicetype_path()
-->x264_slicetype_path_cost()

-->x264_slicetype_frame_cost()设置帧类型,每一帧的类型用一个字幕代替如P,I,B


b-pyramid

默认:normal
说明:允许B帧作为参照帧。如果关闭,那么只有I帧和P帧才能作为参照帧。可以作为参照帧的B帧的量化参数会介于P帧和普通B帧之间。只在–b-frames设置大于等于2时此选项才生效。如果是在为蓝光光盘编码,请使用none或者strict。
none —— 不允许B帧作为参照帧;
strict —— 一个图像组内只允许一个B帧参照帧,这是蓝光编码强制要求的标准;
normal —— 任意使用B帧参照帧;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值