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

发布时间:2014-09-29 阅读量:713 来源: 我爱方案网 作者:

【导读】视频服务器是数字电视的关键技术之一。视频服务器类型可分为基于通用计算机的服务器、基于高级工作站的服务器、基于专用硬件平台的服务器、分布式层次结构服务器等 几类。

分布式视频服务器结构对每个播出服务器的性能要求不是很高,因此,可以将大量廉价的服务器结合起来,通过合理的控制和调度达到一个高性能服务器的功能。本文讨论了一种分布式视频服务器的设计与实现。

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

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


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


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

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


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

链表,例如根据节目是否重播,是否在多个视频服务器上播放相同的节目等。节目单代理服务器根据更新的节目单生成相应的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;}/ * 为最佳服务队列 * /
} } } }

函数compute_Deadline( * q)主要计算当前队列是否有请求超时限以及有多少个请求超时限。函数 compute_time( * q)主要计算磁头寻道延时、磁盘旋转延时、数据传输延时、总线传输延时和命令处理延时五部分。总线传输延时和命令处理延时大小相对稳定;数据传输延时由磁盘读取带宽和数据大小决定;磁头寻道模型有加速、匀速、减速和定位四个阶段,其中加速和减速的加速度恒定。当磁头寻道的距离d为1~4个磁道时,仅有定位阶段;当磁头寻道的距离d(磁道数)为4400时,磁头寻道有加速、匀速、减速和定位四个阶段。磁头寻道延时计算公式如下:

磁盘旋转延时为旋转等待时间,可取其数据期望值,即磁盘旋转一周所需时间的一半。

在Windows平台实现时,有二种途径:(1)写一个lower filter挂在disk.sys下,GLMD算法在lower filter中实现。(2)直接改写DISK.SYS,其中DISK.SYS的源代码可以由Microsoft的DDK(Windows Driver Development Kit)得到。在Unix平台实现时,磁盘设备属于区块设备, GLMD算法主要改写区块设备request等相关函数,磁盘设备的驱动程序在drivers/ide/下,区块设备的驱动程序的request方法定义在linux/blkdev.h中。

为了检验GLMD算法的效果,找到单个服务器吞吐量上限(调度条件),本文做了大量实验,实验数据如表1所示。
表1 GLMD算法实验数据

      Windows2000     UNIX     UNIX +EDF     UNIX +GLMD

    12h     24h     12h     24h     12h     24h     12h     24h

<=4路节目     0     0     0     0     0     0     0     0
5路节目     0     0     0     1     0     0     0     0
6路节目     1     2     1     2     0     0     0     0
7路节目     2     3     2     2     0     0     0     0
8路节目     12     22     15     29     1     2     0     0
9路节目     50     104     34     62     5     11     0     0
10路节目     63     128     39     87     13     26     2     5

播出节目为同一个节目,平均带宽为4.2MB,每一路节目为该节目的一个备份,所得结果为12h和24h检测到的超时限次数。服务器硬件配置为:PⅢ Xeon 800/512MB内存/SCSI硬盘/100MB自适应网卡。

2.2 节目流调度策略


MPEG码流不是码率恒定的。本文实现的视频服务器采用内存缓冲平滑策略:每次磁盘访问连续读取相对大数据量的数据,数据首先缓存于内存中,平滑MPEG码流的突发码流,并减少磁盘访问次数。在实际处理时,针对不同的视频流码率和当前总输出缓冲区的情况,对每一个视频流确定一个读取文件的输入缓冲区。总输出码率与所有数据文件的总码率有关。

2.2.1 视频流文件读取


实验表明,通过读取大的请求(64KB),一次读取磁盘上的若干数据块,绕过文件系统作缓存可以使处理器开销减小一个数量级,从以前的每字节两个机器指令减少到每字节0.2个机器指令。对于所有大于8KB的请求,无缓冲的顺序读取达到了磁盘传输率的极限,并且磁盘控制器的预取机制起到了流水线的并行作用,使驱动器读操作可以达到内部传输率的极限。经过实验,本文选择了每隔0.3s进行连续文件访问,每次I/O操作读取数据为64KB的读取方式。

2.2.2 输入缓冲区


输入缓冲区操作根据2个阈值进行,即大于A%为满,小于B%为空。A、B这两个阈值的选择很重要。每次进行输入缓冲区操作前,检测输入缓冲区的状态。当缓冲区快满时,暂停并等待下一次进行输入缓冲区操作;同样,每次完成输入缓冲区操作后,检测输入缓冲区的状态。当缓冲区快空时,重复输入缓冲区操作,防止缓冲区出现下溢,处理更多的传输流分组。具体操作如下。

(1)输入缓冲区操作
while(!EndOfFile){
每隔0.3s处理如下操作
if(缓冲区的状态< A %){
do{进行缓冲区操作} until (缓冲区的状态>B%)
}
}

(2)参数选择
输入缓冲区参数选择:A=65,B=35,主要依赖于表2实验数据。

表2 输入缓冲区参数实验数据


