热门关键词: 粘土制砖设备 秸杆加工饲料设备 霍克工业设备 猪饲料加工设备 pq自由分区工具 制鞋机械设备 人造石设备
  IC库存(8958万) PDF资料(329万) IC价格 IC求购 资讯 技术资料
电子元器件搜索:
维库电子市场网是知名的电子元器件交易网站,为电子生产企业提供IC库存和技术资料查询服务。
相关专题
智能小区中嵌入式MP3流媒体网络广播系统设计(2)
新闻出处: 发布时间:2007-11-01
随后每路利用不同的RTP和RTCP端口号分别建立RTP会话。MP3数据被封装为一个个的RTP包,不断循环地送往小区局域网络,直到一首歌曲发送完成,开始对下一首歌曲文件进行封包发送。这样不断循环,从而实现随机循环广播8路歌曲的目的。服务器端的结构如图1所示。

  在小区各用户家中安装系统客户终端,客户终端设计成通过小区局域网同时接收8路音乐广播,并且可以对这8路音乐进行随意选择和切换收听。客户端在嵌人式环境下运行MP3广播接收程序。

  用户通过终端按键启动程序,即启动两个线程。一个线程建立RTP会话及对8路分别会话进行相对应的设置,然后从网络循环接收MP3数据流并将数据流写入缓存(这里缓存采用循环队列的概念);另一个线程则首先对声卡参数(如声卡采样率、声道等)进行设置,然后不断地从缓存(循环队列)读出MP3数据,随后对数据流进行实时解码并写入声卡,从而达到接收广播并播放的目的。两个线程同时进行,实现了边从网络接收边播放数据的功能,体现了系统的实时性。客户终端结构流程如图2所示。

  2 嵌入式MP3流媒体网络广播系统的实现

  2.1 系统实现环境

  2.1.1 软件环境
    
      
 
在应用于智能小区的嵌入式MP3流媒体广播系统的实现中,服务器端基于Windows平台,客户终端系统基于Linux内核。Linux操作系统可应用于多种硬件平台,原型可以在标准平台上开发后移植到具体的硬件上,使软件与硬件的开发过程加快。

  本系统在X86上开发后再移植到硬件平台上。Linux的高度模块化使添加部件非常容易,而且是免费开源,定会节省大量的开发费用。LJnux的优势还体现在可靠性和软件规模方面。Linux可以根据实际需要进行裁剪,并且具备强大的内存保护功能,可靠性高。如今,业界已经达成共识:嵌入式Linux是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进入这一领域。

  2.1.2 硬件环境
   
       在应用于智能小区的嵌入式MP3流媒体广播系统的实现中,嵌入式CPU采用GT2000,其CPU核心是方舟2号(Area2)。GT2000集成了高性能CPU核心和PC架构南北桥中的大部分功能,是信息终端设备和网络设备的理想解决方案。CT2000在40OMHz主频下运行时最大功耗只有360毫瓦,是业界最具竞争力的高性能、低功耗微处理器产品。

  方舟开发板Draco则为基于GT2000的产品开发提供了一个易于扩充、易于配置的平台,本系统采用了Draco开发板。一个全新体系结构的开发与应用需要高质量编译器工具链的支持。方舟CPU作为一个全新的RISC指令集体系结构,编译器的支持至关重要。

  方舟科技移植增强了GNU编译开发环境,使其对方舟CPU体系结构提供了全方位的支持。其GNU编译工具链覆盖了编译技术和开发环境的方方面面,代码效率及可移植性在业界处于领先地位,已成为Linux操作系统下的标准开发环境,也是嵌人式CPU开发环境事实上的工业标准。

  2.2 MP3流媒体传输协议
  
       在应用于智能小区的嵌入式MP3流媒体广播系统的实现中,传输方式采用流式传输。实现流式传输的一个重要条件是要有合适的传输协议。RTP(Real-timeTransport Protocol)正是作为这样一种适时的传输协议而出现的,它是进行实时流媒体传输的标准协议和关键技术。

  TRP协议是用于Intemet上针对多媒体数据流的一种传输协议。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。整个RTP协议由两个密切相关的部分组成:RTP数据协议和RTCP控制协议。RTP是通过在UDP上工作来进行数据传辖的,但也可以在其他协议上(如TCP)工作。而控制协议只能使用RTCP。

  应用程序开始一个RTP会话时将使用两个端口,一个给RTP,另一个给RTCP。TRP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。RTP与RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。相对于传统的传输协议,RTP协议更能保证数据的实时传输。

  在本系统实现中,采用Linux下的LIVE库进行数据传输。在Linux下,有很多基于RTP协议的库,如LIBRTP,JRTPLIB、LIVE库等。LIVE库是一个基于RTP/RTCP/RTSP/STP协议的流媒体传输库,其移植性好,既可以在Unix平台上编译,也可以在Windows平台以及其他一些系统平台上编译。它适合于嵌入式和低功耗场合的流媒体应用。

