新闻  |   论坛  |   博客  |   在线研讨会
基于UPnP发现与组播技术的IPTV终端实现
yanqin | 2009-06-24 12:40:01    阅读:2308   发布文章

 

摘 要:本文设计并实现的终端系统工作在mclinux操作系统下,通过应用upnp中的ssdp服务发现协议,实现在局域网中iptv终端的自动发现, 并使用ip组播技术将tv视频信号及本地的av视频信号。通过数字化处理和mepg-2编码压缩后封装为rtp包发送到组播地址,供局域网内的合法用户观看。
关键词:iptv;upnp;ip组播技术; mpeg-2

  引言

  iptv是一项系统技术, 可使音/视频内容节目或信号以ip 包的方式在不同物理网络中被安全、有效和保质地传送或分发给不同用户。

  基于upnp中的简单服务发现协议(ssdp,simple service discovery protocol)和ip组播技术,本文提出并实现了一种新的iptv终端系统。该系统不仅能将catv(有线电视网)模拟信号和本地av模拟信号转换为数字信号,并通过mpeg-2编码,再使用rtp/rtcp协议组播到家庭网络,而且提供了实时串流视频、本地视频定时存储播放和vod(video on demand)服务。

  upnp协议栈中的ssdp协议

  upnp(universal plug and play――通用即插即用)是针对局域网络范围内对等(peer-to-peer)互联而设计的一种应用层技术标准,旨在为家庭、小型企业、公共场所提供基于ip技术、易于使用的网络服务自动发现机制。

  ssdp用于服务发现,控制点借此可定位其感兴趣的资源在网络中的位置,设备可借此告之它们的可用性。ssdp客户(控制点)可往本地保留的多播地址的ssdp端口(239.255.255.250:1900)发送发现(discovery)消息来寻找ssdp服务;ssdp服务(设备)也可以同样的方式发送ssdp指示来宣告它的存在。

  本文iptv终端的upnp发现过程,即控制点(运行在mclinux上的服务器程序)搜索网络上的upnp设备(运行在pc上的客户端程序),同时,upnp设备也要宣告自己的存在。当用户在pc上打开一个新的客户端程序时,它会通过标准的本地多播地址发送多播发现消息宣告一个新的用户存在。控制点监听该多播地址,获取用户的可用信息。同样,当控制点被添加到网络时,它会多播一条发现消息来搜索是否已有客户端存在。

  iptv终端系统设计

  系统软件架构及

  子系统模块设计

  iptv终端系统软件架构分为服务器和客户端两部分,如图1所示。

图2 iptv终端系统软件架构图

  服务器软件部分包括:

  rtp/rtcp模块:该模块包含rtp/rtcp协议栈,负责将视频信息打包成rtp组播或单播到局域网中。

  串流模块:客户端用户选择本地音/视频文件或vod服务器里存有的音/视频文件,将其发送到vlc播放器中处理并转发到服务器的串流模块,由此模块在局域网内组播,供在线合法用户观看。

  定时音/视频存储、播放模块:管理员选择本地音/视频文件,将其发送到vlc播放器中处理并转发到服务器的定时音/视频存储、播放模块,由此模块异步写入flash中存储。管理员可以设定要播放存储视频的时间、播放次数、连续播放时间间隔、播放长度和结束时间等。

  用户合法性管理模块:该模块在用户登录时检查普通用户或系统管理员的合法性,并实时管理所有在线用户信息,定时显示所有在线用户的ip地址。

  upnp服务发现模块:该模块负责使用upnp中简单服务发现协议监听局域网内客户端程序的运行,并在客户端程序发出ssdp notify消息时响应。

  服务控制模块:由管理员更改服务器ip地址,用户更改音量、频道、画质等模块组成。

  硬件驱动模块:该模块由服务器上的硬件驱动程序组成。

  客户端软件部分包括:

  upnp服务发现模块:客户端应用程序运行时,在局域网内发送upnp ssdp宣告消息。

  用户登录模块:当收到服务器的upnp响应消息时,运行此模块,检查用户合法性。

  vod上传模块:通过vlc播放器和服务器上的串流模块,将音/视频上传到本地vod服务器。

  遥控器程序:系统ui部分,提供友好的系统管理员和普通用户操作界面。

  vlc播放器:一种强大的跨平台媒体播放软件,支持多种音/视频格式(mpeg-1、mpeg-2、 mpeg-4、divx、mp3、ogg...)、流媒体协议和串流组播。

  系统硬件体系结构设计与实现

  本方案是以华邦arm w90n740芯片为主控制器的硬件平台,在w90n740的外围添加网络模块、串口接口模块、调谐器模块、音/视频解码及数字化处理模块、mpeg-2音/视频压缩模块和usb模块等。系统硬件体系结构如图2所示。

