(信号与信息处理专业论文)视频点播系统关键技术研究.pdf_第1页
(信号与信息处理专业论文)视频点播系统关键技术研究.pdf_第2页
(信号与信息处理专业论文)视频点播系统关键技术研究.pdf_第3页
(信号与信息处理专业论文)视频点播系统关键技术研究.pdf_第4页
(信号与信息处理专业论文)视频点播系统关键技术研究.pdf_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 近年来,互联网迅猛发展,网络基础设施得到极大改善,宽带网络用户也 随之高速增长。这些都为网络流媒体应用提供了强大的市场动力。另一方面, 新一代的音视频压缩标准m p e g - 4 不断走向成熟,成为视频应用的不可或缺的一 个基本标准。v o d ( 视频点播) 作为种视音频媒体传输的典型应用,越来越受到 人们的关注。 y o n 技术是计算机技术、网络通信技术、多媒体技术和数字压缩技术多学科、 多领域交叉融合的产物。y o n 系统是一种交互式的系统,用户可以根据自己的意 愿选择收看节目,并能够控制其播放过程,从而根本上改变了过去被动式收看的 不足,完全实现了由用户掌握获得信息的主动权。它是当前计算机应用技术中 的重要课题,也是一项具有较高难度的课题。当前,国际上不断涌现的新的视 频编码和传输标准,极大地推动了v o d 技术的发展,也使得其应用推广和普及的 呼声越来越高,因此,开展本课题的研究具有重要的实用价值。 本文首先对v o d 系统的概念、系统构成进行了介绍,对现状及未来发展进行 了阐述。然后对视频点播系统的网络视频传送中的各功能模块进行了详细的设 计,提出了一种新的视频服务器响应机制。此外,综合大量国内外有关y o n 技术 的文献,对视音频压缩技术,视频传输技术及相关协议进行了介绍和分析。 关键词:视频点播完成端口m p e g - 4 实时传输协议 a b s t r a c t r e c e n t l y ,w i t ht h es i g n i f i c a n td e v e l o p m e n to ft h ei n t e m e tt e c h n o l o g y , a p r o f o u n dm e l i o r a t i o nc o m et r u eo nb r o a db a n db a s e df a c i l i t i e sc o n s t r u c t i o na n dw i t h i n c r e a s i n gn u m b e ro fi n t e r a c tu s e r s ,t h ei m p l i c a t i o na n dd e v e l o p m e n to fn e t w o r k s t r e a m i n gm e d i at e c h n o l o g yh a sb e c o m em o r ea v a i l a b l e m o r e o v e r , an e w l y m p e g - 4h a sb e z x ) m em a t u r ea n dan e c e s s a r yb a s i cs t a n d a r df o rt h ei m p l i c a t i o no f s t r e a m i n gm e d i a v o ds y s t e m ( v i d e oo nd e m a n ds y s t e m ) ,w h i c hi sar e p r e s e n t a t i v e a p p l i c a t i o no fv i d e oa n da u d i om e d i at r a n s m i s s i o n , h a sb e e np a i dm o r ea n dm o r e a t t e n t i o n v o dt e c h n o l o g yi sab l e n d i n gr e s u l to fm u l t i p l es u b j e c t sa n df i e l d ss u c ha s c o m p u t e rt e c h n o l o g y ,n e t w o r kc o m m u n i c a t i o n , m u l t i m e d i at e c h n o l o g ya n dd i g i t a l c o m p r e s s i o n v o ds y s t e mi sa i la l t e r n a t i n gv i d e o - o r d e r i n gs y s t e m u s e r sc a nc h o o w a t c h i n ga n dc o n t r o lt h ep l a y b a c kp r o c e s so nt h e i rw i l l ,w h i c hr a d i c a l l yo v e r c o m e t h es h o r t a g e so fp a s s i v ew a yo na n dc o m p l e t e l yi m p l e m e n tt h en s e l - s i n i t i a t i v eo f g e t t i n gi n f o r m a t i o n i ti sa l s oav e r yi m p o r t a n ta n dd i f f i c u l ts u b j e c t n o w , t h ec o m i n g f o r t ho fs o m en e wm e t h o d so fv i d e oe n c o d i n ga n ds t a n d a r d so fv i d e ot r a n s m i s s i o n c o n t i n u o u s l yp r o m o t e st h ed e v e l o p m e n to fv o dt e c h n o l o g y a n db r i n g st h ev o i c eo f t h eg e n e r a l i z a t i o no fi t sa p p l i c a t i o n t h e r e f o r e ,t h er e s e a r c ho nt h es u b j e c tt a k e so n v e r yi m p o r t a n tp r a c t i c a lw o r t h , 1 1 1 ec o n c e p ta n dt h es t r u c t u r eo fav o d s y s t e ma r ef i r s ti n t r o d u c e di nt h i sp a p e r a n dt h e nt h ec u r r e n ts t a t u sa n df u t u r ed e v e l o p m e n ta b o u ti ta r ed e s c r i b e d f u r t h e r m o r e ,t h ep a p e rd e s i g n st h ef u n c t i o nm o d u l e si nt h en e t w o r kt r a n s m i s s i o no fv o d s y s t e m ,a n dp r e s e n tan e wf f v e rr e s p o n s em e c h a n i s m t h r o u g ht h er e a d i n go f ag r e a t d e a lo ft h ed o m e s t i ca n do v e r s e al i t e r a t u r eo fv o d t e c h n o l o g y ,w ei n t r o d u c ea n d a n a l y z et h et e c h n o l o g yo fv i d e oa n da u d i oe n c o d i n g ,t h et e c h n o l o g yo fv i d e o a u d i o t r a n s m i s s i o na n ds o m ep r o t o c o l sr e l a t e d k e y w o r d s : v o di o c p m p e g - 4 r t p 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得叁鲞盘茎或其他教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论 文中作了明确的说明并表示了谢意。 学位论文作者签名:帮日日哲 签字日期: p 一,年1 月冲日 学位论文版权使用授权书 本学位论文作者完全了解鑫壅蠢茎有关保留、使用学位论文的规定。 特授权鑫鲞盘茎可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学 校向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 帮咀哲 导师签名: 1 覆面1 乏 签字日期:。一占年z 月节日 签字日期: 膨( ,年月可中日 第一章视频点播系统概述 第一章视频点播系统概述 网络多媒体的发展方兴未艾,这主要得益于两个方面:多媒体促进了计算机 的人性化,网络促进了计算机的普及化。传统计算机是为计算而设计的,其功能 简单而操作复杂,制约了人们对计算机的应用。多媒体则改变了这一局面。狭义 上的多媒体指的是视频、音频等媒体技术;广义上,多媒体是指人机交互的各种 手段和方法。在计算机硬件水平按照摩尔定律飞速发展的过程中,视频、音频等 媒体的存储、压缩、检索和渲染技术的日渐成熟,多媒体技术也进入了飞速发展 时期。视觉、听觉、逻辑、感性,多媒体和人机交互技术在降低计算机使用难度 的同时,还提高了信息的表达能力,促进了计算机向人性化方向的发展。网络技 术的发展使大量信息涌入人们的生活,人们对信息的渴望更促进网络的进一步普 及和发展。i n t e m e t 的发展极大地提高人们获得信息的能力,世界正在变成一个“地 球村”,人与人之间的交互已经变得非常简单。在这样的背景下,网络与多媒体 的结合成为一种必然i l 】。 i n t e r n e t 快速发展使得人们可以方便、快捷地访问到存放在不同物理位置的 服务器上的各种信息,成为一次新的信息技术革命。以前,网络中传输的大部分 的信息主要还是文本和静态图像。但是近年来随着网络带宽和计算机处理能力的 提升,人们注意力转向连续媒体,越来越多的人们希望能够通过网络欣赏热门的 音乐、观看最新的影视节目。存储在网络服务器上的5 0 以上的内容都是连续媒 体信息。互联网已经从一个静态数据内容( 文本、图像) 占主导地位的阶段快速地 发展到一个包含静态媒体内容和连续媒体内容的综合的信息资源库,而基于口 的视频点播将是网络多媒体最重要应用之一。 1 ,1 视频点播的概念 视频点播通常被称为v o d ( v i d e oo nd e m a n d ) ,是近年来新兴的一种网络 传媒方式,是计算机技术、网络通信技术、多媒体技术、电视技术和数字压缩技 术等多学科、多领域融合交叉的产物。它可以根据用户需要,随时提供交互式视 频服务 2 1 。 视频点播从根本上改变了传统的单向传输、用户对视频节目无权选择的状 况,使用户不仅能够观看固定节目,而且还可以自由选择存放在视频点播系统中 的视频信号,随时点播自己想看的节目。v o d 技术早在2 0 世纪7 0 年代就引起了 人们的关注,但当时其应用范围有很大的局限性。随着“信息高速公路”的兴起 第一章视频点播系统概述 和发展,数字压缩技术的出现,流媒体技术的发展,使视频点播系统进入了新的 领域,并且为行业用户提供了多种解决方案,以满足用户的各种需求。 目前,v o d 技术在企业、军队、宾馆、图书馆、档案馆、嬉物馆、网络教 学、汽车、火车、轮船、飞机、商场、医院及小区等领域得到了广泛的应用。从 某种意义上说,这是信息接受者根据自身需要进行自我完善和自我发展的方式。 这种方式在当今的信息社会中,将越来越符合信息资源消费者的深层需要。可以 说,v o d 是未来信息获取的主流方式 3 1 。 1 2 视频点播的发展史 视频点播通过网络为用户提供包括视频、音频等媒体数据的点播业务。它涵 盖网络多媒体技术的各个方面,具有显著的社会效益和经济效益,1 一直处于网络 多媒体应用的前沿。媒体数据的压缩和存储技术目前己基本成熟,代表性的标准 有:h 2 6 3 ,r e a lv i d e o ,m p e g 等,其中m p e g 标准已经从m p e g 1 ,m p e g - 2 , 发展到今天被广泛应用的m p e g - 4 。宽带网络高速发展,各种网络结构统一于i p 协议,广域网带宽与日俱增,随着“最后一公里”问题的逐步解决,高速网络接 入千家万户。v o d 系统的基础工程基本趋于成熟。 早在1 9 8 6 年,南贝尔( b e l ls o u t h ) 公司就开始了有关v o d 的实验。1 9 9 3 年,在 美国政府资助下,大话洋贝尔( b e l la t l a n t i c ) 公司在电话线上进行了电视视频拨 号音的实验,并尝试将m p e g - 1 的压缩数据节日传送n 2 0 0 0 个用户的机顶盒,通 过机顶盒解码再传送给用户。同年,n y n e x 公司也开始向曼哈顿的居民提供第一 套试验性的点播电视系统。1 9 9 4 年,在美国召开了t i m ew a r n e r 全业务网( f m l s e r v i c en e t w o r k ) 新闻发布会,后来通常将这一天为视频点播的诞辰日。从此, 视频点播系统进入了蓬勃发展的时期。 i b m 公司在1 9 9 5 年7 月宣布成立交互式电视应用开发实验室。在这以后,美 国的许多大公司相继涉足视频点播这一领域,分别推出自己的视频点播服务器并 推向市场。对机顶盒的大规模设计开发也进入实质阶段,芯片设计厂商己设计了 机顶盒专用芯片,软件厂商也积极参与,微软公司收购了美国最大的机顶盒生产 厂商,2 0 0 2 年m i c r o s o f t 的总裁b i l lg a t e s 曾在深期l 推出“维娜斯”计划也是基于这 个考虑。 统计资料显示,全世界己有1 7 个国家正在开发或者研究提供视频点播的实验 和服务,已有大约5 0 0 万个v o d 用户通过这一服务观看电影和打包的付费电视节 目。分析人士预测说,随着技术和市场的日益成熟,以及有线、卫星、宽带( 电 信) 之间在视频业务方面的争夺日趋激烈,v o d 在未来几年内还将继续高速发 展,保守估计,药j 2 0 0 7 年的全球用户总数将是目前的3 倍多。在国内,广电总局 2 第一章视频点播系统概述 已批复有线数字电视试点4 6 个,遍及2 6 个省( 区、市) 。很多有线电视网络公司已 开展视频点播业务【4 l 。 v o d 系统的研发随着网络的发展、用户需求的增长,必然会成为一个新的 热点,一个群雄逐鹿的v o d 时代已经到来。 1 3 分类及特点 按照不同的方法,视频点播系统有不同的分类u j 。 1 按照视频点播系统服务的规模,可以将视频点播系统划分为以下三类: ( 1 ) 小型视频点播系统 这种服务器的应用领域是5 0 点以内的小型网络。利用小型视频点播系统可以 构造多媒体教室,在多媒体教室中,学生能够点播视频、教学节目、观看辅助教 学的录像等。小型视频点播系统还可以用在公司内建构培训系统,公司职员可以 通过内部的i n t r a n e t 选择自己的空闲时间来收看有关培训的视频节目。这样的视频 点播系统还可以用作视频信息查询系统,如在车站、银行、邮电、旅游等服务行 业,用它来取代人工问讯机构,提供直观的视频信息服务。 ( 2 ) 中型视频点播系统 这种系统的用户数目在5 0 1 0 0 0 之间,特别适合饭店、旅馆、歌厅等场所的 娱乐点播系统。用户可以在饭店的房间内点播并收看电影、电视和新闻节目,也 可以通过该系统随时随意地点唱自己喜爱的卡拉o k 节目。 ( 3 ) 大型视频点播系统 该系统可服务的用户数目至少在1 0 0 0 个以上。大型视频点播系统是未来城市 有线电视的发展方向,未来的有线电视在兼容现有的广播电视节目的同时将支持 用户对特定节目点播的需要。这种有线电视系统是现有广播电视、视频节目出租、 信息查询等多种功能的综合体,通过这个网络,用户可以浏览商店的货架、进行 网上购物、点播交互式电影、电视和参与成千上万用户加入的大规模游戏等。 2 从视频点播系统所能提供给用户的视频服务方式,我们又可以将视频点播 系统分为以下几类: , ( 1 ) 准视频点播( n v o dn e a rv i d e oo nd e m a n d ) 将节目每一定时间从头开始播放,比如一个预小时的节目,每隔1 0 分钟开始 播放一次,一共需要1 2 个单独的视频频道,或者说产生1 2 个视频流,用户只能从 这1 2 个频道中选择,点播一个节目最多只需等待1 0 分钟。在这种方式下,一个视 频流可能被多个用户共享,实现比较简单、容易。 ( 2 ) 真视频点播( t v o dt r u ev i d e oo nd e m a n d ) 每个用户单独占用一个视频流,支持真正的即点即放。当用户点播时,视频 第一章视频点播系统概述 服务器将会立即传送用户所要的视频流内容。若有另一个用户提出同样的需求, 视频服务器就会立即为它再启动另一个传输同样内容的视频流。不过,一旦视频 流开始播放,就要连续播放下去,直到结束。在这种方式下,每个视频流专为某 个用户服务。 ( 3 ) 交互式视频点播( i v o di n t e r a c t i v ev i d e oo nd e m a n d ) 它比前两种方式有很大程度的改进,上述两种视频点播都属于节目级点播, 用户只能点播节目并等待节目的开始,而不具有对节目的操作能力。v o d 不仅 可以支持即点即放,而且还可以让用户进行交互式控制,例如暂停、快进、快退 等v c r 操作。此时,用户感觉就象在使用自己家里的v c d 、d v d 机一样。 发展初期的视频点播系统一般仅支持准视频点播系统,因为在准视频点播 中,网络上所传输的视频流数目有限,不同用户共享相同的视频频道,节省了网 络的有限资源。准视频点播的管理也相对简单,系统容易实现。随着视频点播系 统的发展,服务器能够对更多的资源进行管理,实现更加复杂的调度和操作,在 中型和大型视频点播系统上实现真视频点播和全交互式视频点播是视频点播系 统的主要发展方向。 1 4 问题和挑战 尽管网络在快速发展,但是对大规模的v o d 仍然不足,目前的商业v o d 系 统绝大多数是针对小规模的v o d 应用,比如v i d e os t a r 单个模块只能提供8 个视频 流,即使多个模块组合最多也只能提供1 6 0 个视频流,这种规模的服务器不能应 付日益增长的大用户量、多并发流的需求。例如,网上广受欢迎的r e a l n e t w o r k s 公司的点播系统,采用特殊的r i l l 格式的媒体文件,达到了在较小带宽的网络下传 送的目标,但其画面和音质的质量不是看惯了家庭影院的用户能够接受的。 其次,无论是基于视频服务器的v o d 产品,还是基于网络的软件v o d 系统, 它们都是基于单播的视频流方案所谓单播视频流方案就是给用户提供独享的视 频服务,即一个用户占用一个信道,这使得用户服务数量受到流媒体带宽的限制, 同样无法满足多并发用户数的需求。如著名的r e a l p l a y 是单播方案,仅限1 6 个用 户。同时,这些系统主要采用集中式高性能视频服务器的组织形式,系统只有一 个播放中心,当用户请求点播时,播放中心的视频服务器将直接服务该用户。这 种方式除了对服务器的i o 能力要求较高外,整个系统还需要一个带宽极高的主 干网络。例如一般的m p e g - 1 影片所需要的传输速率为1 5 m b s ,如果并发服务 1 0 0 0 个用户,那么主干网络的传输速率至少为1 5 0 0 m b s ,可以看出建造这样一个 系统所需要的造价极高。 最后,当前大多数v o d 系统采用的是单服务器结构,这一结构最突出的优 4 第一章 视频点播系统概述 点是实现和管理简单,但对视频服务器的要求相当高,一般需要采用专用的高性 能的计算机才行。并且,单服务器结构存在着许多很难克服的缺陷,其中最突出 的一点是可扩展性:当用户需求超出系统容限( 服务器i o 能力、存储容量、网络 带宽等) 时,需要将数据备份到新的服务器上或更换新的服务器,开销非常大。 另外,如果服务器出现故障,整个v o d 系统的运行将陷入瘫痪,系统的可靠性 和容错性能低。 伴随越来越多的大用户量、多并发流的网络需求,目前的v o d 系统必须在 增加视频数据的存储量、增加服务器并发服务的用户数目和提高v o d 系统的性 能方面做相应的改善和提高。如何利用有限的网络资源向更多的用户提供更好的 服务是当前v 0 d 研究的重点。 1 5 论文研究的目的和意义 综上所述,多媒体应用是网络发展的方向,多用户、大并发流和高质量是媒 体点播系统发展的趋势:而目前的视频点播系统还不能很好地适应这一发展趋 势。针对这些问题目前普遍采用以下方式来解决: 1 采用高效的压缩、编码方式,或者增加网络带宽。然而画面质量难以保证, 或者只能在局部范围推广使用。 2 采用组播方式。缺点是用户无法对视频流进行单独的控制,无法实现真正 意义上的视频点播。 3 提高服务器的性能,使用大型专用视频服务器。这种方式投资成本较高。 可以看出目前的解决方式要么注重了问题的一个方面,要么投资成本较高, 难以在大部分网络环境中推广使用。 本文借鉴目前发展迅速的网络游戏服务器的软件模型提出了一种新的视频 服务器运行机制,同时对视频文件的压缩存储和网络流媒体的实时传输技术进行 了深入的研究。 1 6 小结 本章介绍了视频点播的概念和视频点播技术的发展历程,对不同视频点播系 统进行分类并分别对其进行了简单介绍。提出了该技术在推广过程中所面临的一 些难题,说明了主要的研究方向。 第二章视频点播系统实现方案 第二章视频点播系统实现方案 本文根据视频点播系统的基本原理设计了一个相对简单的交互式视频点播 的软件实现方案。一个c s 模式视频点播系统主要包括三部分:视频服务器、传 输网络和客户端系统。其关系如图2 1 所示: 服务器传输网络客户端 图2 - 1 视频点播系统 2 1 视频服务器 视频服务器负责视频的存储和传送,以及节目的检索和服务。它在整个系统 中占很重要的地位,是影响整个系统设计的关键,也是整个系统技术含量最高的 部分。视频服务器本质上就是一台或一组提供音视频媒体存储和传输的计算机。 之所以将视频服务器的概念与普通计算机相区分,是因为视频服务器在存储和传 输媒体节目的能力上明显强于普通计算机,而媒体节目的存储和传输是v o d 系 统功能实现的核心,v o d 系统的服务能力几乎完全是由视频服务器服务能力来 决定,因此学术界和产业界对v o d 的研发重点都集中在视频服务器上。 在普通的视频点播系统中视频服务器由多台p c 机组成,按照功能不同分为 w e b 服务器,控制服务器和媒体服务器( n 台) 。w e b 服务器主要通过w e b 形 式向客户提供媒体资料,并接收用户反馈回来的文件选择、播放控制等命令,并 将其转给控制服务器。控制服务器收到命令后,将对用户进行合法性验证,通过 后将用户的控制命令解析,取得操作码,找到合适的媒体服务器,然后媒体服务 器负责将音视频流实时传给客户端。 本文只是系统的简单实现,因此将以上三种服务器集中在一台p c 机上实现。 6 第二章视频点播系统实现方案 本文设计的服务端软件集中实现了以上所有功能,包括与客户端的通信,流媒体 的实时传输,视频文件的数据库查询,多用户多进程的协调与控制等等。 以上功能实现最大的难点在于如何实现服务端的多用户响应机制,如何协调 好同时接收上百个用户的反馈信息,如何同时向这些用户实时传输不同的媒体文 件,这些是该系统成功实现的关键。 本文借鉴了现在颇为流行的网络游戏及q q 聊天软件的服务机制,采用了 m i c r o s o f t 公司新近推出的完成端口技术。该技术解决了c p u 处理的高速与f o 端 口传输的低效之间的矛盾,省略了系统在传输过程中由用户态向模式态的转变, 极大地提高了传输效率。该系统理论上甚至可以支持一台p c 机同时同上千台用 户p c 机之间的s o c k e t 通信。 2 2 传输网络 传输网络负责传输从服务器到用户的媒体流和控制流。包括具有交换功能的 主干网络和宽带接入网络两部分,由v o d 业务接入点的设备将这两部分连接起 来。业务接入点主要完成按用户指令建立一条视频服务器到用户的宽带通道。因 为网络系统负责视频信息流的实时传输,所以是影响连续媒体网络服务系统性能 极为关键的部分【4 】。 将视频数据通过网络传输到客户端有两种模式:非流式传输和流式传输。非 流式传输是将视频数据当作文件下载到客户端,然后再完成播放操作。这种方式 对于网络的传输没有特别的要求,但显然会产生非常大的服务延迟时间,另外, 在客户端为了存储大量的视频数据需要保留相当的存储空间。流式( s t r e a m ) 传输 在客户端保持一个较小的缓存,视频流服务器在读取数据的同时,通过网络将数 据传输到客户端,客户端经过一个很小的延迟后,开始播放视频数据。对于利用 网络提供视频服务,流式传输机制显然是一种更好的选择。但可以看到,在上述 过程中数据的读取和传输是相互关联的,任何一个环节都可以造成播放质量被破 坏。对于来自视频流服务器的连续实时数据,传统计算机网络尽可能快地传输数 据的机制不再适合,流式数据要求网络以相对恒定的速度传输,因而还需要引入 新的传输机制。视频点播系统中的网络传输机制,不仅仅需要满足媒体数据的快 速高效实时传输,还需要对传输过程中出现的带宽抖动,数据丢失具有相当的抗 干扰能力和自我恢复能力,需要具有对于网络环境不断变化和用户需求不断变化 的一种自适应机制。 因此,本文中的视频点播系统软件为实现实时传输,选择了压缩率高而且具 有极强错误隐藏能力的m p e g - 4 标准作为视频存储和传输的主要格式,并对r t p 协议做了相应的改进以实现视频实时传输。 第二章视频点播系统实现方案 首先是发送控制部分。众所周知,r t p 协议( 实时传输协议) 现在是国际上 通用的实现媒体文件实时传输的标准协议。其实时性的实现主要依赖于对视频和 音频帧所标记的时间戳和序列号。通过时间戳将属于同一帧的多个u d p 包组合在 一起,利用序列号对这些数据包重新排序,以实现客户端媒体数据的正常播放, 并且通过时间戳来计算包速率,反馈至服务端。最后还要利用这个反馈信息动态 地调整媒体服务器的视频发送速率和视频数据的压缩码率。r t p 协议建议如果在 视频传输过程中发生数据丢失的情况,首先要依赖m p e g - 4 中的错误隐藏和修复 机制进行恢复,但是如果丢失数据过多,就不得不丢弃该帧。但是这种机制显然 忽略了m p e g 标准中关键帧与非关键帧的区别。对于视频的解码和播放,丢失i 帧和p 帧的效果是不一样的。如果丢弃的正好是i 帧,则视频解码有可能造成连续 多帧的解码错误,而丢失的p 帧只要数目不太多,就不会对用户观看造成太大影 响。所以我们在设计数据传输机制时,对m p e g - - 4 文件中的i 帧和p 帧区别对待。 接收端对i 帧有个确认机制,一旦发现其丢失,则马上通过r t c p 包反馈给服务器, 令其进行重传,如图2 - 2 所示。 发送控制 编码 信道接收显 控制不 码率自适应 i 丢包 切换控制眦p 一 反馈 t 1r 上 蒜l 自 : 卜 i 帧 卜 重 便仪 倒 传 控肿一 器卜1 p 帧 卜 制缓冲 图2 - 2 发送控制框图 如果这个反馈信号丢失怎么办呢? 我们在服务器端加入一个反馈确认机制。 视频数据发送前需要将视频帧提取出来,暂时存储到内存中,然后再进行传输。 我们可以把i 帧和p 帧存储到不同的内存段中。p 帧发送后马上从内存中删除, 而i 帧发送后还要保留一定的时间。在这个时间内,如果收到了客户端发来的i 帧确认信号,则将其删除,否则就重发该帧,并重新计时,等待新的确认信号。 如图2 3 所示。 在m p e g - 4 压缩标准中,i 帧与p 帧并非是相互独立的,p 帧的解码还要依 8 第二章视频点播系统实现方案 赖于i 帧。如果一个g o p 只有p 帧而没有i 帧,则该g o p 不能解码。p 帧的发 图2 - 3 确认控制框图 送要参照i 帧的发送速度,如果一个c r o p 的i 帧没有发送,那么也就不能发送p 帧。然而这样的话肯定会影响到视频的总的发送速率,系统的实时性就会受到影 响。因此必须对p 帧有个相应的丢弃机制,如图2 4 所示。 图2 - 4 缓冲控制框图 9 第二章 视频点播系统实现方案 2 3 客户端 客户端最基本的功能是将通过网络接收到的视频数据缓存在本地,对所收到 的数据包进行整理,对压缩的视频数据进行解码,并通过显示设备播放出来。同 时客户端还需向服务器传送用户在视频播放过程中的操作,如快进、暂停等,由 服务器对传输状态进行控制。另外,在接收视频数据过程中,客户端持续地向服 务器发出反馈信息,帮助服务器对当前的服务状况和网络传输状况做出判断。 本文中的客户端软件开发,采用了m i c r o s o f t 公司为在w i n d o w s 操作平台上 进行流媒体技术开发的用户提供的d i r e c t s h o w 技术【5 1 【6 1 ,编写客户端的视频播放 程序,当用户接收到一定数量的音视频数据,就可以解码播放。 2 4 小结 本章主要介绍了一个典型的视频点播系统的组成,并提出了自己的网络视 频实时传输的解决方案,对视频在网络传输过程中的发送、接收、反馈、码率控 制等机制进行了详细的说明。 1 0 第三章视频服务器响应的完成端口技术 第三章视频服务器响应的完成端口技术 “完成端口是实现高容量网络服务器的最佳方法。它提供了最好的伸缩性, 用来处理数百乃至上千个套接字。因为它是唯一适用于高负载服务器( 必须同时 维护许多连接线路) 的一个技术。c o m p l e t i o np o r t s 利用了大量的线程,帮助平 衡由i o 请求所引起的负载。” - l i c r o s o nc o r p o r a t i o n 3 1 完成端口概述 计算机i o 设备是个相对慢速的设备,不论是打印机,还是调制解调器,甚 至硬盘,与c p u 的处理速度相比都是非常慢的,因此让应用程序来等待一个i o 操作的完成不是一件明智的事情。例如用户要把数据从文件服务器中以e t h e m e t 速度取出,其速度高达每秒一百万字节,在用户看来几乎是瞬间完成。但是,如 果用一个线程来完成该任务,它需要先提取出一块数据,然后通过i o 操作将其 传输出去,再进行下一次的数据提取。而在等待i 0 操作完成的过程中每秒就要 浪费掉1 0 个一百万次c p u 周期。因此应用程序需要创建另一个专门的线程来进 行i o 操作。重叠i o ( o v e r l a p p e dv o ) 指的就是这种专门进行i o 操作线程的 技术,操作系统为应用程序传送数据,并且在传送完毕时通知程序,而程序在i o 操作进行过程中仍然能够继续处理其他事务。这也就是“完成”的本质。 下面是一个简单的s o c k e t 通信例子: m a i n ( ) w s a s t a r t u p ( m a k e w o r d ( 2 ,2 ) ,& w s a d a t a ) : 初始化套接字环境 l i s t e n i n g s o c k e t 2 s o c k e t ( a fr n e t ,s o c k _ s t r e a m ,o ) ; b i n d ( l i s t e n i n g s o e k e t , ( s o c k a d d r ) & s e r v e r a d d r , s i z c o f ( s c r v e r a d d r ) ) ; l i s t e n ( l i s t e n i n g s o c k e t ,5 ) ; 创建套接字,监听来自网络的连接请求 第三章视频服务器响应的完成端口技术 i a tn l i s t e n a d d r l e n = s i z e o f ( c l i e n t a d d r ) ; w h i l e ( t r u e ) n e w c o n n e c t i o n = a c c e p t ( l i s t e n i n g s o c k e t , ( s o c k a d d r + ) & c l i e n t a d d r , & r d i s t e n a d d r l e n ) ; 当监听到网络中的连接请求后创建新的套接字 h 州d l eh t h r e a d = c r e a t e t h r e a d ( n u l l ,0 ,t h r e a d f u n c ,( v o i d + ) n e w c o n n e c f i o n , 0 ,& d w t r e a d l d ) : 创建线程完成对新建套接字的任务处理 c l o s e h a n d l e ( h t h r e a d ) ; r e t u m ;) 程序执行到a c c e p t 后线程被挂起,等待一个客户端发出连接请求,然后创建 新线程来处理请求。当新线程处理客户请求时,起初的线程又循环回去等待另一 个客户请求。处理客户请求的线程处理完毕后终结。 在上述并发模型中,对每个客户请求都创建了一个线程。其优点在于等待请 求的线程只需做很少的工作。大多数时间中,该线程在休眠( 接收函数r e c e i v e 处于堵塞状态) 。但是并发模型应用都在服务器端,处理很多同时的客户请求意 味着很多线程并发地运行在系统中,而所有这些线程都是可运行的( 没有被挂起 和等待发生什么事) 。m i c r o s o f t 意识到系统内核花费了太多的时间来转换运行 线程的上下文( c o n t e x t ) ,而线程本身并没有得到很多c p u 时间来做它们的工 作。 并行模型的瓶颈在于它为每一个客户请求都创建了一个新线程。创建线程比 起创建进程开销要小,但也远不是没有开销的。不妨设想一下:如果事先开好n 个线程,让它们在那堵塞( h o l d ) ,然后将所有用户的请求都投递到一个消息队 列中去。然后这n 个线程逐一从消息队列中去取出消息并加以处理。就可以避免 针对每一个用户请求都开线程。不仅减少了线程的资源,也提高了线程的利用率。 这个问题的解决方法就是一个称为f o 完成端口的内核对象,它首次在w i n s o c k 2 中被引入。 微软在w i n s o c k 2 中引入了i o c p 这一概念。i o c p 全称f oc o m p l e t i o np o r t , 中文译为完成端口。i o c p 是一个异步i o 的a p l ,它可以高效地将i 0 事件通知 给应用程序。与使用s c l e c t o 或是其它异步方法不同的是,一个套接字与一个完 成端口关联了起来,然后就可继续进行正常的w i n s o c k 操作了。当一个事件发生 的时候,该完成端口就将被操作系统加入一个队列中。然后应用程序可以对核心 1 2 第三章视频鼹务器响应的完成端日技术 层进行查询以得到该完成端口。完成端口中所谓的“端口”并不是在t c p i p 中 所提到的端口,可以说是完全没有关系。i o c p 只是用来进行读写操作,这一点 和文件i 0 类似。 一个完成端口其实就是一个通知队列,由操作系统把已经完成的重叠i o 请 求的通知放入其中。当某项i o 操作一旦完成,某个可以对该操作结果进行处理 的工作者线程就会收到一则通知。而套接字在被创建后,可以在任何时候与某个 完成端口进行关联。假设有一台服务器同时与n 台客户机进行通信。如果不使用 完成端口,那么它需要建立n 个套接字,通过n 个线程来完成对每个套接字收发 信息的控制。该模式下服务器程序的速度较慢,其效率提升的最大瓶颈在于n 个套接字端口所占用的大量资源。完成端口并不是说只有一个套接字端口,而是 将这n 个线程看作是一个整体,将所有的客户端也看作一个整体,并为二者提供 一个接口,使二者可以通过这个接口实现相互问的信息传输。 打个比方,服务器就相当于一个仓库,服务器中的数据就是仓库中的存放的 货物,服务器处理线程就是仓库里面的搬运工人,而用户对服务器提出数据请求, 就是要从该仓库中取出所需要的货物。仓库设有一个货物进出管理部门,所有的 货物的出入都要通过该部门。用户通过网络传来货物请求,该部门对该请求进行 登记,并按顺序将这些请求送至搬运工人手中。仓库中有大量的搬运工人在排队 等待任务。如果有新的搬运任务到来,就马上进行搬运,而下一个工人递补接收 下一个任务。搬运工搬出客户所需要的货物,贴上含有用户地址标签( 就是用户 的礤地址) ,送至该部门,由该部门对其进行登记并统一发送出去。该部门不 需要理会发送的目的地,只需将其送到网络上即可,剩下的寻址工作由网络中的 路由根据地址标签来完成。实际上这个货物进出管理部门就是完成端口。他统一 接收用户发送来的数据请求,解析成任务命令传递给工作者线程。线程再通过完 成端口内的套接字将数据发送出去,并返回一个发送信息给该端口进行下一步处 理。 3 2 完成端口技术应用于视频点播系统 完成端口处理模型概括成一句话: 不停地发出异步的w s a s e n d w s a r e c v1 0 操作,具体的i o 处理过程由 w i n d o w s 系统完成,w i n d o w s 系统完成实际的i o 处理后,把结果送到完成 端口上( 如果有多个i o 都完成了,那么就在完成端口那里排成一个队列) 。在 另外一个线程里从完成端口不断地取出i o 操作结果,然后根据需要再发出 w s a s e n d w s a r e c v1 0 操作。 本系统设计初衷是使用基于u d p 之上的r t p 协议来传输数据,所以我们将 第三章视频服务器响应的完成端口技术 上面这种使用比较普遍的基于t c p 协议的完成端口进行了一番改动,使之可以 用于u d p 数据包的异步收发。二者之间的不同之处主要在于t c p 等待过程中是 要将a c c e p t 挂起然后等待,而u d p 是在异步发送( w s a s e n d ) 和异步接收( w s a r e c v ) 函数实现之后将其挂起,以等待完成信息。 首先创建一个空完成端口: h a n d l e h l o c p 2 c r e a t e l o c o m p l e t i o n p o r t ( i n v a l i dh a n d l e _ v a l u e , n u l l ,c u l o n g _ p t r ) 0 ,o ) ; 完成端口创建后,还要把该完成端口与数据收发套接字关联起来。方法是再 次调用c r e a t e l o c o m p l e f i o n p o r t 0 函数,第一个参数f i l e h a n d l e 设为套接字的句柄, 第二个参数e x i s t i n g c o m p l e t i o n p o r t 设为刚刚创建的那个完成端口的句柄。 本文的视频点播系统需要创建了两个套接字,分别用于数据的接收和发送。 然后把它们和前面创建的空完成端口关联起来: s o c k e ts e n d e r2s o c k e t ( a f _ i n e t ,s o c k _ s t r e a m ,o ) ; s o c k e tr e c e i v e r2s o c k e t ( a f _ i n e t ,s o c k _ s t r e a m ,o ) ; c r e a t e l o c o m p l e t i o n p o r t ( ( h a n d l e ) s e n d e r ,h i o c p ,( u l o n g _ p t r ) 0 ,o ) ; c r e a t e l o c o m p l e t i o n p o r t ( ( h a n d l e ) r e c e i v e r , h i o c p ,( u l o n g _ p t r ) o ,o ) ; 这时就完成了套接字与完成端口的关联操作。以后在这两个套接字上进行 的任何操作都将通过完成端口发出完成通知。注意,c r e a t e l o c o m p l e t i o n p o r t o 函 数中的第三个参数用来设置一个与该套接字相关的“完成键( c o m p l e t i o n k e y ) ”。 完成键可以是任何数据类型,因为它只是用户自己设定的标志信息,可用来给套 接字传递一些用户自己设定的背景信息。每当完成通知到来时,应用程序就读取 相应的完成键,跟踪套接字的输入输出。本系统中的c o m p l e t i o n k e y 用来跟踪2 个s o c k e t 之间的轮换。一个s o c k e t 用于接收数据,而另一个用于发送。其结构 如下: t y p e d e f s t r u c t s o c k e tms o c k e t ;所跟踪的套接字 w s a b u fw b u f f e r ;套接字收发数据所用内存地址 c o m p l e t i o n k e y ,+ p c o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论