多媒體操做系統算法
隨着多媒體技術的發展,在傳統OS中也相應增長了許多能處理音頻和視頻信息的多媒體功能。如今流行的操做系統,如Linux、 Windows 系列等,就已具備多媒體功能。本章前兩節先介紹有關多媒體系統的基本知識。緩存
1. 數據、信息與媒體服務器
所謂數據,是反映客觀事物及其運動狀態的信號,如人體感受器官或觀測儀器的感知所造成的以文本、數字、事件或圖像等形式保存的原始記錄。數據與數據之間沒有創建任何聯繫或關係,呈分散和孤立的特性。數據必須通過加工處理才能造成信息。網絡
2. 媒體的分類併發
通常地,媒體可分爲如下六類:ide
(1) 感受媒體工具
(2) 表示媒體post
(3) 呈現媒體性能
(4) 存儲媒體開發工具
(5) 傳輸媒體
(6) 交換媒體
3. 多媒體
所謂多媒體(multimedia),目前沒有統一的定義,通常是指多種方法、多種形態傳輸(傳播)的信息介質、多種載體的表現形式以及多種存儲、顯示和傳遞方式。在計算機領域,多媒體每每是指多媒體技術,便是同時對多個感受媒體信息進行獲取、處理、編輯、存儲和展現的理論、技術、設備、標準等規範的總稱。
1. 超文本(hypertext)
超文本是一種文本信息的組織方式,相比傳統的線性文本組織方式而言,超文本的組織方式是非線性的,與人的思惟方式和工做方式更加接近。
2. 超連接(hyperlink)
超連接也稱爲超文本連接(hypertextlink),是指文本中的詞、短語、符號、圖像、聲音剪輯或影視剪輯之間的連接,或者是指它們與其它的文件、超文本文件之間的連接。
3. 超媒體(Hypermedia)
所謂超媒體,就是多媒體與超文本的結合,在多媒體技術的支持下,文本信息不只能夠包含文字,還能夠包含諸如圖形、圖像、視頻、音頻等多媒體信息,這些信息按照超文本結構和超連接方式進行組織,是節點和鏈源類型更加多樣化、鏈結構更加複雜的超文本。
1. 多樣性
所謂多樣性,是指在一份多媒體文件中集成了多種媒體文件。例如在一部數字電影中,就可能包含有一個視頻、多個音頻、多個橫向滾動的字幕等,相應地在一個多媒體文件中就有一個視頻文件、多個音頻文件以及多個包含多種語言的文本文件,所以一部數字電影每每是由多個不一樣類型的文件組成的。
2. 極高的數據率
爲了保證有好的視覺和聽覺感覺,視頻和音頻都必須具備很高的數據率,相應的所須要的存儲量就很是大。
3. 實時性
在對多媒體文件進行播放時,爲保證播放質量,要求有很高的實時性。
4. 集成性
在多媒體中包含了文本、靜止圖像、音頻、視頻等各類類型的媒體,而實際須要的,則每每是將多種媒體集成在一塊兒使用。所以集成性是多媒體的一個重要特徵。多媒體的集成性包含了以下兩方面的含義:
(1) 將多媒體的硬件和軟件進行集成。
(2) 將多媒體信息進行集成。
5. 交互性
在多媒體系統中,多媒體文件還有一個很是重要的特色——使用時的交互性,即在多媒體系統中,信息以超媒體結構進行組織,能夠方便地實現人機交互。換而言之,人能夠按照本身的思惟習慣,按照本身的意願主動地選擇和接受信息,擬定信息的使用路徑。對於僅集成了多種媒體而不具備交互性的系統,一般不把它稱爲多媒體系統。
1. 多媒體硬件系統的組成
多媒體硬件系統是在傳統計算機系統的基礎上,再增長某些能對多媒體信息進行處理的硬件。所以,它除了須要較高配置的常規計算機主機硬件,如處理機、內存、硬盤驅動器等外,還應增長用於對音頻信號和視頻信號進行處理的硬件,諸如音頻、視頻、視頻處理設備,光盤驅動器,各類媒體輸入/輸出設備等。
2. 聲卡(sound card)
聲卡又稱音頻卡,用於處理音頻信號。聲卡可用來接受話筒、錄音機、樂器等輸入的音頻(模擬)信號,經過模/數變換,將其轉換爲計算機可以識別和處理的數字信號。反之,聲卡也能把計算機中存儲的數據經數/模變換轉換爲聲音信號,再經過鏈接在聲卡上的音箱或耳機播放出來,也可用錄音設備記錄下來。聲卡可根據其量化精度將其分爲8位、16位和32位幾檔。位數越高,其量化精度也就越高,相應的,聲音的音質就越好。
3. 視頻卡(video card)
視頻卡又稱顯示卡,用於處理視頻信號。它除了用於對視頻信號進行採集外,還可對所採集的信息進行編輯、特技處理,進而造成十分精美的畫面。對於多媒體的應用,通常要求視頻卡能提供800×600、1024×76八、1280×1024或更高像素的分辨率,這樣纔有可能很好地觀看高清晰電視和數字電影。
4. 數碼相機
數碼相機與傳統相機相比,二者用於成像的光敏介質不一樣,傳統相機採用的是分佈在膠片上的感光化學介質,而數碼相機是使用CCD做爲光敏介質。CCD的做用是將所拍攝到的光信號轉換爲模擬電信號,再通過模/數轉換變爲二進制數字信號。這樣即可將圖像以數字形式存儲在相機的內存中。爲了節省內存,一般都採用JEPG方式存儲。
5. 數碼攝像機
1998年,第一部家用數碼攝像機橫空出世,因爲它有着很高的清晰度、體積小巧、使用方便,並能利用計算機對影像進行處理,於是深受用戶歡迎,所以它很快就取代了傳統的模擬式攝像機。它也使用CCD做爲光敏介質。
6. 智能傳感器
智能傳感器是一種具備採集、處理、交換信息功能,集成了傳感器、微處理機、通訊裝置的嵌入式設備。智能傳感器可與外界物理環境交互,將收集到的信息經過傳感器網絡傳送給其它的計算設備,如傳統的計算機等。智能傳感器通常集成了低功耗的微控制器、若干存儲器單元、無線電或光通訊裝置、傳感器等組件,經過傳感器、動臂機構以及通訊裝置,實現與外界物理環境交互。
7. 多媒體軟件系統
多媒體軟件系統也稱爲多媒體軟件平臺,是指多媒體系統運行、開發的各種軟件和開發工具及多媒體應用軟件的總和。硬件是多媒體系統的基礎,軟件是多媒體系統的靈魂。
在多媒體文件中包含了多種類型的媒體,它們具備徹底不一樣的特性,並須要用不一樣的硬件和軟件進行處理。
1. 模擬音頻和數字音頻
(1) 模擬音頻。
(2) 數字音頻。
① 採樣。
② 量化。
③ 編碼。
2. 數字音頻文件類型
數字音頻文件格式有多種:
① WAV文件
② MIDI文件
③ MPEG音頻文件(MP3)
④ APE文件
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格式。
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的文件,必須使用相應的解壓縮算法,才能將它進行解壓。該算法具備調用方便、圖像質量好等優勢,但文件體積過於龐大,主要用於在光盤上保存數字電影、電視等影像。
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個獨立的壓縮層次。
多媒體進程(線程)與一般的進程(線程)之間有許多類似之處,好比它們須要必定數量的資源,具備三個基本運行狀態等。但它們也各有本身的特色,所以,在對多媒體進程進行管理時,必須考慮多媒體數據應遵循的時序需求。
1. 實時任務的處理需求
在一般的多媒體系統中,必須按照嚴格的時間間隔對實時任務進行處理。或者說,必須週期性地對數據進行處理,並在一規定的截止時間前完成。
2. 軟實時任務的時間特性描述
在多媒體系統中,是對連續媒體數據流進行處理。在播放數字電影時,媒體服務器將週期性地(對於PAL制式爲40 ms)逐幀送出數據。相應地,媒體服務器中的處理機必須在規定的時間內對它進行處理後送給用戶。可見播放數字電影將聯繫着一個截止時間或稱爲最後時限。這說明數字電影是一個要求比較嚴格的週期性軟實時任務。
圖11-1 週期任務的時間特性
1. 同時運行不一樣類型的軟實時任務
一般媒體服務器可向衆多的用戶提供各類多媒體服務,如數字電影和電視服務。在系統中,每一部數字電影都是做爲一個軟實時任務運行的,彼此間相互獨立。不一樣的軟實時任務所需處理的數據量相差甚遠,可能相差數十倍。每一個任務的時間特性也各不相同,它們有不一樣的開始時間、截止時間、週期時間和CPU處理時間。簡而言之,多媒體進程管理必須具備能支持多種不一樣類型的軟實時任務同時運行的能力。
2. 支持軟實時任務和非實時任務同時運行
一個具備多媒體功能的通用操做系統,它既應面向軟實時任務的用戶,又需面向非實時任務的用戶,如交互型做業的用戶。所以,在系統中,應當容許多種類型的SRT任務和不一樣類型的非實時任務並存。相應的進程管理應具有如下兩方面的功能:一方面須要知足SRT任務對截止時間的需求;另外一方面又應使非實時任務的用戶滿意,並能很好地協調多種任務的併發運行。
3. 提供適當的進程接納機制
在多道程序環境下,若是在系統中同時運行的SRT任務太多,將難以保證明時任務的截止時間需求。反之,若在系統中的SRT任務太少,CPU又會得不到充分利用。爲解決此矛盾而引入了對進程的接納控制機制,目前經常使用的是基於預留的進程接納機制。當新進入的SRT任務提出接納請求時,接納機制將計算是否有足夠的CPU時間片(帶寬)來接納該進程,若是有足夠的CPU帶寬,便接納它,併爲每個被接納的SRT任務預留它在運行時所須要的CPU帶寬,若是已無足夠的帶寬,便拒絕接納。
4. 採用實時調度算法
實時調度在保證SRT任務的實時性方面起着相當重要的做用。在具備多媒體功能的操做系統中,一個好的實時調度算法應能向每一個SRT任務提供能夠接受的截止時間保證,即能知足每個SRT任務絕大多數的截止時間需求。
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) 按優先級排序,根據進程的優先級大小依次爲全部請求進程進行服務。
在多媒體服務器中,將爲所播放的每一部數字電影創建一個進程。其主要任務是,不斷接收從硬盤上傳送來的幀,經適當處理後,便送往屏幕。最簡單的實時調度方法是,假定所要播放的電影都具備相同的類型,如都是採用相同的制式、分辨率和壓縮比的彩色數字電影。
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實時調度例子
1. 用RMS算法調度失敗舉例
如今咱們來看另一個例子:現有三個進程A、B和C,它們的週期與前例相同,只是在此將進程A每次的運行時間由10 ms增長至15 ms,進程B和C每次的運行時間不變。對於RMS算法,因爲優先級只與週期有關,而與進程每次運行的時間多少無關,所以這三個進程的優先級仍爲3三、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) 調度的穩定性。
1. 多媒體文件的多種媒體性
如前所述,一部數字電影是由多種媒體文件組成的。其中包含了一個視頻文件、若干種語言的音頻文件,以及不一樣國家文字的文本文件,圖11-5示出了一部電影所包含的文件,並且在播放時,這些媒體數據流之間還必須保持同步。
圖11-5 一部電影所包含的多種媒體的文件
2. 拉型和推型文件服務器
在傳統的服務器中,進程要訪問一個文件時,應先用open系統調用將文件打開,而後再用read系統調用把文件中的數據讀出。若是把這種方式也用於多媒體文件系統中,則用戶每發出一個read系統調用命令時,服務器便送出一幀數據,如圖11-6(a)所示。該方式一方面要求用戶必須以精確的時間間隔不斷髮出read命令,讀出一幀數據;另外一方面要求服務器每一個週期都能及時地提供數據。
圖11-6 拉型服務器和推型服務器
3. 多媒體文件的存儲空間分配方式
在傳統的文件系統中,文件組織的一個重要目標是經過減小內部和外部磁盤碎片,提升磁盤空間的利用率。爲此,存儲空間的分配主要採用基於盤塊的離散分配方式。而在多媒體文件系統中,文件組織的一個重要目標是能提供恆定速率的數據流和能及時地檢索數據。
4. 人機交互性
用戶在經過媒體服務器觀看節目時,可根據本身的愛好,任意點播喜歡看的節目。在觀看節目時,還可選擇本身所熟悉的語言音頻和字幕,而且能夠根據須要隨時更換。此外,用戶還能夠隨時中止(或暫停)正在觀看的電視,或(讓電視)從一集跳至下一集,或讓電影快進或快退等,即媒體服務器須要具備人機交互的功能。
1. 存儲器頁面鎖定功能
對於某個SRT任務來講,若是其某些頁面未在物理內存,而在運行中又須要用到這些頁面上的代碼或數據,則將發生缺頁中斷,這意味着所需之頁面必須從磁盤中讀取。因爲讀盤所需的時間不只較長,並且是不肯定的,這無疑會給SRT任務帶來極大的影響。爲避免發生缺頁中斷狀況,一個行之有效的方法是將SRT任務運行時所需之代碼和數據鎖定在物理內存中。只有這樣纔有可能保證SRT任務的截止時間。
2. 存儲器代理
爲了能保證每個SRT任務的實時性,如同處理機預留CPU帶寬同樣,咱們也引入了存儲空間預留功能,爲每個SRT任務預留鎖定的存儲空間。爲實現該功能,在存儲器管理中增長了兩個功能實體:存儲器代理和存儲器控制器。
3. 存儲器控制器
存儲器控制器的主要任務是,管理爲SRT任務鎖定的內存頁面,以保證CPU能及時得到數據。在SRT任務執行時,將ID傳送給存儲器控制器。後者利用預留表檢查該預留ID是否合法,若是合法,便爲SRT任務分配並鎖定存儲器。存儲器控制器還把存儲器的鑰匙傳送給SRT任務,SRT收到後,便創建起存儲段與本身的地址空間之間的映射關係。
1. 媒體服務器的服務質量
不一樣的SRT任務,所要求的服務質量並不徹底相同。所以,一個媒體服務器應當可以提供幾種服務質量,以知足不一樣用戶的須要。一般,能夠提供以下三種服務質量保證:
(1) 肯定型的保證。
(2) 統計型的保證。
(3) 盡力而爲型保證。
2. 接納控制
對於不一樣的服務質量保證和不一樣的服務所採用的接納控制條件是不同的,在這裏只是討論接納控制條件中最基本的問題。
1. 多媒體文件存放中的問題
多媒體文件存放最重要的要求是,存放在硬盤上的數據如何能快速地傳送到輸出設備上,不會發生因送出數據不及時而使屏幕上的畫面發生顫動。在採用離散分配方式時,在磁盤傳輸速率足夠高的狀況下,送出數據不夠及時最主要的緣由是在傳輸一幀的過程當中須要進行屢次尋道,因爲尋道和磁盤旋轉延遲一般都須要數十毫秒,很難及時將數據送出。所以,多媒體文件都採用連續文件。
2. 交叉連續存放方式
在該方式中,不只要求多媒體中的每一個文件是連續文件,並且還需在不一樣文件間採起按幀交叉的方式存放。首先存放第一幀中的視頻數據,緊靠着它存放第一幀中的各類音頻數據,而後是存放第一幀中的多個文字數據,如圖11-7所示。在從磁盤讀出時,最簡單的方法是將每一幀中全部數據所有讀出到內存的緩衝區中,而後只將用戶所需之部分傳送給用戶。
圖11-7 交叉連續存放方式
爲了克服交叉連續存放方式的缺點,即在每一部數字電影中所包含的視頻文件、音頻文件和多個文本文件都須要連續存放,而引入了索引存放方式。該方式又可分爲兩種:
(1) 幀索引存放方式,又稱爲小盤塊法。
(2) 塊索引存放方式,又稱爲大盤塊法。
1. 幀索引存放方式的基本原理
在小盤塊法中,所選定的盤塊大小應遠小於幀的大小。對於每秒30幀的MPEG-Ⅱ而言,幀的平均大小爲16 B,一般選定盤塊大小僅爲1 B或2 B,故將它又稱爲小盤塊法。這樣,電影中的每一幀信息須要存放在一連串的連續盤塊中。和前面同樣,在這一串連續的盤塊中,還是包含了一個視頻、多個音頻和多個文本文件的數據。
圖11-8 索引存放方式
2. 幀索引存放方式的性能分析
(1) 支持隨機訪問。
(2) 關於快進、快退問題。
(3) 磁盤碎片較小。
(4) 幀索引表大。
(5) 緩衝管理簡單。
(6) 存儲管理複雜。
1. 塊索引存放方式的基本原理
在塊索引存放方式中所選定的盤塊較大,其大小應遠大於一幀的大小,如256 B,以便在一個盤塊中能夠存放多個幀,故將它稱爲大盤塊法。因爲在大盤塊法中每一個數據塊的大小是相同的,故把這種組織稱爲恆定數據長度。
2. 塊索引存放方式的性能分析
(1) 支持隨機訪問。
(2) 磁盤碎片較大。
(3) 塊索引表小。
(4) 緩衝管理複雜。
1. 近似視頻點播(near video on demand)
近似視頻點播是視頻點播的一種近似,它是每隔必定時間開始一次播放。
圖11-9 近似視頻點播的數據流圖
2. 近似視頻點播的文件存放
在近似視頻點播中,即便電影文件是連續文件,但在它以24個數據流錯時送出時,因爲每兩個相鄰的數據流都相差9000幀,所以從一條數據流轉至下一個數據流時就須要進行尋道。但若是能採用如圖11-10所示的方法,則幾乎能夠徹底消除尋道操做。
圖11-10 近似視頻點播的文件存放
1. 單個磁盤的狀況
前面所考慮的只是在視頻服務器上存儲了單部電影,但實際狀況每每是視頻服務器上存儲了多部電影。若是這些電影被隨機地存放在磁盤的各個地方,那麼當多個用戶須要同時觀看這些電影時,必然會形成磁頭的頻繁來回擺動。應如何在磁盤上存儲多部電影呢?
一般,每一部電影的點擊率是不一樣的。咱們在將這些電影存儲在磁盤上時,應當將電影的流行因素考慮進去,使越流行的電影越容易被訪問到。事實上,有許多流行的事物,如流行電影、流行音樂、訪問Web網頁等,大致上都遵循一種可預測模式,該模式又被稱爲Zipf定律。該定律可描述爲:
圖11-11 多部電影按管風琴算法分佈
2. 多個磁盤狀況
爲了知足衆多用戶的須要,配置在視頻服務器上的磁盤系統一般都須要很大的存儲容量,所以在視頻服務器上的磁盤系統,大都採用許多個磁盤來擴大磁盤系統的容量,如採用RAID磁盤陣列。
圖11-12 在多個磁盤上的存放方式
對於傳統的OS,在內存中設置高速緩存的主要目的,是爲了減小對磁盤的訪問時間。所採起的方法是將那些在不久以後可能會被訪問的盤塊數據放入到高速緩存中,以便之後須要時,可直接從高速緩存中讀取,這樣就節省了對磁盤的訪問時間。
1. 塊高速緩存
雖然說當一個用戶在看一部電影時,剛放過的盤塊不會被重用,但若是是有多個用戶幾乎同時在看一部電影,剛放過的盤塊則可能會被屢次重用。
2. 將兩條視頻流合併
若是兩條視頻流在時間上相差不多,咱們能夠對兩條視頻流進行合併。
圖11-13 將兩條視頻流合併
3. 文件高速緩衝
在一個爲公衆服務的視頻服務中心,一般都應當備有許多電影和電視劇節目。因爲在DVD光碟中的電影或電視劇所佔用的存儲空間都很是大,通常都有數GB,於是不可能都裝入視頻服務器的磁盤上,而是仍然放在光盤或磁帶上。在須要播放某部電影時,再將它們複製到磁盤上。但因光盤特別是磁帶的低速性,要將這些電影從光盤複製到磁盤上須要花不少的時間。因而在大多數視頻服務器中,都是將用戶請求最頻繁的電影文件放入內存的高速緩衝中,而把流行的整部電影文件放在磁盤上。
在多媒體系統中對磁盤調度提出了比傳統OS更爲嚴格的要求。其主要緣由是:
(1) 多媒體文件的數據量特別大,相應地要求數據傳輸速率也很是高。
(2) 爲保證電影的播放質量,要求具備很高的實時性;
(3) 對於一臺視頻服務器,可能要同時處理成百上千的用戶請求。
1. 可預測性
在傳統OS中,用戶對磁盤的請求是難以預測的,所以通常只提供了預讀一個盤塊數據的功能。而在多媒體系統中,不管是電影仍是電視劇都是連續播放的,即在播放了第i幀後,緊接着就會播放第i 幀,這就大大提升了請求的可預測性。
2. 按磁道順序排序
假如視頻服務器中僅有一個磁盤,有10個用戶在觀看不一樣的電影,而這些電影又具備相同的幀頻、分辨率。這時,系統能夠爲每一部電影創建一個進程,在進程調度時採用輪轉法方式。首先讓第一個進程運行,當它運行完後調度第二個進程運行,直至最後一個進程運行完畢。這裏的關鍵問題是,全部進程運行一次的時間,應小於每幀之間的時間間隔40 ms。
圖11-14 磁盤請求的處理順序
爲簡單起見,在前面曾假設,全部的電影具備相同的分辨率和幀頻。如今再來分析當多部電影具備不一樣的分辨率和幀頻時,所播放的電影對磁盤的請求會帶有必定隨機性的狀況。
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算法既能知足實時性要求,又可得到較好的性能?