X264学习5-插值和滤波

本文深入探讨了X264编码器中的去块滤波过程,包括滤波参数初始化、宏块滤波强度设置、去块滤波函数及1/2像素插值的实现。详细解析了64位环境下的SSSE3汇编优化,提出了优化建议,如自适应滤波和插值机制。
摘要由CSDN通过智能技术生成

插值和滤波(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()中的语法元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值