缓冲区占用情况划分
(12小时检测结果)
    大于X%为满,
小于35%为空    
大于65%为满,
小于Y%为空
70     65     60     40     35     30
缓冲区上溢次数     2     0     0     0     0     0
缓冲区下溢次数     0     0     0     0     0     2
缓冲区暂停操作次数     5     5     6     6     5     5

缓冲区重复操作次数     1     1     3     2     1     1

(3)输入缓冲区操作举例

当三个输入流的缓冲区占用情况分别为图2所示的50%、71%、32%时,若此时正处于0.3s输入缓冲区操作周期,对于流A和C进行输入缓冲区操作,对于流B暂停并等待下一次进行输入缓冲区操作;若此时刚完成输入缓冲区操作,则对于流A和B暂停并等待下一次输入缓冲区操作,对于流C重复输入缓冲区操作,如图2所示。

图2 输入缓冲区操作举例


2.2.3 输出缓冲区


MPEG传输流的时间信息保存在PCR中,MPEG节目流音视频的时间信息保存在视频、音频流中携带的PTS、DTS中。所以视频服务器需要进行计算得到输出码流中每一路节目的分码率,并根据每一路节目的分码率进行输出缓冲区操作,把每一路节目的输入缓冲区的数据加上时间信息(PCR)发送到输出缓冲区。


由于视频服务器的输出速率基本恒定,所以视频服务器还需要根据传输速率与每一路节目的分码率总和的差向输出缓冲区加入空的数据包。这样输出缓冲区就可以按照恒定的传输速率发送数据。

本文提出的数字电视视频服务器设计方案已成功应用于辽宁鞍山数字电视系统中,收到了良好的经济和社会效益。该设计也可以推广应用到分布式视频服务器、视频点播服务器(VOD)、准视频点播服务器(NVOD)中。这样对每个视频服务器的性能要求不是很高,可以将大量廉价的服务器结合起来,通过合理的控制和调度,完成一个高性能数字电视视频服务器集群的功能。

相关文章

基于多域视频联网监控解决方案

基于CUDA技术的视频显示系统的设计与开发

基于FPGA的数字视频转换接口的设计与实现
相关资讯
半导体产业升级战:三星电子新一代1c DRAM量产布局解析

在全球半导体产业加速迭代的背景下,三星电子日前披露了其第六代10纳米级DRAM(1c DRAM)的产能规划方案。根据产业研究机构TechInsights于2023年8月22日发布的行业简报,这家韩国科技巨头正在同步推进华城厂区和平泽P4基地的设备升级工作,预计将于2023年第四季度形成规模化量产能力。这项技术的突破不仅标志着存储芯片制程进入新纪元,更将直接影响下一代高带宽存储器(HBM4)的市场格局。

蓝牙信道探测技术落地:MOKO联手Nordic破解室内定位三大痛点

全球领先的物联网设备制造商MOKO SMART近期推出基于Nordic Semiconductor新一代nRF54L15 SoC的L03蓝牙6.0信标,标志着低功耗蓝牙(BLE)定位技术进入高精度、长续航的新阶段。该方案集成蓝牙信道探测(Channel Sounding)、多协议兼容性与超低功耗设计,覆盖室内外复杂场景,定位误差率较传统方案降低60%以上,同时续航能力突破10年,为智慧城市、工业4.0等场景提供基础设施支持。

财报季再现黑天鹅!ADI营收超预期为何股价暴跌5%?

半导体行业风向标企业亚德诺(ADI)最新财报引发市场深度博弈。尽管公司第三财季营收预期上修至27.5亿美元,显著超出市场共识,但受关税政策驱动的汽车电子产品需求透支风险显露,致使股价单日重挫5%。这一背离现象揭示了当前半导体产业面临的复杂生态:在供应链重构与政策扰动交织下,短期业绩爆发与长期可持续增长之间的矛盾日益凸显。

全球可穿戴腕带市场首季激增13%,生态服务成决胜关键

根据国际权威市场研究机构Canalys于5月23日发布的调研报告,2025年第一季度全球可穿戴腕带设备市场呈现显著增长态势,总出货量达到4660万台,较去年同期增长13%。这一数据表明,消费者对健康监测、运动管理及智能互联设备的需求持续升温,行业竞争格局亦同步加速重构。

RP2350 vs STM32H7:性能翻倍,成本减半的MCU革新之战

2025年5月23日,全球领先的半导体与电子元器件代理商贸泽电子(Mouser Electronics)宣布,正式开售Raspberry Pi新一代RP2350微控制器。作为RP2040的迭代升级产品,RP2350凭借双核异构架构(Arm Cortex-M33 + RISC-V)、硬件级安全防护及工业级性价比,重新定义了中高端嵌入式开发场景的技术边界。该芯片通过多架构动态切换、可编程I/O扩展及4MB片上存储等创新设计,解决了传统微控制器在实时响应能力、跨生态兼容性与安全成本矛盾上的核心痛点,为工业自动化、消费电子及边缘AI设备提供了更具竞争力的底层硬件方案。