[转载]HEVC的快速模式选择(一)

读研了,然后方向不是以前的图像处理了,本科的时候做的那些图像处理的相关基础知识就算了浪费了,也无所谓吧,有个新方向学习也行,不过发现视频编码这块貌似真心是不太好学,这已经看了一个月的视频编码了,虽然用在上面的时间不是太多,但是还是感觉没有入门,现在在这里整理一下这段时间看的东西吧,boss让我写个technical report,英文的,我自己看的都不爽,所以在这里重写个自己看爽的中文版本吧。
首先HEVC,又称H.265里面,可能最重要的概念就是CU,PU,TU这三种了,他们三种之间的关系用下图我觉得表述是最清楚不过了。


CU,PU,TU三种在编码中起的关系不一样,不过这种编码方式还是基于混合编码,但是采用了这三种unit之后,能够更好的分割一张图像,变成一个一个的block用来后续的预测和处理。其中CU(coding unit)是用作帧间和帧内编码的基础模块,他的特点是方块,LCU是64x64,可以使用递归分割的四分树的方法来得到,大的CU适用于图像中比较平滑部分,而小的部分则适用于边缘和纹理较丰富的区域。
PU是预测的最基本的单元,是从CU中分割出来了,有SKIP,INTRA,INTER三种模式可以分割,PU可以使方形也可以使矩形,但是其分割不是递归的,与CU的分割还是有区别的。不对称的PU仅适用于帧间预测。下图可以形象的展示PU的分割和其与CU的关系。

TU是编码和量化的最基本的单元,它可以大于PU,但是却不可以大于CU的大小。TU的大小可以从4x4到32x32,并且TU也是方形了,所以说PU中不对称或者矩形的都必须进行继续的分割来得到一个方形的TU。从PU至TU的过程下图可以清晰看出。
[转载]HEVC的快速模式选择(一)



以上是前段时间看的基础知识,在这里马克一下吧,以防以后忘记了,而且这几个图个人觉得还是做得很不错的。上图均引用自 Video Compression Beyond H.264/AVC by O.Le Meur。
下面讲讲一个今天看的一篇论文的感觉吧,论文是

Fast Rate Optimization for the Emerging HEVC Standard by M. B. Cassa, M. Naccari, F. Pereira.

首先这个论文并太是个打酱油的论文,虽然没有什么复杂的数学计算,但是还是有点自己的东西,这方面的论文看的少,不知道它提出的东西是不是在其他的论文中已经提出来了,如果有,那么我还是很希望能够看下原版的。这个里面主要提出了top skip和early termination二种方面来减少计算量,意思就是因为RD的计算量太多,说依据我的观察,发现很多的时候RD计算不用计算的,那么具体为什么不用计算,这个是经验,在类似的论文里面好像都是这么做的,比如很多的论文都是使用Adaptive Threshold这种方法,这种方法被用烂了,以至于我看到用这种方法的论文基本上就直接跳过了。

这篇文章里说比较大的CU,前面可能是不用计算RD的,比如说这边连续几帧的四分树的深度都是3-4,那么我们就直接从3开始算起吧,那么这样不是会省很多的时间吧,所以在文中定义了一个
(居然不能复制公式进去,太弱了)

这里面的意思说我每次开始的深度是上次LCU中最小的一个深度,这样每次就不用从深度0开始了,最开始的几次就不用算RD了,剩下了一点点的时间吧,并且规定了一个来规避深度随着时间不断增大这样的bug,这个算法的设计还是具有一定的合理度的。这个用的就是每一帧之间的空间关联度,但是假如出现了场景切换这样的问题可能就很不适用了,最多只是适用了不变场景,但是对于发个paper来说不用考虑这些问题。

还有一个是Early Termination,这个是用了终止小的CU的RD的计算,意思是一般的情况下我分割到这个地方都不用分割了,为什么不用分割,因为前面几帧都是这么做的,所以我就根据前面几帧来判断我这一阵的CU分割到什么程度,这个计算和上面的计算都是经验所得,当然这个经验的正确性也值得商榷,但是思路我觉得还是不错的。这里面定义了

说当前的RD已经足够小了,这个足够意味着处于一个置信区间中,这个置信区间的数据是以前所有的相同深度的、相同模式的RD来确定,只是当前的RD足够小就不用去计算RD来判断当前的分割是不是已经最小了,在这里就直接默认了,当然肯定和上面的哪一个一样,也是具有各种不适用的情况的。


posted @ 2014-02-16 21:23  dreamsyeah  阅读(216)  评论(0编辑  收藏  举报