HEVC-帧间预测

HEVC新技术(一):基于MVC的AMVP技术 基于MVC(Motion Vector Competition)的AMVP(Advanced Motion Vector Prediction)技术 阅读详情

  •  AMVP

主要是利用相邻块的相关性,因为运动向量不会突变。

  • AMVP对象列表的构造

最初5个向量来自三类:

1.来空间相邻的3个运动向量

2.3个空间相邻向量的中值

3.一个来自co-located缩放的向量

对这个5个向量,还要重新排序,最有可能的放到第0个位置,还要去除一些冗余的对象。大量实验

最终,只有两个对象,来自:

1.从相邻5个中选出两个
2.当相邻空间5个不可用或者是一样的时候,从两个时间co-lated的向量中选择一个
3. zero motion vectors when the spatial, the temporal or both candidates are not
available

  • Spatial Candidates

向量的缩放仅仅当当前图像的参考图像和这个candidate图像的参考图像同时是短期参考图像是,才进行。 向量需要根据时间上参考图像和当前图像的距离(POC值差),进行缩放。缩放的公式如下:

  •  Temporal Candidate

 原理:由于当前块的右边和下面还没有解码,所以无法参考。就利用参考帧相同位置co-located的右边和下面的块的向量。

通过(sps/slice_temporal_mvp_enabled_flag)来决定是否使用时间参考向量。

上图c0代码右下,c1是中间。

  • AMVP的码流信息

1.inter_pred_idc,表明是否使用一个list0或者list1,或者都使用

2.ref_idx_l0/1, 表明使用的参考帧。

3.mvp_l0/1_flag, and its MVD,用来计算MV

4.MV (x; y),是一个candidates的index,预测参考向量

  • Inter-picture Prediction Block Merging

why:为什么要有这个模式?

answer:对于突然运动的物体,如果不引入无效的边界话,4分法块划分无法捕捉的运动向量。

  •  Merge Candidate List Construction

来自如下的两个:

1.从5个空间block中,选择4个作为merge candidates.
2. 从两个时间co-located块中,选择一个作为merge candidate.
• additional merge candidates including combined bi-predictive candidates and
zero motion vector candidates

  • Spatial Candidates

如上图,A1 is added to the list if available. Then, the candidates at the positions B1, B0, A0, and B2 are processed in that order. 

进行冗余检查,从如下的两个方面:

1.avoid having candidates with redundant motion data in the list

 Given the order of
{A1, B1, B0, A0, B2}, B0 only checks B1, A0 only A1 and B2 only A1 and B1

给定的顺序,B0检查B1,A0检查A1,B2仅仅与A1和B1比较。
2.prevent merging two partitions that could be expressed by other means which
would create redundant syntax

A1:

A1 can only be added into the list if the current PB, corresponding to X in Fig. 5(a), is not the left block of a CB vertically split into two partitions (PART−N×2N or PART−nL×2N or PART−nR×2N partitions in Fig. 2).

B1:

the candidate at position B1 can only be added into the list if the current PB is not the bottom block of a CB horizontally split into two partitions (PART−2N×N or PART−2N×nU or PART−2N×nD partitions in Fig. 2).

如果不遵循上述规则,这会形成2Nx2N的PU,带有相同的运动向量。

  • temporal Candidates

The temporal merge candidate includes one or two MVs depending on their availability in the collocated PU. The position of the temporal PB associated with the collocated PU is derived the same way as for AMVP

  • Additional Candidates

• Combined bi-predictive candidates


• Zero motion vector candidates

  •  Merge Motion Data的码流语法

 merge_flag:表明是否是Merge Motion

merge_idx :表明使用哪一个candidate

(five_minus_max_num_merge_cand):表明最多有多少个candidate

Skip模式:

• the CU only contains one PU (2Nx2N partition type)
• the merge mode is used to derive the motion data (merge_flag equal to 1)
• no residual data is present in the bitstream

  • Motion Estimation Regions

