HEVC的参考帧管理

DPB大小

参考帧是存放在DPB中的。所以谈到参考帧管理,必须先说明DPB的相关概念。

DPB是已解码帧缓冲区。即需要缓冲多少帧来完成所需的解码工作。当解码器完成解码一帧的动作之后,是否将当前帧的结果放入DPB呢?如何放置呢?HEVC定义了RPS来对其进行操作。RPS相关的操作是在解码CTU之前进行的。相比AVC中对参考帧进行的滑动窗管理或是标记操作,HEVC对参考帧的管理作了一定的简化。

在SPS中,(sps_max_dec_pic_buffering_minus1+1)说明了DPB的大小。已解码帧缓冲区(DPB)的大小以编码帧大小为单位。不同的级别定义了最大可能的图像大小,所允许的DPB的大小可以由这个允许图像的最大尺寸以及当前编码图像的尺寸的比率来推算。比如在级别5.1,允许大最大图像大约是4096x2160。如果现在要编码一个HD(1920x1080)图像序列,则允许的最大DPB数量是16,如果要编码4Kx2K图像序列,就只允许最大有6个DPB了。

需要指出的是,DPB大小并不是当前帧解码时所需要的参考图像数目。HEVC规定解一帧所需的参考帧数目不能超过8。具体从DPB中哪些帧用来解当前帧,是由RPS定义的。


RPS

HEVC中提出了RPS的概念来对参考帧的选择进行管理。

RPS也就是Reference Picture Set,即参考帧集。也就是可以选用的参考帧的集合。集合的每个元素是一种参考帧的排队方案。按照参考帧POC与当前帧POC的大小的相对关系排成一队。然后按照RPS的语法,来选出对应的reference_list_x。

对参考帧队列中的图像(即DPB中的图像帧)可分为三类:前向参考帧、后向参考帧和非参考帧。与H.264相似,前向、后向参考帧与list_0、list_1有关系,但不是对应关系。在构造参考帧列表时,会对DPB中的所有帧作遍历,将POC小于当前帧的作为前向参考帧备选,将POC大于当前帧的作为后向参考帧备选。这时,可以通过指定RPS中的ID值来选择用哪些帧来形成真正的参考帧列表。在即时RPS中,通过(与参考帧POC差,是否选入参考列表)两个参数对备选参考帧序列再作筛选,选出真正用于参考的参考帧序列。是不是其中标记为非参考帧的图像就可以被剔除出DPB了呢?当然不是,只是在当前RPS中的指定ID被选中时,这个图像不作为参考帧而已。

为了支持即时参考帧与长时参考帧,RPS分为两种,即时RPS与长时RPS、



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值