图2 系统硬件体系结构框图

  1、cpu部分

  cpu(w90n740)、rom(512kb)、flash(8mb)、sdram(32mb)、sram(32k×32b)和cpld构成了最基本的处理系统。rom存放boot程序,每次reset后,cpu从这里运行,该部分程序主要作硬件初始化,为运行mclinux作准备。flash存放mclinux和用户程序。sdram是程序运行时存放mclinux和用户程序的地方。sram是pci桥成为本地总线主机时,写入数据的地方,由于plx9080不能操作sdram,所以,要用一个sram来做数据缓存。cpld主要完成pci总线的仲裁、地址译码、reset信号的产生、中断信号的汇总、sram的片选,以及一些信号的电平或时序转换。在cpu与 sram的数据总线和地址总线之间有一个开关,用于解决当cpu访问pci设备和pci设备访问sram同时发生时引起的死锁。当这种情况发生时,开关将断开cpu的数据总线和地址总线,同时输出wait信号,让cpu处于等待中,而让pci设备先访问sram,完成后,再恢复cpu对pci设备的访问。

  2、plx9080部分

  plx9080将pci总线和本地总线连接起来,它主要提供本地地址到pci地址的双向转换,本地控制到pci控制的双向转换。plx9080收到cpu的命令后,首先向cpld的pci仲裁器申请,获得许可后,开始进行pci读写。pci设备(比如saa7134)也是通过plx9080将数据写入本地存储器,当外部设备向plx9080发起pci写操作后,plx9080将向cpu申请本地总线的使用权,cpu释放总线的控制权,plx9080就将pci的地址翻译成本地地址,将数据写入sram中。

  3、saa7134hl部分

  saa7134hl主要将sif和cvbs信号进行解码、取样,然后数字化,组合成itu-r bt.656格式的视频数据和i2s格式的音频数据送给mpeg-2压缩,同时接收mpeg-2压缩器已经压缩好的传输流数据,进行缓冲后,将数据通过plx9080写入sram中,完成后向cpu发出中断,请求cpu进行处理。saa7134hl还包含了一个i2c master总线控制器,可以完成对调谐器和saa6752hs的控制。

  4、saa6752hs部分

  saa6752hs主要对saa7134hl送来的视频和音频数据按照mpeg-2标准进行压缩,完成压缩后将数据回送给saa7134hl进行传送。

  硬件功能说明如下:

  *调谐器:该部分是将从天线或同轴电缆接收进来的tv射频信号进行解调,输出视频信号和音频信号。

  *视频、音频解码和数字化:该部分将复合的视频信号(cvbs)解码,取出其中的y、u、v分量信号,然后对这些信号取样作a/d转换,再把这些数据组合成满足itu-r bt.656的数据,输出给mpeg-2压缩部分。同时,也对音频信号取样作a/d转换,再把这些数据组合成i2s格式的数据输出给mpeg-2压缩部分。

  *mpeg-2压缩部分:这部分将满足itu-r bt.656规定的视频数据和i2s格式的音频数据按照mpeg-2标准进行压缩,生成mpeg-2传输流输出到pci传输部分。

  *pci传输部分:该部分将mpeg-2传输流的数据经过缓冲后,将其经过pci总线写入到系统的内存中,然后发中断给处理器,通知其有数据要处理。

  *pci桥:pci桥是将处理器的本地总线和pci总线连接起来的部件,主要完成对pci 总线和本地总线的申请,以及pci总线地址与本地总线地址之间的转换、pci总线地址与本地总线之间的控制时序的转换。

  *处理器及其外围部件:该部分主要由cpu和能让其运行起来的基本外围器件组成。包括地址译码、sdram、flash、rom器件。

  *接口部分:与外部进行通信的接口,由两个以太网端口和一个rs-232,以及一个usb口组成。

  测试运行情况

  服务器平台配置:cpu (w90n740)、rom(512kb)、flash(8mb)、sdram(32mb)、sram(32k×32b),及mclinux操作系统。

  客户端平台配置: 奔腾 cpu(2.4ghz)、内存(256mb)、windows xp 操作系统。

  在测试中, 普通用户使用iptv终端在局域网内接收并流畅播放catv电视、本地av,观看实时串流或定时存储的音/视频,通过终端系统正常进行vod点播。系统管理员可以设置服务器ip地址、接收tv频道的范围、允许同时存在普通用户的最大个数、用户密码、实时串流、定时存储及上传到服务器的音/视频文件路径等功能。

  在播放的同时,用户可以通过遥控器程序设置播放色彩,画质,音量,频道及av->tv->vod->av循环切换。

  系统运行性能指标:

  (1)丢包率

  丢包率=(理论发包数-实际收包数)/理论发包数

  本系统在运行时可以根据上述公式动态计算传输丢包率,并在任何用户丢包率大于10%时自动断开用户与服务器的连接。

  (2)时延

  系统运行时,用户可以在线流畅地观看tv/av/vod视频流。

  如图3所示,当用户数量从1个增加到10个时,时延将随之从2ms增加到4.2ms。

图3 用户数量与时延关系图

  结语

  随着网络的迅速发展,将本终端系统应用于无线环境中,可提供支持广域网访问的服务,支持mpeg-4视频编码是下一步工作所要做的。

  参考文献:

  1. upnp forum, http://www.upnp.org

  2.walko, j. i love my iptv. iee communications engineer, pp. 16-19, dec. 2005

  3. jerry c., whitaker. interactive tv demystified. mc-graw hill,2001

  


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客