近几年随着嵌入式技术的蓬勃发展,出现了基于嵌入式视频服务器技术的远程网络视频监控设备。嵌入式视频服务器的主要工作原理是:模拟视频信号经A/D后,采用MPEG-2或MPEG-4协议压缩,然后将压缩后的视频数据打包,传送到网络上。用户可以直接用浏览器或者客户端专用软件观看视频服务器上的图像,授权用户还可以控制摄像机云台镜头的动作或对该嵌入式系统进行配置。压缩部分可以采用专用的硬件芯片或由嵌入式CPU进行软压缩实现。如果采用后者,则要求该CPU有较强的运算功能。
嵌入式视频网络服务器主要可以应用于城域教育网、远程网上培训、网络电视/电台、实时数字监控、远程视频会议等领域。
已有的视频服务器采用CPU软压缩方式。4路模拟视频数据接入到视频解码器上,然后解码器将数字化后的视频流数据传送给CPU——PNX1300,MPEG压缩协议存储在Flash上,PNX1300将视频数据压缩后,输出给以太网控制芯片,然后视频数据通过RJ-45端口上传到以太网上。
PNX1300是Philips公司专为多媒体应用而优化设计的高性能低功耗芯片,其内核为32位通用VLIW结构的DSP。可以较好地实现音视频压缩和解压缩算法。
但软压缩速度比硬压缩慢,而且要实现MPEG-X压缩协议,工作量非常大。另外,协议升级代价也很大。
多路数据打包器将数据整合为一路后,输入给专用硬件压缩芯片处理。以AT2021(集成MPEG-2协议)芯片为例,硬件压缩算法由几部分构成。
视频输入接口:提供视频信号输入接口,并进行一些压缩前的预处理以提高压缩比。
运动预测补偿单元:根据MPEG推荐的BMA算法进行图像的运动预测补偿压缩。
DCT/量化单元:为每幅图像的宏块进行DCT和逆DCT变换,然后再依据试验得到的量化矩阵对DCT系数进行量化。
VLC和熵编码单元:对量化后的DCT直流系数进行DPCM编码,以及对量化后的DCT交流系数进行变长编码,最后再对交直流系数进行熵编码。
多路视频数据压缩以后,需要输入到CPU中打包,以发送到网络上。
CPU选取三星公司的32位RISC芯片S3C4510,该芯片是专为嵌入式以太网应用开发的,内核为ARM7TDMI,支持高代码密度的THUMB指令集。通过其外设I2C总线,可以控制前端的视频采集、压缩模块芯片的工作模式,如可以设置视频解码器解码时的亮度、色度、饱和度控制寄存器,S3C4510支持UART,外接上RS-232口后,可以将视频服务器与主机相连以进行主机与服务器的数据交换。
S3C4510支持10M、100M单工和双工模式的以太网传输。在单工模式下,它支持CSMA/CD协议,在双工模式下,支持IEEE802.3的MAC层。因此还需给S3C4510连接上控制网络物理层的芯片,如Intel的LXT970A,从而构成了以太网从应用层到物理层完整的网络结构。
压缩芯片以AT2021、CPU以S3C4510为例,给出压缩芯片与CPU的接口。
S3C4510通过地址总线LA[0..3]寻址AT2021的相关寄存器,通过数据总线LD[0..15]读写数据以设置AT2021的工作参数、监控AT2021内核的工作状况,并获取压缩后的数据。
例如可以设置压缩后的视频输出流的格式为IPP或IBBP。
S3C4510将数据取到内存后,按照每路视频数据前的ID号,区分当前数据,然后给数据分块打包,设置好其IP目的地址,然后传送到网络上,远端就可以接收。
当然打包后的数据也可以直接存储到本地的硬盘中,以供以后查询,即硬盘录像机(DVR)。
采用专用压缩芯片进行数据压缩,既降低了视频服务器的开发难度和成本,也易于压缩协议升级。随着嵌入式技术快速发展和普及,嵌入式设备将在整个后PC时代越来越多地替代传统PC,渗透到工业生产和人们的日常生活中去。