杰士安视频服务器的关键技术

35
发表时间:2018-08-23 10:21

视频服务器的关键技术主要包括存储容量、存储1O带宽、网络1/O带宽、系统管理以及用户交互控制等方面。

(1)存储容量

视频服务器承载视频节目的数量受服务器存储容量的限制。由于硬盘的存储容量有,即使采用多硬盘和RAID( Redundant Arrays of Independent Disks)磁盘阵列技术,仍存在管理、成本等方面的问题,因此,扩展视频服务器的存储系统,建立层次结构的存储模型是扩展视频服务器存储容量的主要技术。

即使是小型的视频服务器也不可能仅仅依靠硬盘来存储大量的视频节目,而大容量存储设备(光盘塔和磁带机)的访存速度又不能适应点播的需要。每个点播的视频节目在视频服务器上必须首先调度到硬盘上,才能传输给用户,这样就涉及节目在硬盘和其他外存储设备的放置问题。调查发现,用户对不同节目的收视分布差异很大,因此,可以按照节目被收部分用户的点播直接通过硬盘得到服务,而少数点播冷门节目的用户需要一定的时间等待视频服务器将节目从外存储设备转到硬盘上,然后再观看节目,这就形成视频服务器的层次存储结构模型。

(2)存储1/O带

为了同时对尽可能多的用户服务,视频服务器的存储系统必须提供很高的I/O带宽。由于存储1/O带宽受硬件条件的限制,因此,提高存储子系统的吞吐能力主要集中在如何充分利用现有存储硬件的I/O上。

对于读取硬盘上的数据,从硬盘的物理结构上讲,涉及磁头移动、磁盘旋转、数据读取等许多操作。不同的点播要求可能涉及同一磁盘上不同数据块需要在相同的时间段内被读出,以服务于不同用户的点播需要。即在一个限定的时间内,磁头要移动到每个数据块的位置读取数据,这里的时间消耗取决于磁头的移动速度,磁盘的旋转速度和数据块的大小

般而言,磁盘的旋转速度是恒定的,读取数据的速率也是固定的,那么,减少这个时间消耗的关键在于如何减少磁头的移动。对此,研究者们提出了不少关于磁头移动的策略。另外,还有一种方法,即在将节目数据放置到硬盘上的时候就按照某种算法排列,以减少磁头的移动。

分块是另一个问题,特别是在多盘甚至分布式多服务器的情况下,这一问题尤其重要。之所以要将节目数据分成小数据块,是基于充分利用I/O带宽的想法。假如不把节目分成小块放置到不同的硬盘或者服务器上,在节目点播过分集中的情况下,服务器1/O利用率就不高。例如,当大多数用户都集中在一个节目上的时候,存放这个节目的磁盘必须同时响

应很多的点播请求,当这些请求不能合并时,对这个磁盘而言,会因为请求过多而出现过忙的情况,而其他的磁盘则可能因为没有点播请求而闲置,使系统总的磁盘I/O能力得不到充分利用,这种情况称为负载不平衡现象。解决负载不平衡问题的一种方法是在多个磁盘上保持多个备份,不过这种方法过于昂贵。有效的方法是数据分块,将每个节目分成若干块,分布到不同的磁盘上,甚至分布到不同的计算机上。这样,每个节目点播的服务都分布到各磁盘上,因此可以平衡磁盘的负载,该算法称为分块或交错算法。虽然此项研究目前还不成熟,尚未在产品中见到具体应用,但是大多数产品选择RAID磁盘阵列作为硬盘存储设备正是基于这个考虑。

(3)网络1/O带

视频服务器通过网络I/O子系统向系统用户提供视频流,然而为每个用户生成一个单独的视频流无疑是浪费网络带宽资源,因此,合理的调度流是这个子系统的关键技术基于有效利用资源的考虑,视频服务器常常利用网络组播或者广播技术为多个用户服务,也就是说,多处用户共享同一条视频流。但在这种合并的情况下,一旦用户进行交互式功能操作,就必须脱离某个视频流。此时,如果没有合适的视频流可以加入的话,就必须由视频服务器再创建一个新流。但是,创建新流受到许可控制的限制,因此,就可能出现无法实现交互式功能操作的现象,这个问题是研究合并算法的一个大障碍。

