0
1.0引言
高效视频编码(HEVC)是H.264/MPEG-4AVC(高级视频编码)的一种升级版视频压缩标准(即ISO/IEC23008-2MPEG-H第2部分和ITU-TH.265)是由ISO/IEC动态图像专家组(MPEG)和ITU-T视频编码专家组(VCEG)共同编写的。与业界标准H.264相比,HEVC能够以几乎同样的视频质量实现半比特速率,并且有望在视频应用中得到广泛运用,其中包括:手机、广播、机顶盒、视频会议、视频监控、车载等。
下图显示了带有环路滤波的HEVC视频解码器结构图,突出显示的即为环路滤波。如图所示,它是一个可去除视频编码过程中块效应的两个级组成的级联,即去块效应滤波(DBLK)和采样自适应偏移(SAO)滤波。接下来的两部分内容将详细描述这个级。
带有环路滤波的HEVC视频解码器的结构和应用实例分析
带有环路滤波的HEVC视频解码器的结构和应用实例分析
图1HEVC视频解码器结构图
2.0去块效应滤波(DBLK)
本部分将阐述去块效应滤波,如HEVC视频标准[1]所述。去块效应滤滤器运行可大体可分为两部分:
1.滤波器边缘上的边界滤波强度(akaBS)计算
2.滤波器的实际运行
纵观整个去块效应滤波器运行,本文献采用了以下惯例:Q像素位于“纵向”滤波器的右侧,P像素位于“纵向”滤波器左侧。同样,Q属于“横向”滤波器边缘下方的像素,P属于“横向”滤波器边缘上方的像素。
图2环内去块效应滤波中称为惯例的相邻像素
2.1滤波器边缘强度(akaBS)
边界滤波强度[hor/ver][xpos][ypos]计算是在一个8x8网格上完成的,取值0、1、2,如下图所示:
虽然在8x8网格的每个像素边缘上都有滤波器(8x8结构包括4像素边缘),但就一个4像素段的所有像素而言,边界滤波强度计算的属性可以被组合。就强度计算而言,我们假设每个4像素段作为一个级。请注意,边界滤波强度计算取决于当前、左侧和顶部LCULCUinfo。
图3边界滤波强度(BS)结构图,在8x8网格中显示了边缘及其编号
2.1.1边界滤波强度功能概述
边界滤波强度计算是在一个8x8网格上完成的,设置图片为0,且分片边界(sliceboundarie)(ifloop_filter_across_slice_enabled_flag=0),Tile边界(loop_filter_across_tile_enabled_flag=0)。
只有8x8像素边界经过滤波,即预测单元(PU)和/或转换单元(TU)边界,滤波过程如下。
图4PU和TU部分的边界滤波强度(BS)与边缘调谐
边界滤波强度推导规则:
感兴趣的读者可参见HEVC规范,了解以下内容:
1.边界滤波强度的TU边界滤波强度推导:8.7.2.1章节
2.边界滤波强度的PU边界滤波强度推导:8.7.2.2章节
3.边界滤波强度推导:8.7.2.3章节
2.1.2色度边界滤波强度推导
只有8x8色度像素网格上的PU和/或TU边界得到滤波。色度边界滤波强度值源自亮度边界滤波强度值。就色度滤波器4:2:0(q0,p0)采样而言,从相应的(2q0,2p0)亮度采样(即BS{Hor/ver}[xpos/2][ypos/2]图中的2因素下行采样)获取边界滤波强度。
图5色度边界滤波强度映射:匹配到8x8网格然后除以2
2.2滤波器运行
该部分将阐述去除HEVC视频标准中特定块效应的实际滤波。
2.2.1滤波器的阶数
就HEVC而言,规定的滤波器阶数为帧级(不是LCU级),如下所示:
1.在整个帧处理过程中,对所有块的竖向边缘都进行了H滤波。
2.在整个帧处理过程中,对所有块的横向边缘都进行了V滤波。
滤波是完全独立的8x8滤波段,如图6所示:
图68x8块级独立滤波
是否需要亮度/色度(开启/关闭判定)滤波、滤波级别(弱滤波/强滤波)以及最终的实际滤波运行将在下面章节阐述。
2.2.2亮度滤波器开启/关闭以及弱/强滤波的判定
滤波器开/关判定和亮度强/弱判定是根据上图所示的四个行列段进行的。
如果边界滤波强度等于0,则按顺序进行以下步骤:
qPL=((QPP+QPQ+1)》》1),QPP和QPQ为亮度QPs
β=BETA_TABLE[Clip3(0,51,qPL+(beta_offset_div2》2))&&(|p3,0-p0,0|+|q3,0-q0,0|》3))&&(|p0,0-q0,0|》1)))dSam0=1
If((2*dpq3》2))&&(|p3,3-p0,3|+|q3,3-q0,3|》3))&&(|p0,3-q0,3|》1)))dSam3=1
如果(dSam0==1&&dSam3==1)dE=2(strongfilter);其他dE=1(弱滤波);
如果(dp》1))》》3))dEp=1//对滤波采样的数量进行弱滤波
If(dq》1))》》3))dEq=1//对滤波采样的数量进行弱滤波
图7去块效应滤波中滤波开/关以及滤波强度判定中的像素使用
表1qp、tc和β(BETA_TABLE和TC_TABLE)之间的关系
2.2.3亮度强滤波以及弱滤波
2.2.3.1亮度强滤波机制
4像素部分共享同一个判定(dE,dEp,dEq)
如果(dE==2),则进行强滤波以修改每端的三个像素
p0‘=Clip3(p0?2*tc,p0+2*tc,(p2+2*p1+2*p0+2*q0+q1+4)》》3)
p1’=Clip3(p1?2*tc,p1+2*tc,(p2+p1+p0+q0+2)》》2)
p2‘=Clip3(p2?2*tc,p2+2*tc,(2*p3+3*p2+p1+p0+q0+4)》》3)
q0’=Clip3(q0?2*tc,q0+2*tc,(p1+2*p0+2*q0+2*q1+q2+4)》》3)
q1‘=Clip3(q1?2*tc,q1+2*tc,(p0+q0+q1+q2+2)》》2)
q2’=Clip3(q2?2*tc,q2+2*tc,(p0+q0+q1+3*q2+2*q3+4)》》3)
图8亮度DBLK滤波和边缘周围像素点的使用
2.2.3.2亮度弱滤波机制
4像素部分共享同一个判定(dE,dEp,dEq)
如果(dE==1),则进行弱滤波以修改每端的一个或二个像素
D=(9*(q0–p0)-3*(q1–p1)+8)》》4
如果(aBS(Δ)》1),tc》》1,(((p2+p0+1)》》1)–p1+Δ)》》1)
p1’=Clip1Y(p1+Δp)
ifdEq等于1,则滤波采样值q1’规定如下:
Δq=Clip3(-(tc》》1),tc》》1,(((q2+q0+1)》》1)–q1–Δ)》》1)
q1’=Clip1Y(q1+Δq))
2.2.4色度滤波
只有8x8色度像素网格上的PU和/或TU边界得到滤波
边界滤波强度源自亮度(对每个方向进行2因素下行采样)(请参见色度边界滤波强度推导小节)
qPI=(((QPQ+QPP+1)》》1)+cqp_offset),其中此处的cqp_offset分别代表组件Cb/U和Cr/V的pic_cb_qp_offset和pic_cr_qp_offset。
下表的qPI包括了qPC
图9色度DBLK滤波和边缘周围像素点的使用
表2QPc向qPi转换
tc=TC_TABLE[Clip3(0,53,qPC+2*(BS-1)+(tc_offset_div21时,则Chroma滤波器将被开启
Δ=Clip3(-tC,tC,((((q0–p0)》3))
p0’=Clip1C(p0+Δ)
q0’=Clip1C(q0-Δ)
3.1.3边界条件处理
需要条件处理的有三种条件:
1.图像边界(上、下、左、右)
2.分片边界以及slice_loop_filter_across_slices_enabled_flag=0。跨跃分片滤波适用于给定分片边界的左侧和上侧边缘(并非所有方向)
3.瓦片边界和loop_filter_across_tiles_enabled_flag=0
在上述情况中,分片边界沿线的像素未被处理,具体取决于SAO类型。
就BO而言,所有像素都将被处理。
就EO而言,像素有效性将根据SAO类型进行,如果在边界条件下像素无效,其将跳过进行处理(即0漂移)。
下图对边界条件处理进行了描述。
图14SAO解码器的边界处理实例
3.1.4条件处理
在下列条件时,SAO滤波将关闭。
SAO类型idx=OFF
CU类型=PCM且环路滤波器被描述为PCM类型
CU类型=TQBypss(无损耗)
限幅电平SAO=OFF
双面板免费加费,四层板加急打样,厚铜电路板打样