x264 deblock filter 代码解读

news/2024/11/27 21:46:54/

在x264源码里,void x264_frame_deblock_row( x264_t *h, int mb_y )函数中定义了如下的宏片段,这段代码旨在完成对MB的deblocking 操作,其中针对edge 取不同的值的时候,有的做deblocking, 有的不做,看这部分代码的时候我也是存在疑惑,后面结合H.264 spec draft, 一切就清楚明了了。
防止自己忘记,记录一下。

#define FILTER( intra, dir, edge, qp, chroma_qp )\do\{\if( !(edge & 1) || !transform_8x8 )\{\deblock_edge##intra( h, pixy + 4*edge*(dir?stride2y:1),\stride2y, bs[dir][edge], qp, a, b, 0,\h->loopf.deblock_luma##intra[dir] );\if( chroma_format == CHROMA_444 )\{\deblock_edge##intra( h, pixuv          + 4*edge*(dir?stride2uv:1),\stride2uv, bs[dir][edge], chroma_qp, a, b, 0,\h->loopf.deblock_luma##intra[dir] );\deblock_edge##intra( h, pixuv + uvdiff + 4*edge*(dir?stride2uv:1),\stride2uv, bs[dir][edge], chroma_qp, a, b, 0,\h->loopf.deblock_luma##intra[dir] );\}\else if( chroma_format == CHROMA_420 && !(edge & 1) )\{\deblock_edge##intra( h, pixuv + edge*(dir?2*stride2uv:4),\stride2uv, bs[dir][edge], chroma_qp, a, b, 1,\h->loopf.deblock_chroma##intra[dir] );\}\}\if( chroma_format == CHROMA_422 && (dir || !(edge & 1)) )\{\deblock_edge##intra( h, pixuv + edge*(dir?4*stride2uv:4),\stride2uv, bs[dir][edge], chroma_qp, a, b, 1,\h->loopf.deblock_chroma##intra[dir] );\}\} while( 0 )

H.264 spec draft 中,针对哪些情况要做deblocking 有如下描述:
在这里插入图片描述
在这里插入图片描述
针对luma 做了如下约束:
若transform_8x8 没有打开,则luma 的 edge 0 1 2 3 均要做filter, 否则只有edge 0 2 做filter;

针对chroma 做了如下约束:
1.如果是4:2:0的YUV 格式,edge 0 2 做filter;
2.如果是4:2:2的YUV 格式,vertical 方向,edge 0 2 做filter, horizontal 方向, edge 0 1 2 3 均做filter;
3.如果是4:2:2的YUV 格式, transform_8x8=0时,均做滤波, 否则 edge 0 2 做滤波;
4.其他的YUV 格式(不存在chroma 分量),则不做chroma 滤波;

好记性不如烂笔头,希望这次能彻底记住不忘记~


http://www.ppmy.cn/news/660733.html

相关文章

宇宙中最恐怖的行星之索伦之眼—北落师门b

人们想到北落师门B行星具有恐怖一面的仅是它的灰尘云看上去颇似“索伦之眼”,索伦之眼在科幻电影《魔戒》中充满着可怕的魔幻力量。但事实上这颗行星的神秘之处远不止于此。 离奇轨道 北落师门b行星是人类发现的第一颗以可见光直接观察的系外行星,是在南…

详解 物理学四大神兽————拉普拉斯兽

详解 物理学四大神兽————拉普拉斯兽 1814年法国数学家皮埃尔西蒙塔普拉斯构想了一种神兽名叫拉普拉斯兽。在拉普拉斯的设想中,这个神兽可以清楚地知道这个宇宙中每一个微观粒子的运动数据与运动状态。这时,我们就可以用简单基本的牛顿定律去计算所有…

python库安装位置_利维坦 电影 2015

利维坦 电影 2015新国民家轿,坦电奔腾造好车。 坦电全面座舱智能哈弗化。不同根据配置车型,坦电包括泊车泊车入位倒车功能新车行车循迹像等系统配备自动D驻自动还可仪、、远记录程3车影辅助辅助。 内饰马的了宝继承家族计方面式设,坦电、带的…

科里奥利力的方向

判断 参考系转动的角速度方向 根据右手定则&#xff0c;从上往下看&#xff0c;四指绕着物体转动方向&#xff0c;拇指指向的方向为角速度的方向。 科里奥利力向上&#xff1a; 科里奥利力向下&#xff1a; 向量外积 大小&#xff1a;ab |a||b|sin<a,b>c 方向&#…

王者荣耀,时间吞噬巨兽

王者荣耀是一款值得骂一顿的游戏&#xff0c;令人上瘾的排位赛机制、任务系统设计吞噬了大家大量的时间&#xff1b;层出不穷的皮肤、星元、新英雄和抽奖花费的是大家的金钱。我回头看了看我自己的数据&#xff0c;几个号加起来打了3000把左右&#xff0c;最高段位也才星耀II。…

驯服ACE巨兽(一)

&#xff0c;题目有点哗众取宠&#xff0c;不过称之为巨兽也不为过吧。 看了蛮长时间的ACE了&#xff0c;一直没怎么用&#xff0c;最近正好有机会需要实现SMGP协议&#xff0c;所以就想使用ACE来练练手。协议很简单&#xff0c;在此就不多说了&#xff0c;主要是ACE应用的问题…

DTOS帝拓思的3D引擎将取代游戏引擎巨兽,实现国产化替代

7月11日—7月22日为期两周的“科技瞭望塔”2022联想CVC创投周活动&#xff0c;正在北京联想全球总部进行。期间&#xff0c;联想新视界3D引擎Z-Engine 4.2在业界引起了剧烈反响。该产品系自主知识产权的国产3D引擎&#xff0c;联想新视界潜心研究数年&#xff0c;历经4代的发展…

《三体》读后思考-泰勒展开/维度打击/黑暗森林

前言 两个月前&#xff0c;老婆不知道吃错了什么药&#xff0c;心血来潮买了几本书&#xff0c;全是什么给孩子讲数学&#xff0c;量子物理之类的&#xff0c;小小才六岁啊…还有一部小说《三体》&#xff0c;当然&#xff0c;这肯定是她自己想看的了&#xff0c;也许是看到了…