2.3 MP3流媒体解码
  
       在应用于智能小区的嵌入式MP3流媒体广播系统的实现中,用户接收端接收到的数据是网络传来的MP3数据流,因此,先对MP3数据流解码,然后才能写入声卡播放。

  MP3解码过程是先将MP3数据帧解包,然后用Huffman解码解出位分配信息。接着在逆变换中利用频谱系数,在合成滤波器中将32个子带合并成一个宽带信号,18个频谱值执行32次改进型离散余弦逆变换(IMDCT)。再将生成的576个频谱值变换成长度为32的18个连续频谱,通过18次运算,多相位合成滤波器将这些频谱转换到时域完成波形重构,生成PCM音频数据。多相位滤波器组包含一个频率映射运算(例如矩阵相乘)和一个有512个系数的FIR滤波器。MP3流媒体解码的流程如图3所示。

  3 系统的试验结果与讨论
    
 
 
    流式传输的实现需要缓存,在传输中实时MP3音频文件被拆分为许多数据包。由于网络动态变化,各个数据包选择的传输路由不尽相同,所以到达客户端时间延迟也就不等,甚至有先发的包后到及未到的情况。如果直接播放这种数据流会引起音频的延迟和抖动,因此采用缓存系统。缓存大小的设置直接影响播放质量。

  本系统数据缓冲区采用了循环队列的概念,其优点为在不断顺序读取数据的同时又不断将数据写入队列,因此使得缓冲大小相对稳定,从而保证数据的连续性。在数据发送接收的最初,由于数据量少,声音可能出现断续,此时,队列数据需达到一定的数据量时才往声卡写入。此后往队列不断写入数据并将队列的数据不断地写入声卡,从而保证了数据流的连续性。因此测试收听音质效果好,对于每一帧的数据大小,也就是每次写入缓冲队列的数据,程序会根据歌曲文件的大小自动对其加以调整以最适合传输。

  例如3.3MB的文件每一帧数据被发送时大小为l254B,而6.1MB的文件每一帧数据大小则为731B。另外,在嵌入式客户终端操作时采用图形界面方式。由于要照顾到不同的使用者,如老人、小孩,所以就要使操作简单方便。本设计中只利用简单的几个按键就能直观方便地进行操作,从而使应用操作比以往产品的复杂操作更加人性化,应用范围更加广泛。

  在实验测试中。模拟了几种丢帧情况下的音质效果。实验中,故意让接收数据进入队列时丢帧,做了几组测试,可以观察到丢帧概率不同时的声音断续情况,如表l所示。

  从表l可以看出:丢帧率越小,断续出现的时间间隔越大,也就是数据越流畅。而在不丢帧的情况下,亦即实验中程序运行情况下,播放基本没有断续,声音流畅、音色较好,达到了系统功能要求。

  从系统实现及实现结果看,系统达到了工程设计要求。在发送MP3数据流时,可以同时发送多路数据,在接收MP3广播时,能顺利切换各个频道,并且音质流畅,达到了较好接收MP3数据流的效果。系统操作简单,适应于各种层次的用户。本系统除了能很好地适用于智能小区外,还可应用于其他一些局域网的场合,如校园、酒店等。系统具有成本低、体积小、对MP3数据流可进行实时解码等优点,将会被越来越多地应用于人们的生活中。

关闭】【打印
友情链接:
© 2007 电子设备网 网站地图