hevc芯片设计--分像素运动估计
在Hevc标准中,分像素运动估计的亮度分量和色度分量的插值方法。以及HM中分像素运动估计的搜索方法,接着。探讨学术界中分像素运动估计的相关工作,这些工作的主要关注点在于如何优化搜索算法,以及简化插值方法,然后,提出了一种基于4步搜索策略的分像素运动估计算法和粗略运动向量预测CMVP方法,并进行了对应的FME硬件架构设计和VLSI实现,最后,我们对所提出的FME架构进行测试,展示了包括硬件面积和编码速度在内的指标结果。
6.1 概述
6.1.1 基本原理
自然场景中的图像一般是模拟和连续的,图像中物体的运动也是连续的,因此运动的偏移也不会是整像素的跳跃式运动,为了提高预测的准确性,分像素精度的运动估计被引入视频压缩编码技术中。需要注意的是,通过各种方式采样到的视频,本社并不包含分像素,分像素必须由整像素经过一定的插值计算才能得到,因此在整像素运动估计和分像素运动估计之间,需要在参考图像的搜索范围内进行分像素点的插值计算。
与H264标准类似,在H265标准中,对于视频序列的亮度分量,其分像素运动估计的精度为1/4像素,相应的,对于YUV4:2:0视频序列的色度分量,分像素运动估计的精度为1/8像素,但是相较于h264中使用的6抽头滤波器(用于1/2像素插值)和2抽头滤波器(用于1/4像素插值)。h265将更多的临近像素用于插值,在1/2亮度像素插值过程中,HEVC采用了8抽头滤波器,而在1/4亮度像素和3/4亮度像素的插值过程总,HEVC采用了7抽头滤波器,在色度像素的插值过程中,HEVC采用了4抽头滤波器,亮度插值的对应位置如图6-2所示,其中a和d时1/4精度像素插值位置,b和h时1/2精度像素,c和n时3/4插值位置的像素。
图6-2 亮度分像素插值示意
图中深灰色的部分时整像素点,首先就是需要依据这些整像素点进行插值,不同位置的分像素所用插值滤波器的系数不同,如表6-1所示。
表6-1 亮度分像素插值滤波器系数。
|
像素位置 |
抽头系数 |
|
1/4(0.25) |
-1,4,-10,58,17,-5,1 |
|
1/2 |
-1,4,-11,40,40,-11,4,-1 |
|
3/4 |
1,-5,17,58,-10,4,-1 |
观察图6-2可以发现,分像素位置分为两种,一种时与整像素点位于同行或者同列的分像素,另一种则是不与整像素同行或者同列的分像素,因此针对这两种不同的分像素,可以分为两部分别对他们进行插值。
首先对与整像素同行或者同列的分像素进行插值,如图6-2中的d,h,n这三个分像素,与整像素同行,因此使用垂直方向的整像素进行插值。同理,a,b,c与整像素同行,则使用水平方向的整像素进行插值,以a,h,c这三个分像素的插值公式为例
当与整像素同行或者同列的分像素插值完毕后,其余分像素也可以开始进行插值,例如,图6-2中的f,j,q。与已经插值完成的b分像素位于同列,因此使用b像素对他们进行分像素插值。其余6个与f,j,q类似的分像素也是如此。以i,f,r这三个分像素的插值公式为例。
f0,0 = (-b0,-3 + 4b0,-2 = 10b0,-1 + 58b0,0 + 17b0,1 - 5b0,2 + b0,3) >> 6
这中间9个分像素对应的插值计算公式在最后都会进行移位运算,等同于整体缩小了64.所有的插值像素都放大了64倍,这是为了在中间计算过程中保持高精度,在后续的预测环节,这些像素都会缩小64倍,进入正常的像素值范围,而9个分像素时在已经完成插值计算的a,b,c三个分像素基础上再进行计算的,为了使分像素的大小统一,这9个分像素在插值计算完成后需要统一除以64.
亮度分像素的插值完成后,就要进行色度分像素的插值,色度分像素的插值精度时1/8,因此需要插值的像素会更多,具体位置如图6-3所示。
与亮度分像素的插值十分类似,色度分像素插值也是分为两步,首先对整像素点同行同列的分像素点进行插值,然后对其余的分像素点进行插值,色度分像素插值滤波器系数如表6-2所示。
|
像素位置 |
抽头系数 |
|
1/8 |
-2,58,10,-2 |
|
2/8 |
-4,54,16,-2 |
|
3/8 |
-6,46,28,-4 |
|
4/8 |
-4,36,36,-4 |
|
5/8 |
-4,28,46,-6 |
|
6/8 |
-2,16,54,-4 |
|
7/8 |
-2,10,58,-2 |
分像素的计算公式与计算方法与亮度分像素一致,以(0,0)位置的ad,da,dd为例。
其余计算细节更不再赘述
HM中分像素运动估计采用了两步搜索法
(1)以整像素运动估计搜索出来的最佳整像素运动矢量为中心,得到其附近的8个1/2像素点,并插值得到这8个1/2像素点对应的亚像素参考块,计算着9个(8个1/2像素点和1个整像素点)的代价,取代价最小的点作为第1步的最佳亚像素运动矢量。
(2)以低1步的最佳亚像素运动矢量为中心,得到其附近的1/8个1/4像素点,并插值得到这8个1/4像素点对应的呀像素参考块,计算着9个点(8个1/4像素点和1个1/2像素点)的代价,取代价最小的点作为最终的最佳亚像素运动矢量。
如图6-4所示,黑色块代表起始的整像素运动矢量,灰色块代表第1步中国的8个1/2像素点,圆块代表第2步中的8个1/2像素点,每个PU仅仅需要16次插值和变换擦欧总。这大大降低了实现分像素运动估计的难度
。 在进行第5章整像素运动估计和本章分像素运动估计执勤啊,HEVC标准提出了Merge模式和AMVP模式,以达到节约编码比特,提高编码效率的目的
。
1 Merge模式
在Merge模式下,利用已经编码的PU的运动信息为当前PU建立一个运动矢量集,其中包含5个候选运动矢量,对其进行遍历,选择其中码率实现最小的一个直接作为当前PU的MV,代替当前PU的运动估计过程,这样大大降低了计算并且当前块的MV等于空域或者时域上相邻块的MV,不存在MVD,大幅节省去了编码MVD的比特数
。 空域5个候选,时域2个候选。
2 AMVP模式
高级运动向量预测AMVP,时Hevc标准提出一项技术,AMVP基本原理是对于当前正在搜索的预测单元PU。利用其时域和空域相邻块的运动矢量,为其建立一个候选预测矢量列表,包含两个预测运动矢量MVP[0]和MVP[1]。编码器从其中选择最优MVP,传递给运动估计模块作为搜索起点,运动估计完成后,得到MV与该MVP的值会非常接近,计算出来的MVD就会很小,用对MVD进行编码代替对MV进行编码,需要比特数大大减少,提升编码效率
。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)