解读HEVC视频标准的环内滤波
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(Δ) < tc*10),则顺序进行以下步骤:
滤波采样值p0’和q0’规定如下:
Δ = Clip3(-tc,tc,Δ)
p0’ = Clip1Y(p0+Δ)
q0’ = Clip1Y(q0-Δ)
If dEp等于1,则滤波采样值p1’规定如下:
Δp = Clip3(-(tc>>1),tc>>1,(((p2+p0+1)>>1)–p1+Δ)>>1)
p1’ = Clip1Y(p1+Δp)
if dEq等于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滤波和边缘周围像素点的使用
表2 QPc向qPi转换
tc = TC_TABLE[Clip3(0,53,qPC+2*(BS-1)+(tc_offset_div2<<1))]
BS > 1时,则Chroma滤波器将被开启
Δ = Clip3(-tC,tC,((((q0–p0)<<2)+p1–q1+4)>>3))
p0’ = Clip1C(p0+Δ)
q0’ = Clip1C(q0-Δ)
2.2.5 IPCM和TQByapss处理
在边缘包含IPCM CU且pcm_loop_filter_disable_flag = 0 OR TQByapss(无损耗)的情况下,像素(位于IPCM/TQBypass内部)将保持无滤波状态,而另外的一半则经过滤波处理,这就是说仅在边缘的一侧进行了滤波处理。我们通常采用以下两种方法完成:
1. 跳过一半的像素进行滤波处理
2. 在两端进行滤波,然后对包含IPCM/TQBypass CU的一半进行Recon像素替换。
2.3 DBLK语法元素(syntax element)
下面的语法元素会影响DBLK的运行,现以表格形式总结如下(带有范围和描述栏)。
表3 DBLK语法元素
3.0 SAO解码器滤波
本部分将对SAO滤波进行阐述,请参见HEVC视频标准[1]。这是一个将偏移添加到去块效应像素值的过程,这一添加过程是根据SAO类型(即根据边缘方向/边缘形状(边缘偏移aka EO)以及像素水平(频带偏移aka BO)或无变化(OFF))进行的。
偏移范围具有下列特征:
1. 8bpp的偏移幅度为[0, 7],10bpp的偏移幅度为[0, 31]。
2. 在BO情况下,发送信号实现非0幅度偏移。
3. 在EO情况下,根据边缘类型(1和2为(+)、3和4为(-))对信号进行作出推断。
3.1 边缘偏移(EO)
边缘偏移根据边缘方向可以分为四类(0度、90度、135度和45度),具体情况请参见下图。
图10 边缘偏移类型,即0度、90度、135度和45度
就选定的方向而言,与四个边缘形状一致的偏移有四个(即种类/边缘指数)。就边缘偏移而言,边缘指数被称为SAO子类型。下图显示了类别的不同类型。
图11 边缘偏移类型/边缘指标和像素映射
图12 边缘偏移类别选择逻辑或公式
如果偏移值属于给定的边缘偏移类型和种类的话,那么该偏移值就会被添加到每个去块效应像素值当中去,否则像素值则保持不变。
3.1.1 频带偏移(BO)
整个像素范围(8bpp为0-255)被平均分为了32个频带,如下图所示。
起始频带的后续频带中有四种偏移。起始频带编码连同四个偏移值被发送。起始频带位置还被称为频带偏移的SAO子类型。
评论