微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > MPEG-4在视频监控应用中的软件实现

MPEG-4在视频监控应用中的软件实现

时间:06-25 来源:北京科技大学 信息工程学院 点击:

能较好的将前景运动对象从背景中分离出来,算法详见。

3.2 Sprite 编码
Sprite 编码是新一代的编码技术,它利用全局运动估计生成视频段背景的Sprite 图像(全景图),然后将这个Sprite 图像编码,以后各帧的背景编码都只是对该帧相对于Sprite 图像的运动参数进行编码。基于背景的平滑和纹理相关性大的特点,对Sprite 全景图的编码采用一种直接空间预测方法,基于篇幅限制,这里不作介绍,可参考[2]。Sprite 编码包括两部分,一是Sprite 的生成,使用全局运动估计来生成;二是Sprite 编码。Sprite 在最初的VOP 编码之前建立, MPEG-4标准中定义了两种类型的Sprite:静态Sprite 和动态Sprite。在这里选用动态Sprite,因此我们仅讨论动态Sprite 的生成与编码。

动态Sprite 的编码如图2 所示:视频序列的第一帧采用I-VOP 方法编码,而第一帧的重构图像在编码端和解码端建立相同的初始Sprite 图像;第二帧用全局运动估计算法估计当前VOP 与前一帧VOP 之间的全局运动,用参考点的轨迹描述两个VOP 之间的运动。采用P-VOP 方法编码第二帧的纹理,不同的是编码该VOP 各个宏块时,运动补偿的方式除了宏块和块运动补偿外,还可以用Sprite图像为参考进行运动补偿,此时宏块的运动补偿为全局运动补偿。解码器的解码参考点的轨迹得到全局运动参数,然后解码纹理信息得到第二帧的重构图像,根据全局运动参数和第二帧重构图像更新Sprite 图像。同样的方法用来编码序列后面的VOP。

图2 动态Sprite 编码框图

3.3 可扩展编码
根据视频监控的特点,当传输图像的分辨率和帧率不是很高时,仍能达到一般要求下的监控效果。因此我们可以采用MPEG-4 的基于对象的分层传输思想,使用空域分级功能调节空间分辨率,使用时域分级功能调节帧率。这样做一方面可以方便地实现码率控制,对网络带宽的变化具有很好的自适应性,另一方面,用户可以通过交互功能选择分辨率和帧率,以得到更好的视频效果或获得某一对象局部的细节。MPEG-4 定义了一种通用的可分级扩展框架来实现空间和时间可分级扩展,如图3 所示。

图3 MPEG-4 通用的可分级扩展框架图

当用于空域扩展时,可扩展预处理器对输入的VOP 下采样,得到由VOP编码器处理的基本层VOP。中间处理器处理重建的基本层VOP,并对其进行上采样,原始VOP 与中间处理器输出的差作为增强层编码器的输入。在增强层中的编码是以P-VOP 或B-VOP 方式编码的。通过反复接器可以分别访问基本层和增强层解码器对应的基本层和增强层码流,解码器端的中间处理器与编码端执行相同的操作,扩展后处理器执行必要的转换工作。
当扩展编码使用时域扩展编码时,可扩展预处理器在时域上将一个VO 分解成VOP 的两个子流,其中一个被输入到基本层编码器中,另一个输入到增强层编码器中。在这种情况下,不需要中间处理器,而是简单地将解码的VOP 基本层输入到VOP 增强层编码器,增强层编码器将使用它们进行时域预测。可扩展后处理器只是简单地输出基本层的VOP,并不进行任何转换,但是在时域上混合基本层和增强层VOP,以产生更高时域分辨率的增强输出。

3.4 普通VOP 的形状、运动、纹理编码
形状编码是其他的编码标准中所没有的,编码的信息有两类:二值形状信息(binary shapeinformation)和灰度级形状信息(gray scale shape information)。二值形状信息就是用0、1 的方法表示编码的VOP 的形状,0 表示非VOP 区域,1 表示VOP 的区域;灰度级形状信息可取值0~255,类似于图形学中的α 平面的概念,0 表示非VOP 区域(即透明区域),1~255 表示VOP 区域透明程度的不同,255 表示完全不透明。灰度级形状信息的引入主要是为了使前景物体叠加到背景上时不至于界太明显、太生硬,进行一下模糊处理。这里二值形状采用基于上下文的算术编码方法[4],整个编码过程可分为以下五步:①对于给定VOP 的二值形状图重新确定形状边界,并将它分为若干个16×16 二值α块(Binary Alpha Block,缩写为BAB)。②对即将编码的BAB 块进行运动估计,得到运动矢量MVs(MV for shape 缩写为MVs)。③对该VOP 中待编码的BAB 块确定编码方式。④对待编码的BAB 块确定分辨率。⑤对BAB 块进行编码。灰度级编码形状编码与此类似。对普通视频对象,MPEG-4 编码算法支持三种类型的VOP:I-VOP、P-VOP、B-VOP。在MPEG-4 中运动预测和运动补偿可以是基于16×16 宏块,也可以为8×8 块。如果宏块完全位于VOP 内,运动估计使用一般的方法进行;倘若宏块位于VOP 边界,则使用图像填充技术给VOP 外的像素指定值。然后利用这些值计算SAD。对于P-VOP 和B-VOP,运动矢量首先被差分编码,然后再用可变长编码运动矢量。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top