AV1去方块环路滤波
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_jpg_%7C_Pu7P4cXKvJVf6UFr39icSIQB1FxasGRiaicMnXTa4v1XOicCZFj2uxTDUibgXtNtJEicY9N146Wym8bjqAfPFhrmKOdg_%7C_0%3Fwx_fmt%3Djpeg.jpg)
本文介绍AV1编码器中的去方块滤波模块的原理设计、代码实现以及快速算法。
去方块环路滤波器用于解决重建图片中的块效应问题。该滤波器是在VP9去块滤波器的基础上开发的,本质上是一种低通滤波器,通过对边界求平均值保留低频部分达到滤波效果。可以作用于水平/垂直、亮度/色度边界部分。与H.26x系列不太一样的地方在于它的滤波系数是通过搜索得到的。
具体的滤波过程如图所示。
去方块滤波器根据横跨边缘的最小变换尺寸以及是否在多个滤波器之间切换
边缘的最小变换大小,并根据边缘周围的区域是否相对平坦,在多个滤波器之间进行切换。边缘周围的区域是否相对平坦。对于一个给定的块,垂直边缘首先被过滤,然后是对水平边缘的过滤。边缘的过滤。该过滤器的主要思想可以总结为以下几点。
1.边界两侧的像素如果显示出明显的数值差异,该边缘很可能是一个真正的边缘,就不会被过滤。
2.如果边界两边的像素要被过滤,则要根据如表中的准则选择过滤器。
DB的首先需要确定滤波的level和sharpness,两者都是帧级别的参数,其中对level参数,会在块级别依赖其他信息进行微调。
确定了滤波lvl和sharpness后,需要进一步确定出其他的参数,包含limit blimit thresh等。这些参数都是块级别的参数。他们首先依赖于frame-level的设置,再通过划分、编码模式、参考帧和像素数据等进行refine。
根据之前的结果选择并应用滤波器。此部分如所示流程图。右边两个图则分别表示了Filter4和Filter8所对应的情况。
AOM参考代码中给出了包含如图所示的几种快速算法。随着提速的变大,DB的压缩效率也越来越低。
对于硬件实现而言,执行真实的搜索从而得到不错的压缩表现是不切实际的,往往无法等到整帧编码完成再进行搜索和滤波。
最好可以在编码LCU的时候就知道DB的滤波参数系数大小,因此LPF_PICK_FROM_Q是比较合适的,其仅需要读取量化参数就可以推算出滤波系数。
对于DB而言,需要给以下五个部分的语法元素到熵编码模块中。包含亮度分量水平和垂直的滤波强度、色度分量u和v的滤波强度。以及强度阈值sharpness。
此图给出了AOM代码DB部分的代码逻辑,可以看到主要包含了两个分支,一个是对滤波强度的选择、另一个则是对实际执行滤波操作。可以看到函数av1_loop_filter_frame是复用的,表示了在滤波搜索的过程中也会进行滤波过程。
以上是参考资料。
关 注 我 们
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。