插值和滤波(version20100611)
程序运行设置
在插值和滤波,程序运行的设置为。
参数 | 含义 |
---|---|
–profile main | Main profile |
–preset faste | 参考图像两幅 |
–subme 2 | SATD判决模式, 1/4像素 |
–thread 1 | 一个线程 |
–rc-lookahead 0 | RC时,向前看的图像为0幅 |
–slices 4 | 一幅图像有4个slice |
插值和滤波的总体流程
插值和滤波的总体流程如下图。在x264中,滤波的最大单位为图像,下图为编码一幅图像时的滤波总体流程。
滤波流程包含了slice之间的边界滤波。Slice级的多线程编码,无法在slice编码过程中滤波。
滤波相关参数初始化x264_slice_header_init()
其在编码一帧图像前调用,主要是设置编码整帧图像的滤波参数。
设置三个参数,i_disable_deblocking_filter_idc、i_alpha_c0_offset、i_beta_offset,分别相当于标准中的disable_deblocking_filter_idc(位于slice_header())、FilterOffsetA、FilterOffsetB。三个参数的含义分别如下。初始化三个参数的含义
参数 | 含义 |
---|---|
i_disable_deblocking_filter_idc | 相当于slice_header中的语法元素disable_deblocking_filter_idc。对应的输入设置–no-deblock。当i_disable_deblocking_filter_idc=0,不进行去块滤波;否则进行去块滤波。 |
i_alpha_c0_offset | 相当于标准中变量filterOffsetA = slice_alpha_c0_offset_div2 << 1 slice_alpha_c0_offset_div2为slice_header()中的语法元素 |
i_beta_offset | 相当于标准中的变量filterOffsetB = slice_beta_offset_div2 << 1 slice_beta_offset_div2为slice_header()中的语法元素 |