TW202027509A - 用於***體播放器中之串流緩衝器的方法與相關的緩衝裝置 - Google Patents
用於***體播放器中之串流緩衝器的方法與相關的緩衝裝置 Download PDFInfo
- Publication number
- TW202027509A TW202027509A TW107147634A TW107147634A TW202027509A TW 202027509 A TW202027509 A TW 202027509A TW 107147634 A TW107147634 A TW 107147634A TW 107147634 A TW107147634 A TW 107147634A TW 202027509 A TW202027509 A TW 202027509A
- Authority
- TW
- Taiwan
- Prior art keywords
- buffer
- stream
- data
- unit
- rate
- Prior art date
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 219
- 230000003139 buffering effect Effects 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000003111 delayed effect Effects 0.000 claims 1
- 230000008685 targeting Effects 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000005265 energy consumption Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 230000004622 sleep time Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/764—Media network packet handling at the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一種用於控制一媒體播放器中之一串流緩衝器的方法,包含:以一處理速率自該媒體播放器中之一下載緩衝器接收一資料串流;以一緩衝速率將該資料串流緩存於該串流緩衝器中;針對緩存於該串流緩衝器中之該資料串流進行一預解析操作,以得到一預解析結果;以及根據該預解析結果,選擇性地調整該處理速率該緩衝速率中之至少一者。
Description
本發明係關於串流媒體播放,尤指一種用於***體播放器中之串流緩衝器的方法與相關的緩衝裝置。
近年來,得益於傳輸技術與影音編碼技術的進步,媒體播放器得以從遠端下載媒體檔案,以串流(stream)形式進行播放。然而,由於影音串流的流暢受到傳輸穩定性的影響,所以需要更好的緩衝技術來管理資料串流,從而更合理地應用媒體播放器的系統資源,進而提升能耗表現。
此外,一般媒體播放器會在播放媒體檔案時,同時送資料到解碼裝置,其大多使用硬體加速來同步提升播放及送資料的效能,像是換更高性能的CPU或者更快速的記憶體來改善,然而卻無法有效地應用現有系統資源。
有鑑於此,本發明提供一種用於***體播放器中之串流緩衝器的方法與相關的緩衝裝置。在本發明的實施例中,將對緩存於串流緩衝器的資料單元進行預解析(pre-parsing),從而判斷資料單元是否包含媒體播放器中解碼裝置所需的影音資訊。並且,根據預解析結果,本發明的調節機制將選擇性地調整對於資料串流的接收速率,以及選擇性地調整對資料串流的緩衝速率。另外,在預解析結果指出資料單元不包含媒體播放器中解碼裝置所需的影音資訊時,也會將該資料單元從串流緩衝器中丟棄。此外,在本發明的實施例中,也會根據媒體播放器與影音來源之間的傳輸狀態,或者是根據解碼裝置的解碼結果,進行整體性的緩存調節。透過本發明的調節,將可更合理地運用媒體播放器的系統資源,以及改善其能耗表現。
本發明之一實施例提供一種用於控制一媒體播放器中之一串流緩衝器的方法。該方法包含:以一處理速率自該媒體播放器中之一下載緩衝器接收一資料串流;以一緩衝速率將該資料串流緩存於該串流緩衝器中;針對緩存於該串流緩衝器中之該資料串流進行一預解析操作,以得到一預解析結果;以及根據該預解析結果,選擇性地調整該處理速率與該緩衝速率中之至少一者。
本發明之一實施例提供一種用於一媒體播放器的緩衝裝置。該緩衝裝置包含:一接收單元、一串流緩衝器以及一緩衝管理單元。該接收單元用於基於一處理速率以自該媒體播放器中之一下載緩衝器接收一資料串流。該串流緩衝器,耦接於該接收單元,用於基於一緩衝速率將該資料串流緩存。該緩衝管理單元耦接於串流緩衝裝器,用以針對緩存於該串流緩衝器中之該資料串流進行一預解析操作,以得到一預解析結果,並且根據該預解析結果,選擇性地調整選擇性地調整該處理速率與該緩衝速率中之至少一者。其中,該串流緩衝器中所緩存之該資料串流係用於提供給該媒體播放中之一解碼裝置進行解碼處理。
在以下內文中,描述了許多具體細節以提供閱讀者對本發明實施例的透徹理解。然而,本領域的技術人士將能理解,如何在缺少一個或多個具體細節的情況下,或者利用其他方法或元件或材料等來實現本發明。在其他情況下,眾所皆知的結構、材料或操作不會被示出或詳細描述,從而避免模糊本發明的核心概念。
說明書中提到的「一實施例」意味著該實施例所描述的特定特徵、結構或特性可能被包含於本發明的至少一個實施例中。因此,本說明書中各處出現的「在一實施例中」不一定意味著同一個實施例。此外,前述的特定特徵、結構或特性可以以任何合適的形式在一個或多個實施例中結合。
第1圖係為本發明緩衝裝置之一實施例的架構示意圖而第2圖則繪示了該緩衝裝置在運作時的主要步驟。其中,本發明之緩衝裝置100係應用於一媒體播放器10中,用於在媒體播放器10的下載緩衝器(download buffer)20以及解碼裝置(decoder)30之間進行資料串流的緩衝。媒體播放器10中還包含一個或多個接收器(未示出),用於從不同的影像來源接收與影音資訊相關的資料串流DS(data stream),其中,影像來源可以是檔案伺服器(如DLNA伺服器)、網路伺服器(如IPTV伺服器)或者是廣播(broadcast)來源,這些影像來源可以透過有線或者是無線的傳輸通道與媒體播放器10連線。
再者,資料串流DS可能是以H.264、H.265等壓縮標準進行編碼後的影音資訊,然而資料串流DS具體採用的壓縮標準並非本發明之限制。接收器在接收資料串流DS後,會將其緩存入下載緩衝器20,等候解碼裝置30的處理。解碼裝置30會根據資料串流DS的編碼格式,進行解碼處理,從而得到特定畫格與音訊。另外,在一個實施例中,電子裝置10可以是TV伺服器鑰(dongle),並且與一個或多個顯示設備以及/或一音訊播放設備相連,以呈現解碼裝置30解碼出的畫格與音訊。
緩衝裝置100主要的用途在於根據不同條件,適當地進行下載緩衝器20與解碼裝置30之間的資料緩衝處理,並且更合理地運用媒體播放器10的系統資源,從而提升媒體播放器10的能耗表現。緩衝裝置100包含有接收單元110、緩衝管理單元(buffering manager)120以及串流緩衝器(stream buffer)130。接收單元110用於基於一處理速率以自下載緩衝器20接收資料串流DS。串流緩衝器130耦接於接收單元110,用於基於一緩衝速率將資料串流DS進行緩存(buffering)。其中,緩存可以是軟體行為,藉由執行緒(thread)暫存資料來實現,且暫存資料的多寡會根據接收單元110的處理速率來決定。緩衝管理單元120耦接於串流緩衝裝器130與接收單元110,用以針對緩存於串流緩衝器130中之資料串流DS進行一預解析(pre-parsing)操作,以得到一預解析結果,並且根據該預解析結果,選擇性地要求接收單元110調整處理速率或要求串流緩衝器130調整緩衝速率。
請參考第2圖,第2圖顯示本發明用於串流緩衝器130的方法的實施例的示意圖。在步驟210中,以一處理速率自媒體播放器10中之一下載緩衝器20接收一資料串流DS。在步驟220中,以一緩衝速率將資料串流DS緩存於串流緩衝器130中。在步驟230中,針對緩存於串流緩衝器130中之資料串流DS進行一預解析操作,以得到一預解析結果。接著,在步驟240中,根據預解析結果,選擇性地調整處理速率與緩衝速率中之至少一者。大致來說,緩衝裝置100中的緩衝管理單元120會根據資料串流DS中是否包含有解碼裝置30需要的影音資訊,來調節緩衝裝置100的緩衝處理。當資料串流DS中的資料單元不包含有解碼裝置30需要的影音資訊時,緩衝管理單元120會透過要求接收單元110增加處理速率或要求串流緩衝器130增加緩衝速率,使得解碼裝置30可以更快的取得所需的影音資訊,盡快開始進行影音解碼。另外,當資料串流DS中的資料單元不包含解碼裝置30需要的影音資訊時,緩衝管理單元120也會要求串流緩衝裝器130丟棄已緩衝的資料單元,避免解碼裝置30耗費時間與硬體資源(例如:CPU)在對非影音資訊進行處理。在本發明一實施例中,緩衝管理單元120係根據資料單元的標頭(header)來判斷該資料單元的有效載荷(payload)中是否有解碼裝置30需要的影音資訊,例如,當資料單元的標頭關聯於有效載荷在圖像群組(Group of pictures,GOP)架構中的畫格(frame)類型時,即代表資料單元中包含有解碼裝置30需要的影音資訊。
此外,除了根據資料單元的內容來調節緩衝裝置100的緩衝處理外,緩衝管理單元120也會根據影像來源與媒體播放器10之間的傳輸通道的傳輸狀態來調節緩衝處理,或者是根據解碼裝置30的解碼結果來調節緩衝處理。以下將進一步說明。
第3圖~第9圖以不同實施例進一步解釋本發明的運作原理。在這些實施例中,包含有資料單元,亦即,封包PA1~PAn的資料串流DS被媒體播放器10的接收器所接收,並且緩存於下載緩衝器20之中。本發明的緩衝裝置100將不同條件,對資料串流DS進行更有效率的緩衝處理,從而更有效地利用媒體播放器10的系統資源。
首先,請參考第3圖。在第3圖所示的實施例中,假定在資料串流DS中的第一個封包PA1中就包含有GOP架構的I畫格。其中,I畫格代表節點編碼圖像(intra coded picture)的參考圖像,每個GOP由此類型的圖像開始。並且,在運作之初,串流緩衝器130容量被設定為VOL 1(例如:3百萬位元組),而接收單元110對資料串流的處理速率為DR 1(例如:2.44百萬位元組/秒)。在第一個時槽TL1中,接收單元110以處理速率DR 1接收了資料串流DS中的封包PA1。而在第二個時槽TL2中,封包PA1被串流緩衝器130所緩存,於此同時,緩衝管理單元120對緩存於串流緩衝器130中的封包PA1進行預解析操作,並且根據封包PA1的標頭,解析出封包PA1中包含有GOP架構中的I畫格,故判斷封包PA1包含解碼裝置30所需的影音資訊。因此,封包PA1將被保留,並被解碼裝置30所解碼。在確認封包PA1包含影像資料後,緩衝管理單元120可以不需要對後續的封包進行預解析操作,這是因為GOP架構下的畫格具有連續性,所以封包PA1後續的封包仍然會包含GOP架構中的其他畫格(如:I畫格、B畫格以及/或P畫格)。因此,封包 PA2~PA8在被接收單元110接收後,都會被保留在串流緩衝器130中,等候解碼裝置30的解碼。
在第4圖所示的實施例中,資料串流DS的第一個封包PA1中並不包含GOP架構中的I畫格,而第二個封包PA2中則包含有GOP架構中的I畫格。並且,在運作之初,串流緩衝器130的容量被設定為VOL 1,而接收單元110對資料串流的處理速率為DR 1。在第一個時槽TL1中,接收單元110以處理速率DR 1接收了資料串流DS中的封包PA1。而在第二個時槽TL2中,封包PA1被串流緩衝器130所緩存,於此同時,緩衝管理單元120對緩存於串流緩衝器130中的封包PA1進行預解析操作,並且根據封包PA1的標頭,解析出封包PA1中不包含有GOP架構的I畫格,也就是封包PA1並不包含影像資料。因此,緩衝管理單元120會要求串流緩衝器130丟棄封包PA1,使得解碼裝置30將不需解碼封包PA1。再者,在時槽TL2中接收單元110所接收的封包PA將會在時槽TL3中被串流緩衝器130所緩存,同時被緩衝管理單元120所預解析。此時,根據封包PA2的標頭,緩衝管理單元120解析出封包PA2中包含有GOP架構的I畫格,故判斷封包PA2包含解碼裝置30所需的影音資訊。因此,封包PA2將被保留,並等候被解碼裝置30所解碼。由於在確認封包PA2包含影像資料後,緩衝管理單元120可以不需要對後續的封包進行預解析操作,所以後續的封包PA3~PA8在被接收單元110接收後,都會被保留在串流緩衝器130中,且被解碼裝置30解碼。
在第5圖所示的實施例中,進一步地改善了第4圖所示之實施例的做法。同樣的,資料串流DS的前幾個封包PA1~PA4中並不包含GOP架構中的I畫格,直到第五個封包PA5中才包含GOP架構中的I畫格。並且,在運作之初,串流緩衝器130的容量被設定為VOL 1,而接收單元110對資料串流的處理速率為DR 1。在第一個時槽TL1中,接收單元110以處理速率DR 1接收了資料串流中的封包PA1。而在第二個時槽TL2中,封包PA1被串流緩衝器130所緩存,於此同時,緩衝管理單元120對緩存於串流緩衝器130中的封包PA1進行預解析操作,並且根據封包PA1的標頭,解析出封包PA1中不包含有GOP架構的I畫格。因此,緩衝管理單元120會要求串流緩衝器130丟棄封包PA1,使得解碼裝置30將不需解碼封包PA1。另外,除了要求串流緩衝器130丟棄封包PA1之外,緩衝管理單元120也會要求接收單元110增加處理速率,從而加速取得資料串流DS中包含有影音資訊的封包。同時,緩衝管理單元120也會要求串流緩衝器130增加容量,以因應單位時間內,接收單元110所提供的更多的資料量。在時槽TL3,接收單元110開始以較高的處理速率DR2(例如:4.88百萬位元組/秒)接收資料串流DS中的封包,並且由於串流緩衝器130增加容量為VOL2(例如:6百萬位元組),因此可以同時緩存封包PA2與PA3。然而,緩衝管理單元120依然沒有透過預解析操作,在緩存於串流緩衝器130中的封包中發現關聯於影音資訊的封包。在時槽TL4,緩衝管理單元120透過預解析操作,在緩存於串流緩衝器130中的封包PA5中發現解碼裝置30所需的影音資訊(GOP架構的I畫格),便將封包PA5保留,等待解碼裝置30的解碼。之後,串流緩衝器130可以要求接收單元110在後續的運作中,回到原本的處理速率DR1來運作,也可以要求串流緩衝器130降低容量為VOL1,以節省媒體播放器10的系統資源。應當注意的是,緩衝管理單元120啟動調節機制(增加/降低接收單元110的處理速率與增加/降低串流緩衝器130的容量)的時機可能隨不同實施例而改變,也就是說,儘管在上述的實施例中,緩衝管理單元120是在時槽T2之後要求增加接收單元110的處理速率與串流緩衝器130的容量,以及在時槽時槽T4之後要求降低接收單元110的處理速率與串流緩衝器130的容量,但在本發明不同實施例中,緩衝管理單元120可能會更晚或更早地啟動緩衝調節。
在第6圖所示的實施例中,在接收單元110以處理速率DR1接收了封包PA1~PA3,且被串流緩衝器130緩存,而在緩衝管理單元120進行預解析操作後,都沒有發現封包PA1~PA3中有包含解碼裝置30所需的影音資訊,此時,緩衝管理單元120會要求接收單元110增加處理速率,同時也會要求串流緩衝器130丟棄封包PA1~PA3,使得解碼裝置30不須處理封包PA1~PA3。另外,由於接收單元110增加了處理速率,因此,緩衝管理單元120也會要求串流緩衝器130增加容量,以因應單位時間內,接收單元110所提供的更多的資料量。此外,在一實施例中,緩衝管理單元120除了要求接收單元110增加處理速率外,可能也會要求串流緩衝器130減少運作時的閒置或延遲時間,從而提升串流緩衝器130緩衝資料串流DS的緩衝速率。接著,接收單元110會以處理速率DR2接收封包PA4~PA5,而在時槽TL4中,由於串流緩衝器130的容量加大為VOL2,所以串流緩衝器130可以同時緩存封包PA4與PA5。然而,在緩衝管理單元120進行預解析操作後,依然沒有發現封包PA4~PA5中有解碼裝置30所需的影音資訊。因此,緩衝管理單元120會發出命令要求接收單元110再度增加處理速率,同時也會要求串流緩衝器130丟棄封包PA4~PA5,使得解碼裝置30不須處理封包PA4~PA5。另外,由於接收單元110再次增加了處理速率,因此,緩衝管理單元120也再度要求串流緩衝器130增加容量,以因應單位時間內增加的資料量。此外,在一實施例中,緩衝管理單元120可能也會再次要求串流緩衝器130減少運作時的閒置或延遲時間,從而提升串流緩衝器130緩衝資料串流DS的緩衝速率。之後,接收單元110會以處理速率DR3(例如:7.32百萬位元組/秒)接收封包PA6~PA8,而在時槽TL5中,由於串流緩衝器130的容量加大為VOL3(例如:9百萬位元組),所以串流緩衝器130可以同時緩存封包PA6~PA8。然而,在緩衝管理單元120進行預解析操作後,依然沒有發現封包PA6~PA8中有包含關聯於影像資料的資訊。因此,緩衝管理單元120會要求串流緩衝器130丟棄封包PA6~PA8,使得解碼裝置30不須處理封包PA6~PA8。
在第6圖的實施例中,由於緩衝管理單元120一直沒有發現資料串流DS中的封包關聯於影音資訊,因此可能會持續要求接收單元110增加其處理速率,以及要求串流緩衝器130增加容量,直到達到處理速率的上限以及/或緩衝器的容量上限。另外,應當注意的是,緩衝管理單元120啟動調節機制(增加接收單元110的處理速率與增加串流緩衝器130的容量)的時機可能隨不同實施例而改變,也就是儘管在上述的實施例中,緩衝管理單元120是在時槽TL2之後要求增加接收單元110的處理速率與串流緩衝器130的容量,但在本發明不同實施例中,緩衝管理單元120可能會更晚或更早地啟動這個調節機制。
在第7圖的實施例中,資料串流DS中的封包PA1包含有GOP架構中的I畫格,然而,由於影像來源與媒體播放器10之間的傳輸環境不佳,導致單位時間內下載緩衝器20內的資料量不足(例如:原本1秒內需接收2.44百萬位元組,此時卻只有接收1.22百萬位元組),使得接收單元110在一預設時間(例如:一個時槽的時間長度)內沒有接收到完整封包PA1。此時,緩衝管理單元120會要求串流緩衝器130增加閒置或延遲時間,以降低緩衝速率,使串流緩衝器130接收資料以及緩存資料的時間變長,從而避免解碼裝置30對不完整的影像資料進行解碼,降低其運作效率。
在第8圖的實施例中,由於影像來源與媒體播放器10之間的傳輸環境優良,而其傳輸速率過快導致接收單元110來不及處理緩存於下載緩衝器20內的資料,所以會發生一段時間內封包遺失的狀況。而這個狀況在時槽TL3中,被緩衝管理單元120透過預解析操作得知,其中,緩衝管理單元120可以根據緩存於串流緩衝器130中的封包的序號(透過標頭中的資訊來得知)之間的連續性來判斷(封包PA2與PA6的序號並不連續)。此時,緩衝管理單元120要求接收單元110增加處理速率,或者是要求串流緩衝器130增加緩衝速率,從而避免封包的遺失。同時,緩衝管理單元120也會要求串流緩衝器130增加容量,以因應單位時間內,接收單元110所提供的更多的資料量。而一直到了時槽TL4中,緩衝管理單元120才透過預解析操作,得知封包PA8之中包含有GOP架構中的I畫格,故將封包PA8保留於串流緩衝器130之中,以供給解碼裝置30進行解碼。
在第9圖的實施例中,儘管封包PA3中包含了解碼裝置30所需的影音資訊(包含有GOP架構中的I畫格)。然而,當解碼裝置30在時槽TL4時對封包PA3進行解碼處理時,卻發生錯誤。此時,解碼裝置30會將錯誤訊息回報給緩衝管理單元120。緩衝管理單元120在收到錯誤訊息後,會要求串流緩衝器130加速丟棄封包PA3,例如,減少串流緩衝器130的閒置或延遲時間,亦即,減少執行緒的睡眠時間(sleep time),以讓封包PA3的丟棄更為即時。接著,緩衝管理單元120對下一個具有所需影音資訊的封包PA4進預解析,便將封包PA4保留,等待解碼裝置30進行後續的解碼。在一實施例中,解碼裝置30所發生的解碼錯誤可能包含(但不限定於):Decode error(解碼錯誤)、No header(標頭遺失)、Error Concealment(回復馬賽克畫面失敗)、Drop Frame (畫格遺失)、CRC checksum error (CRC檢驗有誤)。
總結來說,本發明之控制串流緩衝器方法與相關的緩衝裝置,透過對已緩存的資料單元進行預解析,從而判斷資料單元是否包含媒體播放器中解碼裝置所需的影音資訊,並且根據預解析結果,選擇性地調整對於資料串流的接收速率,以及選擇性地調整對資料串流的緩衝速率。如此一來,可以讓解碼裝置30更快地從資料串流DS中得到所需的影音資訊,一旦解碼裝置30從資料串流DS中得到所需的影音資訊後,也可以調節於資料串流的接收速率,以及對資料串流的緩衝速率,減少對於媒體播放器10之系統資源的佔用,這是因為緩衝裝置100中的元件的運作(如,接收單元110、串流緩衝器130)及解碼裝置30都需要佔用媒體播放器10之系統資源(如CPU時間,或記憶體空間),唯有適當地加速、減速、丟棄封包,才能讓媒體播放器10有更好的能耗表現。另外,在預解析結果指出資料單元不包含媒體播放器中解碼裝置所需的影音資訊時,也會將該資料單元從串流緩衝器中丟棄,從而避免解碼裝置30針對該資料單元進行不必要的解碼處理,這樣一來也可以避免系統資源的浪費。此外,當媒體播放器與影音來源之間的傳輸狀態不佳或良好時,對於資料串流的接收速率以及資料串流的緩衝速率的整體性調整,也可以避免能耗的浪費。由此可知,透過本發明的調節機制,可讓媒體播放器的系統資源被更合理地運用,不需透過硬體加速,即可改善其能耗表現。因此可應用於高、低端CPU的系統(例如:MIPS(Microprocessor without Interlocked Pipeline Stages)架構、ARM(Advanced RISC Machine)架構)。
本發明之實施例可使用硬體、軟體、韌體以及其相關結合來完成。藉由適當之一指令執行系統,可使用儲存於一記憶體中之軟體或韌體來實作本發明的實施例。就硬體而言,則是可應用下列任一技術或其相關結合來完成:具有可依據資料信號執行邏輯功能之邏輯閘的一個別運算邏輯、具有合適的組合邏輯閘之一特定應用積體電路(application specific integrated circuit, ASIC)、可程式閘陣列(programmable gate array, PGA)或一現場可程式閘陣列(field programmable gate array, FPGA)等。
說明書內的流程圖中的流程和方塊示出了基於本發明的各種實施例的系統、方法和電腦軟體產品所能實現的架構,功能和操作。在這方面,流程圖或功能方塊圖中的每個方塊可以代表程式碼的模組,區段或者是部分,其包括用於實現指定的邏輯功能的一個或多個可執行指令。另外,功能方塊圖以及/或流程圖中的每個方塊,以及方塊的組合,基本上可以由執行指定功能或動作的專用硬體系統來實現,或專用硬體和電腦程式指令的組合來實現。這些電腦程式指令還可以存儲在電腦可讀媒體中,該媒體可以使電腦或其他可編程數據處理裝置以特定方式工作,使得存儲在電腦可讀媒體中的指令,實現流程圖以及/或功能方塊圖中的方塊所指定的功能/動作。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:媒體播放器20:下載緩衝器30:解碼裝置100:緩衝裝置110:接收單元120:緩衝管理單元130:串流緩衝器
第1圖為本發明緩衝裝置之一實施例的示意圖。 第2圖為本發明用於串流緩衝器的方法的實施例的示意圖。 第3圖~第9圖為本發明緩衝裝置的運作示意圖,用以解釋緩衝管理單元如何針對不同狀態來調整接收單元的處理速率或者是調整串流緩衝器的緩衝速率。
210~240:步驟
Claims (10)
- 一種用於控制一媒體播放器中之一串流緩衝器的方法,包含: 以一處理速率自該媒體播放器中之一下載緩衝器接收一資料串流; 以一緩衝速率將該資料串流緩存於該串流緩衝器中; 針對緩存於該串流緩衝器中之該資料串流進行一預解析操作,以得到一預解析結果;以及 根據該預解析結果,選擇性地調整該處理速率與該緩衝速率中之至少一者。
- 一種用於一媒體播放器的緩衝裝置,包含: 一接收單元,用於基於一處理速率以自該媒體播放器中之一下載緩衝器接收一資料串流; 一串流緩衝器,耦接於該接收單元,用於基於一緩衝速率將該資料串流緩存;以及 一緩衝管理單元,耦接於串流緩衝裝器與該接收單元,用以針對緩存於該串流緩衝器中之該資料串流進行一預解析操作,以得到一預解析結果,並且根據該預解析結果,選擇性地要求該接收單元調整該處理速率或要求該串流緩衝器調整緩衝速率; 其中,該串流緩衝器中所緩存之該資料串流係用於提供給該媒體播放中之一解碼裝置進行解碼處理。
- 如請求項2所述之緩衝裝置,其中該緩衝管理單元: 解析該資料串流中之至少一資料單元的標頭;以及 根據該標頭的資訊判斷該至少一資料單元是否包含影像資訊,以產生該預解析結果。
- 如請求項3所述之緩衝裝置,其中該緩衝管理單元根據該標頭的資訊是否關聯於圖像群組(Group of pictures,GOP)架構中的畫格(frame)類型,判斷該至少一資料單元是否包含影像資訊。
- 如請求項3所述之緩衝裝置,其中當該預解析結果指出該資料串流中之該至少一資料單元不包含影像資訊時,該緩衝管理單元要求該接收單元增加該處理速率或要求該串流緩衝器增加緩衝速率,並且當該接收單元增加該處理速率時,該緩衝管理單元同時要求該串流緩衝器增加容量大小。
- 如請求項2所述之緩衝裝置,其中選擇性地調整該處理速率的步驟包含: 當該預解析結果指出該資料串流中之多個資料單元不連續時,該緩衝管理單元要求該接收單元增加該處理速率或要求該串流緩衝器增加緩衝速率。
- 如請求項3所述之緩衝裝置,其中當該預解析結果指出該資料串流中之該至少一資料單元不包含影像資訊時,該緩衝管理單元要求該串流緩衝器丟棄該至少一資料單元,且該解碼裝置不對該至少一資料單元進行解碼處理。
- 如請求項2所述之緩衝裝置,其中當該接收單元在一預設時間內沒有接收到該資料串流中完整的一資料單元時,該緩衝管理單元要求該串流緩衝器增加閒置或延遲時間,降低該緩衝速率,以避免該解碼裝置對不完整的該資料單元進行解碼處理。
- 如請求項2所述之緩衝裝置,其中該緩衝管理單元另偵測單位時間內從該下載緩衝器接收到的資料量,並且據此要求該串流緩衝器調整該緩衝速率。
- 如請求項2所述之緩衝裝置,另包含: 當該媒體播放器中之該解碼裝置指出針對該資料串流中之至少一資料單元的一解碼錯誤時,該緩衝管理單元要求該串流緩衝器增加該串流緩衝器丟棄該至少一資料單元的速率。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107147634A TWI690202B (zh) | 2018-12-28 | 2018-12-28 | 用於***體播放器中之串流緩衝器的方法與相關的緩衝裝置 |
CN201910243326.XA CN111385647B (zh) | 2018-12-28 | 2019-03-28 | ***体播放器中的串流缓冲器的方法与相关的缓冲装置 |
US16/703,820 US11050805B2 (en) | 2018-12-28 | 2019-12-04 | Method of controlling stream buffer in media playback device and related buffering device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107147634A TWI690202B (zh) | 2018-12-28 | 2018-12-28 | 用於***體播放器中之串流緩衝器的方法與相關的緩衝裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI690202B TWI690202B (zh) | 2020-04-01 |
TW202027509A true TW202027509A (zh) | 2020-07-16 |
Family
ID=71123428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107147634A TWI690202B (zh) | 2018-12-28 | 2018-12-28 | 用於***體播放器中之串流緩衝器的方法與相關的緩衝裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11050805B2 (zh) |
CN (1) | CN111385647B (zh) |
TW (1) | TWI690202B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI819580B (zh) * | 2022-04-22 | 2023-10-21 | 瑞昱半導體股份有限公司 | 基於預解析操作以改善播放響應的媒體播放方法與相關媒體播放裝置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11178198B1 (en) * | 2020-11-04 | 2021-11-16 | Disney Enterprises, Inc. | Buffering data on high bandwidth networks |
CN115150339A (zh) * | 2021-03-31 | 2022-10-04 | 瑞昱半导体股份有限公司 | 延迟调整方法与数据串流处理装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7433946B2 (en) * | 2004-08-12 | 2008-10-07 | Microsoft Corporation | Mechanism for transmitting elementary streams in a broadcast environment |
RU2510908C2 (ru) * | 2007-02-23 | 2014-04-10 | Нокиа Корпорейшн | Описание характеристик агрегированных блоков медиаданных с обратной совместимостью |
US9247312B2 (en) * | 2011-01-05 | 2016-01-26 | Sonic Ip, Inc. | Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol |
CN102111685B (zh) * | 2011-02-24 | 2012-07-25 | 深信服网络科技(深圳)有限公司 | 一种网络视频加载的加速方法、设备及*** |
US20130227158A1 (en) * | 2012-02-24 | 2013-08-29 | Stmicroelectronics S.R.L. | Media-quality adaptation mechanisms for dynamic adaptive streaming |
US9503490B2 (en) * | 2012-02-27 | 2016-11-22 | Qualcomm Incorporated | Dash client and receiver with buffer water-level decision-making |
ES2627741T3 (es) * | 2012-09-28 | 2017-07-31 | Telefonaktiebolaget Lm Ericsson (Publ) | Decodificación y codificación de imágenes de una secuencia de video |
CN106412664B (zh) * | 2016-10-08 | 2019-08-13 | Oppo广东移动通信有限公司 | 多媒体同步播放方法、装置、终端及*** |
US11611605B2 (en) * | 2016-10-21 | 2023-03-21 | Microsoft Technology Licensing, Llc | Dynamically modifying an execution environment for varying data |
CN108769746A (zh) * | 2018-05-31 | 2018-11-06 | 深圳市零度智控科技有限公司 | 视频数据流量控制方法、***、服务器及存储介质 |
US11330349B2 (en) * | 2018-10-17 | 2022-05-10 | Comcast Cable Communications, Llc | Content synchronization using micro-seeking |
-
2018
- 2018-12-28 TW TW107147634A patent/TWI690202B/zh active
-
2019
- 2019-03-28 CN CN201910243326.XA patent/CN111385647B/zh active Active
- 2019-12-04 US US16/703,820 patent/US11050805B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI819580B (zh) * | 2022-04-22 | 2023-10-21 | 瑞昱半導體股份有限公司 | 基於預解析操作以改善播放響應的媒體播放方法與相關媒體播放裝置 |
Also Published As
Publication number | Publication date |
---|---|
US11050805B2 (en) | 2021-06-29 |
TWI690202B (zh) | 2020-04-01 |
CN111385647A (zh) | 2020-07-07 |
CN111385647B (zh) | 2022-03-25 |
US20200213372A1 (en) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11470138B2 (en) | Apparatus, system, and method for multi-bitrate content streaming | |
JP4690280B2 (ja) | メディアデータをストリーミングする方法、システム及びクライアント装置 | |
CN107690073B (zh) | 一种视频直播方法及视频直播服务器 | |
US10164736B2 (en) | Systems, methods, apparatus, and computer program products for providing forward error correction with low latency | |
TWI690202B (zh) | 用於***體播放器中之串流緩衝器的方法與相關的緩衝裝置 | |
WO2017096935A1 (zh) | 一种快速频道切换方法、服务器及iptv*** | |
CN102130886B (zh) | 网络视频流媒体***及传输处理方法、发送端 | |
WO2019062050A1 (zh) | 直播管控方法、装置及电子设备 | |
TW201004206A (en) | Hypothetical FEC decoder and signalling for decoding control | |
CN106791956A (zh) | 网络直播卡顿的处理方法及装置 | |
AU2002231829A1 (en) | Method and system for buffering streamed data | |
WO2018001184A1 (zh) | 频道快速切换的方法、服务器和机顶盒 | |
JP2009044416A (ja) | コンテンツ再生装置、コンテンツ再生方法、プログラム、およびコンテンツ再生システム | |
WO2009039741A1 (fr) | Procédé et dispositif permettant la commutation de chaînes iptv | |
WO2011038565A1 (zh) | 一种流媒体音视频同步方法及*** | |
WO2020125153A1 (zh) | 一种基于流媒体技术的网络视频流畅播放控制方法 | |
WO2018166320A1 (zh) | 一种频道切换方法及其装置 | |
KR100643270B1 (ko) | 비디오 스트림을 재생하는 클라이언트 및 재생 방법 | |
JP5428734B2 (ja) | ネットワーク機器、情報処理装置、ストリーム切替方法、情報処理方法、プログラムおよびコンテンツ配信システム | |
US7720067B2 (en) | Data transfer apparatus and transfer control method | |
US8811478B2 (en) | Data transmission method and apparatus | |
WO2010043151A1 (zh) | 播放器以及播放方法 | |
JP2004289629A (ja) | 画像データ送出装置および画像データ送出方法 | |
WO2023216798A1 (zh) | 音视频的转码装置、方法、设备、介质及产品 | |
JP2023161219A (ja) | 送信装置、受信装置及びそれらのプログラム |