• 164.多媒体操作系统


     多媒体操作系统

        

    11.1  多媒体系统简介

      随着多媒体技术的发展,在传统OS中也相应增加了许多能处理音频和视频信息的多媒体功能。现在流行的操作系统,如Linux、 Windows 系列等,就已具有多媒体功能。本章前两节先介绍有关多媒体系统的基本知识。

    11.1.1  多媒体的概念

      1. 数据、信息与媒体

      所谓数据,是反映客观事物及其运动状态的信号,如人体感觉器官或观测仪器的感知所形成的以文本、数字、事件或图像等形式保存的原始记录。数据与数据之间没有建立任何联系或关系,呈分散和孤立的特性。数据必须经过加工处理才能形成信息。

      2. 媒体的分类

      一般地,媒体可分为以下六类:

      (1) 感觉媒体

      (2) 表示媒体

      (3) 呈现媒体

      (4) 存储媒体

      (5) 传输媒体

      (6) 交换媒体

      3. 多媒体

      所谓多媒体(multimedia),目前没有统一的定义,一般是指多种方法、多种形态传输(传播)的信息介质、多种载体的表现形式以及多种存储、显示和传递方式。在计算机领域,多媒体往往是指多媒体技术,即是同时对多个感觉媒体信息进行获取、处理、编辑、存储和展示的理论、技术、设备、标准等规范的总称。

    11.1.2  超文本和超媒体

      1. 超文本(hypertext)

      超文本是一种文本信息的组织方式,相比传统的线性文本组织方式而言,超文本的组织方式是非线性的,与人的思维方式和工作方式更加接近。

      2. 超链接(hyperlink)

      超链接也称为超文本链接(hypertextlink),是指文本中的词、短语、符号、图像、声音剪辑或影视剪辑之间的链接,或者是指它们与其它的文件、超文本文件之间的链接。

      3. 超媒体(Hypermedia)

      所谓超媒体,就是多媒体与超文本的结合,在多媒体技术的支持下,文本信息不仅可以包含文字,还可以包含诸如图形、图像、视频、音频等多媒体信息,这些信息按照超文本结构和超链接方式进行组织,是节点和链源类型更加多样化、链结构更加复杂的超文本。

    11.1.3  多媒体文件的特点          

      1. 多样性

      所谓多样性,是指在一份多媒体文件中集成了多种媒体文件。例如在一部数字电影中,就可能包含有一个视频、多个音频、多个横向滚动的字幕等,相应地在一个多媒体文件中就有一个视频文件、多个音频文件以及多个包含多种语言的文本文件,因此一部数字电影往往是由多个不同类型的文件组成的。

      2. 极高的数据率

      为了保证有好的视觉和听觉感受,视频和音频都必须具有很高的数据率,相应的所需要的存储量就非常大。

      3. 实时性

      在对多媒体文件进行播放时,为保证播放质量,要求有很高的实时性。

      4. 集成性

      在多媒体中包含了文本、静止图像、音频、视频等各种类型的媒体,而实际需要的,则往往是将多种媒体集成在一起使用。因此集成性是多媒体的一个重要特征。多媒体的集成性包含了如下两方面的含义:

      (1) 将多媒体的硬件和软件进行集成。

      (2) 将多媒体信息进行集成。

      5. 交互性

      在多媒体系统中,多媒体文件还有一个非常重要的特点——使用时的交互性,即在多媒体系统中,信息以超媒体结构进行组织,可以方便地实现人机交互。换而言之,人可以按照自己的思维习惯,按照自己的意愿主动地选择和接受信息,拟定信息的使用路径。对于仅集成了多种媒体而不具有交互性的系统,通常不把它称为多媒体系统。

    11.1.4  多媒体硬件与软件系统

      1. 多媒体硬件系统的组成

      多媒体硬件系统是在传统计算机系统的基础上,再增加某些能对多媒体信息进行处理的硬件。因此,它除了需要较高配置的常规计算机主机硬件,如处理机、内存、硬盘驱动器等外,还应增加用于对音频信号和视频信号进行处理的硬件,诸如音频、视频、视频处理设备,光盘驱动器,各种媒体输入/输出设备等。

      2. 声卡(sound card)

      声卡又称音频卡,用于处理音频信号。声卡可用来接受话筒、录音机、乐器等输入的音频(模拟)信号,通过模/数变换,将其转换为计算机能够识别和处理的数字信号。反之,声卡也能把计算机中存储的数据经数/模变换转换为声音信号,再通过连接在声卡上的音箱或耳机播放出来,也可用录音设备记录下来。声卡可根据其量化精度将其分为8位、16位和32位几档。位数越高,其量化精度也就越高,相应的,声音的音质就越好。

      3. 视频卡(video card)

      视频卡又称显示卡,用于处理视频信号。它除了用于对视频信号进行采集外,还可对所采集的信息进行编辑、特技处理,进而形成十分精美的画面。对于多媒体的应用,一般要求视频卡能提供800×600、1024×768、1280×1024或更高像素的分辨率,这样才有可能很好地观看高清晰电视和数字电影。

      4. 数码相机

      数码相机与传统相机相比,两者用于成像的光敏介质不同,传统相机采用的是分布在胶片上的感光化学介质,而数码相机是使用CCD作为光敏介质。CCD的作用是将所拍摄到的光信号转换为模拟电信号,再经过模/数转换变为二进制数字信号。这样便可将图像以数字形式存储在相机的内存中。为了节省内存,通常都采用JEPG方式存储。

      5. 数码摄像机

      1998年,第一部家用数码摄像机横空出世,由于它有着很高的清晰度、体积小巧、使用方便,并能利用计算机对影像进行处理,因而深受用户欢迎,因此它很快就取代了传统的模拟式摄像机。它也使用CCD作为光敏介质。

      6. 智能传感器

      智能传感器是一种具有采集、处理、交换信息功能,集成了传感器、微处理机、通信装置的嵌入式设备。智能传感器可与外界物理环境交互,将收集到的信息通过传感器网络传送给其它的计算设备,如传统的计算机等。智能传感器一般集成了低功耗的微控制器、若干存储器单元、无线电或光通信装置、传感器等组件,通过传感器、动臂机构以及通信装置,实现与外界物理环境交互。

      7. 多媒体软件系统

      多媒体软件系统也称为多媒体软件平台,是指多媒体系统运行、开发的各类软件和开发工具及多媒体应用软件的总和。硬件是多媒体系统的基础,软件是多媒体系统的灵魂。

       

    11.2  多媒体文件中的各种媒体

      在多媒体文件中包含了多种类型的媒体,它们具有完全不同的特性,并需要用不同的硬件和软件进行处理。

    11.2.1  音频信号 

      1. 模拟音频和数字音频

      (1) 模拟音频。

      (2) 数字音频。

      ① 采样。

      ② 量化。  

      ③ 编码。

      2. 数字音频文件类型

      数字音频文件格式有多种:

      ① WAV文件

      ② MIDI文件

      ③ MPEG音频文件(MP3)

      ④ APE文件

    11.2.2  图像

      1. 图像的数字表示

      在计算机中,图像是通过矩阵表示的,矩阵中的每个元素值对应于图像的一个基本元素,称为像素。

      2. 图像的属性

      1) 分辨率

      分辨率可分为两种:

      ① 图像分辨率

      ② 显示器分辨率

      2) 色彩深度

      为了表现一幅彩色照片的色彩,每个像素需要用许多二进制位,所用二进制位的多少就是色彩深度。

      3) 真/伪彩色

      由于任何一种颜色都可由三种基本颜色按不同比例合成,目前常用红、绿、蓝三色,因此,当色彩深度为24时,红色(R)占8位,绿色(G)占8位,蓝色(B)占8位,可以简单表示为RGB 8∶8∶8。把用RGB 8∶8∶8表示的色彩称为真彩色图像,或全彩色图像。

      3. 图像文件格式

      数字图像可采用多种文件格式存储在计算机中,四种最常用的图像文件格式为:

      (1)  MP格式。

      (2)  IP格式。

      (3) TIFF格式。

      (4)  PEG格式。

    11.2.3  视频信号

      1. 模拟视频

      当前流行的电视是模拟视频,电视信号通过光栅扫描的方法显示在屏幕上,从屏幕顶部开始逐行地向下扫描,直到最底部,由此形成一幅图像,称为一帧。水平扫描线所能分辨出的点数称为水平分辨率,一帧中垂直扫描的行数称为垂直分辨率。

      1) 彩色电视的制式

      电视信号的标准也称为制式。目前世界上主要有三种制式:

      (1)  TSC制式

      (2)  AL制式

      (3)  ECAM制式

      2) 隔行扫描和逐行扫描

      虽然每秒25帧已完全能够使人眼感觉图像是连续的,但有一部分人会感觉到图像闪烁,这是因为在新图像到来(亮)之前,原图像在视网膜上已逐渐减弱(暗)。如果增加帧频到每秒50帧,则由于视网膜上更多的是新图像,故而可以消除闪烁现象,但会导致对带宽提出更高的要求。一种巧妙的方法是,先利用半帧的时间从上到下地扫描奇数行,把半帧称为一个场,然后再利用半帧的时间从上到下地扫描偶数行。实际表明,每秒50场已完全感觉不到闪烁现象。这一技术被称为隔行扫描。而把依次扫描每一行的技术称为逐行扫描。

      2. 数字视频

      如同前面所介绍的数字图像一样,数字视频中的每一帧也是由大量的像素组成的,每个像素用若干二进制位来表示。对于彩色电视,一般用24位,红、绿、蓝各占用8位。为了消除电视中的闪烁现象,采用了隔行扫描技术。

      3. 视频文件格式

      1)  PEG文件格式

      MPEG(Motion Picture Experts Group)是运动图像压缩算法,它于1993年成为国际标准。该算法是针对运动图像设计的,是基于相互连续的几帧相差甚微这样的事实来进行压缩的。因此在单位时间内先采集第一帧中的数据,并将它保存起来,对于以后几帧只存储其中与第一帧不同的部分。MPEG的平均压缩比为50∶1,最高压缩比可达200∶1。

      2)  IF文件格式

      GIF(Graphics Interchange Format)是采用无损压缩方法所产生的一种高压缩比的彩色图像文件。为了减少对网络频带的要求,采用了隔行扫描方式。该格式被广泛应用于Internet上的大量彩色动画。

      3)  VI文件格式

      这种文件格式又称为音频视频交错(audio video interleaved)格式,该格式允许音频和视频交错在一起同步播放,支持256色和压缩,但并未限定压缩标准,因此,也造成AVI的格式不具有兼容性,即用某种压缩标准产生AVI的文件,必须使用相应的解压缩算法,才能将它进行解压。该算法具有调用方便、图像质量好等优点,但文件体积过于庞大,主要用于在光盘上保存数字电影、电视等影像。

    11.2.4  多媒体数据压缩及其标准  

      1. 数据压缩和解压缩

      所有数据压缩系统都要求有两个算法:一个是用于对数据进行压缩,另一个是用于对压缩数据进行解压缩。压缩与解压缩间允许存在不对称性。

      2. 静止图像的压缩标准

      联合图像专家小组JPEG(Joint Photographic Exports Group)研制出的数字压缩编码方法,被称为JPEG算法,它被确定为静止图像压缩的国际标准。JPEG专家组开发了两种基本的压缩算法:一种是无损压缩算法;另一种是有损压缩算法。

      3. 运动图像的压缩算法

      运动图像专家小组MPEG(Motion Picture Exports Group)研制出的运动图像压缩编码技术的标准化方法,被称为MPEG算法。该算法是基于对电影中存在的空间和时间冗余进行压缩的。

      4. 运动图像的压缩标准

      MPEG算法被确定为运动图像压缩的国际标准,已在全世界范围得到广泛的应用,下面是几种常用的MPEG标准:

      (1)  PEG-Ⅰ标准

      (2)  PEG-Ⅱ标准

      (3)  PEG-Ⅳ标准

      5. 音频压缩标准

      在多媒体应用中,最常用的音频压缩标准是MPEG的音频压缩算法。它是第一个高保真音频数据压缩国际标准,该算法提供了3个独立的压缩层次。

    11.3  多媒体进程管理中的问题和接纳控制

    11.3.1  实时任务的处理需求和描述

      多媒体进程(线程)与通常的进程(线程)之间有许多相似之处,比如它们需要一定数量的资源,具有三个基本运行状态等。但它们也各有自己的特点,因此,在对多媒体进程进行管理时,必须考虑多媒体数据应遵循的时序需求。

      1. 实时任务的处理需求

      在通常的多媒体系统中,必须按照严格的时间间隔对实时任务进行处理。或者说,必须周期性地对数据进行处理,并在一规定的截止时间前完成。

      2. 软实时任务的时间特性描述

      在多媒体系统中,是对连续媒体数据流进行处理。在播放数字电影时,媒体服务器将周期性地(对于PAL制式为40 ms)逐帧送出数据。相应地,媒体服务器中的处理机必须在规定的时间内对它进行处理后送给用户。可见播放数字电影将联系着一个截止时间或称为最后时限。这说明数字电影是一个要求比较严格的周期性软实时任务。

    图11-1  周期任务的时间特性

    11.3.2  多媒体进程管理中必须解决的问题  

      1. 同时运行不同类型的软实时任务

      通常媒体服务器可向众多的用户提供各种多媒体服务,如数字电影和电视服务。在系统中,每一部数字电影都是作为一个软实时任务运行的,彼此间相互独立。不同的软实时任务所需处理的数据量相差甚远,可能相差数十倍。每个任务的时间特性也各不相同,它们有不同的开始时间、截止时间、周期时间和CPU处理时间。简而言之,多媒体进程管理必须具有能支持多种不同类型的软实时任务同时运行的能力。

      2. 支持软实时任务和非实时任务同时运行

      一个具有多媒体功能的通用操作系统,它既应面向软实时任务的用户,又需面向非实时任务的用户,如交互型作业的用户。因此,在系统中,应当允许多种类型的SRT任务和不同类型的非实时任务并存。相应的进程管理应具备以下两方面的功能:一方面需要满足SRT任务对截止时间的需求;另一方面又应使非实时任务的用户满意,并能很好地协调多种任务的并发运行。

      3. 提供适当的进程接纳机制

      在多道程序环境下,如果在系统中同时运行的SRT任务太多,将难以保证实时任务的截止时间需求。反之,若在系统中的SRT任务太少,CPU又会得不到充分利用。为解决此矛盾而引入了对进程的接纳控制机制,目前常用的是基于预留的进程接纳机制。当新进入的SRT任务提出接纳请求时,接纳机制将计算是否有足够的CPU时间片(带宽)来接纳该进程,如果有足够的CPU带宽,便接纳它,并为每一个被接纳的SRT任务预留它在运行时所需要的CPU带宽,如果已无足够的带宽,便拒绝接纳。

      4. 采用实时调度算法

      实时调度在保证SRT任务的实时性方面起着至关重要的作用。在具有多媒体功能的操作系统中,一个好的实时调度算法应能向每个SRT任务提供可以接受的截止时间保证,即能满足每一个SRT任务绝大多数的截止时间需求。

    11.3.3  软实时任务的接纳控制  

      1.  SRT任务带宽和尽力而为任务带宽

      为了能确保SRT任务的实时性,并适当考虑非实时任务的运行,将CPU的带宽分为两部分:

      (1)  RT任务带宽。把CPU的一部分带宽分配给SRT任务运行。如果SRT任务被接纳了,它将获得(分配到)一部分SRT任务带宽,进程管理便会尽可能地保证它们的实时性。

      (2) 尽力而为任务带宽。

      2. 接纳控制

      SRT任务在进入系统后,必需向CPU代理给定其定时服务质量参数,其中包含SRT任务的运行周期(p)、每一周期中的运行时间(t)和CPU占有率u。当CPU代理收到请求后,首先执行接纳控制。它根据一定的调度策略计算,确定是否可以接纳该任务。如果在接纳后,不仅能够保证它所要求的截止时间需求,而且还不会影响到原有SRT任务的运行,则CPU代理便可以接纳该进程,将它插入到进程就绪队列中等待调度。如果不能保证,将拒绝接纳。

      3.  CPU代理进程

      CPU代理的主要任务是,接收应用程序的接纳请求,根据接纳策略,做出是否接纳的决定,并将被接纳的进程放入就绪队列。至于应调度哪一个进程运行,则应由进程调度程序确定。

      4. 预留策略

      1) 预留模式

      有两种预留模式:

      (1) 立即预留

      (2) 高级预留

      2) 基于服务质量参数范围的预留

      通常服务质量是有一定范围的,由此形成三种预留策略:

      (1) 最小预留策略,基于最小的服务质量参数所产生的接纳控制,该策略比较适合于数据率比较稳定的进程,如动画。

      (2) 平均预留策略,基于平均的服务质量参数所产生的接纳控制,该策略比较适合于数据偶尔出现差错的多媒体任务。

      (3) 最大预留策略,基于最高的服务质量参数所产生的接纳控制,该策略可以保证所有实时任务的截止时间,即它可以获得最好的实时性保证。

      3) 预留排序

      应如何确定对预留的排序。有两种预留排序策略:

      (1) 按先来先服务策略排序,先到达的请求进程优先获得服务。

      (2) 按优先级排序,根据进程的优先级大小依次为所有请求进程进行服务。

          

    11.4  多媒体实时调度

    11.4.1  最简单的实时调度方法  

      在多媒体服务器中,将为所播放的每一部数字电影建立一个进程。其主要任务是,不断接收从硬盘上传送来的帧,经适当处理后,便送往屏幕。最简单的实时调度方法是,假定所要播放的电影都具有相同的类型,如都是采用相同的制式、分辨率和压缩比的彩色数字电影。

    11.4.2  速率单调调度(Rate Monotonic Scheduling,RMS)算法

      RMS算法是一个静态的、优先级驱动的算法,适用于抢占式优先级调度方式以及实时任务是周期性的情况。在采用该算法时,系统中的进程应满足如下条件:

      (1) 在系统中允许同时存在周期性进程和非周期性进程,所有周期性任务具有固定的周期。

      (2) 所有的进程之间相互独立,互不依赖。

      (3) 对于周期性进程而言,所有进程在一个周期中,所需完成的工作量是相同的,而且任务还必须在周期内完成,不会影响到下一个周期的任务。

      1. 优先级的确定

      在利用速率单调调度算法进行实时调度的系统中,代理进程将根据各个进程的请求速率(周期时间的倒数),分配给每一个进程一个静态优先级,在整个运行期间不变。该优先级的大小与它的重要程度无关,只取决于进程的请求速率,请求速率最高的任务将获得最高的优先级。实际上,进程的优先级大小就等于进程的运行频(速)率。

      2. 调度算法能否有效调度的衡量

      在一个实时系统中,需要对调度算法是否能有效调度进行衡量,该衡量标准是依据调度算法能否满足所有进程的截止时间要求。

      图11-2示出了进程Pi一个周期性任务的时序图,其中Ti是进程Pi的周期时间,Ci是进程Pi所需的处理机时间总量,Ui = Ci/Ti是进程Pi的处理机使用率。显然,在实时系统中必须保持多个进程的处理机使用率的总和不能超过1,1对应于处理机的总使用率,也就是调度上限,只有这样才有可能成功地进行调度,亦即应保持下面的不等式成立:

                            (11.1)

    图11-2  周期性任务的时序图

      应当注意,上面的表达式忽略了处理机的调度和进程的切换时间,在实际应用中,调度上限应取比1小的数,且随着处理机数目的增加而减小。Lin and Layiand证明了对于任何周期性进程系统,如果能保持下面不等式成立,就可以保证RMS算法正确工作。

                                            (11.2)

      3.  RMS算法实例

      假如系统中有三个周期性进程,进程A每30 ms运行一次,每次执行10 ms;进程B每40 ms运行一次,每次执行15 ms;进程C每50 ms运行一次,每次执行5 ms;图11-3中的上面三行分别示出了A、B、C三个进程的周期和执行时间。

    图11-3  RMS实时调度例子

    11.4.3  EDF算法与RMS调度算法的比较

      1. 用RMS算法调度失败举例

      现在我们来看另外一个例子:现有三个进程A、B和C,它们的周期与前例相同,只是在此将进程A每次的运行时间由10 ms增加至15 ms,进程B和C每次的运行时间不变。对于RMS算法,由于优先级只与周期有关,而与进程每次运行的时间多少无关,因此这三个进程的优先级仍为33、25和20。调度程序先调度A运行,在t=15时调度B运行,在t=30时进程A再次就绪,故调度A运行,在t=45时B又再次就绪,由于它的优先级高于进程C,因此又调度B运行,等到t=60进程B结束时,进程C已错过其最后期限,RMS调度失败。

      2. 用EDF算法调度成功举例

      在采用EDF算法进行调度时,由图11-4可以看出,前30 ms时与RMS一样。在t=30时,A2和C1都处于就绪态,如果按RMS算法,由于进程A的优先级高于C,此时应调度A运行。但用EDF算法时,A的最后时限是60,而C的最后时限是50,所以应调度C运行。在t=35时,A才再次运行,t=50时调度B运行。当t=90时,A第四次就绪,A与正在运行的B最后时限同为120,基于不是必要就不抢占的原则,仍让B继续运行。在该例中,直到t=150,处理机一直处于忙碌状态。

    图11-4  用RMS和EDF进行调度

      3.  RMS与EDF算法的比较

      (1) 处理机的利用率。

      (2) 算法复杂度。

      (3) 调度的稳定性。

      

    11.5  媒体服务器的特征和接纳控制

    11.5.1  媒体服务器的特征

      1. 多媒体文件的多种媒体性

      如前所述,一部数字电影是由多种媒体文件组成的。其中包含了一个视频文件、若干种语言的音频文件,以及不同国家文字的文本文件,图11-5示出了一部电影所包含的文件,而且在播放时,这些媒体数据流之间还必须保持同步。

    图11-5  一部电影所包含的多种媒体的文件

      2. 拉型和推型文件服务器

      在传统的服务器中,进程要访问一个文件时,应先用open系统调用将文件打开,然后再用read系统调用把文件中的数据读出。如果把这种方式也用于多媒体文件系统中,则用户每发出一个read系统调用命令时,服务器便送出一帧数据,如图11-6(a)所示。该方式一方面要求用户必须以精确的时间间隔不断发出read命令,读出一帧数据;另一方面要求服务器每个周期都能及时地提供数据。

    图11-6  拉型服务器和推型服务器

      3. 多媒体文件的存储空间分配方式

      在传统的文件系统中,文件组织的一个重要目标是通过减少内部和外部磁盘碎片,提高磁盘空间的利用率。为此,存储空间的分配主要采用基于盘块的离散分配方式。而在多媒体文件系统中,文件组织的一个重要目标是能提供恒定速率的数据流和能及时地检索数据。

      4. 人机交互性

      用户在通过媒体服务器观看节目时,可根据自己的爱好,任意点播喜欢看的节目。在观看节目时,还可选择自己所熟悉的语言音频和字幕,并且可以根据需要随时更换。此外,用户还可以随时停止(或暂停)正在观看的电视,或(让电视)从一集跳至下一集,或让电影快进或快退等,即媒体服务器需要具有人机交互的功能。

    11.5.2  存储器管理中的接纳控制    

      1. 存储器页面锁定功能

      对于某个SRT任务来说,如果其某些页面未在物理内存,而在运行中又需要用到这些页面上的代码或数据,则将发生缺页中断,这意味着所需之页面必须从磁盘中读取。由于读盘所需的时间不仅较长,而且是不确定的,这无疑会给SRT任务带来极大的影响。为避免发生缺页中断情况,一个行之有效的方法是将SRT任务运行时所需之代码和数据锁定在物理内存中。只有这样才有可能保证SRT任务的截止时间。

      2. 存储器代理

      为了能保证每一个SRT任务的实时性,如同处理机预留CPU带宽一样,我们也引入了存储空间预留功能,为每一个SRT任务预留锁定的存储空间。为实现该功能,在存储器管理中增加了两个功能实体:存储器代理和存储器控制器。

      3. 存储器控制器

      存储器控制器的主要任务是,管理为SRT任务锁定的内存页面,以保证CPU能及时获得数据。在SRT任务执行时,将ID传送给存储器控制器。后者利用预留表检查该预留ID是否合法,如果合法,便为SRT任务分配并锁定存储器。存储器控制器还把存储器的钥匙传送给SRT任务,SRT收到后,便建立起存储段与自己的地址空间之间的映射关系。

    11.5.3  媒体服务器的接纳控制      

      1. 媒体服务器的服务质量

      不同的SRT任务,所要求的服务质量并不完全相同。因此,一个媒体服务器应当能够提供几种服务质量,以满足不同用户的需要。通常,可以提供如下三种服务质量保证:

      (1) 确定型的保证。

      (2) 统计型的保证。

      (3) 尽力而为型保证。

      2. 接纳控制

      对于不同的服务质量保证和不同的服务所采用的接纳控制条件是不一样的,在这里只是讨论接纳控制条件中最基本的问题。

      

    11.6  多媒体存储器的分配方法

    11.6.1  交叉连续存放方式

      1. 多媒体文件存放中的问题

      多媒体文件存放最重要的要求是,存放在硬盘上的数据如何能快速地传送到输出设备上,不会发生因送出数据不及时而使屏幕上的画面发生颤动。在采用离散分配方式时,在磁盘传输速率足够高的情况下,送出数据不够及时最主要的原因是在传输一帧的过程中需要进行多次寻道,由于寻道和磁盘旋转延迟通常都需要数十毫秒,很难及时将数据送出。因此,多媒体文件都采用连续文件。

      2. 交叉连续存放方式 

      在该方式中,不仅要求多媒体中的每个文件是连续文件,而且还需在不同文件间采取按帧交叉的方式存放。首先存放第一帧中的视频数据,紧靠着它存放第一帧中的各种音频数据,然后是存放第一帧中的多个文字数据,如图11-7所示。在从磁盘读出时,最简单的方法是将每一帧中所有数据全部读出到内存的缓冲区中,然后只将用户所需之部分传送给用户。

    图11-7  交叉连续存放方式

    11.6.2  帧索引存放方式

      为了克服交叉连续存放方式的缺点,即在每一部数字电影中所包含的视频文件、音频文件和多个文本文件都需要连续存放,而引入了索引存放方式。该方式又可分为两种:

      (1) 帧索引存放方式,又称为小盘块法。

      (2) 块索引存放方式,又称为大盘块法。

      1. 帧索引存放方式的基本原理

      在小盘块法中,所选定的盘块大小应远小于帧的大小。对于每秒30帧的MPEG-Ⅱ而言,帧的平均大小为16 B,通常选定盘块大小仅为1 B或2 B,故将它又称为小盘块法。这样,电影中的每一帧信息需要存放在一连串的连续盘块中。和前面一样,在这一串连续的盘块中,仍是包含了一个视频、多个音频和多个文本文件的数据。

    图11-8  索引存放方式

      2. 帧索引存放方式的性能分析

      (1) 支持随机访问。

      (2) 关于快进、快退问题。

      (3) 磁盘碎片较小。

      (4) 帧索引表大。

      (5) 缓冲管理简单。

      (6) 存储管理复杂。

    11.6.3  块索引存放方式 

      1. 块索引存放方式的基本原理

      在块索引存放方式中所选定的盘块较大,其大小应远大于一帧的大小,如256 B,以便在一个盘块中可以存放多个帧,故将它称为大盘块法。由于在大盘块法中每个数据块的大小是相同的,故把这种组织称为恒定数据长度。

      2. 块索引存放方式的性能分析

      (1) 支持随机访问。

      (2) 磁盘碎片较大。

      (3) 块索引表小。

      (4) 缓冲管理复杂。

    11.6.4  近似视频点播的文件存放 

      1. 近似视频点播(near video on demand)

      近似视频点播是视频点播的一种近似,它是每隔一定时间开始一次播放。

    图11-9  近似视频点播的数据流图

      2. 近似视频点播的文件存放

      在近似视频点播中,即使电影文件是连续文件,但在它以24个数据流错时送出时,由于每两个相邻的数据流都相差9000帧,因此从一条数据流转至下一个数据流时就需要进行寻道。但如果能采用如图11-10所示的方法,则几乎可以完全消除寻道操作。

    图11-10  近似视频点播的文件存放

    11.6.5  多部电影的存储方法  

      1. 单个磁盘的情况

      前面所考虑的只是在视频服务器上存储了单部电影,但实际情况往往是视频服务器上存储了多部电影。如果这些电影被随机地存放在磁盘的各个地方,那么当多个用户需要同时观看这些电影时,必然会造成磁头的频繁来回摆动。应如何在磁盘上存储多部电影呢?

      通常,每一部电影的点击率是不同的。我们在将这些电影存储在磁盘上时,应当将电影的流行因素考虑进去,使越流行的电影越容易被访问到。事实上,有许多流行的事物,如流行电影、流行音乐、访问Web网页等,大体上都遵循一种可预测模式,该模式又被称为Zipf定律。该定律可描述为:

    图11-11  多部电影按管风琴算法分布

      2. 多个磁盘情况

      为了满足众多用户的需要,配置在视频服务器上的磁盘系统通常都需要很大的存储容量,因此在视频服务器上的磁盘系统,大都采用许多个磁盘来扩大磁盘系统的容量,如采用RAID磁盘阵列。

    图11-12  在多个磁盘上的存放方式

        

    11.7  高速缓存与磁盘调度

    11.7.1  高速缓存

      对于传统的OS,在内存中设置高速缓存的主要目的,是为了减少对磁盘的访问时间。所采取的方法是将那些在不久之后可能会被访问的盘块数据放入到高速缓存中,以便以后需要时,可直接从高速缓存中读取,这样就节省了对磁盘的访问时间。

      1. 块高速缓存

      虽说当一个用户在看一部电影时,刚放过的盘块不会被重用,但如果是有多个用户几乎同时在看一部电影,刚放过的盘块则可能会被多次重用。

      2. 将两条视频流合并

      如果两条视频流在时间上相差很少,我们可以对两条视频流进行合并。

    图11-13  将两条视频流合并

      3. 文件高速缓冲

      在一个为公众服务的视频服务中心,通常都应当备有许多电影和电视剧节目。由于在DVD光碟中的电影或电视剧所占用的存储空间都非常大,一般都有数GB,因而不可能都装入视频服务器的磁盘上,而是仍然放在光盘或磁带上。在需要播放某部电影时,再将它们复制到磁盘上。但因光盘特别是磁带的低速性,要将这些电影从光盘复制到磁盘上需要花很多的时间。于是在大多数视频服务器中,都是将用户请求最频繁的电影文件放入内存的高速缓冲中,而把流行的整部电影文件放在磁盘上。

    11.7.2  静态磁盘调度 

      在多媒体系统中对磁盘调度提出了比传统OS更为严格的要求。其主要原因是:

      (1) 多媒体文件的数据量特别大,相应地要求数据传输速率也非常高。

      (2) 为保证电影的播放质量,要求具有很高的实时性;

      (3) 对于一台视频服务器,可能要同时处理成百上千的用户请求。

      1. 可预测性

      在传统OS中,用户对磁盘的请求是难以预测的,因此一般只提供了预读一个盘块数据的功能。而在多媒体系统中,无论是电影还是电视剧都是连续播放的,即在播放了第i帧后,紧接着就会播放第i  帧,这就大大提高了请求的可预测性。

      2. 按磁道顺序排序

      假如视频服务器中仅有一个磁盘,有10个用户在观看不同的电影,而这些电影又具有相同的帧频、分辨率。这时,系统可以为每一部电影建立一个进程,在进程调度时采用轮转法方式。首先让第一个进程运行,当它运行完后调度第二个进程运行,直至最后一个进程运行完毕。这里的关键问题是,所有进程运行一次的时间,应小于每帧之间的时间间隔40 ms。

    图11-14  磁盘请求的处理顺序

    11.7.3  动态磁盘调度

      为简单起见,在前面曾假设,所有的电影具有相同的分辨率和帧频。现在再来分析当多部电影具有不同的分辨率和帧频时,所播放的电影对磁盘的请求会带有一定随机性的情况。

      1. 动态磁盘调度算法应考虑的因素

      当第一个用户提出观看某部电影的要求时,由于此时尚无其他用户请求,故可立即获得服务。在此期间可能会有其他用户发来请求,它们都会被挂起。

      2.  scan-EDF算法

      上述的性能因素和实时因素经常会发生矛盾。为了满足前者,往往会错过最终时限。反之,为了满足后者,则又会增加总寻道时间。scan-EDF算法同时考虑这两个因素,并将这两个因素结合起来,以达到既能基本上满足实时性要求,又可获得较好性能的目的。该算法的基本思想是,基于实时因素是硬性要求的这一特性,先考虑截止时间要求,将多个截止时间相近的磁盘请求放在一个组中,由此可以形成若干个组,在每一个组中再按照磁道序号进行排序。

    图11-15  scan-EDF算法示意图

          

    习    题 8:

      1. 试说明多媒体文件有哪些特点。

      2. 多媒体的集成性包含了哪几方面的含义?

      3. 在计算机系统中,为了进行图像、音频信号和视频信号的处理,需要增加哪些硬件?

      4. 常用的数字音频文件有哪几种类型?

      5. 彩色电视的制式有哪几种? 我国采用的是哪一种?

      6. 简单说明几种常用的MPEG标准。

      7. 试说明在多媒体系统中,对实时任务的处理有何需求。

      8. 在多媒体系统中,进程管理中必须解决哪些问题?  

      9. 什么是SRT任务带宽和尽力而为任务带宽? 为什么要设置这两种带宽? 

      10. CPU代理的主要任务是什么? 在什么情况下可以接收新进程?

      11. 什么是预留策略? 预留策略涉及哪些重要问题?

      12. 速率单调调度RMS算法里的优先级是如何确定的? 该算法需满足什么样的条件?

      13. 试对EDF算法与RMS调度算法进行比较。

      14. 何谓拉型和推型文件服务器? 它们分别适用于何种场合? 

      15. 试比较一般的文件服务器和媒体服务器。

      16. 何谓存储器页面锁定功能? 在多媒体系统中为什么需要该功能?

      17. 存储器代理的主要任务是什么? 它是如何来实现该任务的?

      18. 媒体服务器接纳控制的主要任务是什么? 它是如何实现接纳控制的?

      19. 为了满足不同用户的需要,媒体服务器可以提供哪几种服务质量保证?

      20. 把多媒体文件存放在硬盘上时,为什么要采取交叉连续存放方式?

      21. 什么是帧索引存放方式? 什么是块索引存放方式?

      22. 试对帧索引存放方式的性能进行分析。

      23. 试对块索引存放方式的性能进行分析。

      24. 什么是近似视频点播? 近似视频点播的文件应如何存放?

      25. 当两条视频流在时间上相差很少时,为什么要将它们合并? 如何合并?

      26. 什么是Zipf定律? 按照管风琴算法规定,在单个磁盘上应如何存放多部电影?  

      27. 高速缓存在多媒体系统中可有哪些用处?

      28. 为什么在多媒体系统中对磁盘调度提出了比传统OS更为严格的要求?

      29. 多媒体系统中对磁盘调度比传统OS更为容易处理的地方又有哪些?

      30. 为什么说can-EDF算法既能满足实时性要求,又可获得较好的性能?

     

     

     

     

  • 相关阅读:
    PHP 操作MySQL时mysql_connect( )和Mysqli( )的两种报错机制
    OS + macOS Mojave 10.14.4 / sushi / ssh-keygen / ssh-copy-id
    script ajax / XHR / XMLHttpRequest
    java socket / No buffer space available
    OS + Ubuntu ARM Android
    mysql中批量替换数据库中的内容的sql
    linux下ubuntu系统安装及开发环境配置
    PHP 截取字符串专题
    在Ubuntu中用root帐号登录
    理解javascript的caller,callee,call,apply概念
  • 原文地址:https://www.cnblogs.com/ZanderZhao/p/11044851.html
Copyright © 2020-2023  润新知