加入收藏
汇款帐号
购卖流程
帮助中心
| | | | | | | |
| | | | | | | | |
化工论文 | 外语论文 | 营销论文 | 综合监理 建筑 路桥 工民建设论文 | 社会实践 调查报告 | 总结 汇报 竞选 | 旅游 酒店 | 电子商务 | 农业
您现在的位置: 毕业论文网首页 > > 免费信息学技术毕业论文|计算机技术毕业论文|计算机应用毕业论文|电子商务毕业论文|毕业论文|毕业设计|称职论文|课程设计 >
本栏推荐最新原创

2基于CORBA的电子商务系统的安全性
2VB 控制AutoCAD绘制三维分形图案
2分布式对象技术及其在Web上的应用
2SCSI冗余路径软件的研究与实现
2在虚拟现实系统构建过程中使用3DS MAX
2基于椭圆曲线的嵌入式文件加密系统的设计与实现
2数字滤波器的应用研究
2高保密IC卡读卡器的应用研究
2信息网站的用户管理与实现
2PHP聊天室技术
2ASP.NET的网站新闻管理系统设计与实现
2便携式MP3播放器的设计--毕业设计
2谈面向对象的分布式开发系统--好论文
站 内 搜 索
请输入关键词1:(必填)

并且

请输入关键词2:(可不填)

*注:关键词如:会计信息、VB、学生、酒店、审计、VF等。关键词2是为了更加准确的找到你要的(但建议不要填上关键词2,因为这样查找的范围就小了)。

论文题目: 视频服务器多通道并行工作的一种策略,毕业论文

视频服务器多通道并行工作的一种策略,毕业论文

 

【摘要】本文讨论视频服务器多个通道并行工作的一种策略,通过实验具有一定的可行性。
【关键词】并行 多通道 解码器

1      引言
随着广播电视事业的飞速发展,电视台正向多频道、硬盘播出等方向发展,传统的自动播控系统构建发生重大改变,迫切需要研制新型的基于硬盘的自动播出系统,而视频服务器作为播放视频的一个关键部分,其性能直接影响自动播控系统的播出质量。本文探讨了视频服务器多个通道并行工作的一种策略,利用操作系统的多线程机制给予实现。下面先简单介绍一下多线程机制。

2  多线程机制
要想弄清楚多线程机制,先要知道什么是进程。进程是操作系统要完成的作业,经常是调入内存要执行的应用程序,不过它本身并不直接执行代码,最基本的执行体是线程。线程是指进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享进程的所有资源,包括打开的文件、信号标识及动态分配的内存等等,是一个应用中的一条基本的执行路径。在WindowsNT中,每一个进程至少有一个线程,称为主线程。所谓多线程,指的是系统同时运行多个执行体的能力。在WidowsNT中的任务调度策略是将一进程划分为多个线程,并由系统调度程序决定哪个线程可执行以及什么时候执行线程。可见,如果应用程序要求多个任务同时进行相应的处理,那么使用多线程是一种比较好的实现方法,基于此考虑,我们选择多线程机制来实现视频服务器的多个通道并行工作的目的。

3  多通道并行工作的策略
这里所说的一个通道是指一个MPEG-2解码器,多个通道并行工作是指多个MPEG-2解码器在限定时间内并行解码。根据不同图像质量的要求,MPEG-2解码器输出的码流率一般在4Mbps到50Mbps范围,而SCSI硬盘存储系统数据吞吐速率不低于640Mb/S,远大于解码要求的速率,这就为用一个线程在短暂的时间内轮换地为各个通道传送数据提供了可行性,也就是说,在此通道播放视频数据的时候,服务器有能力为其它通道传输数据,在此通道播放完它的数据之前,服务器能及时地回来再次为它传输数据,使得此通道能连续播放。假设服务器中共有n个通道,服务器用轮换方式为各个通道传送一次数据的周期是 ,服务器的传输速率为 ,第 个通道要求的MPEG-2的码率为 , 因通道必须连续播放视频数据,故第 个通道经过周期 播放的数据量必为 ,所有n个通道经过周期 播放的数据总量为
     
服务器在一个周期 里可提供的数据量为 ,服务器在一个周期 为所有通道传输数据要求
 <

                           <  ,                      ( 1,2,┅,n)
