一种针对监控应用的低复杂度高效视频编码方法
2021-10-12杨建仁马晓亮
[杨建仁 马晓亮]
1 引言
近年来,我国整体经济实力显著增强,但社会治安状况也日趋复杂,公共安全问题不断凸现,巨大的需求促进了安防行业的迅猛发展,目前视频监控已广泛应用于公安、金融、交通等各个行业和领域中。当前监控视频技术不断升级,视频码率的大幅增加,如何传输和存储高清视频成为一个重要技术难题。
感兴趣区域(Region Of Interest,ROI)编码是解决这种挑战的最早尝试。在带宽受限的视频通信领域中,ROI 编码将有限的比特数资源优先分配给用户感兴趣的目标区域,从而可以改善解码图像的主观视觉质量,如毋立芳等人[1]结合整型小波变换(Integar Wavelet Transform,IWT)和嵌入式零树编码实现了无损ROI 的图像近无损压缩,与此同时,又设计了一种小波变换域形状编码算法——树映射形状编码,实现对ROI 形状的高效描述,该形状编码方法的编码效率取决于ROI 的大小以及对非ROI 区域的质量要求。相对于单帧的静止图像,视频序列由一系列图像帧构成,需要处理的数据量更大,所以需要算法具有更低的复杂度,以满足实时性要求,Mei-Juan Chen 等[2]提出通过提取视频帧中的颜色信息,将具有肤色的区域作为ROI,然后运用低通滤波处理图像背景区域,减少背景区域待编码数据量,在编码过程中,通过调节宏块层码率控制中的失真权重参数调整不同区域的图像质量。考虑到视频图像内容的丰富多彩、变化多端,对感兴趣区域的实时准确分割在目前的技术条件下仍然是一项艰巨的任务,阻碍了该感兴趣区域编码的深入发展和广泛应用。
在监控应用中的视频存在一些特点:第一、视频背景不变,通过目前成熟的目标检测和分割方法可以准确提取出前景和背景;第二,监控应用的摄像机一般质量较差,再加上监控场景环境的变化,视频图像中噪声较大,这些噪声严重影响了编码效率。因此,本文提出了一种面向监控应用的低复杂度高效视频编码方法,针对监控应用中视频背景内容固定的特点,采用背景检测模块,提取出视频图像的前景和背景区域,分别对前景区域和背景区域采用不同的量化参数,完成差异性编码。试验结果表明,该编码方法针对监控视频,在保证目标图像区域质量的前提下,能够节省码率达到30%以上。
2 相关工作
目前已经广泛应用的运动目标检测与分割方法主要有:背景差分法,帧间差分法,基于统计模型的方法,光流法[3]。帧间差分法对场景光线的变化不敏感,当目标物表面大块区域灰度均匀时将会出现“孔洞”而使目标分割成多个区域;背景差分法是将当前视频帧与背景图像的差分来检测运动区域的算法,它能够提供最完整的运动目标信息,而且速度快,算法简单,检测准确。能满足系统实时性要求。但是对动态场景如光线、噪声等的变化却比较敏感,因此需要对背景做不断地更新。基于统计模型的方法,虽然能够较好的提取出帧序列中的背景并分割出运动物体,但是这种方法需要人们事先假定背景特征密度场分布。光流法采用了运动目标随时间变化的光流场物理特性,从而有效地提取出运动目标。其优点是在摄像机运动的条件下也能有效地分割出独立的运动目标。其缺点是计算特别复杂,计算量大而难以满足实时性要求。
3 本文提出的高效视频编码方法
本文提出的视频编码方法有四大步骤,分为背景检测、图像掩膜处理、宏块级掩膜生成、差异性编码,流程如图1 所示。
图1 本文所提出的编码方法流程图
3.1 背景检测
在本实施方式中采用基于统计模型的方法进行背景检测。背景模型的思想是对图像中每个像素的颜色值(灰度或彩色)进行建模。如果当前图像坐标(x,y)上的像素颜色值与背景模型中(x,y)上的像素颜色值有较大差异时,当前像素被认为是前景,否则为背景。高斯混合模型(Gaussian Mixture Model)通过多个高斯概率密度函数的加权平均来平滑地近似任意形状的密度分布函数,用该模型对背景进行建模时,对图像中每一个像素位置分别建立高斯混合模型。以坐标为(x,y)的像素位置的混合高斯模型为例,令I(x,y,t)表示像素点(x,y)在t时刻的像素值,则该像素值的概率P(I(x,y,t))为:
其中,K为高斯混合背景模型中高斯分布的个数,为t时刻第i个高斯分量的加权系数,也即权重。ni为第i个高斯分量的高斯函数,分别表示第i个高斯分量在t时刻的均值和方差。
对于一个像素的K个高斯分量,根据的值对它们从大到小进行排列,对于满足下式的前B个高斯分布被当作是背景模型:
其中,T是背景模型占有高斯分布的最小比例,通常为0.7,如果T太小退化为单高斯,T较大则可以描述复杂的动态背景。
对于当前像素(x,y,t),如果它的值I(x,y,t)与它的背景模型中第k(k<=B)个高斯分布匹配,即I(x,y,t)在范围之内,λ 设置为2.5,那么该像素被认为是背景,否则是前景。令输出图像为output,公式如下:
在检测完前景之后,若该像素被认为是前景,即前B个高斯分布中没有一个与之匹配,则用一个新的高斯分布取代权重最小的那个高斯分布。新的分布的期望值即为当前的像素值,同时为它分配一个较大的初始偏差和较小的初始权重值。
若该像素被认为是背景,则对该像素的各个高斯分布的权重做如下调整:
其中,α 为学习率,值在0~1 之间。如果第i个高斯分布与当前像素匹配,则,否则对于与当前像素匹配的高斯分布,更新它们的期望值和偏差值:
3.2 图像掩膜处理
对背景检测模块所提取出来的图像掩膜处理操作包括图像腐蚀和图像膨胀两部分。图像腐蚀使用一个全为1的3x3 矩阵扫描图像掩膜中的每一个像素,即矩阵的中心元素与当前图像像素位置对应(如图2 所示),用该矩阵中的每一个像素与其覆盖的图像像素做逻辑“与”操作,如果运算结果都为1,则该像素为1,否则为0;图像膨胀使用一个全为1 的3x3 矩阵扫描图像掩膜中的每一个像素,即矩阵的中心元素与当前图像像素位置对应(如图2所示),用该矩阵中的每一个像素与其覆盖的图像像素做逻辑“与”操作,如果运算结果都为0,则该像素为0,否则为1。
图2 图像腐蚀矩阵示意图感兴趣区域宏块级掩膜生成
3.3 感兴趣区域宏块级掩膜生成
假设经过图像腐蚀和图像膨胀操作后的图像掩膜结果为二进制掩膜output(x,y),其中(x,y)为像素坐标,如果output(x,y)为1,则表示像素坐标为(x,y)的像素为感兴趣区域,否则,则为背景区域(即非感兴趣区域)。考虑到视频编码均是以宏块(16x16)为基本单位,采用如下方式生成宏块级的图像掩膜:
对于坐标位置为(i,j)的宏块级图像掩膜的值通过以下步骤确定:
第一,从图像掩膜output中提取上角坐标为(16*i,16*j),右下角坐标为(16*(i+1)-1,16*(j+1)-1)的图像区域Mb;
第二,统计Mb 中像素值为1 的像素个数Num;
第三,确定坐标位置为(i,j)的宏块级图像掩膜的值。如果Num大于3,则宏块级掩膜位置为(i,j)的元素值mask(i,j)为1,否则,为0。其中,mask标识宏块级的图像掩膜。
3.4 差异性编码
如果当前帧为I 帧,则不进行感兴趣区域与背景区域的差异性编码;如果当前帧不是I 帧,则进行感兴趣区域与背景区域差异性编码。假设当前帧为的量化参数为,则坐标位置为(i,j)的宏块的量化参数为:
4 实验验证
如图3,对如图3(a)所示的原始视频图像分别进行H.264 编码和使用本文所描述的编码方法进行编码,视频的量化参数为30,编码帧数为300帧,没有B帧,使用H.264编码后的码流码率为419.99 kb/s,如图3(c)所示,而是用本文进行编码后的码流码率为197.66 kb/s,如图3(d)所示。除此之外,本文编码后的码流依然还是标准码流,不会造成码流结构的破坏。
图3 本文提出的编码方法与其它编码方法比较
5 结论
本文提出这种面向监控应用的低复杂度高效视频编码方法,针对监控应用中视频背景内容固定的特点,采用背景检测模块,提取出视频图像的前景和背景区域,分别对前景区域和背景区域采用不同的量化参数,完成差异性编码。
试验结果表明,该编码方法针对监控视频,在保证目标图像区域质量的前提下,能够节省码率达到30%以上。