(4)系统管理

用户向服务器发出请求,视频服务器响应用户需求,为用户提供服务,这一整套管理功能就是系统管理子系统。由于视频服务器服务瓶颈问题是资源的消耗问题,因此,系统管理子系统的关键技术在于判断系统资源状况,许可和控制用户对视频服务器资源的使用。此,系统的加密问题也属于该子系统。

研究许可控制策略的目的是要解决视频服务器的综合资源分配冋题。许可控制是视频服务器的技术难题之一。当有一个点播请求到达视频服务器的时候,视频服务器需要根据当前的服务情况与系统的容量决定是否接受该请求。一旦请求被接受,视频服务器则为该请求分配相应资源,形成一个视频流。然而,视频服务器的资源是有限的,并不是每个请求都能满足,这就涉及请求许可的问题。

请求许可算法首先要调查当前服务器上的资源水平,因此,必须建立起能反映当前资源状况的数学模型。现有的请求许可控制主要分为基于确定性的策略和基于统计性策略两种方式。确定性策略主要根据服务器的性能,在理论上推导出最坏情况下可以支持的用户数目,从而决定是否接受更多的请求。确定性控制能够对用户的服务质量提供绝对的保证,但是,由于其考虑的是最坏的情况,因此,可能浪费了视频服务器的系统资源。统计性策略使用的数据则基于观察到的服务器性能和过去的服务状况来推测是否能对新的请求进行服务。统计性控制能够使资源得到利用,但是,只能以一定的概率条件来满足用户服务的实时要求。因此,还必须考虑其性能增强问题。

数据加密问题是一个需要研究的问题。当许多用户共同使用相同的网络带宽时,应在系统的哪些环节对数据加密就成为一个问题。如果在视频服务器存储之前就加密(称预加密),那么,人们一旦掌握了密码,就能很容易看到节目;如果在数据传输到用户的时候加密(称为动态加密),主动权就又不在视频服务器上。除非每个用户再分别占用一定的网络资源,在传输的时候对不同用户分别加密,这种情况就要考虑用户如何共享同一网络带宽,同时还要考虑对每个用户加密的代价是否给视频服务器或者整个系统带来很大的资源消耗。

(5)用户交互控制

从服务功能上讲,视频服务器还涉及如何给用户提供交互功能这一问题。交互式功能包括“暂?!?、“恢复”、“快进”、“快退”等,是实现交互式点播电视的基础。视频服务器响应交互式要求是一个比较复杂的工作。其中,“暂?!?、“恢复”是最基本的操作。如果在准点播电视的基础上实现交互式功能,服务器为响应用户“暂?!辈僮骺梢约虻サ赝V褂没Ф允莸慕邮?但是,在响应“恢复”操作时,因为在准点播电视中流的时间已确定,服务器不可能再建立一条正好适合该用户的视频流,该用户只有被并入一条近似的流,这样,对用户而言,观看的节目就可能不连续。对于实现“快进”和“快退”操作,现有的方法主要有两种,但它们都有定的局限性。一种是用户方实现“快进”和“快退”操作。将“快进”或“快退”的时间段内的数据全都传给用户,用户的解码设备靠这些数据实现“快进”、“快退”操作。这种方法存在的问题是数据传输量过大。假设用户想从影片片头“快进”到影片片尾,那么,在很短的时间内,要将几乎整个影片数据传输给用户,这对服务器和网络的要求过于苛刻。另一种是在服务器上实现“快进”和“快退”操作,这种方法在服务器上解码数据,采取选择传输关键帧的方,将一部分视频帧传输给用户。该方法的代价是服务器必须消耗CPU资源来解码数据,因而加重了服务器的负担;同时用户在“快进”、“快退”操作中也不能看到每幅画面,并且如

果视频数据是MPEG这样的可变比特流,那么,同时也会加重网络的负担,因为“快进”、“快退”只能传输压缩率较小的I帧,在相同播放帧率的情况下,只传输I帧要比平时的传输数据量大5~10倍。以上两种方法都不能很好地实现“快进”和“快退”操作,对这类操作的有效支持是目前视频服务器研究领域的一个难点问题。


website qrcode
关注我们: