【B2B研发商城】 【加入收藏】 【设为首页】 【进入论坛】 【站点地图】

你的位置:中国研发网 >> 专题频道 >> 流媒体开发 >> 详细内容 在线投稿

H264滤波模块分析

热度165票  浏览122次 【共0条评论】【我要评论 时间:2010年5月10日 15:06

基于块的帧内和帧间预测残差的DCT变换量化和树状运动补偿造成解码后的图像出现方块效应,由此在解码器中要加入去块效应滤波功能。H.264协议规定的滤波方法是环路滤波器。尽管滤波器能够极大提高图像质量和节省码流,但其算法复杂度非常高。究其原因是它具有高度的自适应性,其自适应性体现在几个层面:
Ø         边界层的自适应滤波

根据相邻块的编码模式和编码条件,来确定滤波的强度BS(Boundary Strength)。边界强度取值在0-4之间,其中0表示不进行滤波,4表示最强的滤波。色度块的BS直接采用相应的亮度块的BS值。

Ø         像素层的自适应滤波

只有在同时满足下列条件时才对相邻块的像素p2, p1, p0, q0, q1, q2 中的样值进行滤波:

1) BS > 0;

2) | p0 - q0|<a && | p1 - p0|<b && | q1- q0|<b

a和b是H.264协议规定的域值,它们随块p和块q的量化系数QP的平均值的增加而增大。可以理解,因为量化参数大,即量化步长大,造成的量化误差大,从而形成的块效应也必然大些,所以a和b的值该取更大,以对更多的样值点进行滤波。a和b的获取是通过查表来的,为了查表,定义了有索引indexa和indexb。

Ø         片层的自适应滤波

为了进一步优化重建视频的主观质量,协议在片头语法中定义了两个偏移量OffsetA和OffsetB,通过OffsetA和OffsetB来调整a和 b查表的索引值indexa和indexb,从而达到进一步调整a和 b,使得全局滤波强度更合理。

滤波实现:

宏块层的边界滤波顺序

1.         按从左到右顺序对亮度分量的四条垂直边缘进行滤波;

2.         按从上到下顺序对亮度分量的四条水平边缘进行滤波;

3.         按从左到右顺序对每个色度分量的两条垂直边缘进行滤波;

4.         按从上到下顺序对每个色度分量的两条水平边缘进行滤波;

然后根据滤波强度值来选择不同抽头的滤波器,修正边界两边的像素样值。

另:当宏块边界两边属于不同片时,是否滤波由码流语法元素disable_deblocking_filter_idc决定:

disable_deblocking_filter_idc = 0          都滤波

disable_deblocking_filter_idc = 1          都不滤波

disable_deblocking_filter_idc = 2          宏块边界不滤波,但内部要滤波

宏块左边界 是图像左边界;

 

         是disable_deblocking_filter_idc=1;

         是disable_deblocking_filter_idc=2且左宏块不可用;

         有一个成立就不滤波

宏块上边界 是图像上边界;

       是帧场自适应,图像上边界,场宏块;

       是帧场自适应,图像上边界,帧宏块,顶场;

       是disable_deblocking_filter_idc=1;

       是disable_deblocking_filter_idc=2且上宏块不可用;

       有一个成立就不滤波


滤波器算法实现流程

        对于MBAFF解码的滤波,关键是左上相邻宏块与当前宏块帧场属性的差异,对于上场下帧的情况,上边界需要做二次滤波。      不管是帧还是场,处理时牢牢抓住其本质,前者逐行取点,后者隔行取点,顶对顶,底对底,不论是当前宏块还是相邻的参考宏块,都是按图像象素实际物理位置来取的。

本站所有文章欢迎任何形式的转载,但请注明作者及出处,尊重他人劳动成果!
文章转载自:中国研发网 [http://www.yanfaw.com]
本文标题:H264滤波模块分析
顶:8 踩:6
对本文中的事件或人物打分:
当前平均分:0.94 (54次打分)
对本篇资讯内容的质量打分:
当前平均分:-0.45 (53次打分)
【已经有44人表态】
3票
感动
10票
路过
6票
高兴
5票
难过
8票
搞笑
5票
愤怒
5票
无聊
2票
同情
上一篇 下一篇
发表评论

网友评论仅供网友表达个人看法,并不表明本网同意其观点或证实其描述。

查看全部回复【已有0位网友发表了看法】