首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

数字电视视频服务器的设计与实现

数字电视视频服务器的设计与实现

关键字:数字电视   视频   服务器  
       数字电视是从电视节目录制、播出到发射、接收全部采用数字编码与数字传输技术的新一代电视。它具有可实现双向交互业务、抗干扰能力强、频率资源利用率高等优点。   

       视频服务器是数字电视的关键技术之一。视频服务器类型可分为基于通用计算机的服务器、基于高级工作站的服务器、基于专用硬件平台的服务器、分布式层次结构服务器等 几类。分布式视频服务器结构对每个播出服务器的性能要求不是很高,因此,可以将大量廉价的服务器结合起来,通过合理的控制和调度达到一个高性能服务器的功能。本文讨论了一种分布式视频服务器的设计与实现。

  1 分布式视频服务器的设计

  1.1 数字电视视频服务器网络结构

  本文设计的分布式视频服务器网络结构如图1所示。它可以完成从播出计划、节目存储、播出管理、码流复接等一系列工作。


图1 数字电视视频服务器网络结构图


  1.2 分布式视频服务器的功能构成


&
nbsp;  节目单服务器的功能是生成电子节目单。它提供人机交互功能,可以根据播出计划生成电子节目单,并可对已有的电子节目单进行编辑、查询等操作。此外它还可以对每一个节目提供附加信息,如节目简介等。当电子节目单发生变化时通知节目单代理服务器。

  链表,例如根据节目是否重播,是否在多个视频服务器上播放相同的节目等。节目单代理服务器根据更新的节目单生成相应的PSI/SI各种表复接到TS流中播发出去。由节目单数据库形成播出系统的基本指令是数字电视特有的系统流程,是网络化播出的基础,它使流媒体高效连续的自动化播出得以实现。

  播出服务器根据节目单代理服务器提供的播放列表维护节目的播放状态,实现自动播出。播出服务器一般由多个服务器组成,由节目单代理服务器调度。节目单代理服务器和播出服务器通过底层套接字通信。节目单代理服务器向播出服务器发送消息,然后播出服务器解释该消息以便决定要执行什么操作,如在特定的时间播出特定的节目。节目播控是数字电视节目平台播控系统中重要的组成部分,它的正确、稳定、高效运行是节目播出,安全、优质的保证。整个节目播出过程为自动播出无须人工干预,但可以通过客户端对播出过程进行调整。

  2 视频服务器实现的关键问题

  视频服务器涉及的技术很多,如流调度、磁盘I/O、磁盘存储、VCR功能实现等。本文重点从磁盘和文件调度与节目流调度策略两个方面讨论提高数字电视视频服务器的整体性能的技术。

  2.1视频服务器的磁盘和文件调度

  数字电视视频服务器与普通操作系统的磁盘调度不同,需采用带有在规定时间限制内完成的实时调度算法。适合流媒体的调度算法有EDF、RM、DSr等。LMD(Least Missed Deadline)算法是对服务超时限数作为优化对象的实时调度算法。本文采用一种称为贪婪LMD的调度算法GLMD。GLMD算法的核心为1)精确地计算服务每一个请求的时间,提高优化结果的可信度;(2)寻找服务超时限数最小的服务队列为最佳队列;(3)在满足服务时限的请求时,利用SCAN算法服务处在其移动路线上的请求。

  设原服务队列为?鄢q,新加入的服务请求为?鄢r,best_Deadline为原最佳服务队列超时限数,new_Deadline为插入新请求后服务队列超时限数,best_time为原最佳服务队列总服务时间,new_time为插入新请求后服务队列总服务时间,具体的GLMD算法如下所示:

void sbull_request(request_queue * q,request * r)
{
best_Deadline=+∞;
new_time=+∞;
while(1)  
{for(i=0;i add_queue( * r,i); / * 把请求插入队列i的位置 * /  
int new_Deadline=compute_Deadline( * q);/ * 计算当前  
/ * 超限数Deadline * /  
if(new_Deadline {best_queue= * q;/ * 当小于原服务超时限数,该服务 * /  best_Deadline=new_Deadline;}/ * 队列为最佳服务队列 * /  
if(new_Deadline==best_Deadline)  
{new_time=compute_time( * q);/ * 计算当前总服务时间 * /  
if(new_ time {best_queue= * q;/ * 当小于原服务时间,该服务队列 * /  
best_Deadline=new_Deadline;}/ * 为最佳服务队列 * /
} } } }   
返回列表