源码分析系列(三)x264_deblocking_dataflow

本文详细介绍了X264编码器中去块滤波的关键函数及其工作原理,包括亮度和色度宏块的垂直及水平边界滤波算法,并解释了不同边界强度下滤波效果的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.cnblogs.com/xkfz007/articles/2616157.html

 

去块滤波(Deblocking)部分关键函数

3.1 deblocking_filter_edgev( x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP )

功能

对亮度宏块的垂直边界进行边界滤波性能。

输入项目

x264_t *h: 指向x264_t类型的结构体变量的指针变量;

uint8_t *pix: 指向uint8_t变量的指针,代表存储像素的内存地址;

int i_pix_stride:像素步长,对cif格式的亮度块来说是416,为352+64,64是左右两边分别进行了32个像素的扩边;

int bS[4]:边界强度,有0、1、2、3、4五个值。

int i_QP:量化参数

程序逻辑

    如附图10所示:

附图10: deblocking_filter_edgev流程图

3.2 deblocking_filter_edgecv( x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP )

功能

对色度宏块的垂直边界进行滤波。

输入项目

x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP

算法;

同亮度宏块垂直边界扫描,只不过色度宏块的尺寸比亮度块缩小一倍,为8x8;而色度子块的尺寸为2x2。

3.3 deblocking_filter_edgeh( x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP )

功能

对亮度宏块的水平边界进行滤波。

输入项目

x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP

算法;

同亮度宏块,只不过是进行水平边界的扫描。

程序逻辑

和亮度宏块的类似,略。

3.4 deblocking_filter_edgech( x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP )

功能

对色度宏块的水平边界进行滤波。

输入项目

x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP。

算法

同亮度宏块水平边界扫描,只不过色度宏块的尺寸比亮度块缩小一倍,为8x8;而色度子块的尺寸为2x2。

程序逻辑

和亮度宏块的类似,略。

3.5 x264_frame_deblocking_filter( x264_t *h, int i_slice_type )

功能

对一幅cif格式的图像进行边界滤波。

输入项目

x264_t *h:指向x264_t类型的结构体变量的指针变量;

int i_slice_type:slice的类型;

SLICE_TYPE_P = 0,SLICE_TYPE_B = 1,SLICE_TYPE_I = 2。

程序逻辑

    如附图11所示:

 
分类:  X264

 

转载于:https://www.cnblogs.com/stnlcd/p/7199227.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值