因为解码器解码的MPEG-2码流率 在一定范围 可调,所以理论上当 ,得到服务器的最大通道数 ,当 时,得到服务器的最小通道数 。对于服务器来说,一个周期要遍历所有通道,并轮换地为每个通道传输数据,每当一个周期结束时,服务器再次做下一个周期的循环。对于每个通道来说, 一个周期里该通道只被服务器传送一次数据, 每个通道本次收到的数据足以持续播放到它下一次接收数据的时候。从上面的讨论,可以看出,各通道在周期 里都占用一个时间片 ,因为服务器除了为各通道传送数据外,还有其他的工作,所以所有这些时间片的总和占据周期 的比例 要求小于1,即
 <1
 越小,服务器为各通道传送数据的能力越强 。

4      策略的实现
通常在硬盘自动播出系统里,有数台播控工作站与视频服务器通过局域网相连,一个频道至少需要一台播控工作站。播控工作站向服务器发送本频道的节目单信息,服务器根据节目单信息顺序播放节目(假设节目数据已保存在服务器硬盘里)。以3通道为例,首先服务器创建主线程,然后由主线程负责创建通道线程、监听线程、连接线程、调度线程和传输线程,并保证这几个线程的同步。具体来讲,主线程首先初始化服务器的3个通道,然后为这3个通道分别生成3个通道线程。每个通道线程负责本通道的解码器的数据输入和解码输出工作。一个单独的传输线程,在每一个周期内顺序地为各通道从硬盘上读取数据,并放入各个通道独立的输入缓冲区中。另一个单独的调度线程来维护一个索引表,索引表里存放数据流与通道的对应关系,在每个周期T里,传输线程简单地按索引表的指定的对应关系,轮换地把数据流传送到各个通道,如果要停止某个通道时,调度线程把这个通道从索引表里删除,如果有新的通道要求服务时,则把这个通道加入索引表里。视频服务器在为多个通道传送数据的同时,还必须响应各频道的播控工作站发给服务器的节目单请求,并根据节目单的内容(如文件名、通道号、时段等), 改变向通道传送数据的内容。为此,用3个独立的连接线程来完成接收来自3个播控工作站的节目单。首先,一个监听线程为和服务器建立TCP连接的播控工作站分配一个套接字描述符,然后启动相应的连接线程在这个套接字描述符上接收节目单信息,并验证节目单内的合理性,如果无误, 把接受的节目单信息传递给调度线程处理,根据连接线程递交的节目单内容, 调度线程建立一个索引表来管理通道和数据流之间的连接关系,使得通道播出按节目单要求。图1给出了上述线程的关系图。  






               

           

                                
5      线程间的协调工作
由于线程的运行是由操作系统的调度程序自动完成的,具有一定的不确定性,因此就可能出现两个线程同时对同一个缓冲区进行操作的“冲突”现象,所以必须让各线程协调一致地工作,也就是多线程同步的问题。同步的工作由主线程负责。一般地,同步问题可以分为两类,一类是保证合作线程按逻辑需要所确定的执行次序;另一类是保证共享缓冲区(或共享数据)的合作线程同步。对于前一种同步,我们采用信号机制,当A线程完成它的任务后,向另一等待该任务结束的B线程发出信号,通知B线程可以开始它的工作,当B线程工作完成,就向A线程发出信号,通知A线程可以继续它的任务。对于后一种同步,我们采用共享内存区或共享全局变量的方式,各个线程利用共享的内存进行大数据量传递,利用全局变量进行消息通信。
线程操作的数据大致分为:节目信息和节目流数据。节目信息指的是和视频节目有关的数据,如视频文件名、通道号,文件长度、播放时段等, 节目信息在连接线程和调度线程之间,调度线程和传输线程之间以全局变量方式共享。节目流数据指的是传输线程为各个通道传输的视频数据本身,节目流数据从磁盘读入内存区,而后将访问内存区的指针用全局变量在有关线程间传递。各节目信息定义用如下c语言表示:

typedef struct QNode{  //结点类型
 SOCKET  clientSocket;
 struct QNode *next;
}QNode, *QueuePtr;

typedef struct{        //链队列类型
     QueuePtr front;    //队头指针
     QueuePtr rear;     //队尾指针
}LinkQueue;


typedef struct  programe_list_{  //节目单链表
   struct PLAYBILL  Playbill;  
   struct PLAYBILL  *next;
}PROGRME_LIST;

