AV1技术学习:Reference Frame System

一、Reference Frames

AV1 Codec 允许在其解码的帧缓冲区中最多允许保存 8 帧。对于一个编码帧,可以从解码的帧缓冲区中选择任意 7 个帧作为它的参考帧。编码端可以通过比特流显式地传输参考帧索引,范围从 1到 7。原则上,参考帧索引 1-4 为当前帧显示顺序之前的帧,而索引 5-7 则为当前帧显式顺序之后的帧。对于双向融合(bidirectional compound)预测,可以将两个参考帧组合起来生成预测值。

如果两个参考帧在当前帧之前或之后,这被认为是单向融合预测。实际上,编解码器可以将参考帧索引链接到被解码帧缓冲区中的任何帧,通过此方法可以保证它在两边没有足够的参考帧时填充所有参考帧索引。

运动估计理论上,通常认为单向融合预测不如双向融合预测准确。因此,允许的单向参考帧组合仅限于四对,即(1,2),(1,3),(1,4)和(5,7),但双向情况下的所有12种组合都被支持。这一限制将融合参考帧组合的总数从21个减少到16个。假设当前帧两侧的参考帧数量按照显示顺序上基本平衡,双向预测可能会提供更好的预测,当大多数参考帧位于当前帧的同一侧时,距离当前帧更近的参考帧可能和当前帧更相关。

当一帧编码完成后,编码器可以决定将该帧替换解码帧缓冲区中的哪个参考帧,并在比特流中显式地发出信号。此外,允许不将当前帧加入到缓冲区中,及可以不更新解码帧缓冲区。这对于某些帧与相邻帧不太相关的高动态视频特别有用。

二、Alternate Reference Frame

Alternate Reference Frame (ARF) 被编码并存储在已解码的帧缓冲区中,作为后续编码帧的参考帧,可以选择不显示。为了传输显示帧,AV1编解码器既可以编码一个新帧,也可以直接使用已解码帧缓冲区中的帧——这被称为“显示现有帧”。稍后直接显示的ARF可以有效地用于在金字塔编码结构中对未来的帧进行编码。

此外,编码器还可以选择合成一帧,该帧可以潜在地减少若干显示帧之间的集体预测误差。一个例子是沿着连续的原始帧的运动轨迹应用时间滤波来构建一个ARF,它保留了共同的信息,并且在很大程度上去除了每一帧的采集噪声。

编码器通常使用相对较低的量化步长对公共信息(即ARF)进行编码,以优化整体率失真性能。这里的一个潜在的缺点是,这会导致解码器需要处理额外的帧,这可能会扩大某些硬件的吞吐量。为了平衡压缩性能和解码器吞吐量,每个级别定义定义了允许解码采样率的上限,即最大解码率。由于解码的采样率是根据可显示帧和不用作“显示现有帧”的ARF中的样本总数计算的,因此它有效地限制了允许的合成ARF帧的数量。

三、Frame Scaling

AV1编解码器支持将原始帧缩放到较低的分辨率进行压缩,并将重建帧重新缩放到原始帧分辨率。

该方法对于一些帧过于复杂而无法压缩时适应目标流带宽范围时,特别有用。缩放系数限制在8/16-15/16的范围内。

首先将重建帧线性缩放到原始大小,然后使用环路重建滤波器(loop restoration filter )作为后处理阶段。线性上采样滤波器和环路恢复滤波器操作都是标准定义的。为了保持一个经济有效的硬件实现,除了常规帧解码的大小之外,不需要额外的行缓冲区费用,重新缩放过程被限制在水平方向上。解码帧上采样和滤波后的帧将作为编码后续帧的参考帧。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值