新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 解读HEVC视频标准的环内滤波

解读HEVC视频标准的环内滤波

作者: 时间:2016-12-20 来源:网络 收藏

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子类型。



评论


技术专区

关闭