AVS2中的场景编码

场景视频的特点是会针对同一个场景长时间地捕捉画面。最典型的场景视频就是视频监控。随着社会的进步以及人类对安全越来越多的重视,视频监控系统在现代社会中应用越来越广泛。与其他视频不同的是,监控视频有着一种特殊的数据冗余——知识冗余中的背景冗余。图像中所包含的一些规律性的结构可由人们的先验和背景知识得到,此类数据冗余称为知识冗余。知识冗余是模型编码利用的主要特性,在传统视频编码中用的较少,主要是因为千变万化的视觉对象难以表达。但在监控视频中,场景的背景信息相对稳定。例如,建筑等背景对象长期不变,昼夜光线变化有一定的规律性,花草树叶等随着四季的节律周期性变化,雨雪的复杂自然现象重复出现时也有规律性。这种规律的或长期不变的背景信息冗余就是背景冗余。

 监控视频中的冗余特征

在监控视频中,有一种典型的视频暴露区预测编码冗余。具体而言就是当前图像的一些背景区域难以在最近参考图像或者长期参考的关键图像中找到相似的数据,但却可以通过建模产生背景图像,在背景图像中找到与这些背景区域更优的预测参考,从而提高编码效率。如下图所示,圈住的区域难以在最近参考图像和关键图像中找到预测参考,只能在建模背景图中找到。

图1  暴露区编码冗余示意图

(图片来源:《基于背景模型的监控视频编码研究》)

场景编码框架

AVS2中添加了背景帧预测编码技术,引入了新的帧类型背景帧G帧/GB帧和S帧,形成了新的编码框架。G帧是一种特殊的I帧,重建后存储在背景帧缓存里供后续参考。GB帧则是另外一种特殊的背景帧,它是利用原始图像训练、编码并重建的背景,并不对外输出,只保留在背景帧缓存中。S帧是一种特殊的P帧,只能参考G帧。与传统的基于块划分的混合编码框架相比,AVS2在编码框架中新加入了背景建模单元(其目的是构造一个不含前景对象的纯背景,从而为后续图像的编码提供更好的参考)、更新的基于背景帧的帧间运动补偿预测单元、背景帧缓存以及与背景建模和背景帧预测相关的控制逻辑,新的编码框架如下图所示(蓝色虚线的部分是场景编码的专用工具):

图2  AVS2中场景编码的编码框架

(图片来源:《基于背景模型的监控视频编码研究》)

新的编码框架在普通的视频编码框架上增加了6个模块。背景图像G /GB帧由初始化模块进行初始化后,由背景建模模块进行更新。更新后的G /GB帧可以认为是不包含前景噪声的背景图像,G /GB帧的重建图像将存储在背景帧缓存中,为后续待编码帧提供参考,直到生成新的背景帧来替换它。接着,S帧判决模块来决定是否参考G/GB帧来编码S帧,此时S帧和传统的I帧有相似的编码特性。因此,每个传统的I帧都是S帧的候选帧,例如每个GOP的第一帧,场景切换的第一帧等。

为了实现随机准入和差错恢复,S帧只包含帧内预测,SKIP模式和2N×2N帧间零矢量预测模式。此外,每一个P帧在图像层语法元素中,既可以选择以最近两帧为参考图像,也可以选择以最近参考帧和G/GB帧为参考图像进行编码。G/GB,S,P帧参考方式可以如下图所示。

图3  AVS2允许的帧参考关系

(图片来源: 《压缩效率翻倍的监控视频编码标准AVS-S2》)

背景建模

现有较优的背景建模算法,如混合高斯模型、均值漂移等,往往是为了实现更优的视频内容检测、识别和分析而设计的。这些方法需要在内存中保留整个训练图像,在计算过程中使用高精度的浮点运算,因此不适用于低复杂度、低存储代价的视频编码过程。AVS2中采用的是分段加权滑动平均背景模型。与滑动均值、均值聚类、多高斯、单高斯建模等方法相比,该方法可以获得平均意义上最优的编码性能和次低的内存资源代价。

分段加权滑动平均背景模型的思想是:在计算滑动均值的过程中,首先实时地将每个输入像素点的历史像素值划分成若干个数据段。随后,使用加权平均过程,根据每个数据段的均值和长度计算出最终当前像素位置的模型值。具体在实施过程中,以亮度分量为例,分为如下几步:

  1. 初始化:初始化建模背景值AVG和对应权重值W为0,并创建第一个视频段,该视频段的长度L和均值W值为0。
  2. 计算当前数据段的分割阈值:设μ为均值,σ2为方差,由于在正态分布中,|f(x)- μ|>2σ的概率小于4%,因而可使用2σ作为时域分割的阈值th。阈值th初始化值为14,然后按下面过程进行更新
  3. 创建新数据段或者扩展数据段长度:当发现相邻像素点的变化超过阈值,则创建一个新数据段,段长lenh+1=0;否则,当前数据段段长继续增加。
  4. 计算当前数据段的段长和均值。在当前数据段结束时,如果发现当前段长过小(小于总长度的1/20),则放弃段长较小的数据段,不计算其最终均值。如果当前数据段仍未结束,则段长lenh=lenh+1且滑动地计算当前数据段的均值avgh
  5. 计算和更新建模结果:在第k个数据段结束时,按照如下方式更新当前的模型值AVG和对应的权重W

循环进行2~5步,在整个训练集结束时就会得到每个像素位置最终的建模结果AVG,进而得到整个背景图像。

在上述过程,该方法通过滑动计算的方式不保存大量内存,仅需要保存当前数据段均值、当前数据段段长、过去总均值、过去总均值对应权重以及自适应更新阈值这五个参数就可以得到最终的建模结果;其次,该方法通过加强段长较长的数据段的权重,使得最终的均值与出现时间最多的内容相似,从而符合视频压缩中背景的含义,即出现频率较高的即为背景;再者,该方法的滑动计算过程不需要太多的乘除法运算,降低了背景建模的复杂度。另外,该方法与传统方法的显著区别之处在于,在建模过程中从未区分前景和背景像素,从而避免了前、背景精确分割这一难题。

场景编码工具的性能

相关测试结果表明,对于监控视频,AVS2中的场景编码工具可以大幅提高编码性能,下图是打开监控工具和未打开监控工具的BD-rate对比情况。

(数据来源:图书《Advanced Video Coding System》)

AVS2与HEVC针对监控视频的性能对比情况如下:

(数据来源:AVS2国标审定会资料)

 

基于块更新的背景参考帧技术

在今年的AVS工作组会议中,AVS2又采纳了一种新的背景帧更新方案——基于块更新的背景参考帧技术(BCBR)。该技术能够有效地避免因需要高质量编码GB帧而产生码率陡增的现象,同时还带来了一定程度的编码增益。该方案的做法是在每一帧编码图像中选择不超过一定比例的CTU作为背景刷新块,在编完一帧之后对背景帧参考图像进行刷新。

实验结果表明,对于监控视频序列,在LDP和RA配置下,在AVS2的参考软件RD17.1中新的背景参考帧技术可以带来32.2%和4.4%的BD-rate性能增益。

数据来源(AVS工作组提案M4136)

总结

监控视频在全球“大数据”中占据了半壁江山,AVS2标准中的场景编码技术为大幅度降低监控视频的传输和存储成本创造了巨大的技术和产业机遇,将促进视频监控产业行业实现跨越发展。