IPTV媒體分發(fā)技術(shù)之一——代理緩存
——
摘要 媒體分發(fā)技術(shù)在保證IPTV業(yè)務(wù)的服務(wù)質(zhì)量上具有相當(dāng)關(guān)鍵的作用。CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))技術(shù)在Web業(yè)務(wù)上得到了較為廣泛的應(yīng)用,但與傳統(tǒng)的Web業(yè)務(wù)不同,IPTV需要分發(fā)的內(nèi)容是數(shù)據(jù)量相當(dāng)大的視頻數(shù)據(jù),采用傳統(tǒng)的CDN技術(shù)不能完全滿足IPTV業(yè)務(wù)的需要。本文介紹應(yīng)用于IPTV視頻流分發(fā)的代理緩存技術(shù)。
關(guān)鍵詞 IPTV媒體流分發(fā) 分層編碼 分段緩存
1、概述
自有電視業(yè)務(wù)以來,人們便不滿足于僅被動(dòng)地接收電視節(jié)目。用戶一直希望能夠按自己的意愿獲得所喜愛的電視節(jié)目。這也不難理解為什么20世紀(jì)80年代,人們希望使用MTV;20世紀(jì)90年代人們希望使用視頻點(diǎn)播業(yè)務(wù);近幾年,人們希望使用Internet協(xié)議電視(IPTV)業(yè)務(wù)。事實(shí)上目前所談的IPTV在某種意義上講是20世紀(jì)90年代視頻點(diǎn)播業(yè)務(wù)(VOD)的一種繼續(xù)。
VOD出現(xiàn)之初。人們希望能夠針對大眾喜愛的電視節(jié)目內(nèi)容提供時(shí)移電視,這樣人們就可以在家里非常舒服地在方便的時(shí)候觀看電影或電視節(jié)目?;镜乃枷胧菍?nèi)容存儲(chǔ)在存儲(chǔ)器中同時(shí)發(fā)展分發(fā)網(wǎng)絡(luò)提供接入并投遞這些視頻內(nèi)容。最初業(yè)務(wù)的推動(dòng)者來自廣播電視業(yè)務(wù)提供者和電影制片者。但遺憾的是由于在當(dāng)時(shí)的技術(shù)條件下(當(dāng)時(shí)期望的承載網(wǎng)絡(luò)是基于ATM技術(shù)的寬帶ISDN)所需要的基礎(chǔ)設(shè)施費(fèi)用相對于VOD業(yè)務(wù)的需求顯得太高了一些。這樣VOD在一段時(shí)間內(nèi)發(fā)展緩慢,除了在一些局域網(wǎng)絡(luò)上開放了一些VOD業(yè)務(wù)外,大多數(shù)的VOD停留在研究和試驗(yàn)層面。同時(shí)Web業(yè)務(wù)的出現(xiàn),給人們帶來了使用Web業(yè)務(wù)獲得文本信息的喜悅。
隨著數(shù)字?jǐn)z像機(jī)的出現(xiàn)、存儲(chǔ)系統(tǒng)能力的增強(qiáng)、網(wǎng)絡(luò)傳輸帶寬的增加以及移動(dòng)電話終端能力的增強(qiáng),對網(wǎng)絡(luò)視頻信息的傳輸又一次成為人們關(guān)注的熱點(diǎn)問題之一。與20世紀(jì)90年代的VOD的不同點(diǎn)在于網(wǎng)絡(luò)視頻的承載網(wǎng)絡(luò)是IP網(wǎng)絡(luò),而用戶的顯示終端也擴(kuò)展到包括電視終端、計(jì)算機(jī)、移動(dòng)手機(jī)等。提供視頻的方式也由廣播電視的純“推”的方式擴(kuò)展到包括原有電視的“推”方式和VOD的“拉”方式。用戶可以根據(jù)自己的意愿獲取節(jié)目信息。也就是說IPTV將以類似于Web業(yè)務(wù)向用戶提供文本信息一樣向用戶提供視頻信息。
雖然IPTV主要是向用戶提供視頻信息,但由于IPTV業(yè)務(wù)的業(yè)務(wù)形式和用戶終端種類的增加,使得業(yè)務(wù)提供者不能僅采用單一的信息源同時(shí)向數(shù)量眾多、終端能力各異的用戶提供業(yè)務(wù)。本文將介紹IPTV業(yè)務(wù)中進(jìn)行視頻內(nèi)容分發(fā)的一種技術(shù)——代理緩存技術(shù)。
2、IPTV業(yè)務(wù)服務(wù)質(zhì)量要求
由于視頻節(jié)目內(nèi)容的信息量較大、若采用下載后播放的方式,用戶在下載全部節(jié)目信息時(shí)需要花費(fèi)較長的時(shí)間,為此在提供業(yè)務(wù)時(shí)不能使用下載后播放的方式而應(yīng)采用類似于現(xiàn)有廣播電視播放的方式,也就是說在下載的同時(shí)進(jìn)行播放,從用戶的角度看就是邊下載邊播放。IPTV業(yè)務(wù)主要提供媒體直播(廣播)業(yè)務(wù)和媒體信息點(diǎn)播業(yè)務(wù)。對于直播方式要求視頻流在播放時(shí)不能出現(xiàn)中斷,同時(shí)播放時(shí)允許用戶在多個(gè)節(jié)目中進(jìn)行切換,切換時(shí)間要在相對短的時(shí)間范圍內(nèi)。而對于點(diǎn)播方式的業(yè)務(wù)要求用戶可以找到所希望觀看的節(jié)目同時(shí)可以對觀看的節(jié)目進(jìn)行適當(dāng)?shù)目刂疲ò爝M(jìn)、快退、暫停等),同時(shí)要求播放的視頻節(jié)目信息流暢沒有明顯的中斷。
就目前視頻編碼技術(shù)的發(fā)展現(xiàn)狀,實(shí)現(xiàn)用戶在線實(shí)時(shí)播放視頻節(jié)目信息所需的網(wǎng)絡(luò)傳輸帶寬通常在每秒兆比特?cái)?shù)量級。IPTV業(yè)務(wù)主要以提供雙向不對稱的視頻信息為主。用戶和業(yè)務(wù)提供者之間主要是客戶端/服務(wù)器方式進(jìn)行通信。這樣若多個(gè)用戶同時(shí)觀看存儲(chǔ)在一個(gè)視頻存儲(chǔ)器中的視頻節(jié)目信息對存儲(chǔ)服務(wù)器的輸入輸出具有較高的要求,同時(shí)通信網(wǎng)絡(luò)的帶寬要求也較高。為此,對于IPTV業(yè)務(wù)通常采用類似目前CDN的技術(shù)將視頻節(jié)目信息緩存到接近用戶的邊緣設(shè)施,以減小主視頻存儲(chǔ)服務(wù)器和通信網(wǎng)絡(luò)的壓力。但視頻信息通常比文本信息的信息量大,若將全部的視頻信息均緩存到邊緣存儲(chǔ)設(shè)備中會(huì)造成存儲(chǔ)設(shè)施的浪費(fèi),同時(shí)由于用戶采用具有不同能力的終端,要求業(yè)務(wù)提供者提供傳輸速率不同的視頻信息。這樣采用代理緩存技術(shù)成為解決Internet上媒體流傳輸?shù)囊粋€(gè)重要手段。
3、代理緩存技術(shù)簡介
3.1 媒體流代理緩存輔助的系統(tǒng)結(jié)構(gòu)
采用代理緩存的基本思想是用戶(客戶端)的控制信息和媒體投遞信息在傳輸時(shí)采用兩個(gè)不同的信道來進(jìn)行。媒體流服務(wù)器根據(jù)控制信息的指令向用戶(客戶端)傳遞媒體信息。用戶將其控制信息上傳到媒體代理,若媒體代理的緩存器中存儲(chǔ)有用戶所要的媒體內(nèi)容,則代理直接將其緩存器中存儲(chǔ)的信息投遞給用戶(客戶端)的緩存空間,緩存空間接收到媒體信息后將其傳遞給播放器用于播放。若緩存代理的緩存器中沒有用戶要求的信息,則發(fā)送指令給服務(wù)器請求傳遞相應(yīng)的媒體信息。根據(jù)緩存代理的不同策略,服務(wù)器將媒體信息直接傳輸?shù)酱淼慕粨Q器或存儲(chǔ)到緩存代理的緩存器中,由緩存器將媒體流信息再通過交換器傳送給用戶。
3.2 緩存代理技術(shù)
從緩存代理技術(shù)本身來講,是將媒體信息緩存在緩存代理處,然后將其傳送給用戶。但由于視頻媒體信息本身信息量大的特點(diǎn),若緩存代理作為服務(wù)器的備份,那么對緩存代理的要求將太高,勢必增大業(yè)務(wù)提供者的成本。同時(shí)由于不同的節(jié)目內(nèi)容用戶的點(diǎn)擊率并不相同,為此將所有的媒體內(nèi)容采用相同的方式進(jìn)行緩存沒有必要。因而目前采用的代理緩存通常采用對熱播的內(nèi)容采用全部存儲(chǔ),而對點(diǎn)播量不大的媒體內(nèi)容采用部分緩存的方式進(jìn)行。但如何確定需要緩存什么、緩存多長時(shí)間的算法就成了研究者研究和討論的一個(gè)問題?,F(xiàn)有的緩存算法主要包括用于同質(zhì)客戶端的代理緩存和用于不同質(zhì)客戶端的代理緩存。
3.3 用于同質(zhì)客戶端的代理緩存
目前大多數(shù)代理緩存技術(shù)適用于在代理之后具有相同或類似配置和能力的同質(zhì)客戶端。這樣同一版本的媒體信息可以滿足所有同質(zhì)客戶端對相同內(nèi)容請求,同時(shí)對客戶端連接到網(wǎng)絡(luò)的帶寬以及客戶端的播放能力具有相同的要求。即使是這樣,在代理緩存中存儲(chǔ)一個(gè)節(jié)目內(nèi)容的哪些部分以及如何管理代理緩存中已經(jīng)存儲(chǔ)的信息(如何放置以及如何替換所存的信息)仍然是具有挑戰(zhàn)性的問題。不同算法會(huì)帶來不同服務(wù)質(zhì)量以及代理資源的不同消耗。本文主要介紹目前研究較多的4類代理緩存算法:可變時(shí)間間隔緩存、前綴緩存、分段緩存以及變速緩存。
3.3.1 可變時(shí)間間隔緩存
可變時(shí)間間隔緩存算法采用緩存可變時(shí)間間隔的媒體信息以用于連續(xù)地接入流媒體。該算法的實(shí)現(xiàn)方式如下:當(dāng)兩個(gè)客戶端在一段時(shí)間間隔內(nèi)向同一個(gè)代理緩存器請求同一個(gè)媒體內(nèi)容時(shí),根據(jù)第一個(gè)客戶端的請求,代理緩存器向媒體服務(wù)器請求發(fā)送媒體信息并將接收到的媒體信息發(fā)送給第一個(gè)請求者,同時(shí)將媒體信息存儲(chǔ)在代理緩存器中,在第二個(gè)客戶端的請求到來時(shí),代理緩存器就可以將已經(jīng)存儲(chǔ)在緩存器中的媒體信息直接發(fā)送給第二個(gè)請求者,待媒體信息發(fā)送給第二個(gè)請求者后代理緩存器釋放該媒體信息。這樣媒體服務(wù)器只需要通過骨干網(wǎng)絡(luò)將媒體信息傳送一次便可以服務(wù)于兩個(gè)客戶端。從而節(jié)省了骨干網(wǎng)絡(luò)帶寬,同時(shí)減少了第二個(gè)請求者開始的等待時(shí)間,提高了服務(wù)質(zhì)量。當(dāng)多個(gè)客戶端在一定的時(shí)間間隔內(nèi)請求同一個(gè)媒體信息時(shí),就可以將媒體信息從媒體服務(wù)器中請求一次然后存儲(chǔ)在代理緩存器中,根據(jù)后續(xù)請求者的請求發(fā)送給相應(yīng)的請求者,在媒體信息發(fā)送給最后一個(gè)請求者時(shí)釋放媒體信息。這樣僅在第一個(gè)客戶端請求媒體信息時(shí)需要代理緩存器從媒體服務(wù)器中請求傳送媒體信息,后續(xù)的客戶端僅需從代理緩存器中獲得媒體信息便可。根據(jù)請求同一媒體信息的第一個(gè)客戶端到最后一個(gè)客戶端請求的時(shí)間間隔不同,需要將媒體信息在代理緩存器中對媒體信息保留不同的時(shí)間間隔,當(dāng)該間隔與整個(gè)節(jié)目的播放時(shí)間相同時(shí),在代理緩存器中就保留了請求節(jié)目的全部信息。在一個(gè)節(jié)目熱播期間通常需要在代理緩存器中存儲(chǔ)熱播節(jié)目的全部信息。
3.3.2 前綴緩存
在上一種算法中,主要是減少對骨干網(wǎng)絡(luò)的傳輸帶寬的壓力,同時(shí)提高后續(xù)請求者的初始播放速度。但第一個(gè)請求者的起始播放時(shí)間并沒有減少,若在沒有用戶請求之前將每一個(gè)節(jié)目的開始部分存儲(chǔ)在代理緩存器中,在第一個(gè)客戶端請求媒體信息時(shí)也可以提高其起始速度,同時(shí)代理緩存器向每一個(gè)媒體服務(wù)器請求后續(xù)部分內(nèi)容。這便是前綴緩存算法的基本思想。
在采用前綴緩存算法時(shí)一個(gè)需要考慮的問題是最初在代理緩存器中應(yīng)當(dāng)緩存多長一段節(jié)目內(nèi)容??紤]到,客戶端需要平滑地播放媒體內(nèi)容,代理緩存器中至少要存儲(chǔ)從代理服務(wù)器到媒體服務(wù)器處接收到后續(xù)媒體信息的一段時(shí)間內(nèi)足夠客戶端播放的信息。在代理緩存器的存儲(chǔ)空間比較富裕的情況下,可以盡可能將前綴信息存儲(chǔ)的相對長一些。
3.3.3 分段緩存
前綴緩存算法主要解決起始響應(yīng)速度問題,在其中隱含了一個(gè)媒體信息分段問題。前綴本身就意味著將媒體信息分成了不同的段信息。在代理緩存器從媒體服務(wù)器后續(xù)請求過程中也需要根據(jù)媒體信息的特征分段請求或發(fā)送。特別是針對點(diǎn)播類業(yè)務(wù),客戶端需要快進(jìn)、快退等操作,這意味著需要在媒體信息中在分段處有標(biāo)注信息。這也要求將媒體信息本身進(jìn)行分段。
分段緩存算法是目前學(xué)術(shù)界研究較多的一種算法,根據(jù)不同的用途分段緩存算法又分為指數(shù)級分段和“慢分段”,指數(shù)級分段是根據(jù)內(nèi)容信息距起始點(diǎn)距離的不同將信息分成不同長度的段,距起始點(diǎn)越遠(yuǎn)段落的長度越大,這主要是用于代理緩存器快速調(diào)整所緩存的內(nèi)容,在需要的時(shí)候可以丟棄大塊的媒體信息內(nèi)容。“慢分段”其基本思想是盡可能晚地對媒體信息進(jìn)行分段,而要等到收集到了盡可能多的統(tǒng)計(jì)信息再對媒體信息進(jìn)行分段,這樣可以最好地降低對帶寬的要求,提高服務(wù)質(zhì)量。
分段緩存的最大好處在于可以進(jìn)行可變比特率傳輸,為此也有提出根據(jù)內(nèi)容提供者的意見將內(nèi)容信息中最為精彩的片段取出來進(jìn)行分段,并在客戶端最初觀看內(nèi)容時(shí)為其提供這些精彩片段,然后由用戶確定是否繼續(xù)觀看所選擇的內(nèi)容或者是直接跳轉(zhuǎn)到其認(rèn)為最為好看的部分內(nèi)容。
3.3.4 分速率緩存
上面三種算法均是根據(jù)時(shí)間順序進(jìn)行緩存以減少對網(wǎng)絡(luò)帶寬的壓力,沒有考慮到媒體信息編碼后不同時(shí)間上信息量的不同從而帶來的網(wǎng)絡(luò)傳輸帶寬需求的變化。分速率緩存算法的基本思想是,將從時(shí)間軸上看不同時(shí)間段上不同速率的信息,在媒體服務(wù)器中存儲(chǔ)等速率的部分信息,而在代理緩存器中存儲(chǔ)變化速率的部分信息。這樣在代理緩存器與媒體服務(wù)器之間將采用等速率傳輸媒體信息,代理緩存器將接收到的等速媒體信息與已經(jīng)緩存在代理緩存器中變速率部分的媒體信息組合起來發(fā)送給客戶端,以滿足播放器連續(xù)播放的要求。
3.4 用于不同質(zhì)客戶端的代理緩存
3.3中所介紹的代理緩存主要適用于可以接收相同速率并可以使用相同格式的客戶端。IPTV業(yè)務(wù)可以向采用不同的接入網(wǎng)絡(luò)接入并具有不同設(shè)備配置的客戶端提供業(yè)務(wù)。在這種情況下,為滿足不同能力客戶端的需要,媒體服務(wù)器需要存儲(chǔ)采用不同格式適用于網(wǎng)絡(luò)速率的同一內(nèi)容的多種備份,這樣耗費(fèi)了大量的存儲(chǔ)和網(wǎng)絡(luò)資源。為解決該問題,分層編碼方式應(yīng)運(yùn)而生。這種算法是將媒體信息按層進(jìn)行編碼,將具有重要信息的層編碼存儲(chǔ)在代理緩存器中,將其他層信息存儲(chǔ)在媒體服務(wù)器中。對于要求速率低的客戶端,代理緩存器直接將所存儲(chǔ)的信息發(fā)送過去就可以滿足其需要,而對于要求速率高的客戶端,代理緩存器可以先將所存儲(chǔ)的信息發(fā)送到客戶端,同時(shí)向媒體服務(wù)器請求其他層的信息再轉(zhuǎn)發(fā)給客戶端,以滿足客戶端對信息速率和信息格式的要求。目前通常是將媒體信息分為2~3層。最優(yōu)的分層方式還在研究之中。
通??蛇m用于速率范圍較大的編碼速率,如MPEG-4多采用分層編碼算法。其最大的優(yōu)點(diǎn)就是對傳輸速率和顯示格式有不同要求的客戶端,采用不同層信息的不同組合,從而節(jié)省存儲(chǔ)空間和傳輸帶寬。
3.5 重疊網(wǎng)絡(luò)上的代理緩存
目前的Internet運(yùn)營商多苦于類似BT一類的視頻下載軟件在網(wǎng)絡(luò)上的使用。多對一的視頻信息的傳輸消耗了網(wǎng)絡(luò)的大量資源,造成了網(wǎng)絡(luò)擁塞。據(jù)有關(guān)統(tǒng)計(jì),目前BT下載信息在Internet上的全部信息量中占有很大的比例。從實(shí)現(xiàn)機(jī)理上來講采用peer to peer的方式進(jìn)行視頻信息傳遞也是一種代理緩存,在peer to peer環(huán)境中,每一個(gè)客戶端即是服務(wù)器也是客戶端。而從代理緩存的角度,由于客戶端所存儲(chǔ)的信息是來自于同一個(gè)媒體服務(wù)器,在這種意義上講每一個(gè)客戶端起到代理緩存器的作用。
peer to peer環(huán)境通常是一個(gè)松耦合的環(huán)境,每一個(gè)客戶端均可能在不通知其他客戶端的情況下離開或者禁止其他客戶端訪問。這樣勢必會(huì)影響業(yè)務(wù)的服務(wù)質(zhì)量,若是將peer to peer配置在第二層代理緩存,而第一層代理緩存采用由業(yè)務(wù)提供商配置固定的代理緩存器來完成,這樣一方面可以提高業(yè)務(wù)的服務(wù)質(zhì)量,一方面可以節(jié)省業(yè)務(wù)提供者代理緩存器的資源。
4、結(jié)束語
IPTV業(yè)務(wù)是目前業(yè)界的一個(gè)熱點(diǎn)問題,雖然IP網(wǎng)絡(luò)目前的傳輸帶寬已經(jīng)達(dá)到一定的程度并且有能力傳輸像視頻信息一類對傳輸帶寬要求較高的信息。但是在提供以單播形式為主的點(diǎn)播類視頻業(yè)務(wù)時(shí)如何投遞視頻信息以滿足用戶的需要仍然是一個(gè)很大的挑戰(zhàn)。代理緩存技術(shù)在Web業(yè)務(wù)采用的CDN上已經(jīng)有很多的應(yīng)用。但與文本信息相比,點(diǎn)播類視頻業(yè)務(wù)本身信息量大、傳輸帶寬要求高、交互性要求高的特點(diǎn)不能將用于Web業(yè)務(wù)的代理緩存技術(shù)簡單地應(yīng)用于視頻點(diǎn)播業(yè)務(wù)。而需要采用特定的算法來實(shí)現(xiàn)節(jié)省存儲(chǔ)器和傳輸資源的目的。本文中簡單介紹了目前正在使用或處于研究階段的代理緩存算法。這些算法通常是針對某種特定場合而設(shè)計(jì)的,它們之間沒有排斥性,通常具有互補(bǔ)性,在具體使用中可以同時(shí)采用,也可以針對不同的應(yīng)用環(huán)境采用部分算法。目前已經(jīng)商用的代理緩存通常采用相對簡單的算法以滿足實(shí)現(xiàn)簡單的目的。代理緩存算法仍處于發(fā)展之中,這些技術(shù)的順利進(jìn)展并在IPTV業(yè)務(wù)中應(yīng)用將有利于IPTV業(yè)務(wù)的健康發(fā)展。
評論