AVS网络摄像机
摘要:设计了一种支持我国自主知识产权的视频压缩标准AVS的IP网络摄像机,主处理芯片为TI的TM320DM642 DSP,实现了视音频采集、编码、网络传输等功能。性能上达到了D1格式视频的实时处理,并支持多种异构网络,可以广泛应用于网络视频监控和家庭数字娱乐等领域。
关键词:AVS,网络摄像机,DSP
AVS Network Camera
Abstract:An IP Camera that supports AVS, a video coding standard owned by the P.R.China is designed. TI TMS320DM 642 is adopted as main processor and real time video and audio capture, coding and transmission by network are implemented on it. The IP camera can process video with format D1 and supports several different network structures, it can be applied to network video surveillance, family digital entertainment, and so on.
Key Words:AVS, Network Camera, DSP
1 前言
随着数字信号处理技术和网络技术的快速发展,基于嵌入式架构的网络视频处理及应用需求不断增加。视频技术从传统的模拟视频到数字视频,进而发展到网络视频并逐渐成为视频应用发展的主流。传统的数字视频服务系统仅限于本地编解码、存储和显示。摄像机采集的视频数据通过线缆传输到后台服务系统进行压缩存储,无法实现远程网络访问。网络摄像机的出现很好地解决了这个问题,在网络摄像机中,视音频数据的压缩功能前移到摄像机端实现,这样一方面能够在带宽有限的网络中进行数据传输,另一方面也大大扩展了其应用。网络摄像机已经不仅仅是应用于监控系统,而且正逐渐成为家庭数字娱乐和智能家居的重要组成部分。
当前国内市场上的网络摄像机产品全部是基于国际主流视频压缩标准MPEG4和H.264的,其实现或采用专用集成芯片,或采用DSP实现。采用专用集成芯片的缺点是压缩算法固定,难以扩展。采用DSP实现MPEG4或H.264压缩算法存在专利问题。而AVS作为我国拥有自主知识产权的视频压缩标准,其与最先进的H.264标准相当的压缩性能和“一元人民币”的专利策略使其在网络摄像机应用中具有无可比拟的优势。
基于此,我们开发了国内首款支持AVS标准的网络摄像机,本文对该产品的系统结构、关键模块实现进行分析和讨论。
2 系统结构
支持AVS的网络摄像机的总体结构如图1所示。
图1 AVS网络摄像机总体结构
在该网络摄像机中,视频采集采用了TI的5150视频采集芯片。TVP5150 可支持诸如视频采集设备及便携式个人摄像机等新产品。它在正常工作时的功耗仅为 115 毫瓦 (mW) ,并具有业界最小尺寸的 32 引脚超薄四方扁平封装 (TQFP) ,TVP5150 的应用范围非常广泛。音频采集和处理芯片为TI的高性能立体声编解码器TLV320AIC23,AIC23与DM642的I/O电压兼容,可以实现与DM642的McASP接口无缝连接。主处理芯片采用TI公司的TMS320DM642实现,TMS320DM642(以下简称DM642)是一款专门面向多媒体应用的专用DSP。该DSP时钟高达600 MHz,8个并行运算单元,处理能力达4800MIPS;采用二级缓存结构;具有64位外接存储器接口;集成有3个视频端口、音频McASP和以太网MAC等外设。视频端口外设提供了视频采集到DSP核心处理单元的无缝接口,可以支持多种视频解决方案。鉴于DM642的上述优点,本网络摄像机系统就以DM642为核心,完成音频信号的实时采集、压缩及传输功能。
内部功能结构如图2所示。
图2 AVS网络摄像机内部功能结构
3 关键模块实现
AVS网络摄像机实现的主要功能模块包括视音频数据采集、视频预处理、编码、运动检测、视频加密、网络收发、内嵌WEB服务器和系统配置等诸多模块组成。下面就主要模块的设计实现进行介绍。
3.1 视频数据预处理和压缩编码
在视频压缩编码之前,为提高压缩比,首先进行视频预处理。采用较为简单的算法对摄像机采集进来的原始YUV数据进行滤波,去掉高频信号 ,一方面可以减轻编码器的压力,降低码率;另一方面,摄像机对 CCD以及摄像头的质量要求降低,可以节约成本。滤波算法复杂度较低,对D1大小格式图像进行滤波,运算时间在2ms以下。
视频数据采用AVS标准进行压缩编码,AVS编码的技术框架如图2所示。
其基本框架如下图所示。
反量化
Inverse Transformation |
图3 在网络摄像机中实现的AVS标准编码框架
编码过程根据编码模式的不同而有所区别。帧内预测帧(I帧)采用帧内预测编码,原始输入图像中的宏块首先经过帧内预测找到最匹配的预测块(以8′8子块为单位),然后与原始块相减得到残差块,经过变换和量化处理后得到的系数矩阵经过熵编码写入到码流中。在进行熵编码的同时,对系数矩阵进行反量化和反变换,得到残差块估计并与预测块相加得到重构块,用于后续宏块的编码参考以及后续帧间预测帧(P帧)的编码参考。除残差块外,每个块的预测模式信息也经过编码写入码流中,用于在解码时得到参考块。
视频序列的第一帧编码必须是I帧模式。I帧可以在编码序列中周期性插入。由于I帧编码与其他视频帧不相关,因此周期性插入I帧有助于抑制解码端由于传输错误导致的解码错误传播。
P帧利用相邻帧之间的相关性进行编码。基本思想是宏块或者子块在已编码重构的参考帧中在一定范围内寻找(运动估计)最匹配的宏块或者子块(代价最小)作为预测块,类似地对残差块进行基于8×8的变换和量化、熵编码,同时对量化结果进行反量化和反变换处理,得到相应的重构块。AVS支持16′16、16′8、8′16和8′8等块划分。
3.2 音频编码
音频编码采用G.729A标准实现,主要包括预处理滤波、LP分析、量化、插值、基音分析、固定码本搜索和增益量化几部分组成。预处理主要是将数字语音信号经过截止频率为140HZ的高通滤波器预处理,以消除低频干扰,同时进行幅度调整,防止运算过程中的数值溢出。然后将每10ms的音频数据作为一帧,用10阶线性预测作短时分析,得到LPC参数并变换为LSP(线谱对)参数,然后将LSP参数用二级分裂式矢量量化,第1级用7bit表示,量化得到的最小均方误差矢量分为2个子矢量,分别以5bit量化,在保证精度的同时减少码本的搜索时间,量化的(非量化的)LP 参数用于第2子帧,对于第1子帧LP系数的获得,是通过对其相邻子帧的对应参数线性内插得到,用量化和未量化的LPC参数构成感知加权滤波器及合成滤波器,从感知加权语音信号中减去感知加权滤波器的零输入响应,得到目标信号。短时语音的基音分析和固定码本搜索都是基于对目标信号的分析得到的。在G.729算法中,采用开环和闭环相结合的方法。首先,利用语音的短时自相关特性对每帧语音信号的基音周期进行开环估计,然后在开环估计得到的基音周期附近的小范围内分别对2个子帧进行闭环基音搜索。闭环基音搜索的准则是使原始语音和重构语音之间均方加权误差最小。第1子帧的搜索结果以8bit表示,由于语音信号具有短时平稳特性,第2子帧在第1帧搜索的基础上,搜索本子帧最佳基音周期,采用差分量化的方法以5bit表示,提高了编码效率。固定码本搜索时码本采用代数码本结构,正负脉冲交错设计,码本中每个码本矢量含有4个非零脉冲,每个脉冲的幅度或正或负。以加权语音和加权重构语音之间的均方误差最小为搜索准则。基音增益和固定码本增益用7bit矢量量化,用原始语音和重构语音之间的加权均方误差最小为准则来搜索增益码本。增益码本采用共轭结构二级码本矢量,每个码本的第1个元素表示量化自适应码本增益,第2个元素表示量化固定码本增益的相关因子。
3.3 网络收发模块
网络发送可以通过TCP或者UDP协议发送。以TCP发送为例,流程如图2所示。
图4 AVS网络摄像机TCP发送模块
3.4 WEB服务器模块
采用HTTP协议实现。HTTP协议是一个采用的请求/响应模型的协议。采用HTTP协议实现WEB服务器和WEB浏览器之间传递数据。
模块工作流程如下:
1) 首先,CGI程序需要判断字符串指针pArg指向的字符串是否为NULL:如果是,那么要处理的是一个POST方法,如果不是,那么要处理的是一个GET方法;
2) 如果CGI程序要处理的是POST方法,那么按下列步骤编写程序:a)动态分配字节数为ContentLength+1的缓冲区;b)调用recv从套接字htmlSock上接收ContentLength个字节的数据到该缓冲区;c)在把缓冲区的最后一个字节设置为’\0’;如果CGI程序要处理的是GET方法,那么此步可以忽略;
3) 解析、处理该接收到的数据(POST)或字符串指针pArg指向的字符串(GET);
4) 向客户端发送一个HTTP响应报文,其中HTTP包包头:
a) HTTP报文报头第一行必须是一个完整的Response-Line;
b) HTTP报文报头最后一行必须是CRLF结束;
c) HTTP报文数据必须和包头中指定的Content-Type保持一致(html、txt、gif等);
5) 如果是处理POST方法,必须释放动态分配的内存;
6) 返回值必须是0或者1(0:关闭该套接字)。
3.5 其他模块
视频加密模块:采用经典的数据加密算法和数字水印技术,为降低复杂性,在实现时进对包括序列头、图像头、条带头以及I 帧的重要数据进行加密,确保非法访问者无法正常解码视频数据。
运动检测模块:设计了多种运动检测算法并根据视频内容变化进行自适应选择。实现的算法主要有背景减除、时域差分、背景统计分类以及光流场等算法。
码流控制模块借鉴H.264标准组提供的推荐码率控制算法。
云台控制通过RJ485接口电路实现。
4 性能
该AVS网络摄像机实现的性能指标如下:
1) 符合AVS标准,处于国内领先水平;
2) 支持N制式和PAL制式;
3) 支持QCIF、CIF、2CIF、Half D1、D1的实时编码传输;
4) 网络自适应,根据网络状况自动调整码率和帧率,支持码率控制,支持CBR和VBR工作方式,码率调整范围为64Kbps—3Mbps;
5) 支持帧率控制,控制范围为0.1fps-25fps(PAL)/30fps(NTSC);
6) 编码延时小于200毫秒;
7) 根据检测结果产生联动抓拍、报警;
8) 检测时间<70ms;
9) 检测正确率>90%;
10) 支持移动侦测报警、事件联动报警、视频丢失报警;
11) 支持TCP、UDP等多种网络协议,适应不同网络环境;
12) 内置WEB服务器,支持IE浏览和设备配置;
13) 最大支持10个用户同时访问;
14) 整机功耗小、小于10瓦,发热低
15) 故障自动恢复,工作稳定可靠;
16) 支持网络在线升级和参数调整;
17) 控制软件界面友好,易操作;
5 结束语
本网络摄像机采用DM642 DSP芯片实现,支持AVS标准,实现了网络摄像机的几乎全部功能,能对音视频进行实时的编解码和实时的网络传输。图像质量高、易于升级,目前已成功应用于上海某企业内部网络视频服务系统,并在吉林网通等多家应用企业进行测试和使用,是一种比较理想的网络摄像机解决方案。
|