X264代码走读五(编码器扩边)

一、概述

      实际测试时,会发现输入编码器的是一组分辨率,但是编码出来的是另外一组分辨率。比如使用NV硬编码时,发现输入编码器的是1280*720的分辨率,但是实际输出的是1280*728的分辨率。这里面是为了模式遍历、模式选择,进行了扩边操作。

     因为硬件的内存一般都是64对齐,NV为了硬件解码的方便,按照64倍数对齐的。软件编码会按照标准协议约束进行扩边操作。

    下面走读X264代码,查看扩边的具体实现。

二、实现

1、x264_sps_init确定一个宏块的宽和高

X264代码走读五(编码器扩边)

 2、x264_encoder_encode函数在每次编码前会判断是否需要扩边

X264代码走读五(编码器扩边)

 3、x264_frame_expand_border_mod16,对分辨率不是16倍数的帧,增加pad位进行扩边 

X264代码走读五(编码器扩边)

上一篇:H.265


下一篇:x264 lookahead阶段详解