序
序
專業研究成果邁向數位匯流的新趨勢
近年來由於數位匯流技術的推波助瀾,行動影音、廣播影音與數 據影音標準及技術,不斷的推陳出新,也帶動智慧型電視、平板電腦 及行動終端產品的影音服務整合趨勢,同時「多螢一雲」的影音串流 應用將更趨成熟,透過各種影音平台與應用軟體整合,引領了跨界服 務的應用思維,更驅動全新的商業服務模式與生活型態的改變。 因此,諸多先進國家將形塑數位匯流服務產業價值鏈,視為刺激 經濟成長、增強國際競爭力及創造就業機會之良方。爰此,世界各主 要國家無不積極推動匯流服務發展,釋出更多頻寬,或開放更多行動 業務提供數位匯流服務使用。為此,數位匯流教學推動聯盟中心因應 世界趨勢,亦著手積極推廣辦理數位匯流教學事宜。 《匯流串流技術基礎暨實務》一書的出版正是基於匯流串流技術 變遷及市場環境脈動,透過實務案例練習與基礎理論介紹,深入淺出 的解釋,適時啟迪初學者對匯流影音技術及服務認知之具體展現。 本書涵蓋當前國際有關匯流影音技術、視訊串流伺服器、視訊網 路協定應用及高階視訊編碼技術的説明,並列舉實作案例的模擬與探 討。作者在撰寫文章時,透過多年教學經驗及擷取大量國際及國內豐 富且珍貴的資料,研究題材簡單化、語法上生活化,既讓讀者輕鬆瞭 解數位匯流影音技術與應用,又可作為專業筆記,此精心之作十分值 得推薦大眾閱讀。 財團法人電信技術中心
蔡志明
組長
i
ii
匯流串流技術︰ 基礎暨實務
自序
Internet 的蓬勃發展,使我們見證了數位匯流市場的巨大潛力, 隨著行動通訊的速率不斷提升(3G、LET、LET-Advanced),行動手 持設備的效能的改進(2.3GHz 4 core、3GB RAM)、與影音壓縮技術 的精進(H.264/AVC、H.264/SVC、H.256(HEVC)),更驅動了下一波 網路高畫質影音內容(HD、4K、8K)世代的誕生。隨著 Youtube、 風行網、卡迪諾影音、PPStream、迅雷在線、土豆網、youku、騰訊 視頻等影音網站的推波助瀾,在 2014 年全球網路流量有將近 56%來 自於數位影音服務,達到每月 23,000PB 的流量,透過手持式設備來 觀看影片蔚為一股風潮,根據資通訊產業聯盟報告顯示,2010 年 Mobile Video 的服務佔全球流量 66%,是所有的行動數據中最主要的 應用。網路視頻(Over The Top (OTT)),透過 Internet 傳送的電影或 電視節目,對傳統的影音服務供應業者造成巨大的衝擊,例如在美國 2011 年 Q2 流失了 19.3 萬的電視用戶。根據 Digital TV research 的市 場研究顯示,Online TV 與 video 的全球年營收已從 2010 年的$3.98 billion 美元成長至 2013 年的$15.94 billion 美元,未來預計 2018 年將 持續成長至$35 billion 美元。 本書主要針對 Internet 串流技術而設計,其中融合了筆者十多年 來之教學經驗與研究成果,主要介紹視訊串流的特性、相關傳輸技 術、通訊協定及應用,並針對在 Internet 多變的環境下傳送所可能遭 遇的議題做深入的探討,課程設計上由淺入深,兼顧理論與實作。章 節部分涵蓋視訊編碼操作與品質測量、視訊串流應用與服務、視訊串 流服務平台、視訊串流協定、視訊串流調適技術、視訊串流錯誤回復 機制、點對點串流傳輸。每章皆採先提供理論背景說明,然後設計
自序
step-by-step 的實驗課程,讓學員可親手操作,激發學習興趣。 本書適用對象包含大專院校資管、資訊、電機相關領域學生,適 用範圍主要針對大三、大四及碩一、碩二程度學生為主;大三、大四 學生可以透過本書對於視訊串流之相關原理及操作獲得深入的認 識,作為就業或繼續升學研究的領域學習,研究所學生則可透過本書 對於多媒體串流網路相關領域的研究,獲得基礎知識的學習,以為後 續研究奠定基礎。 本書製作特感謝屏東科技大學資訊管理學―MINAR Lab 歷屆研 究生之參與,以及教育部相關經費之挹注。 屏東科技大學 高雄師範大學
資訊管理學系
軟體工程與管理學系
童曉儒教授 余遠澤副教授
iii
目次 v
匯流串流技術︰基礎暨實務 Video Streaming of Digital Convergence: Fundamentals and Practices
-------------------------------------------------
目次 序..................................................................................................................i 自序.............................................................................................................ii 第一章
第二章
第三章
第四章
第五章
視訊編碼操作與品質測量 ...................................................1 1-1
視訊編碼與技術..........................................................2
1-2
視訊品質 .....................................................................9
1-3
實作實驗:H.264 編碼實驗實作..............................10
視訊串流應用與服務..........................................................45 2-1
網路影音串流應用....................................................46
2-2
實作實驗:嵌入式視訊串流系統實作.....................56
視訊串流服務平台 ............................................................105 3-1
網路影音串流技術 .................................................106
3-2
實作實驗 .................................................................112
視訊串流協定(一)........................................................157 4-1
TCP/HTTP 傳輸協定介紹…....................................158
4-2
ATCP+演算法介紹..................................................162
4-3
實作實驗:ATCP+演算法實作...............................171
視訊串流協定(二)........................................................189 5-1
UDP 傳輸協定..........................................................190
vi
匯流串流技術︰ 基礎暨實務
第六章
第七章
第八章
5-2
SCTP 傳輸協定........................................................193
5-3
實作實驗:進階視訊串流傳輸協定實作-SCTP......196
視訊串流調適技術............................................................209 6-1
視訊傳輸協定..........................................................210
6-2
調適性行動串流機制 ..............................................217
6-3
實作實驗..................................................................222
視訊串流錯誤回復機制....................................................261 7-1
視訊串流錯誤回復技術 ..........................................262
7-2
實作實驗:視訊串流錯誤回復機制實作 ...............265
點對點串流傳輸 ................................................................297 8-1
點對點傳輸技術......................................................298
8-2
DHT 演算法.............................................................306
8-3
實作實驗:視訊派送網路模擬實作.......................314
第一章 視訊編碼操作與品質測量
第一章
視訊編碼操作與品質測量
1-1 視訊編碼與技術 1-2 視訊品質 1-3 實作實驗:H.264 編碼實驗實作
1
22
匯流串流技術︰基礎暨實務 匯流串流技術︰ 基礎暨實務
1-1
視訊編碼與技術
本章節主要探討視訊編碼的技術與應用。現今視訊編碼快速發展的 主要因為是視訊內容儲存起來需要很大的儲存空間,且網路的傳輸能力 和電腦儲存空間有限。而視訊編碼的原理是由於視訊是由連續畫面所構 成,畫面彼此之間的相似度高,視訊壓縮(編碼)藉由移除視訊中的冗 餘(redundancy)以減少資料量。視訊編碼技術有許多種類,而目前常 見的編碼技術以 H.261、H.263、MPEG-1、MPEG-2、H.264/AVC、H.264/ SVC 為主,而本章節實驗主要針對 H.264/AVC 及 H.264/SVC 作探討。
1-1-1
簡介
H.264/AVC 雖然對於編碼效率與網路之間的適應性已經有所提升, 但是對於影像串流的服務尚無法提供完整的適應性,尤其是在易受制於 Mobile host(MH)移動行為與所處環境而造成高位元錯誤率(Bit error rate) 及封包遺失率(Packet loss rate)的無線網路環境。因此,ITU-T VCEG 與 ISO MPEG 兩大組織共同組成聯合視訊小組,基於 H.264/AVC 的編 碼架構,額外延伸新的編碼技術-Scalable video coding(SVC),重新定 義影像畫面的組成,其中又將影像品質調適又細分為 Spatial scalability、 Temporal scalability 和 Quality(SNR)scalability 這三種可調方式。在此 編碼技術中,影像是由層級式架構所組成,此架構中包含一個影像基本 層(Base layer)與一個或多個影像增益層(Enhancement layer)。Base layer 只提供基本品質的影像畫面的資料,而 Enhancement layer 則是提供 增加 Base layer 畫面品質的資料。雖然 Base layer 只提供基本品質的畫 面,但由於在解碼 Enhancement layer 的資料時必須先參考 Base layer 的 資訊,所以對於整個視訊串流服務來說,Base layer 是最重要的部分。
第一章 視訊編碼操作與品質測量
對於 H.264/SVC 的 Encoder/Decoder,以 Joint scalable video model (JSVM)最廣為使用,JSVM 是根據 H.264/SVC 視訊編碼所開發的參 考軟體,可以從編碼完的 SVC 視訊格式中,利用各種可調視訊編碼,包 括 Spatial scalability、Temporal scalability 和 Quality(SNR)scalability,提 取不同的 Bit stream layers 得到相對應視訊品質的影像。因此,實驗的背 景動機為期望同學能瞭解 JSVM 實際編碼的流程,以及能學習到如何透 過 JSVM 編碼出指定的 Layer,並測量其視訊品質。
1-1-2
視訊編碼技術回顧
H.261 編碼技術 H.261 為第一個普及的視訊編碼標準,許多視訊編碼都是建立於 H.261 相同的設計框架之上,例如:MPEG-1、MPEG-2、H.262、H.263 和 H.264,並為國際 ISDN 電話與視訊會議系統所制定的視訊標準,主要使 用在多人視訊會議系統。主要視訊格式(Image format)為 CIF(352 x 288 Y samples)或 QCIF(176 x 144 Y samples) ;Frame rate 大約為 7.5 至 30 fps;傳輸速率(Bit rate)一般為 64kbps。
H.263 編碼技術 H.263 編碼技術為廣泛應用於 Internet 的視訊串流,軟體方面則主要 應 用 於 電 腦 的 視 訊 電 話 或 電 視 的 機 上 盒 ( Set-top box), H.263 也 是 MPEG-4 標準的基礎,效能相較於之前的 H.261 有大幅的提升。主要視 訊格式(Image format)為 Sub-QCIF、QCIF、CIF、4CIF 和 16CIF;傳 輸速率(Bit rate)可依照使用者需求,可自行調整,通常為 20kbps;視 訊品質(Picture quality)與 H.261 差不多,但是只需要 H.261 傳輸成本 的一半。
3
44
匯流串流技術︰基礎暨實務 匯流串流技術︰ 基礎暨實務
H.261
H.263
目標位元率
64kbps
8kbps~1.5mbps
影像格式
CIF、QCIF
Sub-QCIF、QCIF、CIF, 4 CIF、16 CIF
OBMC(Overlapped Block Motion
無
有
Compensation) 圖1
H.261 與 H.263 的比較
H.264/AVC(Advanced video coding) H.264/AVC 主要目的為提供較佳的視訊品質與較低的位元傳輸率, 同時不需要很複雜的編碼過程,提高了編碼運算的效率;並且提供可適 應性,編解碼器能夠使用在廣泛的領域上,適用於各種網路與系統。主 要適用範圍為視訊會議/電話、廣播視訊、視訊串流……等。相較於前面 介紹的編碼技術,優點為高壓縮率、高品質視訊、優異的抵抗錯誤及網 路傳輸功能的加強,H.264/AVC 架構中主要分成視訊編碼層(Video coding layer, VCL)及網路提取層(Network abstraction layer, NAL)兩部分。視 訊編碼層(VCL)主要是在資料經過演算法處理壓縮過後,將一些冗餘 (Redundancy)的部分去除掉,以達到視訊壓縮的目的;網路提取層 (NAL)則以 NAL 封包為一個單元,使用此方式來做為 VCL 編解碼的 運算單元,所以在傳輸層收到 NAL 封包之後不須進行分割,即可交給 底層傳送。當網路發生擁擠、壅塞或次序錯亂時,接收端可以做糾正錯 誤的動作。
第一章 視訊編碼操作與品質測量
圖2
H.264/AVC 架構
H.264/AVC 編碼技術主要支援兩種調適策略 1.時間可適性 Temporal scalability(TS)策略 採用基本層(Base layer)與增強層(Enhancement layer)的層級式 架構,每一個 Groups of pictures(GOPs)的開始為 IDR frame,Base layer 是由每個 GOP 的 IDR frames 組成,該 Frame 採用空間性預測(intraprediction)編碼,可以獨立解碼不需參考任何 Frame。 做法是以階層式圖片架構,如圖 3 所示,以一個圖片群(Group of picture, GOP)為一個編碼單位,用階層的方式對於畫面進行編碼,階層 T0 是比較重要的視訊圖像優先壓縮,如此才能提供較高層的 T1、T2、 T3 視訊串流影片壓縮時的參照,Temporal scalability 可利用傳送時間階 層(Temporal level)的個數來提供每秒鐘播放畫面的張數(Frame per second),藉以達到不同 Frame rate 的調適。
5
66
匯流串流技術︰基礎暨實務 匯流串流技術︰ 基礎暨實務
p
圖3
Temporal scalability 編碼示意圖
2.Bit-stream switching(BSS)策略 H.264/AVC 的 IDR frame 除了可以用在影片隨機存取。另外也可透 過量化參數(Quantization parameters, QPs)產生不同的傳輸速率(Bit rate) ,在同樣的 GOP 結構下也可以透過 IDR frame 切換到不同傳輸速率 (Bit rate)的影片,進而達到影像品質調適。如圖 4 在調適的過程中, 在伺服器預存不同傳輸速率(Bit rate)的影片,當網路環境變差時切換 到適合的影片做傳送。
第一章 視訊編碼操作與品質測量
圖4
Bit-stream switching(BSS)
H.264/SVC(Scalable video coding) H.264/SVC 為 H.264/AVC 的延伸,H.264/SVC 主要的優點在於提升 錯誤更正彈性,進而提升在容易發生封包遺失的網路間傳輸的視訊品 質,在頻寬品質不穩定的網路下更顯得重要,H.264/SVC 視訊品質分成 三種可調方式: 1.時間可適性 Temporal scalability(參照 H.264/AVC) 2.空間可適性 Spatial scalability Spatial scalability 採用類似於 MPEG-2/4 的觀念,將影片拆解成一 個一個 Spatial layer 的動作,每一 layer 只會和相同 Spatial layer 的影片 相關,可以獨立壓縮,不受其它 Spatial layer 影片的影響,因此可選擇 不同解析度大小的視訊影片傳送與播放。 3.訊雜比可調性 SNR scalability SNR scalability 包含三種,粗粒訊雜比可調性(Coarse grain scalability, CGS)、精細訊雜比可調性(Fine grain scalability, FGS)、中度訊雜比可
7
88
匯流串流技術︰基礎暨實務 匯流串流技術︰ 基礎暨實務
調性(Medium grain scalability, MGS),SNR scalability 可調式視訊編 碼,可依據網路頻寬给予最適當視訊編碼器的時間、空間及訊雜比之視 訊品質。 從圖 5 中我們可以觀察 SNR scalability 編碼只對同一層 Spatial layer 做 SNR 可調。舉例來說,當 Quality layer 0(Q0)的 Frame 3 遺失時, 其會影響 Q1 的 Frame 3 與 Q0 的 Frame 2 與 4 的解碼,並進而牽連影響 Q1 的 Frame 2 與 4 的解碼;而當只有 Q1 的 Frame 3 遺失時,並不會影 響 Q1 的 Frame 2 與 4 的解碼。所以我們可以歸納 SNR scalability 的編 碼相依性只有在 Q0 內的 Frame 以 Intra-layer 的方式互相參考,編碼相 依性影響請參考 Temporal layer 的描述。
p
圖5
p
SNR Scalability 編碼相依性示意圖