基于MPEG-4的嵌入式DVR分析与实现
扫描二维码
随时随地手机看文章
关键词: MPEG-4; 数字视频录像机或硬盘录像机; 嵌入式; 对象
1 DVR的发展现状及MPEG-4在嵌入式DVR中的优势
1. 1 DVR的发展
DVR的发展大体上经过了两个阶段:以PC为平台的DVR和嵌入式DVR。传统的以PC为平台的DVR采用的是存储在硬磁盘中的Windows操作系统,这种开放式的系统有着用户友好的图形用户接口GUI等优点,但它也有如Windows固有的不稳定性及支持CPU受到限制等缺点。嵌入式DVR采用能嵌入ROM/Flash存储器中的实时操作系统RTOS,布控区域广泛、可组成非常复杂的监控网络、性能稳定可靠,从而很好地弥补了这种缺陷。
在嵌入式DVR中,视频压缩技术是其关键的核心技术,现在DVR采用的压缩技术的主流是MPEG-1。MPEG-1 的核心是离散余弦变换及双向运动补偿算法,主要思想是通过减少图像间时间及空间的冗余性和相关性信息来减少数据量。MPEG-1在800kbps~2Mbps的传输速率下图像能达到较好的清晰效果。但是采用MPEG-1的嵌入式DVR也有很多不利的地方: ①硬盘耗费量大; ②由于数据量大,不适合网络传输; ③不够灵活,适应性差,不能根据网络情况自适应地调节传输率。而MPEG-4的出现克服了以上种种缺陷,是现代嵌入式DVR的发展趋势。
1. 2 MPEG-4在嵌入式DVR中的优势
MPEG-4在压缩方法上远远优于MPEG-1,MPEG-4基于场景描述和面向带设计的要领使MPEG-4在视频监控录像领域中在以下几个方面具有巨大的优势:
(1)节约存储空间。
(2)较高的录像清晰度,尽管MPEG-4是瞄准在低带宽上的音/视频解决方案,但是它独特的压缩方式同样也适合CIF或更高清晰度(768 ×576、640 ×480)的视频压缩。这样它就有效突破了MPEG-1最大清晰度CIF(352 ×288)限制,获得更好的视频压缩质量。
(3)录像帧率可调。
(4)比MPEG-1更利于网络传输。MPEG-4优越的视频压缩方式,也决定了其在低带宽网上具有优秀的表现。
2 MPEG-4核心思想和关键技术在DVR中的应用
MPEG-4代表了基于模型/对象的第二代压缩编码技术,它充分利用了人眼视觉特性,抓住了图像信息的本质,从轮廓、纹理思路出发,支持基于视觉内容的交互功能,适应了多媒体信息的应用由播放型转向基于内容的访问、检索及操作的发展趋势,尤其适合应用在嵌入式DVR中。
2.1 MPEG-4核心思想———基于对象编码
AV对象(Audio Visual Object)是MPEG-4提出的重要概念,它是在一个场景中能够访问和操纵的实体,具体到一幅图像中,对象是能表征有含义的实体的一组区域(Region) ,对象的划分可以其独特的纹理、运动、形状、模型和高层语义为依据。MPEG-4的编码就是基于AV对象的, AV对象是视听内容的表示单元,其基本单位是原始AV对象。原始AV对象可以是自然或者合成的声音、图像。它具有时域和空域的灵活性,可以根据对象重要性,进行比特的科学分配,从而使图像的主观质量得到保证。因此,MPEG-4具有高效编码、高效存储和传输以及可交互操作的特性,AV对象编码就是MPEG-4的核心思想。在DVR的应用中,这种基于AV对象的编码的高效压缩必然能节省大量的存储资源,也可以灵活地根据现场带宽和误码率的客观条件进行扩展,充分利用带宽。从下面的MPEG-4采用的核心技术的分析中将会更加清楚地看到这种基于AV对象编码所带来的好处。
2. 2 MPEG-4的关键技术
(1) 视频对象的提取技术。MPEG-4实现基于内容的编码首先就要把视频、图像分割成一个个静止的对象或运动的对象,然后针对不同对象采用相应的编码方法,以实现高效压缩。目前视频对象分割的一般步骤是: ①对原始视频/图像数据通过低通滤波、中值滤波、形态滤波等来进行简化,以利于分割;②对视频/图像数据进行诸如颜色、纹理、运动、帧差、位移帧差和语义等特征提取; ③基于某种均匀性指标来确定分割决策;④进行相关的后处理,滤除噪声并准确提取边界。
运用于嵌入式DVR中的MPEG-4,视频对象的提取相对比其他运用来说,简单了许多,在嵌入式DVR的视频/图像中不会有太多太复杂的视频内容。基本上可分为一个静止的对象:背景和若干个运动的对象。
(2) VOP (Video Object Plane)编码技术。VOP是视频对象(VO)在某一时刻的采样,它也是MPEG-4视频编码的核心概念之一。MPEG-4在编码过程中针对不同VO采用不同的编码策略,即对前景VO的压缩编码尽可能保留细节和平滑;对背景VO则采用高压缩率的编码策略,甚至不予传输而在解码端由其他背景拼接而成。这种基于对象的视频编码不仅克服了第一代视频编码中高压缩率编码所产生的方块效应,而且使用户可与场景交互,从而既提高了压缩比,又实现了基于内容的交互,为视频编码提供了广阔的发展空间。而且MPEG-4支持任意形状图像与视频的编解码。对于任意形状视频对象,MPEG-4则采用VLBV (Very Low Bit rate Video,极低比特率视频)核进行编码。
在嵌入式DVR应用的场合中有一个很大的特点:背景对象是静止不动或者是极少运动的。因此对背景对象可以根据实际情况,或采取高压缩率编码,或只在较少的帧中出现,这样可以极大地降低对存储和传输的压力。上面这种方法就是MPEG-4中的Sprite编码思想, Sprite称为镶嵌图或背景全景图。一个Sprite是由一个视频对象在视频序列中所有出现部分经拼接而成的一幅图像。通过Sprite编码,先将背景Sprite送到解码端并生成背景图,其后就只需要传输少量的参数即可,可以减少整个视频传输过程中的数据量,实现高压缩比。而且对于Sprite图像为了减少延迟,还可以使用MPEG-4的分级传输功能,进行分层逐块传输。
(3) 可扩展编码技术。扩展性编码也是可分级性编码,视频的可分级性( Scalability)是指码率的可调整性,即视频数据只压缩一次,却能根据实际情况以不同的帧率、空间分辨率或视频质量进行解码,从而可支持多种不同的应用要求。扩展性编码分为空域扩展和时域扩展编码。MPEG-4通过视频对象层(VOL)数据结构来实现分级编码,在扩展性编码中视频序列分为两层:基本层和增强层。基本层提供了视频序列的基本信息,增强层提供了视频序列更高的分辨率和细节。在嵌入式DVR中,采用MPEG-4的基于对象的分层传输思想,使用空域和时域的扩展编码调节空间分辨率和帧率。这样,一方面可以方便地实现码率控制,可以很好地使网络带宽发生变化;另一方面,也可以实现用户与DVR的交互性能,用户可以方便地选择分辨率和帧率,以得到满意的视频效果。
(4) 运动估计与运动补偿技术。MPEG-4采用I帧、P帧和B帧三种帧格式来表征不同的运动补偿类型。I帧使用帧内压缩,只利用空间相关性,不使用运动补偿,所以不依赖于其他帧,是解码的基准帧。I帧图像周期性出现在图像序列中。P帧和B帧图像采用帧间编码方式,同时利用了空间和时间上的相关性。P帧采用前向时间预测,可以提高压缩效率和图像质量,B帧采用双向时间预测,更大地提高压缩倍数,但是B帧不能作为其他图像编码的参考帧,不能进行随机存取。因此,在嵌入式DVR的应用中,当用户可用带宽比较低的情况下,可以只转发I帧和尽可能少的P帧,可以降低传输的码率,还可以得到可以接受的视频质量。
3 基于MPEG-4的嵌入式DVR中的实现
3. 1 硬件实现
基于MPEG-4的嵌入式DVR硬件实现如图1所示,采用如下的方案:
(1) DSP选用TI公司推出的TMS320C6416,工作频率达750MHz,运算速度可达到4000MIPS。
(2) ARM 板采用ARM 嵌入式系统扩展板( CY-ARM4510B) 。
(3) PCI接口板(CY-PCI2.2) 。
图1 硬件框图
3. 2 软件实现
软件部分用ANSI C编写,用GNU Make-3.74或更高版本的GCC编译器进行编译。MPEG-4编解码部分是在MPEG-4提供的框架下根据嵌入式DVR应用的实际情况进行了一些简化和优化后实现的。主要从下面三个方面对代码进行优化:
(1)尽量降低代码量,提高数据结构的有效性。因此需要去除对DVR应用中基本不用的结构及处理部分。
(2)并且尽量是执行控制趋于合理,减少不必要的存储分配和释放,尽量减少对外部存储器的访问。
(3)改进ME/MC ( FastMotion Estimation and Motion Compensation)来提高编码效率。
程序分为三个部分:编解码公用的部分、编码部分和解码部分。根据上面提到的优化思想,我们对程序进行了优化。经过优化后,VOP的结构体进行了很大的改变,保留了基本的语法元素项,对Sp rite进行了一些简化,定义如下:
struct vop
{
/* VOP的语法元素* /
Int p rediction_type; /* VOP类型* /
Intmod_time_base; /* VOP绝对基本时间* /
Float time_inc; /* VOP相对mod_time_base时间* /
Int vop_coded;
Int rounding_type;
Int width; /* VOP宽度* /
Int height; /* VOP高度* /
.
/* 运动估计元素* /
.
/* 部分从VOL中传过来的sp rite coding元素* /
Int sp rite_hdim;
Int sp rite_vdim;
Int sp rite_left_edge;
Int sp rite_top_edge;
Int warp ing_accuracy; /3 变形精度(2, 4, 8, 16) 3 /
Int sp rite_usage; /3 0:不用; 1:静态; 3 /
Int no_of_sp rite_points;
/3 0:固定, 1:平移, 2:旋转、缩放, 3:仿射, 4:透视画法3 /
TrajPoint 3 ref_point_coord;
/3 position of reference points sp rite 3 /
TrajPoint 3 traj_point_coord;
/3 position of reference points aftermotion compensation 3 /
TrajPoint 3 difftraj_point_coord;
/3 ( dui, dvj) trajectory coordinates, to be transmitted 3 /
Int brightness_change_in_sp rite;
Float brightness_change_factor;
Int low_latency_sp rite_enable;
/3 0:基本sp rite, 1:节省的sp rite 3 /
struct vop 3 rec_sp rite; /3 当前解码sp rite指针3 /
Sp rite_motion 3 warp_param; /3 全局运动向量3 /
.......
}
在VOP中, sprite _ usage为1则图像中只处理静态的Sprite; sprite_hdim、sprite_vdim与静态的Sprite的像素相对应,它随Macroblocks数的变化而作相应的变化,对于一个环境稳定的DVR 的应用,它们可以有一个确定的值; n Number of Sprite Points当为o时zero运动.......同时在image, sprite_motion, vol, video _object, motion等结构体和编解码的函数中也进行了相应的类似的一些优化,以适应DVR的特点,提高编码的效率。
(2) 软件支持空域可扩展和空域可扩展,设置参数可支持五种类型: 0为时域扩展类型0; 1为空域扩展; 2为时域空域扩
展; 3为时域扩展类型1; 4为时域扩展类型2对于空域扩展。
Enhanece P B B B . . .
Base I P P P . . .
对于时域扩展, base层的帧率变为5fps和enhance层的帧率也为5fps。支持三种类型:
Case0 I-VOP在base层中周期出现和P-VOP在base层和enhance层中,而B-VOP不出现
Enhance layer P P P P P . . .
Base layer I P P P P . . .
Case1 I-VOP和P-VOP在base层中编解码, enhance层中只有B-VOP
Enhance layer B B B B B B . . .
Base layer I P P P . . .
Case3 base层中包含I-VOP, P-VOP和B-VOP, enhance层中只有B-VOP
Enhance layer P B B B B B . . .
Base layer IB P B P B P . . .
4 结束语
MPEG-4基于内容的压缩,是信息处理的高级阶段,更加向人自身的信息处理方式靠近。本文着重分析了将MPEG-4编码方法应用于嵌入式DVR的种种优点,论述了这种DVR实现方法。实践表明,这种应用是对DVR是一次有效的优化,能够在多个方面提高DVR的性能,MPEG-4编码必将是下一代DVR的发展趋势。