typedef struct  map{  //索引表
   HANDLE  Array[3];
   int     Flag;
}MAP;

其中QNode是队列的节点,LinkQueue是由节点构成的链队列,用于存放监听线程接收的来自播控工作站的TCP套接字描述符,队列的每一个节点表示播控工作站在服务器上建立的一个连接点,它是监听线程和连接线程共享的数据。连接线程用TCP套接字描述符接收播控工作站发来的节目单。节目单PROGRME_LIST是一个链表结构,是调度线程和每个连接线程要共享的数据,存放连接线程从对应播控工作站接收的节目单信息,链表元素Playbill包含了如视频文件名、通道号,文件长度、播放时段等信息数据。调度线程轮询3条节目链表头,以此信息填写索引表MAP。索引表是调度线程和传输线程要共享的信息,其中Array[3]是一个数组结构,它表示节目流数据和通道的对应关系,标志Flag表示当某个通道将要切换到另一个节目流时,调度线程用此标志告诉传输线程做好提前切换节目流数据的准备,以保证该通道无缝播出下一条节目。传输线程读取节目流数据,缓存到相应通道的内存区,该内存区的指针将与通道线程共享,通道线程把这个指针传递给解码器的输入端口,解码器就可以对此内存里的数据进行解码播出。
所有在线程之间共享的节目信息都采用临界区来保护,实现安全共享。临界区变量由主线程产生,在创建子线程的时候,作为参数传递给对应的线程,或者作为各子线程的共享变量。

6      结论
我们构造了一个原型播出系统, 采用了2台普通的PC机(主频651MHz)作为频道的播控工作站,采用了惠普公司的HPLh3000服务器(主频866MHz),基本配置为在6个64位PCI插槽中任选2个插槽配置2块品尼高公司的Targa3000卡(具有一个解码器),各解码卡均采用15Mb/s码流输出, 服务器内置2×36.4GB 10000rpm SCSI硬盘驱动器作为视频文件存储器,通过实验,发现多个通道是可以较稳定的并行工作的。

参考文献
1      聂敏、傅廷伟,视频点播(VOD)系统及其工作方式,西安邮电学院学报,3000.9第5卷第3期。
2      宋燕红、马礼,多线程并发服务器的设计与实现,华北工学院学报,1998年第19卷第3期。
3      Yurdaer N. Donganata and Asser N. Tantawi. Making a lost – effective video server. IEEE Mutimedia, Winter 1993, 33-30。
4      Natarajan, K. Video servers take root. IEEE Spectrum , Volume: 33 Issue: 3 , April 1995 Page(s): 66–69。
5      陈文博、严蔚敏 著,数据结构与应用算法,清华大学出版社出版,3001-09。
6      [美] Andrew S. Tanenbaum 著,熊桂喜、王小虎译,计算机网络,清华大学出版社出版,1999-05。

本站提供除计算机信息管理以外免费毕业论文。


如果是计算机课程、软件设计、信息管理毕业论文、计算机毕业设计、毕业论文,请查看购卖参考论文流程

请按标明的价格进行网上支付:

【声明】:为了使这个免费参考论文站能长期运行下去,请大家在需要本站信息管理、计算机毕业设计、毕业参考论文时,请支付一点网络维护费。只要您到款,我们就通过邮件发给您需要参考的论文。

我的手机与我的银行帐号联网的.你存款后我的手机在十分钟会有提示的.你存款好后,马上发email给我说明你要的论文及存款时间、金额.
(一般都开着的:早上8:00--23:00)
email:bestlw@163.com 或 bestlw@yahoo.com.cn


声明:

1、严惩其它站点复制本站论文内容!作为自己的商业使用!
2、为了防止盗制,我们做了一些处理,给大家带来不便之处,请谅解!
3、这里将建成全国最大的免费参考论文库,原大家多多投稿:bestlw@163.com
4、部分内容如有遇上作者版权,请与我们联系我们及时以删除。
5、本站部分论文只提供参考,盗用发表者自负责任!
| 联系方法 | 关于本站 | 银行汇款帐号 | 购 买论文流程 | 帮助信息 |
Copyright © 2000 最佳论文网最佳论文网 All Rights Reserved.
最佳毕业论文网 免费毕业论文网 所有