从视频传播新模式看嵌入式技术的发展
2018-10-24彭城
彭城
摘 要:计算机网络技术和多媒体数据压缩技术的发展,使通过网络传输实时音视频数据成为人们日常异地沟通的首选,特别是手机微信的普及,让大家相距千里却可以面对面交流。如今嵌入式视频服务器不仅仅能提供实时直播功能,同时综合了计算机网络功能,以达到多用户分布式监控和点播的目的,它在安防监控和网络教育等领域都有广泛的应用前景。
关键词:嵌入式 视频 网络播放
随着网络技术和嵌入式技术的发展,人们不再满足于在信息高速公路中仅获得图像和声音等媒体信息,而是希望同时获得更小体积和更高性价比的视频数据。嵌入式视频服务器是一种提供网络视频传输和共享的嵌入式没备。它以面向实时处理的软件为平台,整合了视频网络传输、视频信号采集等功能。用户只需要在远程对视频服务器的相关参数进行设置就可以轻松获取本地图像等多媒体信息。
嵌入式视频监控系统包含了以下几个关键技术:
1、频音频信号的编码压缩技术。不管是视频原始的RGB信号数据还是语音模拟信号通过CODEC芯片得到的PCM(Pulse Code Modulation,脉码调制)编码,码流数据量较大,在网络上传输时容易产生网络拥塞现象,影响传输的实时性。在嵌入式平台上采用适当的编码技术对多媒体数据压缩可以减少网络传输的数据量,提高线路带宽的利用率。而且通过压缩编码技术使得数据在误码产生、网络抖动和突发传输时具有健壮性。
2、视频音频信号的实时传输技术。利用络传输实时数据,数据传输的时延会是一个很大的问题。因为互联网的初衷并不是实时的应用,而是数据的传输,保证的是数据传输的效率。这个问题可以通过使用实时传输协议以及QOS机制得到解决。
3、标准的接协议(例如RTSP协议)有助于软件开发商的产品之间以及产品与服务器之间的互连。目前在实时流的连接领域有个定义完整的互連协议:实时流协议(Real Time Streaming Protocol),它提供了对媒体流的播放、暂停、快进等控制功能。
在网络上传输音频或视频等媒体信息的方式,目前主要有下载和流式传输两种方案。音视频文件一般都较人,所以需要的存储容量也较大。同时由于网络带宽的限制,以目前的4G网络速度来看,较大的视频文件下载时间也是比较长的。流式传输时,声音、影像或动画等时媒体由音视频服务器向用户计算机的连续、实时传送,用户只需经过几秒或十几秒的启动延时即可进行观看。当声音等时基媒体在客户机上播放时,文件的剩余部分将在后台从服务器内继续下载。流式传输不仅使启动延时大大缩短,而且不需要过多的缓存,从而避免了用户必须等待整个文件全部从Internet上下载才能观看的缺点。
流式传输的定义很广泛,现在主要指通过网络传送媒体技术的总称,其特定含义为通过Internet将影视节目传送到终端。流式传输有两种方法:顺序流式传输(progressive streaming)和实时流式传输(real time streaming)。一般说来,顺序流式传输只能按序获得文件的信息,不能跳跃式观看。实时流式传输可以根据用户连接调整速度。
顺序流式传输是顺序下载,在下载文件的同时用户可观看在线媒体,但是用户只能观看已下载的那部分,而不能跳到还未下载的部分,顺序流式传输不像实时流式传输在传输期间根据用户连接的速度做调整。由于标准的HTTP服务器可发送这种形式的文件,也不需要其他特殊协议,它经常被称作HTTP流式传输。顺序流式传输比较适合高质量的短片段,如宣传片、广告片段等。由于该文件在播放前观看的部分是无损下载的,这种方法保证电影播放的最终质量。这意味着用户在观看前必须经历延迟,对较慢的网络状态延迟更加明显。顺序流式文件是放在标准HTTP或FTP服务器上,基本上与防火墙无关。顺序流式传输不适合长片段和有随机访问要求的视频,如:讲座、演讲等。
实时流式传输指保证媒体信号带宽与网络连接匹配,使媒体可被实时观看到。实时流与HTTP流式传输不同,需要专用的流媒体服务器与传输协议。实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。实时流式传输必须匹配连接带宽,这意味着在网络质量较差时图像质量也相应较差。
硬件方面,嵌入式芯片的功能一般都不及通用CPU功能强大,如果将过多的系统功能依赖软件在芯片上的模拟实现,势必会占有过多的CPU时间,从而影响系统的实时要求。特别是在本系统中的多媒体数据压缩和网络传输方面,更依赖高性能的CPU来完成。在选择普遍使用的ARM处理器的基础上,采用了性价比高的GA-4030芯片作为核心微处理器。GA-4030是GENISTECH公司的产品,该款嵌入式处理器以ARM926EJ为内核,是一种高性能、低功耗的RISC芯片。同时芯片内部还集成了数字信号处理指令和很多硬件加速引擎,包含QUAD功能支持?内置OSD模块等,非常适用于嵌入式视频系统应用。此款芯片目前在多媒体嵌入式领域有着相当广泛的应用。利用这款芯片,可以将视频编码的功能依赖片内的DSP单元来实现,从而减轻了CPU的负担。客观的分析,如果视频编码采用软件实现,势必会占有很多的运行周期。
软件方面,以开放性源码的嵌入式Linux作为软件运行平台,系统稳定性高并可降低成本。嵌入式Linux由于代码开放性以及强大的网络功能,在中低端的嵌入式网络设备中应用广泛。嵌入式Linux以其特有的开放性、与生惧来的网络特性成为嵌入式操作系统的主流之一。更重要的是,在Linux平台上拥有众多的优秀开源软件,避免了重复劳动的时间浪费。根据软件嵌入式Linux平台的特点,将服务器程序、媒体数据采集和发送程序等作为用户空间的进程来提高系统的可靠性,同时把驱动程序编译成模块,方便用户调用。利用Linux可动态加载模块的特点,在需求的时候通过脚本加载,方便模块调试,减少模块间的依赖性。
嵌入式视频服务器系统分成多媒体数据采集传输模块和视频网络服务模块两部分。多媒体数据采集传输模块完成对多媒体数据的实时采集,并将数据发送给网络服务模块,在网络传输模块中将媒体数据流依照RTP/RTCP协议通过网络控制芯片发送到Internet上。网络服务器模块接收客户端的连接请求,获取多媒体采集传输模块发送的媒体数据,实时的传输给客户端播放器播放。音频压缩编码选择的是目前在移动通信领域广泛使用的自适应多速率语音编码。该编码目前广泛应用在智能手机、平板电脑等数字终端上,可以大比率的压缩语音信号,对人类能识别的语音信号压缩算法影响较少,所以特别适合传输语音。值得一提的是,采集传输模块和网络服务模块的设计虽然是分开的,但目前是在同一个嵌入式系统中运行。两者之间的接口是规范的SOCKET接口,并利用标准RTP协议通信。工作在同一个平台上的IP地址可以设置成为127.0.0.1来通信。这样设计是考虑到即使在同一台嵌入式设备上不能满足系统应用需求的时候,媒体压缩和传输将因为CPU过载出现明显的丢帧,此时可以把这两个模块方便的分开到不同的设备上运行,两模块之间通过以太网连接,可以减少服务器CPU的负荷。
参考文献:
[1]王诚 梅霆.ARM嵌入式系统原理与开发.人民邮电出版社,2018第一版.
[2]刘洪涛.ARM嵌入式体系结构与接口技术.人民邮电出版社,2017第一版.
[3]张勇.ARM嵌入式微控制器原理与应用.清华大学出版社,2018第一版.