摘要:媒體分發技術在保證IPTV業務的服務品質上具有相當關鍵的作用。CDN(內容分髮網絡)技術在Web業務上得到了較為廣泛的應用,但與傳統的Web業務不同,IPTV需要分發的內容是資料量相當大的視頻資料,採用傳統的CDN技術不能完全滿足IPTV業務的需要。本文介紹應用於IPTV視頻流分發的代理緩衝技術。
關鍵詞IPTV媒體流分發分層編碼分段緩衝
1、概述
自有電視業務以來,人們便不滿足於僅被動地接收電視節目。使用者一直希望能夠按自己的意願獲得所喜愛的電視節目。這也不難理解為什麼20世紀80年代,人們希望使用MTV;20世紀90年代人們希望使用ApsaraVideo for VOD業務;近幾年,人們希望使用Internet協議電視(IPTV)業務。事實上目前所談的IPTV在某種意義上講是20世紀90年代ApsaraVideo for VOD業務(VOD)的一種繼續。
VOD出現之初。人們希望能夠針對福士喜愛的電視節目內容提供時移電視,這樣人們就可以在家裡非常舒服地在方便的時候觀看電影或電視節目。基本的思想是將內容儲存在儲存空間中同時發展分髮網絡提供接入並投遞這些視頻內容。最初業務的推動者來自廣播電視業務提供者和電影製片者。但遺憾的是由於在當時的技術條件下(當時期望的承載網路是基於ATM技術的寬頻ISDN)所需要的基礎設施費用相對於VOD業務的需求顯得太高了一些。這樣VOD在一段時間內發展緩慢,除了在一些區域網路絡上開放了一些VOD業務外,大多數的VOD停留在研究和實驗層面。同時Web業務的出現,給人們帶來了使用Web業務獲得文本資訊的喜悅。
隨著數字攝像機的出現、儲存系統能力的增強、網路傳輸頻寬的增加以及行動電話終端能力的增強,對網路視頻資訊的傳輸又一次成為人們關注的熱點問題之一。與20世紀90年代的VOD的不同點在於網路視頻的承載網路是IP網路,而使用者的顯示終端也擴充到包括電視終端、電腦、移動手機等。提供視頻的方式也由廣播電視的純“推”的方式擴充到包括原有電視的“推”方式和VOD的“拉”方式。使用者可以根據自己的意願擷取節目資訊。也就是說IPTV將以類似於Web業務向使用者提供文本資訊一樣向使用者提供視頻資訊。
雖然IPTV主要是向使用者提供視頻資訊,但由於IPTV業務的業務形式和使用者終端種類的增加,使得業務提供者不能僅採用單一的資訊源同時向數量眾多、終端能力各異的使用者提供業務。本文將介紹IPTV業務中進行視頻內容分發的一種技術——代理緩衝技術。
2、IPTV商務服務品質要求
由於視頻節目內容的資訊量較大、若採用下載後播放的方式,使用者在下載全部節目資訊時需要花費較長的時間,為此在提供業務時不能使用下載後播放的方式而應採用類似於現有廣播電視播放的方式,也就是說在下載的同時進行播放,從使用者的角度看就是邊下載邊播放。IPTV業務主要提供媒體直播(廣播)業務和媒體資訊點播業務。對於直播方式要求視頻流在播放時不能出現中斷,同時播放時允許使用者在多個節目中進行切換,切換時間要在相對短的時間範圍內。而對於點播方式的業務要求使用者可以找到所希望觀看的節目同時可以對觀看的節目進行適當的控制(包括快進、快退、暫停等),同時要求播放的視頻節目資訊流暢沒有明顯的中斷。
就目前視頻編碼技術的發展現狀,實現使用者線上即時播放視頻節目資訊所需的網路傳輸頻寬通常在每秒兆位元數量級。IPTV業務主要以提供雙向不對稱的視頻資訊為主。使用者和業務提供者之間主要是用戶端/伺服器方式進行通訊。這樣若多個使用者同時觀看儲存在一個視訊記憶體中的視頻節目資訊對儲存伺服器的輸入輸出具有較高的要求,同時通訊網路的頻寬要求也較高。為此,對於IPTV業務通常採用類似目前CDN的技術將視頻節目資訊緩衝到接近使用者的邊緣設施,以減小主視頻儲存伺服器和通訊網路的壓力。但視頻資訊通常比文本資訊的資訊量大,若將全部的視頻資訊均緩衝到邊緣存放裝置中會造成儲存設施的浪費,同時由於使用者採用具有不同能力的終端,要求業務提供者提供傳輸速率不同的視頻資訊。這樣採用代理緩衝技術成為解決Internet上媒體流傳輸的一個重要手段。
3、代理緩衝技術簡介
3.1媒體流代理緩衝輔助的系統結構
圖1為採用代理方式進行媒體流投遞的系統。在該系統中,媒體流採用RTP/RTCP/RTSP進行投遞。
採用代理緩衝的基本思想是使用者(用戶端)的控制資訊和媒體投遞資訊在傳輸時採用兩個不同的通道來進行。媒體流伺服器根據控制資訊的指令向使用者(用戶端)傳遞媒體資訊。使用者將其控制資訊上傳到媒體代理,若媒體代理的緩衝器中儲存有使用者所要的媒體內容,則代理直接將其緩衝器中儲存的資訊投遞給使用者(用戶端)的緩衝空間,緩衝空間接收到媒體資訊後將其傳遞給播放器用於播放。若緩衝代理的緩衝器中沒有使用者要求的資訊,則發送指令給伺服器請求傳遞相應的媒體資訊。根據緩衝代理的不同策略,伺服器將媒體資訊直接傳輸到代理的交換器或儲存到緩衝代理的緩衝器中,由緩衝器將媒體流資訊再通過交換器傳送給使用者。
圖1採用代理方式進行媒體流投遞的系統
3.2緩衝代理技術
從緩衝代理技術本身來講,是將媒體資訊緩衝在緩衝代理處,然後將其傳送給使用者。但由於視頻媒體資訊本身資訊量大的特點,若緩衝代理作為伺服器的備份,那麼對緩衝代理的要求將太高,勢必增大業務提供者的成本。同時由於不同的節目內容使用者的點擊率並不相同,為此將所有的媒體內容採用相同的方式進行緩衝沒有必要。因而目前採用的代理緩衝通常採用對熱播的內容採用全部儲存,而對點播量不大的媒體內容採用部分緩衝的方式進行。但如何確定需要緩衝什麼、緩衝多長時間的演算法就成了研究者研究和討論的一個問題。現有的緩衝演算法主要包括用於同質用戶端的代理緩衝和用於不同質用戶端的代理緩衝。
3.3用於同質用戶端的代理緩衝
目前大多數代理緩衝技術適用於在代理之後具有相同或類似配置和能力的同質用戶端。這樣同一版本的媒體資訊可以滿足所有同質用戶端對相同內容請求,同時對用戶端串連到網路的頻寬以及用戶端的播放能力具有相同的要求。即使是這樣,在代理緩衝中儲存一個節目內容的哪些部分以及如何管理代理程式緩衝中已經儲存的資訊(如何放置以及如何替換所存的資訊)仍然是具有挑戰性的問題。不同演算法會帶來不同服務品質以及代理資源的不同消耗。本文主要介紹目前研究較多的4類代理緩衝演算法:可變時間間隔緩衝、首碼緩衝、分段緩衝以及變速緩衝。
3.3.1可變時間間隔緩衝
可變時間間隔緩衝演算法採用緩衝可變時間間隔的媒體資訊以用於連續地接入流媒體。該演算法的實現方式如下:當兩個用戶端在一段時間間隔內向同一個代理緩衝器請求同一個媒體內容時,根據第一個用戶端的請求,代理緩衝器向媒體伺服器請求發送媒體資訊並將接收到的媒體資訊發送給第一個要求者,同時將媒體資訊儲存在代理緩衝器中,在第二個用戶端的請求到來時,代理緩衝器就可以將已經儲存在緩衝器中的媒體資訊直接發送給第二個要求者,待媒體資訊發送給第二個要求者後代理緩衝器釋放該媒體資訊。這樣媒體伺服器只需要通過骨幹網路將媒體資訊傳送一次便可以服務於兩個用戶端。從而節省了骨幹網路頻寬,同時減少了第二個要求者開始的等待時間,提高了服務品質。當多個用戶端在一定的時間間隔內請求同一個媒體資訊時,就可以將媒體資訊從媒體伺服器中請求一次然後儲存在代理緩衝器中,根據後續要求者的請求發送給相應的要求者,在媒體資訊發送給最後一個要求者時釋放媒體資訊。這樣僅在第一個用戶端請求媒體資訊時需要代理緩衝器從媒體伺服器中請求傳送媒體資訊,後續的用戶端僅需從代理緩衝器中獲得媒體資訊便可。根據請求同一媒體資訊的第一個用戶端到最後一個用戶端請求的時間間隔不同,需要將媒體資訊在代理緩衝器中對媒體資訊保留不同的時間間隔,當該間隔與整個節目的播放時間相同時,在代理緩衝器中就保留了請求節目的全部資訊。在一個節目熱播期間通常需要在代理緩衝器中儲存熱播節目的全部資訊。
3.3.2首碼緩衝
在上一種演算法中,主要是減少對骨幹網路的傳輸頻寬的壓力,同時提高後續要求者的初始播放速度。但第一個要求者的起始播放時間並沒有減少,若在沒有使用者請求之前將每一個節目的開始部分儲存在代理緩衝器中,在第一個用戶端請求媒體資訊時也可以提高其起始速度,同時代理緩衝器向每一個媒體伺服器請求後續部分內容。這便是首碼緩衝演算法的基本思想。
在採用首碼緩衝演算法時一個需要考慮的問題是最初在代理緩衝器中應當緩衝多長一段節目內容。考慮到,用戶端需要平滑地播放媒體內容,代理緩衝器中至少要儲存從Proxy 伺服器到媒體伺服器處接收到後續媒體資訊的一段時間內足夠用戶端播放的資訊。在代理緩衝器的儲存空間比較富裕的情況下,可以儘可能將首碼資訊儲存的相對長一些。
3.3.3分段緩衝
首碼緩衝演算法主要解決起始響應速度問題,在其中隱含了一個媒體資訊分段問題。首碼本身就意味著將媒體資訊分成了不同的段資訊。在代理緩衝器從媒體伺服器後續請求過程中也需要根據媒體資訊的特徵分段請求或發送。特別是針對點播類業務,用戶端需要快進、快退等操作,這意味著需要在媒體資訊中在分段處有標註資訊。這也要求將媒體資訊本身進行分段。
分段緩衝演算法是目前學術界研究較多的一種演算法,根據不同的用途分段緩衝演算法又分為指數級分段和“慢分段”,指數級分段是根據內容資訊距起始點距離的不同將資訊分成不同長度的段,距起始點越遠段落的長度越大,這主要是用於代理緩衝器快速調整所緩衝的內容,在需要的時候可以丟棄大塊的媒體資訊內容。“慢分段”其基本思想是儘可能晚地對媒體資訊進行分段,而要等到收集到了儘可能多的統計資訊再對媒體資訊進行分段,這樣可以最好地降低對頻寬的要求,提高服務品質。
分段緩衝的最大好處在於可以進行可變位元速率傳輸,為此也有提出根據內容提供者的意見將內容資訊中最為精彩的片段取出來進行分段,並在用戶端最初觀看內容時為其提供這些精彩片段,然後由使用者確定是否繼續觀看所選擇的內容或者是直接跳轉到其認為最為好看的部分內容。
3.3.4分速率緩衝
上面三種演算法均是根據時間順序進行緩衝以減少對網路頻寬的壓力,沒有考慮到媒體資訊編碼後不同時間上資訊量的不同從而帶來的網路傳輸頻寬需求的變化。分速率緩衝演算法的基本思想是,將從時間軸上看不同時間段上不同速率的資訊,在媒體伺服器中儲存等速率的部分資訊,而在代理緩衝器中儲存變化速率的部分資訊。這樣在代理緩衝器與媒體伺服器之間將採用等速率傳輸媒體資訊,代理緩衝器將接收到的等速媒體資訊與已經緩衝在代理緩衝器中變速率部分的媒體資訊組合起來發送給用戶端,以滿足播放器連續播放的要求。
3.4用於不同質用戶端的代理緩衝
3.3中所介紹的代理緩衝主要適用於可以接收相同速率並可以使用相同格式的用戶端。IPTV業務可以向採用不同的接入網路接入並具有不同裝置配置的用戶端提供業務。在這種情況下,為滿足不同能力用戶端的需要,媒體伺服器需要儲存採用不同格式適用於網路速率的同一內容的多種備份,這樣耗費了大量的儲存和網路資源。為解決該問題,分層編碼方式應運而生。這種演算法是將媒體資訊按層進行編碼,將具有重要訊息的層編碼儲存在代理緩衝器中,將其他層資訊儲存在媒體伺服器中。對於要求速率低的用戶端,代理緩衝器直接將所儲存的資訊發送過去就可以滿足其需要,而對於要求速率高的用戶端,代理緩衝器可以先將所儲存的資訊發送到用戶端,同時向媒體伺服器請求其他層的資訊再轉寄給用戶端,以滿足用戶端對資訊速率和資訊格式的要求。目前通常是將媒體資訊分為2~3層。最優的分層方式還在研究之中。
通常可適用於速率範圍較大的編碼速率,如MPEG-4多採用分層編碼演算法。其最大的優點就是對傳輸速率和顯示格式有不同要求的用戶端,採用不同層資訊的不同組合,從而節省儲存空間和傳輸頻寬。
3.5重疊網路上的代理緩衝
目前的Internet電訊廠商多苦於類似BT一類的視頻下載軟體在網路上的使用。多對一的視頻資訊的傳輸消耗了網路的大量資源,造成了網路擁塞。據有關統計,目前BT下載資訊在Internet上的全部資訊量中佔有很大的比例。從實現機理上來講採用peertopeer的方式進行視頻資訊傳遞也是一種代理緩衝,在peertopeer環境中,每一個用戶端即是伺服器也是用戶端。而從代理緩衝的角度,由於用戶端所儲存的資訊是來自於同一個媒體伺服器,在這種意義上講每一個用戶端起到代理緩衝器的作用。
peertopeer環境通常是一個松耦合的環境,每一個用戶端均可能在不通知其他用戶端的情況下離開或者禁止其他用戶端訪問。這樣勢必會影響業務的服務品質,若是將peertopeer配置在第二層代理緩衝,而第一層代理緩衝採用由業務供應商配置固定的代理緩衝器來完成,這樣一方面可以提高業務的服務品質,一方面可以節省業務提供者代理緩衝器的資源。
4、結束語
IPTV業務是目前業界的一個熱點問題,雖然IP網路目前的傳輸頻寬已經達到一定的程度並且有能力傳輸像視頻資訊一類對傳輸頻寬要求較高的資訊。但是在提供以單播形式為主的點播類視頻業務時如何投遞視頻資訊以滿足使用者的需要仍然是一個很大的挑戰。代理緩衝技術在Web業務採用的CDN上已經有很多的應用。但與文本資訊相比,點播類視頻業務本身資訊量大、傳輸頻寬要求高、互動性要求高的特點不能將用於Web業務的代理緩衝技術簡單地應用於ApsaraVideo for VOD業務。而需要採用特定的演算法來實現節省儲存空間和傳輸資源的目的。本文中簡單介紹了目前正在使用或處於研究階段的代理緩衝演算法。這些演算法通常是針對某種特定場合而設計的,它們之間沒有排斥性,通常具有互補性,在具體使用中可以同時採用,也可以針對不同的應用環境採用部分演算法。目前已經商用的代理緩衝通常採用相對簡單的演算法以滿足實現簡單的目的。代理緩衝演算法仍處於發展之中,這些技術的順利進展並在IPTV業務中應用將有利於IPTV業務的健康發展。
轉自http://www.sansky.net/article/2007-08-10-iptv-cdn.html