楊樹龍
新華社技術局5971電臺,北京 100055
隨著互聯(lián)網(wǎng)技術突飛猛進的發(fā)展,人們對媒體的選擇再也不局限在普通的被動接受傳播媒體的層面上面。近年來互聯(lián)網(wǎng)視頻,音頻等多種流媒體在人們生活受到廣泛的青睞,這都取決于流媒體在技術上的優(yōu)越性,可以更好的滿足人們的生活需要。
互聯(lián)網(wǎng)在傳輸?shù)倪^程中是以包為單位進行傳輸?shù)?,由于網(wǎng)絡傳輸?shù)姆€(wěn)定性沒有保證,多媒體數(shù)據(jù)在傳輸?shù)倪^程中被分成了許多數(shù)據(jù)包,針對不同的路由,最后到達客戶端的時間和次序都有可能發(fā)生改變甚至丟失。如果將數(shù)據(jù)包在到達客服端之前,利用緩存技術對到達的數(shù)據(jù)進行正確的排序,就可以避免出現(xiàn)以上問題。其中,緩存技術包括:緩存策略,服務器與代理緩存技術相結合,分段分布式代理緩存。
根據(jù)緩存的目標數(shù)據(jù)的不同的內容,又分全部緩存策略與部分緩存策略,滑動窗口緩存,分層編碼視頻緩存。
1)與部分緩存策略相比較,全部緩存策略最大的不足之處儲存空間的要求很高,如果緩存的空間不足,那么緩存的操作過程就顯得很復雜,需要不斷的換進換出,這反而對網(wǎng)絡流量的降低起不到太大的作用,而且付出的空間代價也相對而言比較高;2)部分緩存的優(yōu)點在于,一方面可以有效的解決服務的延時性,用戶點播經(jīng)過延時啟動,就可以在這段期間對數(shù)據(jù)包進行處理;另一方面,減少服務器的承載的壓力問題。但是緩存數(shù)據(jù)需要很大的儲存空間,加上后期的緩存數(shù)據(jù)都必須從服務器獲得。總體而言,部分緩存也不能從本質上較少網(wǎng)絡流量的負擔;3)滑動窗口緩存指的是當?shù)谝粋€用戶想代理服務器發(fā)送請求的時候,代理服務器會將請求轉向中心服務器,代理服務器對最初的用戶請求經(jīng)過加工處理,預測出相關的其他請求,并將這些數(shù)據(jù)緩存一定的時間。數(shù)據(jù)生命期就以窗口大小的形式表現(xiàn)出來。只要是在這段時間內發(fā)送到代理服務器的請求,代理服務器都會用這個窗口為他們提供服務;4)要想達到最小化傳輸?shù)哪康模捎梅謱泳幋a視頻的緩存策略比較實用,有針對性的對分層編碼的流媒體進行緩存,弊端就是要根據(jù)對不同客戶擁有的不同寬帶運用不同質量的流量來回應。這一策略中經(jīng)常運用的兩個方法包括預取算法和分層編碼細粒度的緩存替換法。
服務器與代理緩存技術相結合主要體現(xiàn)在兩個面,一是采用閉環(huán)(點播驅動)控制的方法,另一方面是結合服務器調度和代理前綴緩存或部分緩存的策略是在給定緩存容量時,最小化主干網(wǎng)絡上的傳輸量。第一種方法的中心思想是利用Batching、Patching和代理前綴緩存技術。其中Batching補丁的請求為本策略最獨特的特點。緩存服務器降低啟動延遲的時候,Multicast with Cachin仍然會在組播開始后對請求進行聚合,利用Batching補丁完成沒有啟動延遲的目的。第二種方法不僅可以再運行中緩存補丁的各種數(shù)據(jù),還能運用選擇前綴集合的優(yōu)化算法進行計算。
MiddleMan是代理服務器與協(xié)調器的重要組成部分。主要配置為一臺協(xié)調器與若干臺代理器,利用LAN將兩個主體相互連接。其運行模式主要為:通過協(xié)調器,向代理服務器發(fā)送內容并進行跟蹤,做出緩存替代的決策。當視頻數(shù)據(jù)輸入到MiddleMan存儲系統(tǒng)之后,就可將視頻數(shù)據(jù)拆分為若干個格式相同的文件數(shù)據(jù)。這樣,就可以將視頻文件按照一定順序聯(lián)合起來,避免出現(xiàn)混亂狀態(tài)。對于代理服務器來說,可以將接收的媒體流塊數(shù)據(jù)按照大小重新排列,通過替換策略以及緩存接納控制方法,在每一段中添加相應緩存值。同時采取前綴替代原來緩存的前綴;后綴替代原來緩存的后綴的方式。
據(jù)相關資料調查顯示,一般用戶群體點播的節(jié)目集中度較高。如果在某一個時間段內,用戶人群集中點播某個節(jié)目,只要利用傳輸媒體流合并用戶請求,就可有效節(jié)約網(wǎng)絡寬帶與視頻服務器的空間,與流媒體的調度技術相符。
有關流媒體調度的算法可分為靜態(tài)調度算法與動態(tài)調度算法兩種形式。一方面,靜態(tài)調度算法主要在于服務器主動將節(jié)目在某個組播通道中應用,實現(xiàn)媒體流;另一方面,動態(tài)調度算法則指用戶通過點播驅動,由服務器結合具體的調度算法,為用戶提供媒體流。流媒體的動態(tài)調度算法包括FCFS算法、Batching算法、Adaptive Piggybacking算法、STream Tapping、補丁算法(Patching)、受 控 組 播 算 法、Catching and Selective Catching、BandWidth Skimming、分片融合、層次型組播流聚合等。
流媒體與傳統(tǒng)媒體有很大的差別,所以傳統(tǒng)的節(jié)目替算法不能運用到流媒體這一領域當中來。RBC算法是目前流媒體當中運用比較廣泛的算法之一,它在緩存接納和替換的過程當中充分的考慮到了發(fā)送的寬帶和文件大量兩個重要的因素。與Pooled RBC策略相互結合在一起,RBC算法性能就大大的得到提升和健全。Pooled RBC一個較為突出的優(yōu)點是,它還提供一個寬帶POOL。POOL RBC會根據(jù)點播請求的不同的情況將請求傳達給原始的服務器。
LRU算法在計算的時候,不能很好的處理不斷演化的引用模式,區(qū)分不出來經(jīng)常與不經(jīng)常用戶使用的對象。LRU-K的優(yōu)點就是可以對最近引用多次的信息進行考慮。因此,可以很好的區(qū)分不同級別的引用對象,這一點,彌補了LRU算法中存在的不足。不僅如此,LRU-K算法可以通過自身的系統(tǒng)功能及時的對引用模式進行調節(jié),管理的起來也很簡單。
總而言之,通過對流媒體傳輸技術進行的以上的研究,雖然很多的建議和解決方案都只能對部分的問題起到局限性的作用,但是,這對不斷完善的流媒體傳輸技術領域的研究有著很重要的意義。
[1]李謙,秦亮曦.簡述流媒體傳輸技術研究[J].科技時代,2008.
[2]熊永華,吳敏,賈維嘉.實時流媒體傳輸技術研究綜述[J].硅谷,2011.
[3]朱文博.淺議流媒體傳輸技術[J].中國科技財富,2009(22).