TWI446775B - Dynamic configuration of media fragment hierarchy system and its method - Google Patents
Dynamic configuration of media fragment hierarchy system and its method Download PDFInfo
- Publication number
- TWI446775B TWI446775B TW99146380A TW99146380A TWI446775B TW I446775 B TWI446775 B TW I446775B TW 99146380 A TW99146380 A TW 99146380A TW 99146380 A TW99146380 A TW 99146380A TW I446775 B TWI446775 B TW I446775B
- Authority
- TW
- Taiwan
- Prior art keywords
- segment
- decoded
- media
- undecoded
- video
- Prior art date
Links
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Description
本發明係有關於一種網路影音傳輸播放系統及其方法,特別是有關於一種動態配置影音媒體層級的動態配置媒體片段層級系統及其方法。
先前技術中,點對點(Peer to Peer,P2P)網路是一種由許多傳輸點(peers)所組成的分散式網路架構,其中每個傳輸點都是平等互惠的,必須提供出自己的資源,包括傳輸點(peer)所使用的網路頻寬、儲存空間、計算能力,以互相分享彼此所需要的資料,此很適用於網路影音媒體播放與分享。然,為了使影像傳輸與播放品質可以配合網路頻寬進行對應變化,相關研發人員係提出SVC(Scalable Video Coding,可伸縮視頻編碼)影像編碼壓縮技術。使用SVC編碼過的影像會被分割為多個層級(layers),影音層級數越多,表示影像的品質越好。但是SVC的技術本身並無法針對網路頻寬的變化來調整出適合的層級。因此,為了在P2P網路環境下維持較好的品質,包括畫面的清晰和影像的流暢,廠商係提出一種週期性層級配置法(Periodical Layer Allocation或PLA),媒體供應設備或是具相關軟體的客戶端提供或接收媒體片段時,設備需要週期性的量測可用頻寬大小,根據可用頻寬調整所能設備所有支持的媒體片段影音層級數。
然而,PLA方法並沒有因應頻寬變化而即時性調整媒體片段影音層級數的機制。因此,在可用頻寬為劇烈變化的環境中,使用PLA方法的設備,其播放的影片常會產生畫面停格的情形,這將使得畫面品質變得時好時壞,造成影像的流暢度變差。其次,為達到週期性的量測可用頻寬的目的,必須使用較為高效能的軟硬體,所付出的設備成本亦較高。
本發明欲解決的問題係提供一種因應網路頻寬以調整所接收媒體片段層級的系統及其方法。
為解決上述系統問題,本發明揭露一種動態配置媒體片段層級系統,其包括一儲存單元、一收發單元、一解碼單元與一運算單元。
儲存單元用以儲存複數個媒體片段,其包括至少一下載中片段、至少一待解碼片段與至少一已解碼片段之至少其一者。收發單元用以接收一新進片段於儲存單元,及自儲存單元輸出已解碼片段。解碼單元用以對下載中片段進行解碼。運算單元則是依據下載中片段、待解碼片段與已解碼片段之數量,以調整每一媒體片段之影音層級數。
為解決上述方法問題,本發明係揭露一種動態配置媒體片段層級方法,其包括:提供複數個媒體片段,其包括由至少一下載中片段、至少一待解碼片段與至少一已解碼片段之其少其一者所組成,一新進片段係被加入於上述的媒體片段;持續對下載中片段進行解碼與輸出已解碼片段;以及依據下載中片段、待解碼片段與已解碼片段之數量,以調整新進片段的影音層級數。
本發明之特點係在於本發明所揭露的系統與相關方法不需要去週期性的量測可用頻寬,僅需根據儲存單元內各種媒體片段的數量來決定新下載的媒體片段的影音層級數,以在影音播放的畫面品質與媒體片段的傳輸流暢之間取得平衡點,進而使影音播放的效能得因應網路頻寬變動而作對應調整,如此可避免畫面大量的停格並且讓畫面品質的變動能呈現較和緩的變化,並減輕使用者因畫面品質的變動所產生的不適感。
茲配合圖式將本發明較佳實施例詳細說明如下。
首先請參照圖1A繪示本發明應用於點對點網路系統架構示意圖與圖1B繪示本發明實施例之系統方塊示意圖。如圖1A與圖1B,一用戶的客端設備(Client Device)20配置有本發明揭露的動態配置媒體片段層級系統,系統包括一儲存單元(Storage Unit)24、一收發單元(Transmit-Receive Unit)23、一解碼單元(decoder)22與一運算單元(Computing Unit)21。
此客端設備20先與影音伺服器(Video Distribution Server)10進行連接,運算單元21會透過收發單元23向影音伺服器10提出影音取得需求(Video Request),並取得影音伺服器10回傳的影音供應訊息(Video Reply),其包括影像編號(Video ID)、傳輸點列表(Peer list)、緩衝映射表資訊(Buffer Map,BM)…等資訊。運算單元21會依據影音供應訊息取得上層媒體傳輸點(upstream peer)31的網路位置,並透過收發單元23與上層媒體傳輸點31交換傳輸點資訊(Peer Information),其包括緩衝映射表資訊(Buffer Map,BM)、負載(Loading)、可用頻寬(Available bandwidth,AB)、封包傳輸往返時間(Round Trip Time)…等網路傳輸資訊。運算單元21係依據影音供應訊息與傳輸點資訊以進行媒體片段(Video Segments,VS)下載順序的排程,並藉由收發單元23接收上層媒體傳輸點31的媒體片段,以在到達媒體片段的播放時間前完成下載媒體片段。完成下載的媒體片段會被儲存於儲存單元24,此儲存單元24被視為緩衝空間(Buffer)。解碼單元22則是依據媒體片段的影像播放順序進行解碼,以供運算單元藉由相關的播放、軟體、程式、單元或模組來播放影像內容。此外,當任一個下層媒體傳輸點32與客端設備20連接時,運算單元21亦會透過收發單元22分享相關媒體片段至有需求的下層媒體傳輸點32。以下係配合圖式以詳述媒體片段處理過程。
請參閱圖2繪示本發明動態配置媒體片段層級系統之媒體片段配置示意圖,請同時參閱圖1A與圖1B以利於了解。
收發單元23用以接收上層媒體傳輸點31提供的一新進片段44,新進片段44在下載完成後,形成的媒體片段分為兩種,一為待解碼片段42,一為已解碼片段43。新進片段44不論是何種媒體片段,皆會被儲存於儲存單元24。而且運算單元21會於收發單元23下載時,預先於儲存單元24保留足夠的空間以供儲存媒體片段,以下將未完成下載的媒體片段視為下載中片段41。
因此,儲存單元內儲存的媒體片段的種類包括三種,一為下載中片段(VSDownload
)41、一為待解碼片段(VSWaiting
)42、剩一為已解碼片段(VSDecoded
)43。儲存單元24內儲的媒體片段即為此三者的至少一種所形成的組合。其中,下載中片段41被完成下載時,即形成上述的待解碼片段42或是已解碼片段43。此外,待解碼片段42是指等待被解碼單元22進行解碼的媒體片段,而已解碼片段43是指被解碼單元22解碼後(或已被其它媒體傳輸點完成解碼所分享而出者)的媒體片段,但仍會暫時存在於儲存單元24中。待解碼片段42與已解碼片段43皆可被分享給其他正在播放同一媒體的客端設備(或媒體傳輸點,Peer)。
在此,一個媒體片段以一個實線的方塊代表,媒體片段中的虛線代表可伸縮視頻編碼(Scalable Video Coding,SVC)層級(layer)的分隔,每個媒體片段是由單一或數個影音層所組成,其包括基層(Base Layer,各圖中以B表示)、延伸層(Enhancement layer n,各圖中以En表示,n=1,2,3…),X軸代表時間,每個媒體片段的時間長度假設都為s秒,若第一個媒體片段開始解碼的時間為t秒,則第二個媒體片段開始解碼的時間為t+s秒,Y軸代表媒體片段的字節計數(byte count,BC),而隨著目前時間的前進與正被解碼的媒體片段的可伸縮視頻編碼影音層級數變化,字節計數(BC)亦會有所對應的變化差異。
然而,儲存單元24的儲存空間有其上限所在,因此,當收發單元23欲將新進片段44儲存於儲存單元24,但儲存單元24的剩餘儲存空間不足以儲存此新進片段44時,收發單元23會將新進片段44覆蓋至存在於儲存單元24最久的已解碼片段43。
期間,解碼單元22會在儲存單元24中儲存有任何待解碼片段42時,不斷的依據媒體播放順序以對待解碼片段42進行解碼。
請參閱圖3繪示本發明實施例之媒體片段的儲存空間配置示意圖與圖4A至圖4B繪示本發明動態配置媒體片段之演算法之一實施例,請同時參閱圖1A至圖2以利於了解。其中,圖4A至圖4B係為本發明揭露的演算法的一種施行模式,亦得以使用其它種程式編輯與執行,不以此為限。
在此先界定動態層級配置法(Dynamic Layer Allocation,DLA)的參數定義:m=在儲存單元24中待解碼片段42與已解碼片段43的數量總和;n=在儲存單元24中已解碼片段43的數量;l=媒體片段的可伸縮視頻編碼的層級數,l={1,2,…,Lmax},Lmax=P2P網路所能提供的最大可伸縮視頻編碼影音層級數;BC(l)=媒體片段在可伸縮視頻編碼影音層級數為l的字節計數數量,其單位為位元組(byte),例如BC(3)代表媒體片段有基層和二層延伸層的字節計數數量;BC(m)=在儲存單元24中待解碼片段42與已解碼片段43的字節計數數量總和,其單位為位元組(byte);BC(n)=在儲存單元24中已解碼片段43所佔用儲存單元24中的字節計數數量總和,其單位為位元組(byte);s=一個媒體片段的播放時間長度,其單位為秒(sec);AB=目前客端設備於P2P網路的可用頻寬,其單位為bps(bit per second,位元/秒);DBR(l)=媒體片段在可伸縮視頻編碼影音層級數為l的位元解碼速率(decoding bit rate),其單位為bps(bit per second,位元/秒)。
在此說明,每一客端設備20在P2P網路中,儲存單元24內的待解碼片段42和已解碼片段43的數目會隨著媒體片段的下載與解碼而變化。
假設,客端設備20目前的可用頻寬為ABbps,由於每一個媒體片段至少要有基層(base layer)的資料,才可以被解碼單元22解碼,所以從第一個媒體片段開始下載到解碼,需要等待BC(l)/AB秒的啟始延遲(startup delay)時間,在第一個媒體片段解碼的同時繼續下載之後的媒體片段,並將其存放到儲存單元24中等待解碼,此時運算單元21會調整所要下載的媒體片段的影音層級數。
當可用頻寬較大時,收發單元23接收媒體片段的速度亦增快,儲存單元24的儲存空間即會被下載完成的媒體片段(不論是待解碼片段42或是已解碼片段43)所佔用,很容易造成在儲存單元24中沒有足夠的儲存空間存放即將下載的新進片段44,即BC(l)>(buf_size-BC(m)),(buf_size即是指儲存單元24的可使用儲存空間)。運算單元21即需要釋放儲存單元24中比較不重要的資料空間,一般會被設計成釋放已解碼片段43,因已解碼片段43是被解碼過,對於目前的解碼作業沒有幫助,僅是用來供客端設備20播放或分享給其他的媒體傳輸點),故運算單元21會優先釋放已解碼片段43的佔用空間,使得儲存單元24具有足夠的可使用儲存空間來儲存新進片段44。
然而,當儲存單元24中皆為待解碼片段42,且沒有已解碼片段43,即是指BC(n)=0,運算單元21即令收發單元23停止下載新進片段44,以避免待解碼片段42被新進片段44所覆蓋。一但解碼單元22解碼部分的待解碼片段42,且完成解碼的已解碼片段43被播放後,運算單元21會釋放已解碼片段43的佔用空間。此時,運算單元21判斷出儲存單元24具有足夠的可使用儲存空間存放即將下載的新進片段44時,才令收發單元23恢復接收媒體片段的動作。
反之,當可用頻寬較小時,儲存單元24中的待解碼片段累積速度(即收發單元23接收、儲存新進片段44的速度;亦與下載中片段41完成下載作業的速度相關)趕不上解碼單元22的解碼速度,會造成儲存單元24中,沒有待解碼片段42以供解碼單元22進行解碼作業,即BC(m)-BC(n)=0,造成媒體播放的停頓,解碼單元22需等到新進片段44或是下載中片段41完成下載時,才能繼續解碼。
在此,運算單元21藉由公式(1)計算得到目前的DBR(l),當DBR(l)不大於可用頻寬(AB)時,則此時的媒體片段的影音層級數的DBR不超過可用頻寬(AB)的最大值。接著,運算單元21藉由公式(2)計算出儲存單元24的可使用儲存空間(available buffer space或ABS),根據可使用儲存空間(ABS)與新進片段44的影音層級數及資料量,找出放得下新進片段44的配置區域。
ABS
=buf
_size
-(BC
(m
)-BC
(n
)) (2)
其中buf_size為儲存單元24的儲存空間大小,BC(m)-BC(n)為待解碼片段42所佔用的BC數。當收發單元23進行儲存新進片段44(即形成下載中片段41)時,若新進片段44所儲存的位置不為待解碼片段42佔用的儲存空間,而是其以外的儲存空間時,並不會對解碼單元22的解碼作業造成任何影響。
如圖4A至圖4B,Set_interval()是運算單元21用來計算以調整儲存單元24中,所有媒體片段的影音層級數的時間間隔的運算函數。運算單元21會先使用下列的公式(3),根據儲存單元24中的待解碼片段的數量(m-n)來得到目前的未解碼片段總時間(Undecoded Segment Time,UST),未解碼片段總時間代表當前的儲存單元24中所存在的待解碼片段42可播放的時間長度,也就是在未解碼片段總時間內,一定有待解碼片段42可被解碼單元22解碼,且解碼單元22不會有工作停頓的情形產生。其中,pre_UST代表前一次所記錄的未解碼片段總時間(UST)。
UST
=(m
-n
)×S
(3)
在得到此次的未解碼片段總時間(UST)後,運算單元21會使用k值來調整媒體片段影音層級數的時間間隔的大小,k代表發生停頓(freeze-up)或即將資料異常覆蓋(overwrite)的次數,k值越大,則媒體片段的影音層級數的時間間隔越小。其中,媒體片段影音層級數的時間間隔係如圖4A與圖4B所示:
interval=UST/2k
(4)
為了即時地調整各媒體片段的影音層級數來反應網路環境變化,運算單元21會依據下列三種情形來調整媒體片段的影音層級數:請同時參閱圖5繪示本發明實施例之第一種媒體片段處理示意圖,請同時配合圖1A至圖4B以利於了解。運算單元會判斷當儲存單元24中沒有待解碼片段42可以給解碼單元22進行解碼時,一但已解碼片段43被播放完後,即會發生停頓的情況。一但運算單元21判斷出此情形發生時(或是即將發生),係協同收發單元23以將接收的新進片段44(亦或最新形成的下載中片段41)的影音層級數降低到最低限度,也就是所形成的下載中片段41僅具最基礎畫面品質的基層(base layer)。如此可以降低下載中片段41的下載完成時間,使得儲存單元24中的待解碼片段42數量迅速增加以減少停頓的時間,雖然會犧牲媒體的影音品質,但是卻可以提高媒體播放的流暢性。
之後,運算單元21會調整k值以縮短再次調整各媒體片段的影音層級數的等待時間,以期較快得知網路環境的改善而恢復媒體所包括影音的即有品質。
其中,k值代表指數週期減半係數,增加k值可以令運算單元每次去檢查儲存單元24(即緩衝空間,Buffer)內還剩餘多少待解碼片段42的週期快速縮短,因為儲存單元24內還剩餘多少待解碼片段42可以代表網路環境的改變;亦即待解碼片段42越少表示網路越擁塞。
而且,為了可以減少停頓的時間(即是儲存單元24中不存在已解碼片段43的時間),運算單元會判斷正在下載的下載中片段41是否可以解碼,判斷的方式在於,當下載中片段41的影音層級數大於1(即至少已完成下載了新進片段44的基層),運算單元21即令解碼單元22直接解碼與播放此基層資料,以緩減停頓的情況。反之,下載中片段41的影音層級數未大於1,即是運算單元21分析下載中片段41的下載量未滿其基層的字節計數,則判定無法解碼,並令解碼單元22進行等待,直至下載中片段41的基層下載完成後,才令解碼單元22對基層資料進行解碼,以力求縮短停頓的時間。
請同時參閱圖6繪示本發明實施例之第二種媒體片段處理示意圖,請同時配合圖1A至圖4B以利於了解。第二種情形為當可用頻寬(AB)大於解碼單元22對待解碼片段42的解碼率(DBR)時,會因為解碼單元22的解碼速度不夠快,導致儲存單元24的已解碼片段41皆被後續的待解碼片段42所取代,以形成儲存單元24內所儲存的全是待解碼片段42。即使新進片段44是已解碼片段43,解碼單元22亦不對其解碼,而運算單元21將此已解碼片段43配合相關播放單元進行播放後,收發單元23將後續下載的新進片段44取代此已解碼片段。從此以往,即造成儲存單元24內所儲存的全是待解碼片段42的情形。之後,為避免目前正在下載的新進片段44覆蓋之前的待解碼片段42,導致影音播放發生跳躍的情況,運算單元21即令收發單元23停止媒體片段的下載,而解碼單元22係持續對待解碼片段42進行依序解碼作業。
隨著解碼作業的進行,儲存單元24的可用儲存空間(ABS)即逐漸增大。一但運算單元21判定儲存單元24有足夠的可用儲存空間(ABS)可以存放將要下載的新進片段44,即令收發單元22恢復新進片段44的下載。同時,運算單元21亦調整k值以縮短再次調整影音層級數的等待時間,以得知儲存單元24的可用儲存空間(ABS)的變化情形,以恢復媒體片段的下載。
第三種情形是當媒體片段影音層級數的時間間隔(interval)減為零時,運算單元會依據圖4A至圖4B的演算規則而將k值歸零,使媒體片段影音層級數的時間間隔(interval)恢復為先前取得的未解碼片段總時間(UST)的數值,接著使用Layer_Adjustment()運算函數來調整各媒體片段的影音層級數,於此,調整的方式分為三種情況。
請同時參閱圖7繪示本發明實施例之第三種媒體片段處理的第一模式示意圖,請同時配合圖1A至圖4B以利於了解。當運算單元21計算出目前的未解碼片段總時間(UST)小於前一次的未解碼片段總時間(pre_UST),代表客端設備20所連接P2P網路的可用頻寬變小,使得收發單元23接收新進片段44與持續接收下載中片段41的速度會小於解碼單元22的解碼率,導致儲存單元24內的待解碼片段42數量逐漸降低。此時,運算單元21會協同收發單元23以減少新進片段44的影音層級數,以避免儲存單元24發生緩衝飢餓問題(即待解碼片段42的數量不足),進而使得解碼單元22沒有足夠的待解碼片段42可進行解碼,而引發停頓問題。
請同時參閱圖8繪示本發明實施例之第三種媒體片段處理的第二模式示意圖,請同時配合圖4以利於了解。當運算單元21計算出目前的未解碼片段總時間(UST)等於前次未解碼片段總時間(pre_UST)時,代表客端設備20於P2P網路的可用頻寬變化不大。運算單元21會計算儲存單元24的可使用儲存空間(ABS),並確認儲存空間(ABS)足以儲存即將下載的新進片段44時,運算單元21即令收發單元23直接下載新進片段44,且不調整其影音層級數。反之,運算單元21判斷出儲存空間(ABS)不足以儲存即將下載的新進片段44時,係協同收發單元23,在下載新進片段前,先減少新進片段44的影音層級數(虛框部分),直至儲存空間(ABS)足以存放即將下載的新進片段44。
請同時參閱圖9繪示本發明實施例之第三種媒體片段處理的第三模式示意圖,請同時配合圖4以利於了解。當運算單元計算出目前的未解碼片段總時間(UST)小於前一次的未解碼片段總時間(pre_UST),代表客端設備20所連接P2P網路的可用頻寬變大,收發單元23接收新進片段44或接收下載中片段41之資料的速度即大幅增加。儲存單元24中的待解碼片段42產生的速度與數量亦相對增加,運算單元21會協同收發單元23增加正要下載的新進片段44的影音層級數。增加方式為,運算單元21會透過收發單元23以得知正要下載的新進片段44的影音層級數與資料量。運算單元21會判斷儲存單元24目前的可使用儲存空間(ABS)是否有足夠的容置空間,以供儲存正要下載的新進片段44。當運算單元21判定儲存單元24的可使用儲存空間(ABS)可供儲存新進片段44時,會再判斷新進片段44的影音層級數是否為系統可設置之最大值。若新進片段44的影音層級數不為系統可設置之最大值時,運算單元21會再判斷儲存單元24是否有足夠的可使用儲存空間以供存放增加一層影音層級數的新進片段44。一但上述條件皆符合,運算單元21即協同收發單元23以提升所下載的新進片段44的影音層級數(虛框部分)。反之,運算單元21即令收發單元23接收原影音層級數的新進片段44。然而,不論是否調整新進片段44的影音層級數,運算單元21皆會記錄這次的未解碼片段總時間(UST),作為下次調整新進片段44的影音層級數的參考。
請參閱圖10繪示本發明實施例之媒體片段使用PLA與DLA的調整影音層級數因應畫面停頓次數示意圖。
圖10係繪示在可用頻寬呈現劇烈變化的情況下,客端設備個別使用PLA技術與DLA技術調整媒體片段的影音層級數,其所發生的畫面停頓現象。其中,每一個點代表一次的停頓,Y軸為停頓的時間長度,客端設備使用PLA技術與DLA技術時,兩造條件下產生的畫面停頓時間總和分別為180.15秒和40.65秒。從圖中可以觀察到客端設備使用PLA技術時,畫面停頓情況嚴重許多,幾乎只要可用頻寬降為40 kbps,就會發生影像停頓的情況,這是因為PLA技術是根據可用頻寬來調整媒體片段的影音層級數,而且所調整的影音層級數嚴然到達所能下載媒體片段的最高影音層級數。一但可用頻寬突然下降,使用PLA技術的客端設備,其緩衝空間(buffer)很快就沒有待解碼片段可以提供解碼,因此畫面停頓的情況會非常嚴重。反之,本案揭露的DLA技術雖然也會有畫面停頓的情況,但因為DLA是根據待解碼片段的數量緩慢調整下載新進片段的影音層級數,雖然可用頻寬突然下降期間,運算單元會配合收發單元以調低下載新進片段的影音層級數,但下載的新進片段的個數會變得比較多,形成待解碼片段的速度亦加快。一但可用頻寬突然下降時,儲存單元中仍有待解碼片段可供解碼單元進行解碼,如此即可避免影像的停頓發生,因此在可用頻寬劇烈變化的環境下,DLA相較於PLA,可以大幅減少畫面停頓的時間。
請參閱圖11繪示本發明實施例之動態配置媒體片段層級方法流程示意圖,請同時配合圖1A至圖9以利於了解。方法流程說明如下:提供複數個媒體片段,其包括由至少一下載中片段、至少一待解碼片段與至少一已解碼片段之其少其一者所組成(步驟S110)。
如前述,儲存單元24內儲存的媒體片段的種類包括三種,一為下載中片段(VSDownload
)41、一為待解碼片段(VSWaiting
)42、剩一為已解碼片段(VSDecoded
)43。儲存單元24內儲的媒體片段即為此三者的至少一種所形成的組合。其中,收發單元23所接收的新進片段44,會於儲存單元24內形成上述的下載中片段41。當下載中片段41被完成下載時,即形成上述的待解碼片段42或是已解碼片段43。
待解碼片段42是指等待被解碼單元22進行解碼的媒體片段,已解碼片段43是指已被解碼單元解碼完成(或由其它媒體傳輸點提供),且暫時存在於儲存單元24的媒體片段。待解碼片段42與已解碼片段43皆可被分享給其他正在播放同一媒體的客端設備(或媒體傳輸點,Peer)。
計算待解碼片段的一未解碼片段總時間,並利用未解碼片段總時間計算各媒體片段的影音層級數的時間間隔(步驟S115)。如前述,未解碼片段總時間(UST)代表當前的儲存單元24中所存在的待解碼片段42可播放的時間長度,也就是在未解碼片段總時間(UST)內,一定有待解碼片段42可被解碼單元22解碼。之後,運算單元21會將k值導入公式(4),以調整媒體片段影音層級數的時間間隔的大小。
下載一新進片段以形成下載中片段,下載中片段完成下載時,係形成待解碼片段或已解碼片段(步驟S120)。如前述,收發單元23用以接收上層媒體傳輸點31提供的一新進片段44,新進的媒體片段於下載完成後分為兩種,一為待解碼片段42,一為已解碼片段43。下載完成的媒體片段會被儲存於儲存單元24。而且運算單元21會於收發單元23下載時,預先保留足夠的可使用儲存空間以供儲存媒體片段,以下將未完成下載的媒體片段視為下載中片段41。
解碼單元22會對所有待解碼片段42進行解碼,待解碼片段42完成解碼時係形成已解碼片段43(步驟S130)。然而,已解碼片段43仍會暫時存在於儲存單元24中。待解碼片段42與已解碼片段43皆可被分享給其他正在播放同一媒體的客端設備(或媒體傳輸點,Peer)。
依據下載中片段41、待解碼片段42與已解碼片段43之數量,以調整新進片段44之影音層級數(步驟S140)。運算單元會以下載中片段41、待解碼片段42與已解碼片段43的數量為參考資訊,結合當時儲存單元24的可使用儲存空間(ABS)、客端設備20所連接P2P網路的可用頻寬(AB)、新進片段41下載速率與解碼單元22的解碼速率(DBR)比較結果、與新進片段41的影音層級數、本次未解碼片段總時間(UST)與前次未解碼片段總時間(pre_UST)的比對結果,以調整次一回下載新進片段的影音層級數…等。之後,運算單元21會重新調降各媒體片段的影音層級數的時間間隔(步驟S150),並返回步驟S115以再次持續執行次回的媒體片段下載、解碼與分享動作。即是指,客端設備20會循環執行步驟S115至步驟S150,以參卓下載中片段41、待解碼片段42與已解碼片段43之數量與其它相關資訊以調整相關媒體片段的影音層級數。
請參閱圖12繪示本發明實施例之動態配置媒體片段層級方法細部流程示意圖。於此進一步說明,步驟S140執行期間,運算單元21係先判斷儲存單元24所儲存媒體片段的種類與數量(步驟S141)。
請配合參閱圖5,當所有媒體片段未包括待解碼片段42時,係降低新進片段44之影音層級數(步驟S142)。如前述,當儲存單元24中沒有待解碼片段42可以給解碼單元22進行解碼時,會發生停頓的情況。運算單元21會協同收發單元23將接收的新進片段(即下載中片段)的影音層級數降低到最低限度,僅接收新進片段44的具最基礎畫面品質的基層(base layer)資料。
請配合參閱圖6,當所有媒體片段未包括已解碼片段43,或是下載中片段41的下載速度(新進片段44的接收速度)高於待解碼片段42的被解碼速率時,停止下載新進片段44,並持續解碼待解碼片段42(步驟S143)。此種情形會發生在解碼單元22的解碼速度不夠快,可用頻寬(AB)大於解碼單元22對待解碼片段42的解碼率(DBR)。儲存單元24的已解碼片段43皆被新進的待解碼片段42所取代,以形成儲存單元24內所儲存的全是待解碼片段42。運算單元21即令收發單元23停止媒體片段的下載,而解碼單元22係持續對待解碼片段42進行依序解碼作業。運算單元21會於後續循環作業中,判斷出儲存單元24的可用儲存空間(ABS)因解碼作業進行而逐漸增大,一但儲存單元24有足夠的可用儲存空間(ABS)可以存放將要下載的新進片段44,運算單元21即令收發單元23恢復媒體片段下載作業。
請配合參閱圖7至圖9,當各媒體片段的影音層級數的時間間隔下降至零時,係重新計算未解碼片段總時間以調整各媒體片段的影音層級數的時間間隔,並比對未解碼片段總時間(UST)與一前次未解碼片段總時間(pre_UST),以決定是否在後續循環作業中,調整各媒體片段的影音層級數(步驟S144)。
此步驟調整模式有三種:首先,運算單元21係判斷本次的未解碼片段總時間是否小於前次未解碼片段總時間。當未解碼片段總時間小於前次未解碼片段總時間時,運算單元21係在後續循環作業中,降低新進片段44的影音層級數。
反之,當未解碼片段總時間未小於前次未解碼片段總時間時,運算單元21係判斷本次未解碼片段總時間是否等於該前次未解碼片段總時間。
當未解碼片段總時間等於前次未解碼片段總時間時,運算單元21係在後續循環作業中,維持各媒體片段的影音層級數。
此外,運算單元即判斷本次未解碼片段總時間大於前次未解碼片段總時間,並在後續循環作業中,提高新進片段44的影音層級數。
綜上所述,乃僅記載本發明為呈現解決問題所採用的技術手段之實施方式或實施例而已,並非用來限定本發明專利實施之範圍。即凡與本發明專利申請範圍文義相符,或依本發明專利範圍所做的均等變化與修飾,皆為本發明專利範圍所涵蓋。
10...影音伺服器
20...客端設備
21...運算單元
22...解碼單元
23...收發單元
24...儲存單元
31...上層媒體傳輸點
32...下層媒體傳輸點
41...下載中片段
42...待解碼片段
43...已解碼片段
44...新進片段
圖1A繪示本發明應用於點對點網路系統架構示意圖;
圖1B繪示本發明實施例之系統方塊示意圖圖2
圖2繪示本發明動態配置媒體片段層級系統之媒體片段配置示意圖;
圖3繪示本發明實施例之媒體片段的儲存空間配置示意圖;
圖4A至圖4B繪示本發明動態配置媒體片段之演算法之一實施例;
圖5繪示本發明實施例之第一種媒體片段處理示意圖;
圖6繪示本發明實施例之第二種媒體片段處理示意圖;
圖7繪示本發明實施例之第三種媒體片段處理的第一模式示意圖;
圖8繪示本發明實施例之第三種媒體片段處理的第二模式示意圖;
圖9繪示本發明實施例之第三種媒體片段處理的第三模式示意圖;
圖10繪示本發明實施例之媒體片段使用PLA與DLA的調整影音層級數因應畫面停頓次數示意圖;
圖11繪示本發明實施例之動態配置媒體片段層級方法流程示意圖;以及
圖12繪示本發明實施例之動態配置媒體片段層級方法細部流程示意圖。
步驟S110~步驟S150
Claims (15)
- 一種動態配置媒體片段層級系統,其包括:一儲存單元,用以儲存複數個媒體片段,其包括至少一下載中片段、至少一待解碼片段與至少一已解碼片段之至少其一者;一收發單元,用以接收一新進片段,並於下載時形成該至少一下載中片段,其中該至少一下載中片段下載完成時,係形成該至少一待解碼片段或該至少一已解碼片段;一解碼單元,用以對該至少一待解碼片段進行解碼;以及一運算單元,用以依據該下載中片段、該待解碼片段與該已解碼片段之數量,以調整該新進片段的影音層級數,並計算該至少一待解碼片段之一未解碼片段總時間,並利用該未解碼片段總時間計算各該媒體片段的影音層級數的時間間隔,及調整該新進片段的影音層級數後,重新調降各該媒體片段的影音層級數的時間間隔。
- 如申請專利範圍第1項所述之動態配置媒體片段層級系統,其中當該儲存單元未儲存有該至少一待解碼片段時,該運算單元降低該新進片段之影音層級數。
- 如申請專利範圍第1項所述之動態配置媒體片段層級系統,其中當該儲存單元未儲存有該至少一已解碼片段,或是該收發單元之資料傳輸速度高於該解碼單元解碼該至少一下載中片段之速率時,該運算單元係令該收發 單元停止接收該新進片段,並令該解碼單元持續解碼該至少一待解碼片段。
- 如申請專利範圍第1項所述之動態配置媒體片段層級系統,其中當該運算單元判定各該媒體片段的影音層級數的時間間隔下降至零時,該運算單元係重新計算該未解碼片段總時間以調整各該媒體片段的影音層級數的時間間隔。
- 如申請專利範圍第4項所述之動態配置媒體片段層級系統,其中當該運算單元判定該未解碼片段總時間小於一前次未解碼片段總時間,該運算單元係降低該新進片段的影音層級數。
- 如申請專利範圍第4項所述之動態配置媒體片段層級系統,其中當該運算單元判定該未解碼片段總時間等於一前次未解碼片段總時間,該運算單元係維持各該媒體片段的影音層級數。
- 如申請專利範圍第4項所述之動態配置媒體片段層級系統,其中當該運算單元判定該未解碼片段總時間大於一前次未解碼片段總時間,該運算單元係提高該新進片段的影音層級數。
- 一種動態配置媒體片段層級方法,其包括:提供複數個媒體片段,其包括由至少一下載中片段、至少一待解碼片段與至少一已解碼片段之其少其一者所組成;下載一新進片段以形成該至少一下載中片段,該至 少一下載中片段完成下載時,係形成該至少一待解碼片段或該至少一已解碼片段;計算該至少一待解碼片段之一未解碼片段總時間,並利用該未解碼片段總時間計算各該媒體片段的影音層級數的時間間隔;對該至少一待解碼片段進行解碼,該至少一待解碼片段完成解碼時係形成該至少一已解碼片段;依據該至少一下載中片段、該至少一待解碼片段與該至少一已解碼片段之數量,以調整該新進片段之影音層級數;以及調降各該媒體片段的影音層級數的時間間隔,返回計算該至少一待解碼片段之一未解碼片段總時間,並利用該未解碼片段總時間計算各該媒體片段的影音層級數的時間間隔。
- 如申請專利範圍第8項所述之動態配置媒體片段層級方法,其中提供複數個媒體片段之該步驟後更包括一計算該至少一待解碼片段之一未解碼片段總時間,並利用該未解碼片段總時間計算各該媒體片段的影音層級數的時間間隔步驟,而依據該至少一下載中片段、該至少一待解碼片段與該至少一已解碼片段之數量,以調整每一媒體片段之影音層級數之該步驟之後更包括:調降各該媒體片段的影音層級數的時間間隔,返回計算該至少一待解碼片段之一未解碼片段總時間,並利用該未解碼片段總時間計算各該媒體片段的影音層級 數的時間間隔之該步驟。
- 如申請專利範圍第8項所述之動態配置媒體片段層級方法,其中於依據該至少一下載中片段、該至少一待解碼片段與該至少一已解碼片段之數量,以調整每一媒體片段之影音層級數之該步驟中,當該等媒體片段未包括該至少一待解碼片段時,係降低該新進片段之影音層級數。
- 如申請專利範圍第8項所述之動態配置媒體片段層級方法,其中於依據該至少一下載中片段、該至少一待解碼片段與該至少一已解碼片段之數量,以調整每一媒體片段之影音層級數之該步驟中,當該等媒體片段未包括該至少一已解碼片段,或是該下載中片段的下載速度高於該至少一待解碼片段的被解碼速率時,停止下載該新進片段之動作,並持續解碼該至少一待解碼片段。
- 如申請專利範圍第8項所述之動態配置媒體片段層級方法,其中當各該媒體片段的影音層級數的時間間隔下降至零時,係重新計算該未解碼片段總時間以調整各該媒體片段的影音層級數的時間間隔,並比對該未解碼片段總時間與一前次未解碼片段總時間。
- 如申請專利範圍第12項所述之動態配置媒體片段層級方法,其中下載一新進片段以形成該至少一下載中片段之該步驟更包括,當該未解碼片段總時間小於該前次未解碼片段總時間,降低該新進片段的影音層級數。
- 如申請專利範圍第12項所述之動態配置媒體片段層級 方法,其中下載一新進片段以形成該至少一下載中片段之該步驟更包括,當該未解碼片段總時間等於該前次未解碼片段總時間,維持各該媒體片段的影音層級數。
- 如申請專利範圍第12項所述之動態配置媒體片段層級方法,其中下載一新進片段以形成該至少一下載中片段之該步驟更包括,當該未解碼片段總時間大於該前次未解碼片段總時間,提高該新進片段的影音層級數。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99146380A TWI446775B (zh) | 2010-12-28 | 2010-12-28 | Dynamic configuration of media fragment hierarchy system and its method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99146380A TWI446775B (zh) | 2010-12-28 | 2010-12-28 | Dynamic configuration of media fragment hierarchy system and its method |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201228318A TW201228318A (en) | 2012-07-01 |
TWI446775B true TWI446775B (zh) | 2014-07-21 |
Family
ID=46933587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW99146380A TWI446775B (zh) | 2010-12-28 | 2010-12-28 | Dynamic configuration of media fragment hierarchy system and its method |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI446775B (zh) |
-
2010
- 2010-12-28 TW TW99146380A patent/TWI446775B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
TW201228318A (en) | 2012-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101153153B1 (ko) | 대역폭이 제한된 네트워크를 통한 미디어 트랜스레이팅 | |
US8943215B2 (en) | Distributed smooth streaming utilizing dynamic manifests | |
KR101412909B1 (ko) | 병렬 스트리밍 | |
KR102472155B1 (ko) | 피어 투 피어(Peer to peer, P2P) 네트워크에서 스트리밍 콘텐츠를 방송하는 방법 | |
TWI573450B (zh) | 伺服器內所儲存視聽節目表之接收方法和裝置 | |
US20120194534A1 (en) | System and Method for Managing Cache Storage in Adaptive Video Streaming System | |
US9654530B2 (en) | Streaming distribution system, streaming distribution method | |
US9866602B2 (en) | Adaptive bit rates during broadcast transmission in distributed content delivery networks | |
JP2016059037A (ja) | 少なくとも2つの連続するセグメントに分離されたマルチメディアコンテンツを受信するための方法およびクライアント端末、ならびに対応するコンピュータプログラム製品およびコンピュータ可読媒体 | |
JPWO2017135181A1 (ja) | クライアント、サーバ、受信方法及び送信方法 | |
FR2932938A1 (fr) | Procede et dispositif de transmission de donnees | |
JP2006203910A (ja) | 同期化イーサネット(登録商標)システムにおいてジッターなしにデータを伝送する方法 | |
WO2016185998A1 (ja) | Abr配信方式のコンテンツ配信の配信制御装置および配信制御方法 | |
KR20140105297A (ko) | 스트리밍 서비스를 제공하기 위한 동적 버퍼링 방법 및 그 장치 | |
WO2016112641A1 (zh) | 客户端、流媒体数据接收方法和流媒体数据传输系统 | |
KR102521753B1 (ko) | 네트워크에서 스트리밍되는 콘텐츠를 클라이언트 디바이스의 플레이어에서 재생하기 위한 방법 | |
JP2010093346A (ja) | 情報送信装置、情報送信装置の制御方法及びコンピュータプログラム | |
KR101837637B1 (ko) | 클라이언트 측 ack 조정 기반 적응 스트리밍 방법 및 장치 | |
KR20220158275A (ko) | 네트워크에서 스트리밍되는 콘텐츠를 클라이언트 디바이스의 플레이어에서 재생하기 위한 방법 | |
US10356159B1 (en) | Enabling playback and request of partial media fragments | |
TWI446775B (zh) | Dynamic configuration of media fragment hierarchy system and its method | |
US20200186849A1 (en) | Method and system for reducing drop-outs during video stream playback | |
US10313759B1 (en) | Enabling playback and request of partial media fragments | |
EP3107261B1 (en) | System, method and devices for low latency transmission | |
KR101869360B1 (ko) | 미디어 버퍼 제어를 이용한 효율적인 무선 네트워크 스트리밍 중계 엔진 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |