H264编码流程

 H264默认宏块划分16X16,其下还有子宏块

        y:16x16

        u,v:8x8

帧间预测,根据I帧运动矢量的补偿  

DCT离散余弦变换

        去除空间信号的相关性

        将差值变成一组系数(标准奇函数的加权值)。可重建残差值

量化(有损压缩)

       

熵编码

        量化后二次压缩(无损)

        1.变长编码:哈夫曼编码,指数哥伦布编码,CAVLC

        2.算数编码:CABAC (压缩率更高)

H.264原始码流NALU,分两层
。VCL: 包括核心压缩引擎和块,宏块和片的语法级别定义;
。NAL: 负责将VCL产生的比特字符串适配到各种各样的网络和多元环境中
        VCL数据封装进NAL单元 (NALU)

序列参数集:sps

图像参数及:pps

pps和sps是特殊得NALU,一个mp4只有一个sps,有很多个pps

sps在所有NALU最开头

FFmpeg预设编码器

 zerolatency:不能设置b帧

ABR平均比特率

        bit_rate

CQP恒定质量

        QP:量化因子,constant QP:CQP

        H.264QP范围从0到51

        x264默认23    (18效果较好)

        x265默认28    (25效果较好) 

 QP越低,质量越好,但空间会增大,无法控制比特率

av_opt_set_int(c->priv_data,"qp",10,0);

CBR恒定比特率(NAL填充,不支持mp4)

        av_opt_set_int(c->priv_data,"nal-hrd","cbr",0);

CRF恒定速率因子

        提供恒定质量,参数复杂,QP会变

        av_opt_set_int(c->priv_data,“crf","23",0);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值