GDM 2.1代码 环路滤波

1、环路滤波   loopfilter.c

DeblockFrame 对一帧进行滤波 

DeblockMb422  对宏块滤波  图像格式为4:2:2

DeblockMb  对宏块滤波 图像格式为4:2:0 或者4:0:0

DeblockFrame(ImageParameters *img, pel_t **imgY, pel_t ***imgUV)

ImageParameters   帧的各个参数的结构体

pel_t                         usigned char  

2、 DeblockMb

2.1得到当前宏块的首地址 SrcY,SrcU,SrcV
2.2得到当前宏块的首地址 MbQ
2.3 如果lf_desable 为1,则不滤波
2.4 for (dir=0;dir<2;dir++)先垂直方向,后水平方向
           a.  计算EdgeCondition, 如果为图像边界,则其值为0,否则为1
           b.  如果不是图像边界,判断是否为slice边界,如果是slice边界,则EdgeCondition 为0,否则为1
           for (edge=0;edge<2;edge++)  宏块是16*16的,最小滤波块为8*8
                       c. 如果是内边界(edge=1)或者EdgeCondition=1,则往下。
                       d. 得到相邻块P的宏块首地址 MbP
                       e. 计算QP的平均值
                       f.  计算边界强度值 GetStrength,  返回值 Strength
                       g. 如果边界强度 Strength 值不为0,则往下
                       h. 对边界进行滤波操作 EdgeLoop,输入SrcY
                       i.  如果imgUV不为空,即图像为4:2:0,否则为4:0:0,且edge为0
                       j. 计算QPchroma,通过查表得到色度的QP值,并求平均
                       k. 对当前边界进行滤波 EdgeLoop
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值