您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 第9章多媒体操作系统
多媒体技术与应用•第3章数据压缩技术•第4章数据存储技术•第5章数字音频技术•第6章数字图形图像技术•第7章数字视频技术•第8章网络多媒体技术•第9章多媒体操作系统第9章多媒体操作系统•数字电影、视频剪辑和音乐正在日益成为用计算机表示信息和进行消遣娱乐的常用方式。音频和视频文件通常保存在磁盘上,在需要的时候进行回放。音频和视频文件的特征与传统的文本文件存在很大的差异,而目前计算机的文件系统最初却是为文本文件设计的。因此,需要设计新的文件系统来处理音频和视频文件。不仅如此,保存与回放音频和视频同样给操作系统及其调度程序提出了新的和更高的要求。9.1视频剪辑与点播•通常,多媒体编辑系统需要在支持多媒体的操作系统上运行,以获得最好的性能。视频点播是重要的多媒体技术,这意味着消费者能够在家中使用电视遥控器(或鼠标)选择电影,并且立刻将其在电视机(或计算机显示器)上显示出来。视频点播要求基于特殊的基础设施,图9-1所示为两种可能的视频点播基础设施,每种都包含三个基本的组件:一个或多个视频服务器、一个分布式网络以及一个在每个房间中用来对信号进行解码的机顶盒。2011-11-44图9-1视频点播使用不同的本地分布技术∞分布式网络光纤视频服务器同轴电缆汇接盒分布式网络光纤视频服务器汇接盒∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞住房铜双绞线a)ADSLb)有线电视9.1视频剪辑与点播•视频服务器是一台功能强大的计算机,在其文件系统中存放着许多电影,并且可以按照点播请求回放这些电影。大型机有时用来作为视频服务器,因为大型机连接1000个大容量的磁盘是一件轻而易举的事情。9.1视频剪辑与点播•用户和视频服务器之间的分布式网络必须能够高速实时地传输数据。分布式网络总是使用光纤从视频服务器连接到客户居住点的汇接盒。ADSL系统是由电话公司经营的,在ADSL系统中,现有的双绞电话线提供了最后一公里的数据传输。有线电视是由有线电视公司经营的,在有线电视系统中,现有的有线电视电缆用于信号的本地分送。ADSL的优点是为每个用户提供了专用数据通道,因此带宽有保证,但是由于现有电话线的局限其带宽比较低(只有几Mb/s)。9.1视频剪辑与点播•有线电视使用高带宽的同轴电缆,带宽可以达到几Gb/s,但是许多用户必须共享相同的电缆,从而导致竞争,对于每个用户来说带宽没有保证。不过,为了与有线电视竞争,电话公司正在为住户铺设光缆,这样,光缆上的ADSL将比电视电缆有更大的带宽。•系统的最后一部分是机顶盒,这是ADSL或电视电缆终结的地方。机顶盒实际上就是一台计算机,只不过其中包含特殊的芯片用于视频解码和解压缩。机顶盒最少要包含CPU、RAM、ROM、与ADSL或电视电缆的接口,以及用于跟电视机连接的端子。9.1视频剪辑与点播•用户也可以使用现有的PC机并且在显示器上显示电影。从技术角度看,使用个人计算机代替机顶盒更有道理,因为计算机的功能更加强大,拥有大容量的磁盘,并且拥有更高分辨率的显示器。不管共用的是机顶盒还是个人计算机,在解码并显示电影的用户端,我们通常都要区分视频服务器和客户机进程。然而,以系统设计的观点,客户机进程是在机顶盒上运行还是在PC机上运行并没有太大的关系。对于桌面视频编辑系统而言,所有的进程都运行在相同的计算机上,分别发挥着服务器和客户的作用。•多媒体处理具有两个关键的特征,即多媒体使用极高的数据率和多媒体要求实时回放。9.1视频剪辑与点播•高数据率来自视觉与听觉信息的本性。眼睛和耳朵每秒可以处理巨大数量的信息,必须以这样的速率为眼睛和耳朵提供信息才能产生可以接受的观察体验。表9-1列举了几种数字多媒体源和某些常见硬件设备的数据率。需要注意的是,多媒体需要的数据率越高,则越需要进行压缩,并且需要的存储量也就越大。例如,一部未压缩的2小时长的HDTV电影将填满一个570GB的文件。存放1000部这种电影的视频服务器需要570TB的磁盘空间,按照目前的标准这可是难以想象的数量。还需要注意的是,没有数据压缩,目前的硬件不可能跟上这样的数据率。2011-11-410表9-1某些多媒体和高性能I/O设备的数据率(1Mbps=106位/秒,1GB=230字节)9.1视频剪辑与点播•多媒体对系统提出的第二个要求是需要实时数据传输。数字电影的视频部分每秒包含某一数目的帧。北美、南美和日本采用的NTSC制式每秒包含30帧(实际为29.97帧),世界上其他大部分地区采用的PAL和SECAM制式每秒包含25帧(25.00帧)。帧必须分别以33.3ms或40ms的精确时间间隔传输,否则电影看起来将会有起伏。9.1视频剪辑与点播•耳朵比眼睛更加敏感,传输时间中即使存在几毫秒的变动也会被察觉到。传输率的变动称为颤动,必须严格限制颤动以获得良好的性能。注意,颤动不同于延迟。如果图9-1中的分布式网络均匀地将所有的位淮确地延迟5s,电影将开始得稍稍晚一些,但是看起来却不错。但从另一方面来说,如果分布式网络在100~200ms之间随机地延迟各帧,那就会明显影响播放质量。9.1视频剪辑与点播•提供服务质量保证的最常见的方法是预先为每一个新到的客户预留资源,包括CPU、内存缓冲区、磁盘传输容量以及网络带宽。如果一位新的客户到来并且想观看一部电影,但是视频服务器或网络计算出不具有为另一位客户提供服务的容量,那么它将拒绝新的客户,以避免降低向当前客户提供的服务质量。因此,多媒体服务器需要有资源预留方案和进入控制算法,以判定什么时候能够处理更多的任务。9.2多媒体进程调度•多媒体操作系统与传统操作系统有三个主要区别,即进程调度、文件系统和磁盘调度。9.2.1调度同质进程•最简单的一种视频服务器可以支持显示固定数目的电影,所有电影使用相同的帧率、视频分辨率、数据率以及其他参数。在这样的情况下,可以采用下述简单但是有效的调度算法。对每一部电影,存在一个进程(或线程),其工作是每次从磁盘中读取电影的一帧然后将该帧传送给用户。由于所有的进程同等重要,每一帧有相同的工作量要做,并且当它们完成当前帧的处理时将阻塞,所以采用轮转调度可以很好地做这样的工作。将调度算法标准化的唯一的额外要求是定时机制,以确保每一进程以恰当的频率运行。9.2.1调度同质进程•实现适当定时的一种方式是有一个主控时钟,该时钟每秒滴答适当的次数,例如针对NTSC制式,每秒滴答30次。在时钟的每一滴答,所有的进程以相同的次序相继运行。当一个进程完成其工作时,它将发出suspend系统调用释放CPU直到主控时钟再次滴答。当主控时钟再次滴答时,所有的进程再次以相同的次序运行。只要进程数足够少,所有的工作都可以在一帧的时间内完成,采用轮转调度就足够了。9.2.2一般实时调度•随着用户的数目不断变化,由于视频压缩的本性(I帧比P帧或B帧大得多),帧的大小剧烈变化,并且不同的电影可能有不同的分辨率。因此,不同的进程可能必须以不同的频率运行,具有不同的工作量,并且具有不同的最终时限。•这些考虑导致一个不同的模型:多个进程竞争CPU,每个进程有自己的工作量和最终时限。在下面的模型中,我们将假设系统知道每个进程必须以什么样的频率运行、有多少工作要做以及下一个最终时限是什么。多个相互竞争的进程,其中若干进程或全部进程具有必须满足的最终时限的调度就是实时调度。9.2.2一般实时调度•作为实时多媒体调度程序工作环境的一个例子,我们考虑三个进程A、B和C,如图9-2所示。进程A每30ms运行一次(近似NTSC制式速度),每一帧需要10ms的CPU时间。在不存在竞争的情况下,进程A将在突发A1、A2、A3等中运行,每一突发在前一突发的30ms之后开始。每个CPU突发处理一帧并且具有一个最终时限:它必须在下一个突发开始之前完成。2011-11-419图9-2三个周期性的进程,每个进程播放一部电影;每一电影的帧率以及每帧的处理需求有所不同0102030405060708090100110120130140CBAC1的最终时限B1的最终时限A1的最终时限A1、B1、C1的开始时刻C1B1A1C2C3B2B3B4A2A3A4A5时间(ms)9.2.2一般实时调度•图9-2中,进程B每秒运行25次(例如PAL制式),进程C每秒运行20次(例如一个慢下来的NTSC或PAL流,意在使一个低带宽的用户连接到视频服务器)。每一帧的计算时间如图9-2中所示,进程B为15ms,进程C为5ms,没有使它们都具有相同的时间只是为了使调度问题更加一般化。现在,调度问题是如何调度A、B和C以确保它们满足各自的最终时限。9.2.2一般实时调度•到目前为止我们假设每个影片流有一个进程,实际上,每个影片流可能有两个甚至更多个进程,例如一个用于音频一个用于视频。它们可能以不同的速率运行并且每一脉冲可能消耗不同数量的CPU时间。然而,将音频进程加入到系统中并没有改变一般模型,因为我们的全部假设是存在m个进程。每个进程以一个固定的频率运行,对每一CPU突发有固定的工作量要求。9.2.2一般实时调度•在某些实时系统中,进程是可抢占的,在其他的系统中,进程是不可抢占的。在多媒体系统中,进程通常是可抢占的,这意味着允许有危险错过其最终时限的进程在正在运行的进程完成工作以前将其中断,然后当它完成工作之后,被中断的前一个进程再继续运行。这一行为只不过是多道程序设计。在多媒体系统中可抢占的实时调度算法比不可抢占的调度算法具有更好的性能。唯一要关心的是如果传输缓冲区在很少的几个突发中被填充,那么在最终时限到来之前该缓冲区应该是完全满的,这样它就可以在一次操作中传递给用户,否则就会引起颤动。9.2.2一般实时调度•实时算法可以是静态的也可以是动态的。静态算法预先分配给每个进程一个固定的优先级,然后使用这些优先级做基于优先级的抢占调度。动态算法没有固定的优先级。9.2.3速率单调调度•适用于可抢占的周期性进程的经典静态实时调度算法是速率单调调度(RateMonotonicScheduling,RMS),它可以用于满足下列条件的进程:–1)每个周期性进程必须在其周期内完成。–2)没有进程依赖于任何其他进程。–3)每一进程在一次突发中需要相同的CPU时间量。–4)任何非周期性进程都没有最终时限。–5)进程抢占即刻发生而没有系统开销。•前四个条件是合理的。当然,最后一个不是,但是该条件使系统建模更加容易。9.2.3速率单调调度•RMS分配给每个进程一个固定的优先级,优先级等于进程触发事件发生的频率。例如,必须每30ms运行一次(每秒33次)的进程获得的优先级为33,必须每40ms运行一次(每秒25次)的进程获得的优先级为25,必须每50ms运行一次(每秒20次)的进程获得的优先级为20。所以,优先级与进程的速率(每秒运行进程的次数)成线性关系,这正是为什么将其称为速率单调的原因。在运行时,调度程序总是运行优先级最高的就绪进程,如果需要则抢占正在运行的进程。已经证明在静态调度算法种类中RMS是最优的。9.2.3速率单调调度•图9-3演示了图9-2所示例子中速率单调调度是如何工作的。进程A、B和C分别具有静态优先级33、25和20,这意味着只要A需要运行,它就可以运行,抢占任何当前正在使用CPU的其他进程。进程B可以抢占C,但不能抢占A。进程C必须等待直到CPU空闲才能运行。2011-11-427图9-3RMS和EDF实时调度的一个例子0102030405060708090100110120130140CBAC1B1A1C2C3B2B3B4A2A3A4A5时间(ms)A1B1RMSA1B1C1A2B2A3B3A4C3A5B4EDFC1A2B2C2A3B3A4C3A5B4C29.2.3速率单调调度•在图9-3中,最初所有三个进程都就绪要运行,优先级最高的进程A被选中,并准许它运行直到它在10ms时完成,如图9-3中的RMS一行所示。在进程A完成之后,进程B和C以先后次序运行。合起来,这些进程运行花费了30ms时间,所以当C完成的时候,正是A再次运行的时候
本文标题:第9章多媒体操作系统
链接地址:https://www.777doc.com/doc-1483029 .html