Typically, parallel motion estimation is performed such that all the MVs of PUs inside a region are estimated in parallel. Let us call these regions used for parallel motion estimation motion estimation regions (MER).

为了计算一个PU的运动信息,在同一个MER中其他的PU的运行信息不被使用。

  •  Fractional Sample Interpolation

为什么要进行分数像素的差值,因为运行在整数像素的位置是不准确的。HEVC对于半像素采用对称的8抽头滤波器,对于1/4像素采用非对称的7抽头滤波器。

  • Weighted Sample Prediction

 In principle, WP replaces the inter prediction signal P by a linearly
weighted prediction signal PO D w P C o, where w is an Illumination
Compensation weight and o is an offset

 

 

HEVC 高级运动向量预测技术(AMVP) 代码版本: VTHEVCDec 函数: fillMvpCand() 时间: 2015/8/26 作者: 林彬   高级运动向量预测技术(AMVP)利用空间、时间上运动向量的相关性,分别建立空域候选列表以及时域候选列表,再从候选列表中选取最终的MVP。   1、空域候选列表的建立        空域候选列表需要从上图5个参考块中选出两个候选MV。分别是a0,a1中选出一个 阅读详情

相关推荐

HEVC帧间预测原理

一、帧间预测基本原理 主要原理是为当前图像的每个像素块在之前已编码图像中寻找一个最佳匹配块,该过程称为运动估计( Motion Estimation,ME)。其中用于预测的图像称为参考图(Reference Frame),参考块到当前像素块的位移称为运动向量(Motion Vector, MV),当前像素块与参考块的差值称为预测残差( Prediction Residual )。 二、原理展开 如果说按照每个像素去参考帧上面去找一个最匹配的像素,然后传输像素到参考像素的位移信息,那么编码...

dawnminghuang的专栏 2651

HEVC代码学习——帧间预测:预测MV获取(xEstimateMvPredAMVP、fillMVPCand)

HEVC帧间预测在AMVP模式下是依靠xEstimateMvPredAMVP函数获取预测MV(MVP)的。 xEstimateMvPredAMVP的作用是建立MVP列表并获取最优MVP,最终将最优MVP以及其索引等信息返回给上层函数——preInterSearch

zzz_zzz12138的博客 1645

HEVC的帧间预测解码(5)

在(1)到(4)中,已经详细介绍了运动向量(mv)的解码,得到mv之后,即可从参考图像中得到运动补偿的参考值。 输入包括: 当前解码块的左上角亮度坐标(xCb, yCb ); 当前预测块相对于当前解码块的左上角亮度坐标( xBl, yBl ); 指示当前解码块大小的变量nCbS; 当前解码块的大小(nPbWx nPbH) 亮度运动向量mvL0 和 mvL1 色度运动向量m

面海烹鲜的博客 2019

hevc AMVP模式

AMVP

fantasy_ARM9的博客 642

HEVC中的帧间预测

帧间预测的基本原理:利用相邻的已经编码的图像为当前编码块寻找最佳匹配块,把这个最佳匹配块作为当前块的预测值,然后将预测值和当前块的原始像素值相减,得到当前块的残差值,后续的变换、量化等操作都是基于残差值进行的。 运动估计:利用预测的运动矢量为当前编码块在参考帧上寻找一个最佳匹配块作为当前块的预测值,并得到残差值的过程 常见的一些有关帧间预测的缩略词: ME指的是运动估计 MC指的是运动补偿 M...

weixin_45615071的博客 1448

通俗易懂——HEVC帧间预测简要知识点总结

帧间预测 预测编码分为帧内编码和帧间编码;本文主要简单介绍帧间编码的原理流程 1.帧间预测编码原理 帧间预测是利用图像帧与图像帧之间的相关性,也就是 视频时间域的相关性,通过已编码像素预测当前块的像素,有助于去除视频时域冗余,大大压缩数据。帧间预测编码比帧内预测编码压缩比要大得多。 帧间预测主要的工作是运动估计与运动补偿。 2.帧间预测编码关键技术 1)运动估计 2)MV预测 3)多参考图像及加权预测 运动估计 MV预测技术 加权预测 ...

小惊大怪的博客 3903

HEVC帧间预测

经过一个月奋斗,终于7门考试考完了,继续来学习HEVC。 之前由于并没有用到帧间预测的东西,没有对帧间预测进行学习,现在来具体学习一下。帧间预测是利用视频时间域的相关性,使用邻近已编码图像像素预测当前图像的像素,以达到有效去除视频时域冗余的目的。目前主要采用基于块的运动补偿技术,原理是为当前图像的每个像素块在之前已编码图像中寻找一个最佳匹配块,即运动估计。用于预测的图像称为参考图像,参考块到当前像

慢慢积累 1万+

HEVC算法和体系结构:预测编码之帧间预测

预测编码之帧间预测(Inter-Picture Prediction)           帧间预测是指利用视频时间域相关性,使用临近已编码图像像素预测当前图像的像素,以达到有效去除视频时域冗余的目的。由于视频序列通常包括较强的时域相关性,因此预测残差值接近于0,将残差信号作为后续模块的输入进行变换、量化、扫描及熵编码,可实现对视频信号的高效压缩。   一、帧间预测编码原理      

成长Bar的博客专栏 5806

HEVC之帧间预测

帧间预测 HEVC 采用了基于块的运动补偿预测 (Motion compensated prediction, MCP) 来去除视频的时域冗余。假设一个 PU 块内所有像素的运动是均匀的,对于每个块,其可以在已解码的图像(参考帧)中找到对应的块作为预测(但实际上,HEVC 的平移运动模型无法表示物体的复杂运动)。 HEVC 的帧间预测主要分为 2 种模式,高级运动矢量预测 (Advanced Motion Vector Prediction, AMVP) 加上运动估计 (Motion Estimation,

FangZ142的博客 1628

HEVC的帧间预测解码(1)

1.概述        HEVC的帧间预测过程的复杂程度实在是令人发指。     我从解码角度详细分析一下,由于细节非常多,难免有错误。     帧间预测(inter prediction)过程为解码提供帧间预测值(predSamples[x][y]),对应标准8.5.2中的内容。     简单说,帧间预测就是以预测块(PU,prediction unit)为单位,计算PU的运动向量(MV

面海烹鲜的博客 4412

HEVC帧间预测实现(HM实现)

帧间预测简要流程 Inter 进行解码的基本单位是pu, 读一个pu 相关的信息,然后解码相应的pu块。 pu块的信息包括mv的信息等,解码pu块就是利用mv 从相应的参考帧中去出参考的块,然后利用参考块插值或者不插值出预测块。 1、参考帧数据的来源 主要是m_apcRefPicList这个参考数据是怎么得来的,有调用getRefPic( RefPicListe, IntiRefIdx) 实际是返回的m_apcRefPicList。 TComPic*...

dawnminghuang的专栏 942

HEVC 帧间预测技术总结

代码版本:VTHECDec 代码函数:motionCompensation 时间:2015/3/9 作者: LB帧间MV预测的函数调用流程图如下图: 由上图可以看出,函数motionCompensation()分别调用流程图后续的函数,完成帧间MV预测运动补偿过程。整个过程主要有三部分,下面分开说明。第一:函数getpuNum() 作用:根据Cu到Pu的划分方式,计算Pu的个数。返回

linpengbin的专栏 5448

HEVC的帧间预测解码(2)

3.2 计算空域候选值 接着上一篇文章HEVC的帧间预测解码(1)继续讲merge模式的mv计算。 根据流程,第一步就是M1.计算空域候选值。 中间的方块代表当前的PU,A0, A1, B0, B1. B2的几何位置如图所示。 1. A1的计算 A1的坐标为( xPb − 1,  yPb + nPbH − 1 )

面海烹鲜的博客 2644

HEVC帧间预测流程梳理

HEVC帧间预测流程 前言:最近在琢磨hevc理论知识,看着那本书绕过去绕过来咋也没把流程想通,去找了师兄说耽误他一分钟,结果叭叭叭了六小时哈哈哈哈。 最后还是感谢师兄给我解答问题,我写这篇文章主要是为了帮自己梳理一次帧间预测的流程(防止自己以后忘记了)。 那么首先要明确几个基本概念: 运动矢量(MV):运动矢量是指当前块相较于自己的参考帧某个块所移动的距离大小, 分别是(Δx,Δy) (注:MV是单指运动的距离大小,并不包括其参考帧索引。) 运动数据(Motion Parameters):运动数据包含运

Tiger_Lin3的博客 1365

HEVC的帧间预测解码(3)

3.5 计算组合双向预测参考值(M7) 接着上一篇文章HEVC的帧间预测解码(2)继续讲merge模式的mv计算。

面海烹鲜的博客 1862

HEVC预测编码原理介绍

HEVC预测编码介绍

世界那么大,我想去看看~【随心更新,看世界去了😄】 2211

HEVC ---HEVC/h.265的帧间预测

一、帧间预测 利用相邻图像中已经编码的像素生成预测值,生成预测值之后,和原始的值相减,得到残差,后续的变换量化等操作就是基于残差进行处理的。 主要原理:为当前的PU在参考帧上寻找一个最佳的匹配块,这个找到的匹配块就可以当作预测值,这个过程就是运动估计。但是注意,运动估计不是一步就位的,它需要在整像素的基础上进行运动补偿(即进行插值),然后进行1/2、1/4像素精度的运动估计,最后得到最优的匹配块...

Guardian_Bud 1171

Python批量注册脚本开发详细

开发一个Python批量注册脚本需要考虑多个方面,包括目标网站的注册流程、验证码处理、请求发送、数据存储等。以下是一个详细的开发流程和代码示例,用于实现基本的批量注册功能。

nsp202505的博客 3346

HEVC帧间预测模式获取

昨天尝试用markdown编辑博客文章,结果将生成的html文件导入博客编辑的时候失败,还真是郁闷。暂时先不纠结用什么编辑BLOG的事了,还是赶紧看看HEVC帧间预测模式 吧。 现在我想知道每个编码CU的预测模式的情况,那么首先就是看代码如何存储这些信息的了。昨天,我已经列出了编码CU需要遍历的所有的模式所调用的函数,这些函数计算编码模式代价值之后,选...

227

基于Autoware制作高精地图(一)

基于Autoware制作高精地图(一) ​开始进入正题,也是最近在忙的一件事,制作高精地图。 高精地图的制作大概分为以下四个流程(不一定完全正确): 1.构建点云地图; 2.点云地图标注; 3.制作OpenDrive地图; 4.地图存储索引。 这篇文章主要讲解如何构建点云地图。 首先我们要有一段自己录制的激光雷达点云数据,这里推荐大家采用Velodyne16线激光雷达,因为这里我们构建的点云底图是三维的,而采用Velodyne而不是速腾聚创(rslidar)等其他品牌的原因是Autoware里面有一个选项是

weixin_44570248的博客 7799

C#通过Aforge调用电脑摄像头(附代码)

C#标准库本身不带有能调用电脑摄像头的库,如果利用windows自身的API来实现的话,着实有些麻烦。Aforge这个第三方库能很好的实现调用、处理的功能。 PS:文末给大家分享了完整的项目源码,各位最好先下载下来,对照着来看 1、先看一下效果 2、Aforge介绍 AForge.NET是一个专门为开发者和研究者基于C#框架设计的,这个框架提供了不同的类库和关于类库的资源,还有很多应用程序例子,包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,机器人等领域。 3、我使用的开发环境 操作系统

weixin_44996090的博客 1万+
上一篇: AVC与HEVC的差异-帧内预测
下一篇: HEVC Transform and Quantization
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值