多媒體視訊串流服務之動態頻寬分配法則
全文
(2) 致謝. 非常感謝 黃文吉老師在這兩年間對我不辭辛勞的指導,讓我無論是在專業上 或者是待人處事都獲益良多。這段學習的時間有很多的成長與體驗,是我人生旅途 中深刻又美好的回憶,老師 非常感謝您!同時很感謝已畢業的學長 凱富、韋德、 祜琦、永隆、定寬、正岳及智傑,還有其他許多的學長姐們,謝謝你們的教導;也 感謝家璿、嘉隆、鵬傑、聖凱及正存,我們一路走來的歡笑甘苦我會永遠當做美好 的回憶;另外,也感謝可愛的學弟妹 嘉晏、政諺、敦皓、宗毅及禕璨,以及很多學 弟妹們的幫助,謝謝。當然,依佳、儷玶及靖雅等同學們,與你們的相處和互相鼓 勵的時光也是我永遠無法忘記的。很榮幸能進到臺灣師範大學,並在 MC2_Lab 中認 識大家,和大家一起學習和成長。最後,要感謝我的家人們,因為有你們的支持和 鼓勵,讓我沒有後顧之憂的盡力於我的課業上,謝謝您們,在將此論文獻給親愛的 你們。.
(3) 中文摘要. 中文摘要 本論文中將結合視訊串流伺服器(Video Streaming Server)及我們所發展的動 態頻寬分配法則(Dynamic Bandwidth Allocation),讓視訊串流系統在調節頻寬的 時候可以達到以下兩點目標: (1) 當總流量超過安全範圍,調節頻寬時可最小化視訊品質之降低。 (2) 頻寬充足時,調節頻寬且最大化的提昇視訊品質。. 另外,我們建立了一個使用本演算法的視訊串流伺服器。而本論文將透過模 擬所獲得的數據來驗證法則的正確性和分析在實際系統上運作法則時所量測到 的數據,藉以完整地證明本論文所提出之演算法則是有效的。. 關鍵詞:Dynamic Bandwidth Allocation, Streaming Server. I.
(4) 英文摘要. ABSTRACT. In this thesis, we propose a dynamic bandwidth allocation algorithm and implement a video streaming server with this algorithm. We want the system can achieve two goals as follows: (1) When total used bandwidth of video streaming server is over safety area, video streaming server will manage bandwidth and minimize video quality decadence. (2) When total used bandwidth of video streaming server is under safety area, video streaming server will manage bandwidth and maximize video quality increase. In order to verify this algorithm, we implement a positive video streaming system. We will test my systems in several scenarios and get some measurements. According to those measurements, it can be observed that the algorithm is effective and useful.. Keywords:Dynamic Bandwidth Allocation, Streaming Server. II.
(5) 目錄. 目 錄 中文摘要 英文摘要 目錄 第一章 緒論 1.1. 研究背景及動機...........................................................................................1. 1.2. 研究目的及方法...........................................................................................4. 1.3. 全文架構.......................................................................................................6. 第二章 基礎理論介紹 2.1. 多媒體串流與相關技術..............................................................................8 2.1.1 多媒體串流簡介…...............................................................................8 2.1.2 支援串流媒體之傳輸協定...................................................................11 2.1.3 串流媒體伺服器...................................................................................13. 2.2. Video Lan Client (VLC)...............................................................................13 2.2.1. 2.3. 簡介....................................................................................................13. Content Delivery Network (CDN)...............................................................16 2.3.1. 簡介....................................................................................................16. 2.3.2. CDN 相關技術..................................................................................17 III.
(6) 目錄 2.3.3. CDN 特點和優勢............................................................................18. 2.3.4. CDN 應用........................................................................................19. 第三章 動態頻寬分配法則 3.1. 串流伺服器之 CDN 技術架構..................................................................21. 3.2. 頻寬分配法則模型介紹…….....................................................................24. 3.3. BFOS Algorithm……….……....................................................................27. 3.4. 動態頻寬分配法則介紹.……...................................................................30 3.4.1. 動態頻寬分配法則(一)介紹….......................................................30. 3.4.2. 動態頻寬分配法則(二)介紹….......................................................34. 3.4.3. 動態頻寬分配法則(三)介紹….......................................................38. 第四章 系統架構 4.1. 串流伺服器架構........................................................................................42. 4.2. 模組介紹....................................................................................................44. 4.3. 頻寬管理模組............................................................................................46 4.3.1. Prune 程序………………….…......................................................46. 4.3.2. Grow 程序………………….…....................................................47. 第五章. 實驗數據與系統效能分析. 5.1. 演算法則之實驗模擬................................................................................48. 5.2. 串流系統測試............................................................................................55 IV.
(7) 目錄 5.2.1. 串流系統測試說明…………….....................................................56. 5.2.2. 頻寬調節結果分析…………….....................................................58. 第六章 結論與未來展望 6.1. 結論...........................................................................................................70. 6.2. 未來展望...................................................................................................71. 參考文獻...................................................................................................................72. V.
(8) 目錄. 附圖目錄 圖 2-1 多媒體串流架構圖............................................................................9 圖 2-2 串流傳送端之處理過程....................................................................10 圖 2-3 接收端之處理過程............................................................................10 圖 2-4 VLC 解決方案...................................................................................14 圖 2-5 VLC 所支援之媒體格式...................................................................15 圖 2-6 VLC 所支援之串流格式...................................................................15 圖 2-7 Content Delivery Network 架構........................................................16 圖 3-1 多媒體串流伺服器之 CDN 技術架構.............................................21 圖 3-2 動態頻寬分配法則之模型................................................................24 圖 3-3 C=2 和 K=3 條件下的 T 及 S............................................................25 圖 3-4 C=2 和 K=3 組合分佈圖...................................................................27 圖 3-5 法則(一)流程圖….............................................................................31 圖 3-6 法則(二)流程圖……….....................................................................35 圖 3-7 法則(三)流程圖.................................................................................38 圖 4-1 系統架構圖........................................................................................43 圖 4-2 系統運作流程....................................................................................44 圖 5-1 C=2 和 K=3 實驗組合分佈圖...........................................................48. VI.
(9) 目錄 圖 5-2 C=2 和 K=3 人數不同之 lower boundary of convex...................50 圖 5-3 C=2,K 增加之實驗.....................................................................52 圖 5-4 C=2 和 K=4 之 nonconvex 實驗.................................................54 圖 5-5 串流系統測試畫面(一) .............................................................56 圖 5-6 串流系統測試畫面(二) .............................................................57 圖 5-7 串流系統測試畫面(三) .............................................................57 圖 5-8 C=3 和 K=3 觀看介面...............................................................58 圖 5-9 C=3 和 K=3 之 lower boundary of convex hull………..……...59 圖 5-10 C=3 和 K=3 頻寬調節分析.....................................................61 圖 5-11C=4 和 K=3 觀看介面..............................................................64 圖 5-12 C=4 和 K=3 之 lower boundary of convex hull………...…....65 圖 5-13 C=4 和 K=3 頻寬調節分析………………………...………..67. VII.
(10) 目錄. 附表目錄 表 5-1 C=3 和 K=3 頻道數據................................................................59 表 5-2 C=4 和 K=3 頻道數據................................................................64. VIII.
(11) 第一章 緒論. 第一章 緒論 在本章中,我們將說明本論文研究的背景與動機,並簡單的介紹本論文研究 的方法與目的,最後並介紹本論文各章節的架構。. 1.1 研究背景及動機 網路服務蓬勃發展,使得數位化家庭的產品(數位電視、數位電話、數位監視 器、多媒體中心、etc.)日益受到重視,而視訊串流(Video Streaming)[1][2]是數位 家庭應用中不可或缺的一項技術,並且隨著網際網路頻寬的增加,視訊串流的相 關應用及研究獲得了極大的重視,諸如近來世界知名的視訊服務網站 youtube、 日本知名的視訊服務網站 NicoNcio 以及台灣電信龍頭中華電信的視訊服務頻道 HiChannel 都是典型的視訊串流服務。 多媒體視訊串流,通常是在多媒體伺服器中預先儲存多媒體資料,再讓使用 者去隨選欲觀看的媒體串流資訊;在網際網路上的資料傳輸方式有三種,單點傳 播(Unicast)、廣播(Broadcast)及多點廣播(Multicast)。 首先,使用多點廣播(Multicast)雖然可以有效減低網路的頻寬,但多點廣播 (Multicast)在現實的網路環境中,有多數網路設備並不支援的問題,因此不能保證 用戶端可以使用多點廣播(Multicast)的技術。其次,廣播(Broadcast)只適用於 Lan 的環境下,並不適用於一般大眾的使用環境。單點傳播(Unicast)的架構最方便, 因此目前許多串流伺服器皆是提供此種方式的服務,但是此架構最大的缺點是無. 1.
(12) 第一章 緒論 法提供給大量的收視端來使用,而若需同時提供大量服務給使用者點播,則非常 容易造成伺服器之頻寬大量消耗,可能會使伺服器無法負荷,造成當機等結果。 目前,如 Google、Yahoo ∙∙等許多知名網站,皆加入 CDN(Content Delivery Network)[3][4][5]技術來解決上述 Unicast 的問題;CDN 技術可以提供分散的 Multiple Server 網路架構,當有用戶端加入 CDN 服務的網路中向伺服器網站發出 請求時,伺服器會以重定向技術將用戶端請求轉換至最接近用戶端的最佳 CDN 節點,再由該 CDN Server 將訊息傳送給用戶端,以此方式來分散單一伺服器負 擔過大等相關問題。 在我們評估了這三種傳輸方式的優缺點後,並且考量現有的視訊串流服務大 多是根據 CDN 方式來傳送單點傳播(Unicast)的視訊串流給視訊串流使用者;因此 我們將我們的視訊串流服務研究的方向定位在 CDN 的 Client-Server Model 方式 上。 僅管 CDN 技術可以暫時解決單一 Server 頻寬同時大量使用的問題,但是使 用 Client-Server Model 方式有一個最重要的問題—Bandwidth Cost[4];為了能容納 更多的使用者,串流服務提供者必須要跟 ISP 租用更多的頻寬。此外,當串流服 務提供者超用租用頻寬時,還必須给付超過頻寬的罰款給 ISP,因此頻寬消耗與 控制,同樣是值得我們去關注的事;由於每個 CDN Server 和 Client 間而言,都還 是以 unicast 的方式傳輸,所以當某個 CDN Server 之連結的 Client 數變多時,會. 2.
(13) 第一章 緒論 使得該 Server 的頻寬負荷還是很大。 目前存在的動態頻寬分配演算法,都是建構在線上即時的多媒體資料壓縮 上,這些方法,並不是很適合套用在多媒體串流伺服器上;也由於收視端是使用 unicsat 的方式接收串流資料,而這些線上即時壓縮的演算法,需將在線上即時做 反應,會帶給串流伺服器非常大的計算量,增加 Server 的負擔。 因此,在本篇論文中主要提出一個以 CDN 技術為基礎的串流伺服器架構上, 能最佳化並快速控制和分配頻寬的動態頻寬分配演算法則;該演算法則可控制 CDN 架構下每一個 CDN Server 的 Total Bandwidth 上限,並可隨著使用者進出該 網站而不斷改變串流出去的總頻寬,適當分配最有效的服務品質和提供最大量的 頻寬。. 3.
(14) 第一章 緒論. 1.2 研究目的及方法 為了改善 CDN Server 超出頻寬的問題以及如何使 CDN Server 在有限頻寬下 服務更多的使用者,在本篇論文中我們將解決的問題是: (1) 當總流量超過安全值,調節頻寬時可最小化視訊品質之降低。 (2) 頻寬充足時,調節頻寬且最大化的提昇視訊品質。 為了解決這些問題,我們設計了一個多頻道多群組的視訊串流系統,並同時 使用我們提出的動態頻寬分配法則來調節我們的視訊串流頻寬。在我們設計的多 頻道多群組之視訊串流系統架構下,我們以樹狀結構來定義目前 CDN Server 內 所提供的服務,並且在我們提出的動態頻寬分配法則中加入 BFOS 演算法[7][8][9] 的概念,藉此達到在視訊串流伺服器上的快速動態頻寬分配。 因此,本論文目標在於,在本實驗室架設的 Streaming Server(Video Lan Client[6])上,提出動態頻寬分配的演算法則,使串流服務提供者可以適時對 Streaming Server 之總頻寬做最佳的調節,避免超用租用頻寬而被罰款的問題。 本論文中我們除了會完整詳細的描述我們提出的動態頻寬分配法則外,也將 針對我們提出的演算法則做多方考量的實驗模擬,以驗證我們提出之演算法則的 正確性;並架設一個多頻道多群組視訊串流伺服器服務的系統,模擬在真實情況 下,套用我們提出的動態頻寬法則所得到的數據和結果。. 4.
(15) 第一章 緒論 本論文實現之視訊串流伺服器(Video Streaming Server)會依據使用者的使用 情況,以及針對伺服器現有的頻寬,調整提供給使用者端收視的頻道群組轉移, 以達到限制頻寬流量的目的,並同時能提供給使用者品質落差最小的視訊串流服 務。. 5.
(16) 第一章 緒論. 1.3 全文架構 本篇論文共分為五章,以下分別為各章的標題及內容概述: 【第一章】緒論 本章主要說明本論文的研究背景及動機,並對本論文的研究方法和目的做概 觀的簡介。 【第二章】基礎理論介紹 本章將介紹本論文所應用到的一些先備知識(如視訊串流)及本論文中所使用 的 Streaming Server(Video Lan Client);由於本論文提出的想法和應用主要是架構 在 CDN 之上,所以也將在此章節中做 CDN 技術的討論。 【第三章】動態頻寬分配法則 在本章中將介紹我們提出的動態頻寬管理視訊串流分配法則。 【第四章】系統架構 本章中將介紹實現本論文提出的動態頻寬法則之視訊串流系統架構。 【第五章】實驗數據及系統效能分析 本章將利用本論文提出的動態頻寬管理視訊串流分配法則,模擬在不同情況 下之數據驗證,並與實際發展的串流系統所得的數據做比較,且予以作相關的討 論。. 6.
(17) 第一章 緒論 【第六章】結論與未來展望 本章將對本論文做出總結,提出某些應該改進的地方,同時也提出本系統可 能延伸之部分。. 7.
(18) 第二章 基礎理論介紹. 第二章 基礎理論介紹 在本章中我們會介紹本論文所用到的串流技術及所使用的視訊串流伺服 器,幫助我們在檢視本視訊串流系統架構時,可以有更深入的了解。. 2.1 多媒體串流與相關技術 隨著科技發展與網路時代來臨,人們常利用各式各樣的裝置(如 PC、PDA、 Notebook),透過網路連線隨時隨地的存取網路上的資源。以網路發展的趨勢來 看,從文字(BBS)與影像資訊(HTTP/HTML)的瀏覽,到多媒體影音資料的傳輸 (Movie),這都是網路時代的進步。 多媒體傳輸的發明是重要的技術突破,其對網路世界的衝擊,也發揮出極強 大的影響力(如 youtube 的發展)。. 2.1.1多媒體串流技術簡介 多媒體資料(如影片、電視直播、音樂)的檔案容量通常都較為龐大,若採用 一般的下載方式來進行傳輸,則必須要等到整個檔案完全下載完後才可以觀看, 即會花費過多的等待時間;並且若將完整檔案整個下載後,也可能會產生著作權 的問題;另外,在某些數位設備上的儲存媒體較小(如 PDA),也無法支持此種方 式來觀看多媒體檔案;為了解決以上諸多的問題,便開始發展了多媒體串流 (Streaming)技術。. 8.
(19) 第二章 基礎理論介紹 多媒體串流,係指在網路上連續傳送影音資料的傳輸方式,將聲音、影像或 動畫等以時間為基礎的媒體,由串流伺服器向使用者端的電腦連續並即時的串流 傳送,可讓使用者無須等到整個檔案全部下載,只需經過幾秒的延時即可觀賞多 媒體資料,以邊下載邊播放的方式,讓使用者節省大量的等待時間,達到迅速播 放多媒體檔案,能於線上欣賞連續而不間斷的高品質視訊及音訊。. 圖 2-1 多媒體串流架構圖 圖 2-1 所示為多媒體串流架構,此架構主要由壓縮模組、串流伺服器與收視 端的撥放器來組成。壓縮模組的主要功能是將龐大的多媒體資料壓縮成可以在網 路上傳送的格式及大小,而串流伺服器主要功能是提供串流的建立、管理和傳 送;在接收端播放器的部份,則是負責接收及解壓縮並同步展現多媒體資料,然 後播放多媒體串流。 圖 2-2 及圖 2-3 為串流傳送端的與接收端之處理過程。如圖 2-2 所示,傳送 端透過訊號來源(擷取裝置如電視卡、攝影機或是本地端的多媒體檔案)獲得多媒 體資料,影像部分先透過串流伺服器轉換成多媒體串流的資料格式,接著透過網 際網路來對外傳輸這些封包。. 9.
(20) 第二章 基礎理論介紹. 圖 2-2 串流傳送端之處理過程 為了避免傳輸上的問題使收視端播放中斷,目前的串流機制都會在使用者播 放端建立緩衝區(Buffer),然後讓播放程式取用緩衝區的資料,以維持播放的順 暢及品質。 圖 2-3 為接收端透過網際網路接收到影像及聲音資料,先將這些封包存放到 緩衝區(Buffer)中,透過同步裝置將聲音與影像資訊同步,然後再由播放器輸出 接收到的多媒體資訊。. 圖 2-3 接收端之處理過程 多媒體串流主要應用模式有以下兩種傳輸模式: . 即時傳輸(On Live):訊號來源經過壓縮後,隨即利用伺服器,經由網際 網路傳送到播放器。標準的應用範例有雙向的視訊會議、電視頻道的轉 播和即時監控。 10.
(21) 第二章 基礎理論介紹 . 隨選傳輸(On Demand):多媒體資訊經過壓縮處理後,存放在伺服器內, 當使用者向伺服器提出播放要求時,伺服器才透過網際網路傳送到使用 者手上。標準的應用範例有隨選視訊、線上音樂商店(iTune)。. 2.1.2支援串流媒體之傳輸協定 整個串流是仰賴著串流伺服器、串流通訊協定與視訊編碼技術所達成的,而 目前多媒體串流技術在網際網路上的傳輸方式大致可分成三類: . 第一類串流技術:係利用網頁伺服器(Web server),以 HTTP/TCP 為基 礎的方式,將多媒體資料送至使用者端的播放器上播放。由於此類網頁 伺服器使用 HTTP(HyperText Transfer Protocol )通訊協定,所以此種方 式又稱 HTTP Streaming。使用此種方式的好處是只要使用一般的網頁伺 服器,並不需再另行建置串流伺服器,所以這種串流方式也稱為 Serverless Streaming 或 Pseudo Streaming;另外,HTTP streaming 也是最 先在市場上出現的串流方式。因為使用 HTTP 協定不容易自動偵測當時 網路環境,所以必須先備妥不同速率的資料,以適用於不同頻寬的網 路。又因為 HTTP 是使用 TCP(Transmission Control Protocol)通訊協定, 所以當傳輸資料遺失時會要求重傳,因此會很容易造成延遲(delay)。. . 第二類串流技術:係利用獨立的串流伺服器(Streaming server),以 RTP/UDP 為基礎的方式,將多媒體資料傳送到使用者端的播放器上播. 11.
(22) 第二章 基礎理論介紹 放。因為此種方式是使用 RTP(Real Time Protocol)通訊協定,所以也稱 為 RTP Streaming。RTP 是網際網路上針對即時多媒體資料串流所發展 的一種傳輸協定。RTP 會以一定速率,傳送一條串流到使用者手上,只 要有足夠的頻寬,使用者就可以立即使用己端的播放器來播放串流資 料,而串流資訊播放完畢後資料就會消失,並不會在使用者的硬碟內儲 存下任何檔案,若要再次觀賞則必須再次連線。 . 第三類串流技術:播放器不內建在用戶端,而是在串流過程中才送到使 用者手上,此種串流技術稱 Clientless Streaming,此類技術主要應用在 行動裝置上,尤其是支援 Java 技術的平台。這類應用不需要在用戶端 安裝太多程式,只有在需要使用時,才將 Java 版的播放器送到用戶端 安裝並播放串流。. 其中 RTP 傳輸由於使用 UDP(User Data Protocol),所以會比 TCP 快速且有 效率,因此可以有效減少延遲現象。但是 UDP 有兩點缺點: . UDP 缺乏回報機制,所以在網路上幾乎都會有封包遺失的狀況,此種 問題會造成品質下降。. . 大多數的防火牆都會擋掉 UDP 封包,所以在防火牆內無法接收到由 UDP 傳送之串流。想要穿越防火牆必須使用 HTTP tunneling 的技術, 即將 RTP 包裹在 HTTP 封包中,以方便穿越防火牆。但是 HTTP tunneling 這種方法會增加許多額外的資訊,導致佔掉更多的頻寬。. 12.
(23) 第二章 基礎理論介紹 RTP 亦可以搭配 RTSP(Real Time Streaming Protocol);RTSP 支援串流伺服器 與使用者端播放器的雙向溝通功能,使用者透過 RTSP 來下指令給伺服器,作像 是『暫停』、『快轉』、『倒帶』等的動作。. 2.1.3串流媒體伺服器 目前支援收發與播放串流媒體的產品繁多,如蘋果電腦的 QuickTime Streaming Server、RealNetwork 公司的 Helix Server 以及微軟的 Windows Media Services 最為常見;而在本論文中使用的是 Open Source 的 Video Lan Client。. 2.2 Video Lan Client (VLC) 2.2.1 簡介 VideoLan[6]計畫是一個開發多媒體播放器的計畫,爾後加入了影音串流傳輸 的功能。此計劃原本是 Ecole Centrale Paris(http://www.ecp.fr)的學生的一個專題計 畫,在 2001 年 2 月 1 日以 GNU General Public License (GPL)發佈後,現在計畫 成員橫跨二十多國。 作為VideoLAN最主要的軟體—VLC (Video LAN Client)多媒體播放器,現已 被研發成一個跨平台、具有完整特徵的多媒體播放程式及串流伺服器。圖2-4為 VLC所能提供的Streaming Solution:. 13.
(24) 第二章 基礎理論介紹. 圖 2-4 VLC 解決方案. VLC串流平台有以下幾點特色: . 具有跨平臺的特性:現有Linux、Microsoft Windows、Mac OS X、BeOS、 BSD、Pocket PC及Solaris等版本。. . 支援媒體格式豐富:其壓縮格式函式庫核心使用FF MEPG,因此可支援之 格式豐富,下圖為其支援之媒體格式:. 14.
(25) 第二章 基礎理論介紹. 圖 2-5 VLC 所支援之媒體格式 . 模組化設計:可依開發者需求選擇符合的模組,減少不必要的浪費,同時可 依照功能需求調整到最佳化的系統架構。由於此模組化的設計同時可容易達 到跨平台或相容於各種不同的作業系統。. . Thread:VLC採用Thread方式運作,有效節省系統資源。. . 支援豐富的串流協定:其支援之串流協定豐富,有HTTP、RTP…等多種串 流格式,圖2-6 為所支援之串流格式:. 圖 2-6 VLC 所支援之串流格式 15.
(26) 第二章 基礎理論介紹. 2.3Content Delivery Network (CDN) 2.3.1 簡介 隨著網際網路的發展,用戶端在使用網路時,對網站的瀏覽速度和效果愈加 重視,但是由於使用網路的人越來越多和網路探訪的路徑過長等問題,會使得用 戶端在網路上的使用效率受到嚴重的影響;特別是當用戶端與網站間的網路被突 發的大流量數據擁塞時,勢必會造成網站伺服端網路塞住而使用戶端等待許久的 問題;為了能改善以上缺點,並使用戶端都能使用較高品質的網路連線速度,因 此 CDN(Content Delivery Network)技術即應運而生。. 圖 2-7 Content Delivery Network 架構 16.
(27) 第二章 基礎理論介紹 1996 年,由麻省理工學院一個小組提出了 CDN 的概念,並開始對 CDN 技 術進行研究,他們在 1999 年成立了專業的 CDN 服務公司,為 Yahoo 提供專業 服務。 CDN 稱為內容分散傳遞網路,是近年來興起並迅速發展起來的一種解決互 聯網路的技術,其技術是在 Internet 中增加一層新的網路架構,以提高用戶端詢 問網站的速度,是屬應用層的網路架構。圖 2-7 所示,為 CDN 系統的具體架構; 整個 CDN 架構的工作流程,是當用戶端加入 CDN 服務的網路中向伺服器網站 發出請求時,首先會透過 CDN 重定向技術確定最接近用戶的最佳 CDN 節點, 同時將用戶的請求指向該節點;而當用戶的請求到達指定節點時,CDN 的伺服 器再負責將用戶請求的內容提供給用戶端。. 2.3.2CDN 相關技術 CDN 的實現需要依賴多種網路技術的支援,其中負載均衡技術、動態內容 分配與複製技術、緩存技術等是比較主要的幾項,以下做簡單的介紹: . 負載均衡技術:係指將網路的流量盡可能均勻分配到幾個能完成相同任務的 伺服器或網路節點上,由此來避免部份網路節點過載;這樣既可以提高網路 流量,又可以提升網路的整體性能。負載均衡技術不僅僅應用於CDN中,其 實在網路的許多領域的得到了廣泛的應用,如:伺服器的負載均衡和網路流 量的負載均衡。. 17.
(28) 第二章 基礎理論介紹 . 動態內容分配與複製技術:網站詢問的回應速度取決於許多因素,如網路的 頻寬是否充足、傳輸途中的路由器是否有阻塞和延遲、網站伺服器的處理能 力及詢問的距離等。多數的情況下,網站回應的速度和用戶端與網站伺服器 間的距離有密切的關係,若用戶端和網站間的距離過遠,它們之間的通信一 定需要經過重重的路由轉換和處理,如此一來,造成網路延遲的情況絕對無 法避免。有效的解決辦法就是利用內容分配與複製技術,將佔網路主體的大 部份靜態網頁、圖像和串流媒體的數據等,分配複製到各地的加速節點上。. . 緩存技術:透過Web緩存技術服務,使用戶端在瀏覽網頁時可以將廣域網路 的流量降至最低。對於Internet用戶端來說,這意指將內容儲存在他們的ISP 緩存器中,而無須通過Internet來檢索網頁;這樣無疑可以提高用戶的訪問速 度。. 2.3.3CDN 特點和優勢 綜觀 CDN 內所需的技術後,可以整理出以下 CDN 的特點和優勢: . CDN技術具有的特點: . 根據用戶的地理位置和連線頻寬,讓用戶端連線到最近的伺服器 上,使連線速度加快。. . 可使整個系統負載平衡,提高網路資源的利用率,提升網路服務的 性能與質量。. 18.
(29) 第二章 基礎理論介紹 . 網路具有高可靠、可用性,能容錯且易擴展。. CDN技術具有的優勢: . 可減少消耗的網路頻寬,減少網路詢問的延遲和用戶端接收到的回 應時間。. . 提高網站資源的管理控制能力、分配路由和進行流量管理。. . 發送的內容受到保護,未授權的用戶不能修改。. . 內容提供者可在自己本地端決定服務的內容,且內容可為動態的。. . 內容提供者在降低成本的同時,也提高的服務品質;並提供的更多 的內容,速度也更快。. 2.3.4CDN 應用 因為上述的特點和優勢,CDN 技術能加速與提高頻寬給串流媒體來使用, 使在網路中多媒體串流的用戶更加普及,並且應用非常廣泛,包括線上即時影音 播放、音樂多媒體點播、電視直播、遊戲等,可大大促進網路上的應用和服務的 發展。. 19.
(30) 第三章 動態頻寬分配法則. 第三章 動態頻寬分配法則 第一章中我們提到 Bandwidth Cost 是一個現實且重要的問題。在實務上,串 流服務提供者為了容納更多的使用者,必須要跟 ISP 租用更多的頻寬,同時,當 串流服務提供者超用租用頻寬時,通常必須给付超額罰款給 ISP。因此,在可用 的頻寬流量下,頻寬的管理是一個相當重要的課題。 就頻寬管理部份,常見的方式是使用變動位元之視訊串流方式調整使用頻 寬,此種調整方式我們在 1.2 節時曾經討論過它的問題。而在 1.2 節的最後面我 們討論到,我們期望的頻寬調整方式應有以下幾個特性: (1) 當總流量超過安全值,調節頻寬時可最小化視訊品質之降低。 (2) 頻寬充足時,調節頻寬且最大化的提昇視訊品質。 在此章節中,我們將介紹本篇論文主要提出的:在 CDN 技術為基礎的串流 伺服器架構上,能最佳化的動態頻寬分配演算法;我們假設在一個 CDN Server 中,擁有所有以數個 Bit Rates 預先壓縮完的多媒體檔案,供收視端的 Client 發出 請求,連線到欲觀看相對應 Bit Rate 之壓縮完的多媒體串流檔,而我們提出的演 算法,將會同步並即時地去做該 CDN Server 的頻寬分配和控制,且可使每位收 視端觀看之影片的失真值降至最低。 加入此演算法後,可以讓我們快速的依目前各 Bit Rates 之收視人數,動態決 定目前能提供給使用者觀看的相對應 Bit Rates 之多媒體串流檔案,藉此讓使用者. 20.
(31) 第三章 動態頻寬分配法則 快速的隨選隨播,且能讓 Server 同時接受大量的使用者請求。在後續的實驗模擬 中,也將驗證我們提出該演算法的正確性和完整性。. 3.1 串流伺服器之 CDN 技術架構. 圖 3-1 多媒體串流伺服器之 CDN 技術架構 圖 3-1 為 CDN 技術上之多媒體串流伺服器的架構,此系統架構由一個 Video Content 提供者和數個 CDN Server 所組成的,在 Video Content Provider 中預先儲 存所有欲供 Client 端觀看之相對應 Bit Rates 壓縮完後的多媒體檔案;我們將每部 Video 提供被點閱的 Bit Rates 定義為 R1 ,..., RK , K 指提供的 Bit Rates 數,且定義 R1 ≤ R2 ≤ ... ≤ RK ,也就是 Bit Rates 較小的放前面;當 Client 欲點閱某相對應 Bit. 21.
(32) 第三章 動態頻寬分配法則 Rates 之多媒體影音檔時,由 Provider 傳送該壓縮完後的多媒體檔案至距離 Client 最近的 Cache Server(CDN Server),再由該 Cache Server 提供多媒體串流檔給 Client 觀看。 由於使用者分散各地,每一個較接近使用者的 Cache Server 都會擁有不同數 量之相對應 Bit Rates 的 Video,在每個 CDN Server 都是獨立的使用我們提出的動 態頻寬分配法則,所以我們定義一個變數 C 表示該 CDN Server 中的 Video 數,並 令 Bi , j 為一個 CDN Server 在 i 個 Video, j 個 Bit Rates 條件下的 Total Bandwidth, 而透過檢視目前的 Total Bandwidth,可再加入套用我們提出的演算法來調整給使 用者觀看 Video 之 Bit Rates; ri , j 指第 i 個 Video,第 j 個所提供的 Bit Rate,用 R j 來表示該 Video 提供之某一 Bit Rate,因此我們可以得知 ri , j ≤ R j ,且 1 ≤ i ≤ C 和. 1 ≤ j ≤ K ,再定義 ni , j 為在第 i 個 Video 和第 j 個 Bit Rate 下,目前該 CDN Server 中觀看此多媒體串流檔的人數,那麼我們可以定義在某一 CDN Server 下所提供 串流出去的總頻寬 R 為公式 1: C. K. R = ∑∑ ni , j ri , j. (1). i =1 j =1. 定義 d i (ri , j ) 為 ri , j 之 Video 壓縮後的失真值,因此針對每一個獨立的 CDN Server 而言,各自的平均失真值可由下面公式得之:. D=. 1 C. K. i =1. j =1. ∑ ∑n. C. K. i =1. j =1. ∑ ∑n i, j. 22. i, j. d i (ri , j ). (2).
(33) 第三章 動態頻寬分配法則 我們透過 D 值能決定當在 R ≤ RT 條件限制底下,可得到的最小平均失真值, 藉以讓使用者得到最好的觀看品質。 由於使用者可隨時加入系統或離開,所以收視端的人數是隨時隨地在變動 的,若我們每次於 online 情況下,皆針對目前系統使用人數和收視端選擇的 Bit Rate 來考量整個 Server 的 Total Bandwidth,再計算其 Server 相對應的失真值,然 後再用最直接簡單 full-search 的方式去找出最符合需求的值,或許這是可以的,. (. ). 但是每次都必須花 (K !) 次的搜尋次數,時間複雜度也會為 O (K !) ;因此當整個 C. C. Server 中的多媒體檔案很多或提供的數 Bit Rates 很多時,會直接增加整體 Server 的計算量和時間複雜度,又如前面所提到的,系統需要隨時隨地去觀看串流出去 的 Total Bandwidth 來調整串流出去的 Bit Rate,則可能還是會讓 Server 無時無刻 在做多次且大量的運算,而造成 Server 的負擔,也會隨著檔案增加和 Bit Rate 數 變多時,計算的處理速度越來越慢。 我們提出的演算法除了可以在很快速的時間下,計算出針對目前使用者人數 和收視狀況,做出對 Server 頻寬最好的調整和管理,並提供最好的收視品質給使 用者外,也再加入 BFOS 演算法的概念,與 BFOS 演算法做結合,藉以更增進我 們演算法之動態頻寬分配和控制的速度。. 23.
(34) 第三章 動態頻寬分配法則. 3.2 頻寬分配法則模型介紹. 圖 3-2 動態頻寬分配法則之模型 圖 3-2 為我們動態頻寬分配演算法的模型,是一個多頻道多群組的架構;我 們可以以一棵 Tree 的方式來看一個 CDN Server,t 0 表示為 tree 之頂點,R j 和 Vi 為 該 CDN Server 目前所提供之相對應 Bit Rate( R j )的 Video 數( Vi ),其 i = 1,..., C ,. j = 1,..., K;而每個 vi 都能提供 K 種 Bit Rates 供之使用者點閱,wi , j 也代表 tree( Ti , j ) 於第 i 個 Video,第 j 個 Bit Rate 所提供出去的總流量。 另外,如圖 3-2 所示,我們可以定義一棵完整的 Tree 為 T ,然後令 S 為 T 之. subtree( S p T ),而 S 子樹的 Total Bandwidth 可由公式 1 得 R(S ) ,同樣的我們也 可算出 S 子樹的平均失真值( D(S ) );由於 S 為 T 的子樹,因此最大的 S 樹即為 T , 那麼針對每個 Video,並提供給使用者觀看的 Bit Rate 為 j ,其 1 ≤ j ≤ K ,可定義 該 Tree 之 R 最大為 RK ,而最小的樹即以 S0 代表之,因此 S0 為 j = 1, K = 1 的 Total 24.
(35) 第三章 動態頻寬分配法則. Bandwidth,且僅有提供 R1 之 Bit Rate;並且 Bi , j 為對應 i 和 j 之 Tree 條件下的 Total Bandwidth,以便之後討論用。. (a). (b) 圖 3-3 C = 2 和 K = 3 條件下的 T 及 S (a) full-tree T (b) subtree S. 25.
(36) 第三章 動態頻寬分配法則 接下來我們以圖 3-3 之簡單的範例來更清楚的表達我們整個演算法的計算方 式,圖 3-3(a)表示一個 CDN Server 中提供給使用者觀看的 Video 數和 Bit Rates 其 所組成的 full-tree( T ),圖 3-3(a)中可看到 R (T ) 之 C = 2 和 K = 3 ,並在此我們都假 定各 Bit Rates 之 Video 皆有 10 人在觀看( ni , j ),由 K = 3 可知 j = 1,2,3 ,表示目前 提供 3 個 Bit Rates,於此我們假設 3 個 Bit Rates 分別為 200kbps 、 400kbps 、. 600kbps ,所以在圖 3-3(a)中 R (T ) 的 R1 = 200kbps 、 R2 = 400kbps 、 R3 = 600kbps , 再由 C = 2 可知 i = 1,2,共提供 2 個多媒體檔案,因此 ri ,1 = 200kbps、ri , 2 = 400kbps、. ri ,3 = 600kbps ,擁有上述條件之後,我們即可用公式 1 計算 R (T ) ,得到 R (T ) = 24000kbps ,並用公式 2 計算出 D (T ) ;再觀看圖 3-3(b)之 T 的 subtree( S ),. 在 S 中,我們縮減原本 T 之 r1,3 和 r2, 2 所提供之 Bit Rate,使 r1,3 = 400kbps ,. r2, 2 = 200kbps ,經計算過後可得 R(S ) = 20000 Kbps 和相對的 D(S ) 。 上述情況的 S 僅為 T 之其一個 subtree;對於 C = 2 , K = 3 的一個 CDN Server 而言,可得到 (K!) 種組合;除了 T 之外,還會有 35 個 subtree,因此總共會有 1 C. 個 (D (T ), R(T )) 和 35 個 (D (S ), R (S )) 。. 26.
(37) 第三章 動態頻寬分配法則. 圖 3-4 C = 2 和 K = 3 組合分佈圖. 3.3 BFOS Algorithm 圖 3-4 中我們可以看到此例得到的 36 個點組合,這些點就是由前面提到的. (K!)C 種組合計算組成的;以 full-search 的方式,我們可以在動態頻寬分配的組合 上找到提供給使用者觀看的最小失真值,但是當 C 和 K 大時,組合的點將會很 多,若還是以 full-search 的方式來找到那些最小失真值的點,那麼搜尋的時間複 雜度想必會很高,無法滿足快速的決定頻寬分配和控制。因此,我們在此引入. BFOS 演算法的概念,透過和 BFOS 演算法的方式結合,來達到在視訊串流伺服 器上的快速動態頻寬分配和控制。. BFOS 演算法的運用,常被使用在壓縮影片時造成的失真上,藉由 BFOS 演 算法來快速找到 Lower boundary of convex hull 的方式,使我們提出的動態頻寬分. 27.
(38) 第三章 動態頻寬分配法則 配法則能大大降低搜尋的時間複雜度。圖 3-4 中連成的曲線,即是我們運用 BFOS 演算法找到該例,以 C (K − 1) + 1 個點組成的一條最佳化 Lower boundary of convex. hull。 在圖 3-4 中我們標示最右邊的點為 p1,p1 點表示 full-tree( T )的 (D (T ), R(T )) , 以 BFOS 演算法來選擇在 p1 點左邊那些 p1 點之 subtree 點中與 p1 點斜率(λ)最小 的,決定為 p2 點,其 p2 為 p1 點(T )之 subtree,接著再找 p2 點左邊那些 p2 點之 subtree 點中與 p2 點斜率最小的,決定為 p3 點,其 p3 也必為 p2 之 subtree,直到找到最左 邊的點才停止;而當左邊沒有點時,找到的最終一點即為 (D(S0 ), R(S0 )) ,將 T 得 到的 p1 點到最終點,其共由 C (K − 1) + 1 個 vertexs 所連成的線,即可得到一條 Lower. boundary of convex hull,這些點的重要性就是能提供給我們快速去縮減 Bit Rate 點的資訊。. BFOS 演算法適用於二元樹;而在我們的架構中,我們定義 Ti , j 樹含有 wi , j (i = 1,..., C , j = 1,..., K ) 等節奌,透過 BFOS 演算法,可以簡單的篩選得到我們想 要的 convex 點,以下將介紹如何套用 BFOS 有效地幫助我們得到我們想要的資訊 和加入 BFOS 演算法後,我們得到更多的發現。 我們將 Δi (n, k ) 表示從 Rn 到 Rk 其當增加相對應 Bit Rate 之 Video 後 1 ≤ k ≤ n ≤ K 的斜率,而 di (Rk ) 為 Rk 對應 Bit Rate 之壓縮後的失真值,因此可以定. 義出以下公式:. 28.
(39) 第三章 動態頻寬分配法則. Δi (n, k ) =. d i (Rk ) − d i (Rn ) Rn − Rk. (3). 接著我們以整個 Tree 來看,同前面描述,若我們要縮減其 CDN Server 串流 出去的 Total Bandwidth,即是對提供較高 Bit Rate 做縮減 Bit Rate 的動作,而決 定縮減哪個多媒體檔案之相對應的 Bit Rate,取決於 Total Bandwidth 和 Average. Distortion 的考量,以取斜率較小的來篩減之,定義公式如下:. λi ′, j ′ (n, k ) =. D(S ′) − D(S ) R(S ) − R(S ′). (4). 公式 4 中的 S 為目前提供之 Total Bandwidth 組成的點,S ′ 為欲縮減之下一個. Total Bandwidth 組成的點,以這之間差距的斜率來決定其欲縮減提供給收視端觀 看 Video 相對應的 Bit Rate。 由上述兩式,經過我們的整合和公式推導後,可以得到以下結合過後的公式:. λi ′, j ′ (n, k ) =. 1 C. K. i =1. j =1. ∑ ∑n. Δi′(n, k ). (5). i, j. 在多媒體視訊串流的應用上,皆是將 Video 事先儲存在 Server 中,所以我們 可以透過事先壓縮多媒體檔案而得到的失真值來計算其斜率,進而選擇最佳分配 的方式,其在爾後即使收視端人數的變更後,還是不影響我們事先壓縮完之多個 多媒體檔所得到的失真值,因此若 Server 提供給使用者點選之 Videos 和 Bit Rates 在沒改變的情況下,對 Server 而言,不論線上收視人數變更為何,其縮減的 Video 之相對應 Bit Rate 的 vertexs 和其縮減順序是相同的。. 29.
(40) 第三章 動態頻寬分配法則 在公式 5 中我們可以看到 λi ′, j ′ (n, k ) 和 Δi′(n, k ) 的關係極為密切,又 λi ′, j ′ 值主要 決定於 Δi′ ,且若原本的 Δi′(n, k ) 值之間的差異已是 convex,那麼在隨後計算得到 的 λi′, j′ 值的差距亦會為 convex;又若該 CDN Server 中提供給使用者收看的頻道皆 無改變的情況下,由於 i 都是相同的多媒體串流檔,且 Bit Rate 越高,其失真值一 定越小,因此在 video i 為 convex 條件下,當我們考慮要縮短 Bit Rate 點時, 由 RK 縮減到 R1 的點來決定整個 convex hull 過程中,我們可得到以下論點: Δi (K , K − 1) < Δi (K − 1, K − 2) < ... < Δi (2,1) 因此,於事先計算過決定好這些要縮減頻寬的點後,我們的動態頻寬法則就 可以在當 Server 中的 Total Bandwidth 超過上限後,快速的決定目前該縮減之最佳. Video 的 Bit Rate,藉以快速的達到頻寬調節控制。. 3.4 動態頻寬分配法則介紹 針對上面介紹的例子和 BFOS Algorithm 的概念,我們將之推論及整合後提出 三個演算法則,接下來在本章節中將完整介紹我們提出的三個演算法則:. 3.4.1 動態頻寬分配法則(一)介紹 法則(一)流程圖:. 30.
(41) 第三章 動態頻寬分配法則. 圖 3-5 法則(一)流程圖 31.
(42) 第三章 動態頻寬分配法則 步驟說明:. 1.CDN Server 中初始定義: (a) 含 C 個串流 (b) 含 K 個 bit rate, R1 ,..., RK (c) ni , j 表示 i 在 1,..., C 間和 j 在 1,..., K 間各自收視的人數, 在 i = 1,..., C , j = 1,..., K 與 full tree T 的條件下,令 q (i, j ) = j 和. ri , j = Rq (i , j ) 。 並事先計算好 i = 1,..., C , j = 2,..., K , k = 2,..., j 之各個 λi , j (k , k − 1) 。. 2.縮減提供之 bit rate: 當超過 Total Bandwidth 上限時,假設目前該 Total Bandwidth 為 Bi , j ,那我們即去找出 λi , j (q(i, j ), q(i, j ) − 1) 中最小的斜率,找到 後則將該點定為 Bi ′, j ′ (若有一個以上最小,就都選之),然後再變 更 q (i′, j′) = q (i′, j′) − 1 ,將目前的點變更為下一個搜尋到的節點。. 3.計算 Total Bandwidth 和 Average Distortion: 運用公式 1 和公式 2,計算目前情況下之 Server 中新的 Total. Bandwidth 和 Average Distortion,並且變更已縮減的 bit rate,且得 ri , j = Rq (i , j ) 。. 32.
(43) 第三章 動態頻寬分配法則. 4.確認系統和判斷是否可停止計算: 確認 ri , j 是否滿足在 i = 1,..., C , j = 1,..., K 條件下,到達最後一個節 點,也就是已達最小提供之 bit rate ( ri , j = R1 ),若是,即停止; 若不是,則回到步驟 2 繼續執行該演算法的計算。. 由於我們提供的 C 個多媒體串流檔案都是預先儲存在 Server 中,並且事先得 到其壓縮好的失真值,所以我們可透過其相對應提供收視端觀看的 Bit Rates,在. offline 下計算得到其相對應之 Bit Rate 於事先壓縮後的串流檔案失真值,並計算 好在 i = 1,..., C , j = 2,..., K , k = 2,..., j 條件下對應的 λi , j (k , k − 1);只有步驟 2 到步驟 4 是需要在 online 的情況下去計算 Total Bandwidth。透過我們提出演算法(一)中, 事先計算好的步驟 1 和引用步驟 1 數值的步驟 2,可以縮短整個系統計算的時間 複雜度,並且我們初步的觀察到, K 個 Bit Rates 得到其相對應的 Ti ,1 ,..., Ti , K 值,由 於 i 都是相同的多媒體串流檔,且在相同的多媒體串流檔之條件下,當我們考慮 要縮短 Bit Rate 點時,可得到以下論點:. λi , k (k , k − 1) = λi , k +1 (k , k − 1) = ... = λi , K (k , k − 1) =. 1. ∑ ∑ C. i =1. K. n j =1 i , j. Δ i (k , k − 1). (6). 因此我們可以不用花費多餘的時間去計算. λi ,k (k , k − 1), λi ,k +1 (k , k − 1),..., λi , K (k , k − 1) ,僅計算和觀察 λi , K (k , k − 1) 即可,避免花 費多餘的時間去做重覆計算的動作,且 λi , K (k , k − 1) 和 Δ i (k , k − 1) 最有關係,所以 33.
(44) 第三章 動態頻寬分配法則 我們只要計算每個 Video 的 Δ i (k , k − 1) 就可得到我們想要的最小斜率資訊。. 另外,若 CDN Server 中供給使用者收視的 Video 皆為 convex 的媒體檔案且 在 Server 中頻道皆無改變的情況下,我們還可以針對該 CDN Server 得到一個更 快速控制頻寬的論點;因為 Video i 都為 convex,所以滿足前面所提到的. Δi (K , K − 1) < Δi (K − 1, K − 2) < ... < Δi (2,1) ,又 λi ,K (K , K − 1) 值大小取決於 Δ i (K , K − 1),且我們是希望挑選對使用者影響最小的失真值去縮減提供給使用者 觀看的 Bit Rate,因此我們可以僅透過計算每個 Video 的 Δ i (K , K − 1) 就可非常快 速的決定其要縮減 Bit Rate 的點。. 3.4.2 動態頻寬分配法則(二)介紹 演算法則(二)將針對演算法則(一)所得到的論點和發現的缺點,更進一步的修 正我們提出的演算法則;對於演算法則(一)多餘的計算 λi ,1 (k , k − 1),..., λi , k −1 (k , k − 1) 部份,以及得知 λi ′, j ′ 值主要決定於 Δi′ 的論點下,改進其缺點後,為我們的演算法 則(二)。 法則(二)流程圖:. 34.
(45) 第三章 動態頻寬分配法則. 圖 3-6 法則(二)流程圖. 35.
(46) 第三章 動態頻寬分配法則 步驟說明:. 1.CDN Server 中初始定義: (a) 含 C 個串流 (b) 含 K 個 bit rate, R1 ,..., RK (c) ni , j 表示 i 在 1,..., C 間和 j 在 1,..., K 間各自收視的人數, 在 i = 1,..., C , j = 1,..., K 與 full tree T 的條件下,令 q (i, j ) = j 和. ri , j = Rq (i , j ) 。 定義 pi = K , i = 1,..., C 。 並事先計算好 i = 1,..., C , j = 2,..., K , k = 2,..., j 之各個 Δ i (k , k − 1) 。. 2.縮減提供之 bit rate: 當超過 Total Bandwidth 上限時,我們即去找出 Δ i ( pi , pi − 1) 中 最小的斜率,找到後則將該點定為 i′ ;然後,. (a)變更 p (i′) = p (i′) − 1 (b)並在 ∀j > p(i′) 條件下,變更 q(i′, j ) = q(i′, j ) − 1 3.計算 Total Bandwidth 和 Average Distortion: 運用公式 1 和公式 2,計算目前情況下 Server 中新的 Total. Bandwidth 和 Average Distortion,並且變更已縮減的 bit rate,得 ri , j = Rq (i , j ) 。. 36.
(47) 第三章 動態頻寬分配法則. 4.確認系統和判斷是否可停止計算: 確認 ri,j 是否滿足在 i = 1,..., C , j = 1,..., K 條件下,到達最後一個節 點,也就是判斷是否已達最小提供之 bit rate( ri , j = R1 ),若是,即停止; 若不是,則回到步驟 2 繼續執行該演算法的計算。. 在我們提出的演算法則(二)中,我們已可以避免多餘的計算,將可更快 速的決定其當超過 Total Bandwidth 時,所要縮減的 Video 之相對應的 Bit Rate 點。另外,在此我們可以得到,其實我們要縮減頻寬的動作,只需做 (K − 1)C 次,因為縮減的點只有 (K − 1)C 個點。 並且,在前面我們提出的理論中有提及:當 Server 提供給使用者點選之. Videos 和 Bit Rates 在沒改變的情況下,對 Server 而言,不論線上收視人數變 更為何,其縮減的 Video 之相對應 Bit Rate 的 vertexs 和其縮減順序是不會改 變的;因此我們可以更進一步的發現,其實我們可以在 offline 時,事先計算 好其決定縮減 Bit Rate 的順序,並定義 m 為其縮減 Video 之 Bit Rate 的 1 到. (K − 1)C 點的資訊,然後以一個 A(m ) 表來儲存這些點及順序的資訊至 Server 中,使之在 online 時,若 Server 提供之服務的 Videos 和其 Bit Rates 沒改變 的情況下,不論於 Server 內收視的人數變更為何的情況下,Server 都可透過 查 A(m ) 表的方式,快速針對目前 Server 總頻寬做最佳服務狀態的調整。. 37.
(48) 第三章 動態頻寬分配法則. 3.4.3 動態頻寬分配法則(三)介紹 本章節我們將對於上述演算法則(二)發現的論點,增加一個儲存 A(m ) 表步驟 來更完整的修正和定義我們的法則,使我們提出的動態頻寬分配法則更佳完善。 法則(三)流程圖:. 圖 3-7 法則(三)流程圖 38.
(49) 第三章 動態頻寬分配法則 步驟說明:. 1.CDN Server 中初始定義: (a) 含 C 個串流 (b) 含 K 個 bit rate, R1 ,..., RK (c) ni , j 表示 i 在 1,..., C 間和 j 在 1,..., K 間各自收視的人數, 在 i = 1,..., C , j = 1,..., K 與 full tree T 的條件下,令 q (i, j ) = j 和. ri , j = Rq (i , j ) 。 定義 pi = K , i = 1,..., C 。 事先計算好 i = 1,..., C , j = 2,..., K , k = 2,..., j 之各個 Δ i (k , k − 1) 。 也於 i = 1,..., C , j = 1,..., K 條件下,計算好各 Δ i (k , k − 1) ,然後 存在 A(m ) 表中,因此表中共存 A(1),..., A((K − 1)C ) 等點的資訊。. 2.縮減提供之 bit rate: 當超過 Total Bandwidth 上限時,那我們即用查表的方式去查 A(m ) 的值,找到後則將該點定為 i′ ;然後,. (a)變更 p (i′) = p(i′) − 1 (b)並在 ∀j > p(i′) 條件下,變更 q(i′, j ) = q(i′, j ) − 1 3.計算 Total Bandwidth 和 Average Distortion: 運用公式 1 和公式 2,計算目前情況下 Server 中新的 Total. 39.
(50) 第三章 動態頻寬分配法則. Bandwidth 和 Average Distortion,並且變更已縮減的 bit rate,得 ri , j = Rq (i , j ) 。 4.確認系統和判斷是否可停止計算: 查詢 A(m ) 表,判斷得到的 m 值是否為第 (K − 1)C 個,即為最後一 個節點,若是,即停止;若不是,則回到步驟 2 繼續執行該演算 法的計算。. 在演算法則(三)中除了可延續於演算法則(二)的優點外,並且我們可以以查表 方式快速決定其縮減提供給收視端觀看的 Bit Rates 的順序;透過演算法則(三)步 驟 1,事先計算好的 vertexs 和縮減順序以 A(m ) 表記錄下來,其 m 為即其縮減 Video 之 Bit Rate 的 1 到 (K − 1)C 個 vertexs 之資訊的方式,使其 Server 內所提供之服務 狀態沒有改變的狀態下,可不需再次計算決定其最佳的 vertexs 和縮減順序,快速 的透過查表的方式,即可讓 Server 針對目前總流量之情況做最佳的動態頻寬調 節。在此整個頻寬調整之搜尋最佳調節點的時間複雜度只需線性的 O(KC ) 即可達. (. 到,和原本 full-search 的方式做比較,full-search 最高可能還需要 O ((K !). ) )的時. C 2. 間複雜度,且造成非常龐大的計算量;並且在我們提出的演算法則中,在當 C 或. K 變大時,事先計算決定其最佳縮減 Video 之 Bit Rate 點的計算複雜度也只是呈 線性的成長;因此,當 Server 提供服務狀態的 C 值或 K 值非常大時,使用我們提. 40.
(51) 第三章 動態頻寬分配法則 出的演算法則不但可以加快整個 Server 的計算和處理時間,也可大大降低時間複 雜度和減輕 Server 的負擔。. 41.
(52) 第四章 系統架構. 第四章 系統架構 本章將介紹本研究所建置的視訊串流伺服器,視訊串流伺服器端主要由『視 訊串流模組』以及『頻寬管理模組』所構成。使用者端則由『網頁模組』所組成。 其中『視訊串流模組』即為使用 Video Lan Client 來播放多媒體檔案的串流, 在『頻寬管理模組』中加入我們提出的演算法則,藉以控制我們串流出去的媒體 檔案的頻寬;收視端透過『網頁模組』中的連結,點選欲觀賞的多媒體檔案。. 4.1 串流伺服器架構 本系統的使用者只需要瀏覽我們內嵌 Windows Media Player 元件的網頁便可 觀賞頻道,因此藉由我們設計之網頁伺服器中提供的頻道和使用者的點選,並套 用我們提出的動態頻寬分配法則,來完整管理以及存取串流伺服器內的多媒體檔 案,圖 4-1 為本系統架構圖。. 42.
(53) 第四章 系統架構. 圖 4-1 系統架構圖. 系統運作流程: (1) 使用者透過瀏覽器連結到我們所設計的網頁,選擇欲觀看的頻道群組。 (2) 使用者點選之資訊透過網頁伺服器向 CDN Server 要串流檔案。 (3) CDN Server 經由頻寬分配法則演算法調節後,分配適當的頻道給使用者。 (4) 串流伺服器傳送串流資料,使用者使用 Windows Media Player[12]元件播 放串流多媒體。. 43.
(54) 第四章 系統架構 圖 4-2 為本系統運作流程。. 圖 4-2 系統運作流程. 4.2 模組介紹 本系統的實作選用 Linux 為作業系統,各模組透過修改以及整合 Linux 上的 開放原始碼專案(Open Source Project)來達到主要功能。 選用 Linux 為作業系統的好處: (1) 選用 Linux 開放原始碼較方便修改在開發上彈性高,開發成本也較低。 (2) 開放原始碼專案支援度較高,許多的開放原始碼專案都以 Linux 平台所發 展,因此透過整合開放原始碼的專案可以縮短開發時間也可以節省成本。 44.
(55) 第四章 系統架構. 以下介紹各模組的功能以及所使用的軟體: 伺服器端(Server): . 視訊串流模組:採用第二章中所介紹的 VLC (VideoLAN Client)專案 做為多媒體串流伺服器。此專案擁有多樣化的輸出及輸入格式,且 整合了包含 FF MPEG、x264 等的多種開放原始碼函式庫,可以支 援多樣化的的多媒體格式。. . 頻寬管理模組:主要以我們所發展的演算法則(三)為核心,依 Server 目前提供出去的串流總頻寬,快速做給予使用者收看之頻道群組的 最佳分配調整,來達到完整的動態頻寬分配管理。. 使用者端(Client): . 網頁模組:主要提供給使用者連結至本發展系統的介面,我們選擇 使用 Windows Media Player 元件,因為微軟的 windows 作業系統為 最普遍使用的作業系統,因此使用者只需透過瀏覽內嵌 Windows Media Player 元件的網頁便可觀賞頻道,不需另外安裝軟體,減少 使用者進入本系統的門檻。. 45.
(56) 第四章 系統架構. 4.3 頻寬管理模組 第三章我們完整的介紹了我們提出的演算法則,也已經知道我們將會以查 A(m ) 表的方式來調節整個 Server 的動態頻寬分配管理。下圖是針對頻寬管理模組. 內執行的程序所繪製的流程圖,圖中可以看到整個頻寬管理模組是如何使用查表 的方式來達到動態的頻寬管理和調節。在整個流程圖中包含 Prune (prune tree) 和 Grow (grow tree) 兩大部份,若 Server 超過頻寬上限時使用 Prune 程序來縮減 Bit Rate,而若 Server 尚有餘裕的頻寬可回復原本要求較高收視頻道的使用者時,即 使用 Grow 的程序來提升串流品質。針對我們將演算法則(三)加到我們的頻寬管理 模組後,整個的運作流程和調節頻寬的 Prune 與 Grow 的程序,將在以下章節更 加以說明和介紹。. 4.3.1 Prune 程序 在群組化的結構中,各頻道擁有不同的群組,而頻道之間不會相互影響,因 此我們可以對各頻道內的群組做調整,且在不致於去影響到其他的頻道情形下, 這個特性可以讓我們在調整頻寬與畫質的平衡上,有很大的幫助。 當提供串流的 Server,使用者隨著時間變多或某些尖峰時段發生時,可能會 使 Server 超用租用的頻寬;此時,我們即可使用我們提出的演算法則來縮減某些. 46.
(57) 第四章 系統架構 提供給收視端收看的較高頻寬部份,透過我們提出之演算法則(三)的查表方式, 可快速的決定其最佳縮減之 Video 的 Bit Rate;如圖 3-4 中 p1 縮減至 p2,而我們 將此程序稱之 Prune。. 4.3.2 Grow 程序 使用者可以隨時進入和離開系統,於離峰時段,使用者慢慢減少的情況下, 或是某些使用者可能更改收視頻道,降低收視畫質後,可能因此有充足的頻寬可 供回復某些使用者原本要求較高收視品質的收視端,此時我們可以使用演法則(三) 回復給原本請求收看較高畫質頻道的使用者,在此同樣透過查表的方式,如圖 3-4 中 p2 擴增至 p1 點,挑選針對目前 CDN Server 之總流量的最佳回復狀態;我們將 此回復頻寬的程序稱之 Grow。. 47.
(58) 第五章 實驗數據與系統效能分析. 第五章 實驗數據與系統效能分析 在本章節中,我們將分別針對我們提出的演算法則做實驗測試和模擬,並於 開發之串流系統上,模擬實際使用者之使用情況,觀看其得到的結果,予以討論 和分析。. 5.1 演算法則之實驗模擬 在此章節中,由於我們提出的演算法則(三)計算的時間複雜度最低,也是我 們提出的演算法中其最佳的法則,因此我們使用演算法則(三)來做我們實驗數據 的分析。. 圖 5-1 C = 2 和 K = 3 模擬組合分佈圖 圖 5-1 是我們以〝Twy〞和〝Missa〞這兩個壓縮為 H.264 格式的多媒體檔, 模擬在一個 CDN Server 中的實驗;於此我們共用兩個多媒體串流檔( C = 2 ),然 後假定每個多媒體檔都各提供 3 個 Bit Rate( K = 3 ;. 48.
(59) 第五章 實驗數據與系統效能分析 R1 = 400kbps, R2 = 800kbps, R3 = 1200kbps )來提供給使用者點選。在 i = 1,2, j = 1,2,3 條件下,且我們再其假定各頻道中之各群組目前的收視人數分別為. n1,1 = 12, n1, 2 = 108,n1,3 = 37, n2,1 = 59, n2, 2 = 74, n2,3 = 152,則應該會有 6 種提供收視組 合之對應的 Bi , j ;然而透過壓縮成 H.264 格式,會有其失真值,計算這些提供不 同 bit rate 之組合和多媒體檔案壓縮後所造成的失真值,可共有 36 種組合(公式:. (K!)C 個組成點);於圖 5-1 中可看見該 36 個點之組合分佈。 因為〝Twy〞和〝Missa〞兩個多媒體檔案都是 convex 的,所以在這 36 點中 我們可以使用本論文提出的演算法則(三)快速找到其 C (K − 1) + 1 個 vertexs,如圖. 5-1 中 5 個紅色點,並且由這 5 個點連起來的曲線必會是一條完整的 Lower boundary of convex hull。. 在我們的演算法則中,我們有提出不論在線上各多媒體檔案的收視人數如何 改變,只要其 Server 中提供給使用者觀看的 Videos 和 Bit Rates 皆無改變的情況 下,都不會影響 Server 決定要縮減其相對應 Video 之 Bit Rate 的順序,所以我們 也特別模擬該項論點的實驗,藉以證實之。. 49.
(60) 第五章 實驗數據與系統效能分析. (a). (b). (c) 圖 5-2 C = 2 和 K = 3 人數不同之 lower boundary of convex hull. 50.
(61) 第五章 實驗數據與系統效能分析 我們假定目前 Server 在提供 2 個 Video(〝Twy〞和〝Missa〞)及 3 個 Bit. Rate(400kbps、800kbps、1200kbps)情況下,模擬 Server 中於不同時間下,對於 使用者收視各頻道各群組之總人數不同,觀察整個模擬實驗。我們針對 ni , j 的不 同來看圖 5-2(a)(b)(c)的實驗分析,在圖 5-2(a)中我們假定其各頻道中各群組目前 的收視人數為 n1,1 = 75, n1, 2 = 110,n1,3 = 53, n2,1 = 106, n2, 2 = 67, n2,3 = 31 ,圖 5-2(b)其 各收視人數為 n1,1 = 75, n1, 2 = 32,n1,3 = 53, n2,1 = 312, n2, 2 = 211, n2,3 = 170 ,圖 5-2(c)其 各收視人數為 n1,1 = 20, n1, 2 = 100,n1,3 = 55, n2,1 = 36, n2, 2 = 47, n2,3 = 61 。 從圖 5-2(a)(b)(c)三圖中可以發現,不論 Server 目前各頻道各群組之收視的人 數激增或大量離開,人數( ni , j )變化為何,皆不會影響我們得到縮減 Video 之相對 應 Bit Rate 的 vertexs,也不影響我們決定縮減其 Video 之相對應 Bit Rate 的順序, 所以在我們提出的演算法則(三)中所存在 A(m ) 表的點,都不會改變,且得到其縮 減 Video 之相對應 Bit Rate 的順序結果都相同。. 接著我們可以更進一步的驗證本論文提出之演算法則的益處;我們將針對. Server 中 Video 數不變,而提供給使用者觀看之 Bit Rate 增加的情況下做實驗數 據的分析。. 51.
(62) 第五章 實驗數據與系統效能分析. (a). (b). (c) 圖 5-3 C = 2, K 增加之實驗(a) K = 3 (b) K = 4 (c) K = 5 52.
(63) 第五章 實驗數據與系統效能分析 圖 5-3 該實驗模擬主要是想實驗在當 C 皆為 2 的情況下,若當 K 不斷增加 時,將會得到的結果。當 C = 2, K = 3 時,由第三章介紹的公式計算後,可以得 到 36 個組合點,並且使用我們的演算法則(三)可得到所需儲存於 A(m ) 表中的 5 個 vertexs;而當 C = 2, K = 4 時,所有可能組合的點會達 576 個點,再使用本論 文之演算法則(三)可快速從 576 點中找到該 7 個儲存於 A(m ) 之 vertexs;若又再 往上增加至 K = 5,則整個 bit rate 組合和其失真值的組合分佈圖,將會多達 14400 個點,而在此時使用我們的演算法則(三),可快速於所有組合之 14400 點裡決定 其 9 個欲儲存於 A(m ) 中的 vertexs 資訊;所以在該次模擬實驗中,驗證了當 Server 中 K 值變大時,使用本論文提出的演算法則(三)可以快速從眾多組合點中找到其. Video 之縮減相對應 Bit Rate 的順序,且儲存 A(m ) 中的 vertexs 也僅呈線性成長, 所以隨著提供之 Bit Rate 的增加,使用我們的演算法則不僅可以快速決定其縮減. Bit Rate 的順序,且並不需要複雜的計算和大量的 A(m ) 表儲存空間。. 前面所有的模擬實驗都是滿足在多媒體檔案皆為 convex 條件下,雖然大部 份的多媒體檔案都是 convex 的,但是還是有少部份是不滿足 convex 的,為了驗 證我們的演算法則也能有效的應用在 nonconvex 條件下的多媒體檔案,以下我們 也針對兩個 nonconvex 的多媒體檔案來實驗,並觀察其實驗的數據和結果。. 53.
(64) 第五章 實驗數據與系統效能分析. 圖 5-4 C = 2 和 K = 4 之 nonconvex 實驗 我們使用兩個 nonconvex 的多媒體檔案, 〝alex〞和〝claire〞 ,那在這個實驗 中,我們假定兩個多媒體檔案皆各提供 4 種 bit. rate( R1 = 300 Kbps, R2 = 600 Kbps, R3 = 900 Kbps, R4 = 1200 Kbps ),因此在 C = 2, K = 4 條件下,我們共可以得到 576 個組合的點( (K!)C ),並於 A(m ) 表中存 有 7 個 vertexs 點;若以我們提出的演算法則(三)快速找出該 7 個點後,即可在圖. 5-4 中看到由該 7 點連成的紅色曲線;而圖 5-4 中藍色線組成的的曲線為該整個 分佈,是並未套用我們提出演算法則找到的 convex hull。. 透過該模擬的實驗,我們可以觀察到若原本的多媒體檔案皆為 convex,那 套用我們的演算法則必定會得到一條完整的 lower boundary of convex hull,並且 可以非常快速找到其曲線,而若在 Server 含有 nonconvex 的多媒體檔案情況下套 用我們的演算法則(三)時,即使無法得到一條完全符合 lower boundary of convex 54.
(65) 第五章 實驗數據與系統效能分析. hull,但是可以非常快速的找到一條非常接近 lower boundary of convex hull;如 圖 5-4 中,我們去分析該圖中的資料,可以看到在 380Mbps 處,以我們的演算法 則所找到的曲線和 lower boundary of convex hull 相差的值是最大的,但是去計算 這其中的差距,使用我們提出的演算法則和該 lower boundary of convex hull 最多 也只差距 0.13 的平均失真值而已,其實這之間的差距並不是很大,並不會對使 用者收視的失真影響太大。 因此,針對 nonconvex 的多媒體檔案,在串流伺服器中使用我們提出的演算 法則來得到調節頻寬資訊,是可以非常快速去找到一條很接近 lower boundary of. convex hull。. 5.2 串流系統測試 為了更進一步驗證我們所提出的動態頻寬管理之演算法則,以及觀察串流伺 服器實際運作情形;在本章節中將模擬使用者於不同情況下使用本系統時,分析 使用我們提出的演算法則獲得的數據和結果,並討論本論文中所提出的演算法則 是否可以有效的運作。. 55.
(66) 第五章 實驗數據與系統效能分析. 5.2.1 串流系統測試說明 在本節中將介紹我們如何測試串流系統。為了讓我們設計的整個系統更完 善,也想測試我們的演算法是否可以正確的使用在串流系統上,因此我們將使用 本系的電腦教室來模擬使用者實際收視的情況,其配備約有 30 部左右的電腦供 學生使用,以此共約 30 部電腦和本實驗室中約 10 部電腦來當我們的測試環境, 圖 5-5 為測試系統時電腦教室一隅。. 圖 5-5 串流系統測試畫面(一). 使用者可以透過 IE (Internet Explorer) 瀏覽器連結到我們網頁伺服器上的網 頁,即可收視本系統上提供之串流多媒體檔,為了可以模擬更多人的使用情況, 並測試我們串流伺服器的承載量,我們可以在一台電腦上開啟多個網頁,模擬 1. 56.
(67) 第五章 實驗數據與系統效能分析. ~ 2 個使用者,並各自點選不同的頻道收視,來觀察其獲得的結果。在此,本論 文約使用了 30 台電腦模擬出約 35 位使用者,以此方式測試串流系統。. 圖 5-6 串流系統測試畫面(二). 圖 5-7 串流系統測試畫面(三). 如圖 5-8 為使用者進入本系統的網頁,使用者可以自行選擇欲觀賞的視訊頻 道,連結至串流伺服器下載該串流檔,再透過內嵌於網頁中的 media player 播放 器播放其串流檔案。. 57.
(68) 第五章 實驗數據與系統效能分析. 5.2.2 串流系統之動態頻寬分配分析 本章節我們將針對我們提出的演算法則(三),在我們架設的串流伺服器上, 做兩個實際系統之頻寬分配測試的實驗與分析。於此將針對例一及例二中分別獲 得的 A(m ) 表,進行在實際系統上測試的動態頻寬流量分析,透過我們架設的串 流伺服器和在串流伺服器中加入我們設計的動態頻寬分配法則,對串流伺服器做 最佳的頻寬控制,並使每位使用者的收視品質都能到達最佳狀況。. 例一:Server 中提供 3 部皆為 convex 的多媒體檔案,每部檔案皆各有 3 個 頻寬供使用者選擇,使用者可以針對收視端的環境,挑選適用之頻寬連結。. 圖 5-8 C = 3 和 K = 3 觀看介面 58.
(69) 第五章 實驗數據與系統效能分析 表 5-1 為 Channel1、Channel2 及 Channel3 提供之頻寬的壓縮失真值(MSE)。 Channel 1. Channel 2. Channel 3. MSE(256kbps). 2.75. 33.78. 37.04. MSE(384kbps). 2.00. 23.09. 24.38. MSE(512kbps). 1.62. 17.67. 17.90. 表 5-1 C = 3 和 K = 3 頻道數據. MSE(Mean Square Error)值越小,表示視訊品值較好,反之 MSE 值越大,視 訊品值則較差。 由於我們提出的演算法,目的是希望在能提供給使用者最大的頻寬下,也能 帶給所有收視端最佳的收視品質。因此,圖 5-9 為例一中,由 C = 3, K = 3 組合所 組成的 216 個點,並套用演算法則(三)所得到的 7 個 vertexs(公式:(K − 1)C + 1 ), 將該 7 點紀錄至 Server 的 A(m ) 中,於之後做動態頻寬分配管理用。. 圖 5-9 C = 3 和 K = 3 之 lower boundary of convex hull 59.
(70) 第五章 實驗數據與系統效能分析 接著,我們將該例於事先計算獲得的縮減其 Video 之相對應 Bit Rate 之順序 的 A(m ) 表,置於我們架設的視訊串流伺服器上,進行實際在本系統測試的動態 頻寬流量分析。. (a). (b). 60.
(71) 第五章 實驗數據與系統效能分析. (c) 圖 5-10 C = 3, K = 3 頻寬調節分析(a)頻寬調整比較(b)收視人數(c)PSNR 值比較. 例一我們模擬約 26 人左右同時在線上收看串流的使用情況,並設定 Server 串流出去的總頻寬上限為 10000kbps,串流系統隨著使用者的增加,提供出去的 總串流頻寬也將會跟著提升;在此我們使用一個統計總流量的軟體-VnStat,來 協助我們觀測目前 Server 所提供之串流的總頻寬,在我們的系統中,我們設定以 每分鐘觀看一次目前 Server 串流出去的總流量,而 Server 一但超過我們設定的 上限頻寬後,將會執行我們提出之演算法則中 Prune 的程序,圖 5-10(a)藍色曲線 圖中以紫色虛線圈起處為第一次 Prune,若使用者又再次增加,Server 還是超出 設定提供出去的總頻寬,則再次 Prune 之;另外,在圖 5-10(a)中也能看見,隨著 61.
(72) 第五章 實驗數據與系統效能分析 圖 5-10(b)之目前 Server 內使用者的離開,可能會空出一些多餘的頻寬足以提供 給原本選擇較高品質的使用者,在這情況下則使用我們演算法則中 Grow 的程 序,圖 5-10(a)藍色曲線圖中橘色虛線框起部份為此範例之 Grow。 我們可以由上圖看到,在例一的實驗結果是可以使我們的 Server 達到頻寬控 制,而在上圖也可以觀察到演算法則內 Prune 和 Grow 的程序,且在頻寬調整下, 我們依然可以持續提供給收視端觀看串流媒體。 為了更清楚傳遞我們提出的演算法則的重要性,在此也將有使用動態頻寬法 則來控制 Server 的總串流量和沒有加入法則來相比較並予以討論;圖 5-10(a)中 綠色的曲線為沒有加入頻寬調整法則的數據,藍色曲線表示有使用我們的動態頻 寬法則所得到的結果,從圖 5-10(a)和圖 5-10(b)可以觀察到,若沒有使用調整法 則,Server 的流量會因為收視端之使用者越來越多情形下,不斷增加串流出去的 總頻寬,如此一來 Server 可能會有長時間超用租用頻寬的問題,而若在串流 Server 中加入我們的動態頻寬分配法則,則較能妥善的控制 Server 串流出去的總流量, 透過調整使用者的收視品質,使 Server 能控制在上限總頻寬內,避免因超用頻寬 而被罰款的問題,並且在我們系統加入的演算法中,也會在當 Server 有餘裕的頻 寬下,針對原本為了調整總頻寬而降低部份使用者收視品質的 Client,適時的回 復使用者原本應有的服務,提升這些 Client 的收視品質。 另外,在圖 5-10(c)中,我們也更進一步將無使用調整狀態和有使用動態頻 寬調整法則之情形,以每分鐘對於所有使用者收視情況的平均 PSNR 值做數據 62.
相關文件
1) Ensure that you have received a password from the Indicators Section. 2) Ensure that the system clock of the ESDA server is properly set up. 3) Ensure that the ESDA server
For the data sets used in this thesis we find that F-score performs well when the number of features is large, and for small data the two methods using the gradient of the
• Recorded video will be available on NTU COOL after the class..
– evolve the algorithm into an end-to-end system for ball detection and tracking of broadcast tennis video g. – analyze the tactics of players and winning-patterns, and hence
Our main goal is to give a much simpler and completely self-contained proof of the decidability of satisfiability of the two-variable logic over data words.. We do it for the case
• When the coherence bandwidth is low, but we need to use high data rate (high signal bandwidth). • Channel is unknown
• When the coherence bandwidth is low, but we need to use high data rate (high signal bandwidth). • Channel is unknown
Trace of display recognition and mental state inference in a video labelled as undecided from the DVD [5]: (top) selected frames from the video sampled every 1 second; (middle) head