TWI546779B - 串流資料的編碼排程方法、裝置與電腦可讀取媒體 - Google Patents
串流資料的編碼排程方法、裝置與電腦可讀取媒體 Download PDFInfo
- Publication number
- TWI546779B TWI546779B TW104136679A TW104136679A TWI546779B TW I546779 B TWI546779 B TW I546779B TW 104136679 A TW104136679 A TW 104136679A TW 104136679 A TW104136679 A TW 104136679A TW I546779 B TWI546779 B TW I546779B
- Authority
- TW
- Taiwan
- Prior art keywords
- full
- stream
- group
- frame
- group frame
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- 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
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/127—Prioritisation of hardware or computational resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/177—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
本揭露是有關於一種串流資料的編碼排程方法、裝置及電腦可讀取媒體。
隨著網路軟硬體技術的提升,透過網路之線上視音訊串流成為一個普遍的網路應用。在影音服務應用中,例如可以將商標、個人化圖案、浮水印、贊助商廣告等訊息編碼或加入視音訊串流;或是將直播畫面轉成不同解析度供不同裝置播放。是以,串流資料常需要先被重新編碼,再傳送到例如使用者裝置或後端伺服器。換句話說,串流資料的編碼在視音訊廣播的網路應用裡扮演重要角色。而串流資料的編碼需要耗費龐大的計算量。
現今,硬體編碼器已經廣泛被使用以提供快速編碼。例如,現場影視直播常採用圖形處理器(Graphics Processing Unit, GPU)來做編碼。而利用硬體資源分享技術可讓硬體編碼器處理更多編碼工作,使發揮最大效能。一個好的排程機制使有效使用硬體編碼器是目前業界所致力的課題之一。
本揭露係有關於一種串流資料編碼排程方法及裝置,透過一排程機制,有效使用硬體編碼器以提供串流資料的編碼。
根據本揭露之一實施例,提出一種串流資料編碼排程方法,執行於一串流資料編碼裝置,其步驟包括:判斷是否有至少一閒置硬體編碼器;判斷至少一串流佇列中是否有至少一滿群框串流佇列(full GOF(group of frames) streaming buffer);如果有至少一閒置硬體編碼器,且該至少一串流佇列中沒有滿群框串流佇列,但有至少一未滿群框串流佇列(non-full GOF streaming buffer),則計算該至少一未滿群框串流佇列個別之一接收比例,以及使用該至少一閒置硬體編碼器其中之一對具有最高接收比例之未滿群框串流佇列(non-full GOF streaming buffer)之已經接收之資料框開始進行編碼;以及如果有至少一閒置硬體編碼器,且該至少一串流佇列中有至少一滿群框串流佇列,使用該至少一閒置硬體編碼器其中之一對該至少一滿群框串流佇列之一滿群框串流佇列進行編碼。
根據本揭露之一實施例,提出一種串流資料編碼裝置,包括儲存單元、至少一硬體編碼器以及排程單元。儲存單元儲存至少一串流佇列;排程單元,設置用以:判斷是否有至少一閒置硬體編碼器;判斷該至少一串流佇列中是否有至少一滿群框串流佇列;如果有至少一閒置硬體編碼器,且該至少一串流佇列中沒有滿群框串流佇列,但有至少一未滿群框串流佇列,則計算該至少一未滿群框串流佇列個別之一接收比例,以及使用該至少一閒置硬體編碼器其中之一對具有最高接收比例之未滿群框串流佇列之已經接收之資料框開始進行編碼;以及如果有至少一閒置硬體編碼器,且該至少一串流佇列中有至少一滿群框串流佇列,使用該至少一閒置硬體編碼器其中之一對該至少一滿群框串流佇列之一滿群框串流佇列進行編碼。
根據本揭露之一實施例,提出一種內儲程式之電腦可讀取紀錄媒體,當電腦載入該程式並執行後,可完成如上所述之方法。
以上之關於本揭露內容之說明及以下之實施方式之說明係用以示範與解釋本發明之精神與原理,並且提供本發明之專利申請範圍更進一步之解釋。
以下係參照所附圖式詳細敘述本揭露之其中幾組實施態樣。需注意的是,實施例所提出的多組實施態樣之結構和內容僅為舉例說明之用,本揭露欲保護之範圍並非僅限於所述之該些態樣。需注意的是,本揭露並非顯示出所有可能的實施例,相關領域者可在不脫離本揭露之精神和範圍內對實施例之結構加以變化與修飾,以符合實際應用所需。因此,未於本揭露提出的其他實施態樣也可能可以應用。再者,實施例中相同或類似的標號係用以標示相同或類似之部分。
首先定義群框 (Group of Frames:GOF)以及滿群框串流佇列(full GOF streaming buffer)。群框,意即,資料框群;滿群框串流佇列,意即,當串流佇列(streaming buffer)中承載的資料框數量大於或等於該串流佇列的滿群框總數(frame number of GOF),我們稱該串流佇列為滿群框串流佇列(full GOF streaming buffer),否則稱該串流佇列為未滿群框串流佇列(non-full GOF streaming buffer)。進一步說明: 當該至少一串流佇列中有至少一滿群框串流佇列,也就是說,包括有至少一個群框(Group of Frames:GOF)在該至少一串流佇列中之任一串流佇列裡;當至少一串流佇列中沒有滿群框串流佇列,也就是說,沒有包括群框(GOF)在該至少一串流佇列中之任一串流佇列裡;當有至少一未滿群框串流佇列,也就是說,包括有至少一個未滿群框(non-full GOF)在該至少一串流佇列中之任一串流佇列裡。
圖1繪示不同編碼排程所造成的不同編碼延遲。在圖1以一個串流佇列及滿群框總數為8來舉例來說明,該串流佇列承載來自一串流源(如,錄影機)的資料框。方案A揭示編碼器在串流佇列的資料框數量達到滿群框總數8時,才開始進行編碼,而編碼器可能在資料框數量尚未達到滿群框總數8時,即已經閒置(例如,達到6資料框時)。如圖1中所示,在時間T
x,串流佇列有8個資料框,編碼器在時間T
x開始進行編碼原則上會在時間T
z完成編碼。方案B揭示編碼器在串流佇列的資料框數量未達到滿群框總數8時,即開始進行編碼。如圖中所示,在時間T
s,串流佇列有6個資料框,編碼器在時間T
s開始閒置但隨即進行編碼,原則上會在時間T
y完成8個資料框的編碼。由圖1可以看出,編碼延遲A較編碼延遲B長,方案B的完成時間將早於方案A,且方案A的有較長的編碼器閒置時間(T
x-T
s)。由此可推論,方案B效率較佳。
基於以上的分析,本揭露提出串流資料編碼排程之方法及裝置之實施範例,所述之串流資料(streaming data)包括複數個資料框(frames)。
圖2繪示依據本揭露一實施例之串流資料編碼排程裝置200的方塊圖。圖2繪示依據本揭露之一實施例進一步描述如下,串流資料編碼排程裝置200包括儲存單元210儲存至少一串流佇列210-1、210-2、210-3、…、210-M,排程單元220以及至少一硬體編碼器230-1、230-2、…、230-N,其中,M、N是正整數。
如圖3A所示之一實施例,排程單元220,設置用以判斷是否有至少一閒置硬體編碼器(步驟 302),判斷該至少一串流佇列中是否有至少一滿群框串流佇列(full GOF) (步驟 303),如果有至少一閒置硬體編碼器且該至少一串流佇列中沒有滿群框串流佇列,但有至少一未滿群框串流佇列(non-full GOF),則計算該至少一未滿群框串流佇列個別之一接收比例(步驟 305),以及使用該至少一閒置硬體編碼器其中之一對一具有最高接收比例之未滿群框串流佇列(non-full GOF)之已經接收之資料框開始進行編碼(步驟 306),如果有至少一閒置硬體編碼器且該至少一串流佇列中有至少一滿群框串流佇列,使用該至少一閒置硬體編碼器其中之一對該至少一滿群框串流佇列之一滿群框串流佇列進行編碼(步驟 304)。在一實施例,當有多個滿群框佇列時,會針對依照群框佇列滿群框的時間點先後順序,以先到先服務(first-in-first-out)方式,依序編碼該些滿群框佇列的資料框。當判斷是否有至少一閒置硬體編碼器(步驟 302),如果無至少一閒置硬體編碼器則可持續判斷是否有一閒置編碼器,或被動等待硬體編碼器轉為閒置時發出通知等等各種實作判斷方式,不限定於圖3A中迴圈方式。
在一實施例,所謂閒置硬體編碼器是指在當下這個硬體編碼器沒有進行編碼動作。
在一實施例中,串流佇列210-1、210-2、210-3、..210-M承載來自至少一串流源的資料框。在一些實施例中,所述串流源可以是錄影機、錄音機等,但不限於此。在一些實施例中,所述硬體編碼器可以是圖形處理器(GPU)、聲音處理器或其他編碼器。在一些實施例中,儲存單元210可以是一個或複數個記憶體裝置,但不限於此。
在一實施例中,各個串流佇列可以有各自對應的滿群框總數(GOF number),各串流佇列的滿群框總數原則上是預先設定,但不限於此。在一實施例,各個串流佇列的滿群框總數是相同的,在一些實施例,部份串流佇列的滿群框總數是不同的。
為方便解釋,這裡以3個串流佇列為例說明,並分別以參數GOFFrameNumber
1, GOFFrameNumber
2, GOFFrameNumber
3來代表串流佇列210-1,210-2,210-3的滿群框總數。
例如:GOFFrameNumber
1=8, GOFFrameNumber
2=8, 以及 GOFFrameNumber
3=10
.
在步驟 304,如果有至少一閒置硬體編碼器且該至少一串流佇列中有至少一滿群框串流佇列, 該排程單元220使用該至少一閒置硬體編碼器其中之一對該至少一滿群框串流佇列之一滿群框串流佇列進行編碼,進一步說明如下。
例如,如果有至少一閒置硬體編碼器且該至少一串流佇列中有至少一滿群框串流佇列X,排程單元220自該滿群框串流佇列X讀取GOFFrameNumber
x個資料框,並使用閒置硬體編碼器Y來對這些資料框進行編碼,其中X、Y是正整數。
進一步舉例說明,當串流佇列210-1承載9個資料框,其數量大於等於GOFFrameNumber
1(=8),當串流佇列210-2承載6個資料框,其數量小於GOFFrameNumber
2(=8),當串流佇列210-3承載9個資料框,其數量小於GOFFrameNumber
3(=10),則串流佇列210-1為滿群框串流佇列,而串流佇列210-2、210-3是未滿群框串流佇列。
延續前述舉例之3個串流佇列之承載資料框狀況,則排程單元220自流佇列210-1讀取其滿群框總數(GOFFrameNumber
1)的8個資料框進行編碼。
當如果有一個以上的閒置硬體編碼器的情況,後面會針對如何選取閒置硬體編碼器Y進行編碼來另做說明,在此暫不著墨。
在步驟 305,當有至少一閒置硬體編碼器且該至少一串流佇列中沒有滿群框串流佇列,但有至少一未滿群框串流佇列(non-full GOF)的情況下,排程單元220計算該至少一未滿群框串流佇列個別之一接收比例;在步驟 306,排程單元220使用該至少一閒置硬體編碼器其中之一對一具有最高接收比例之未滿群框串流佇列(non-full GOF)之已經接收之資料框開始進行編碼。
例如,串流佇列210-1已經接收6個資料框(少於GOFFrameNumber
1: 8),串流佇列210-2已經接收4個資料框(少於GOFFrameNumber
2: 8),串流佇列210-3已經接收5個資料框(少於GOFFrameNumber
3: 10),則串流佇列210-1、210-2、210-3都屬於未滿群框串流佇列,所以,在所有串流佇列中沒有滿群框串流佇列情況下,則排程單元220計算串流佇列210-1、210-2、210-3個別的接收比例1、接收比例2、接收比例3。
例如,當接收比例1是所有接收比例中具最高值的,則排程單元220開始自串流佇列210-1中一一讀取已經接收的資料框(6個資料框,承前段舉例),並使用閒置硬體編碼器Y來對這些資料框進行編碼。串流佇列210-1只需等待2個資料框就到達滿眶,而串流佇列201-2與210-3分別需等待4個與5個資料框才到達滿框。因此優先選擇串流210-1的編碼等待時間縮短,所以編碼延遲將會最小或降低。
如圖3B所示之一實施例,排程單元220在使用該至少一閒置硬體編碼器其中之一對具有最高接收比例之未滿群框串流佇列(non-full GOF)之已經接收之資料框開始進行編碼步驟(圖3A步驟306)之後,使用該至少一閒置硬體編碼器其中之一閒置硬體編碼器Y對該具有最高接收比例之未滿群框串流佇列(non-full GOF)之資料框繼續編碼,直到該具有最高接收比例之未滿群框串流佇列的剩餘資料框都已經接收並編碼,其中,該具有最高接收比例之未滿群框串流佇列的該已經接收之資料框與該剩餘資料框組成該具有最高接收比例之未滿群框串流佇列之滿群框(即,達到GOFFrameNumber數量)。(圖3A步驟307)
以GOFFrameNumber
1=8 為例說明,當排程單元220自串流佇列210-1讀取其承載之已經接收到的6個資料框並交由閒置硬體編碼器Y進行編碼,排程單元220繼續自串流佇列210-1讀取其後續接收的資料框並編碼,直到剩餘的2個剩餘資料框都已經接收以及編碼。
在一實施例中,硬體編碼器在開始編碼時,進入忙碌狀態,在另一實施例中,硬體編碼器完成一串流佇列的滿群框總數的資料框讀取及編碼時,進入閒置狀態。
在一實施例中,至少一閒置硬體編碼器其中之一,在具有最高接收比例之未滿群框串流佇列之剩餘資料框都已經接收並編碼前,不會對其他滿群框串流佇列或未滿群框串流佇列進行編碼,其中,該具有最高接收比例之未滿群框串流佇列的該已經接收之資料框與該剩餘資料框組成該具有最高接收比例之該未滿群框串流佇列之滿群框(即,達到GOFFrameNumber數量)。
延續前面之舉例,閒置硬體編碼器Y在完成串流佇列210-1的滿群框總數 (GOFFrameNumber
1) 8個資料框的編碼後,閒置硬體編碼器Y將可以進行其他串流佇列的編碼。
在一實施例中,該至少一未滿群框串流佇列個別之該接收比例,與該至少一未滿群框串流佇列個別之一解析度級數成正比。
解析度級數是依據串流佇列的解析度而定的,可以是在初始步驟(圖3A,步驟301)或是在計算接收比例的步驟(圖3A,步驟305)時決定的。
這裡列舉幾個決定解析度級數的實施例,但不在此限。例如,面積比例法(Area Ratio method)、窮舉法(Exhaustive method)、分類法(Classification method)、內插法(Interpolation method)等,在此以影像來舉例說明。
串流佇列的解析度(W x H)例如是: (1920x1080)、(1024x768)、(800x600)等。
在面積比例法(Area Ratio method)之一實施例,例如以1920x1080為基本解析度,這個串流佇列的解析度級數的計算可以下式表示:
解析度級數= (Wx H)/(1920x1080)
在窮舉法(Exhaustive method)之一實施例,預先估算各種不同解析度(如,1920x1080、1024x768、800x600,等)所需的編碼時間,然後計算這個串流佇列編碼時間與基本解析度所需編碼時間的比例。例如以1920x1080為基本解析度,這個串流佇列的解析度級數的計算可以下式表示:
解析度級數= ( (Wx H) 所需編碼時間) / ( (1920x1080) 所需編碼時間)
在分類法(Classification method)之一實施例,預先估算各種已知之不同解析度(如,1920x1080、1024x768、800x600等)所需的編碼時間,將各串流佇列歸類到與其解析度相近的解析度群組,然後計算這個串流佇列編碼時間與基本解析度所需編碼時間的比例。例如以1920x1080為基本解析度,假設這個串流佇列解析度(W x H) 與解析度群組1(W
group1x H
group1)相近,則這個串流佇列被歸類到解析度群組1,這個串流佇列的解析度級數的計算可以下式表示:
解析度級數= ((W
group1x H
group1) 所需編碼時間) / ( (1920x1080) 所需編碼時間)
在內插法(Interpolation method)之一實施例,預先估算各種已知的不同解析度(如,1920x1080、1024x768、800x600,等)所需的編碼時間,針對這個串流佇列解析度(W x H)以面積內插方式推算這個串流佇列編碼時間,然後計算這個串流佇列編碼時間與基本解析度所需編碼時間的比例。例如以1920x1080為基本解析度,這個串流佇列的解析度級數的計算可以下式表示:
解析度級數= (內插計算(Wx H) 所需編碼時間) / ( (1920x1080) 所需編碼時間)
在一實施例中,該至少一未滿群框串流佇列個別之接收比例,與該至少一未滿群框串流佇列個別之一滿群框總數(GOFFrameNumber)成正比。
在一實施例中,該至少一未滿群框串流佇列個別之該接收比例,與該至少一未滿群框串流佇列個別之一複雜度成正比,其中,該複雜度是依據運動向量變異數(motion vector variance)、 DCT係數變異數(DCT Coefficient variance)或解析度之至少一,但不限於此,並預先計算而得。在一實施例中,串流佇列的複雜度是在初始步驟(圖3A,步驟301)計算的,或在初始步驟之前計算的。
在一實施例中,該至少一未滿群框串流佇列個別之該接收比例,與該至少一未滿群框串流佇列個別接收剩餘資料框所需時間成反比,其中,該至少一未滿群框串流佇列個別之該已經接收之資料框與該剩餘資料框組成該未滿群框串流佇列個別之滿群框(即,達到GOFFrameNumber數量)。進一步說明如下:
延續前述之舉例,串流佇列201-1的滿群框總數GOFFrameNumber
1是8,已經接收的資料框有6個,所以有2個剩餘資料框尚未收到。接收2個剩餘資料框所需時間,例如是(2/資料框速率)。接收比例與所需時間成反比。在一實施例中,資料框速率是指串流佇列每秒內所包含的資料框數量。
在一實施例中,串流佇列
index的接收比例的計算可以下式表示:
在另一實施例中,串流佇列
index的接收比例的計算可以下式表示:
參數說明如下:
GOFFrameNumber
index:串流佇列
index的滿群框總數。
ResolutionRate
index: 串流佇列
index的解析度級數。
AlreadyReceivedFrames
index: 串流佇列
index的已經接收資料框數量。
FrameRate
index:串流佇列
index的資料框速率。
RC
idnex:串流佇列
index的複雜度。
在一實施例中,串流資料編碼排程裝置有一個硬體編碼器,在另一實施例中,串流資料編碼排程裝置有一個以上的硬體編碼器。
在圖3A步驟304及306,在一實施例中,該至少一閒置硬體編碼器其中之一是依據編碼效率而選定。
在一實施例中,該至少一閒置硬體編碼器的編碼效率排序是預先設定或在初始步驟設定的(圖3A,步驟304)。
在圖3A步驟306中,當該至少一未滿群框串流佇列包括複數個未滿群框串流佇列,該至少一閒置硬體編碼器包括複數個閒置硬體編碼器,排程單元220設置以使用該至少一閒置硬體編碼器其中之一對該具有最高接收比例之未滿群框串流佇列之已經接收之資料框開始進行編碼之步驟,在一實施例中,更包括:使用該至少一閒置硬體編碼器之一具最高編碼效率的閒置硬體編碼器對該具有最高接收比例之未滿群框串流佇列之已經接收之資料框開始進行編碼,以及使用該至少一閒置硬體編碼器之一具第二高編碼效率的閒置硬體編碼器對該具有第二高接收比例之未滿群框串流佇列(non-full GOF)之已經接收之資料框開始進行編碼。
上述之編碼效率,例如是編碼速度、硬體架構、資料存取速度、硬體內部運算單元數目等,但不限於此。
在一實施例中,串流資料編碼排程裝置另包括至少一資料列(Queue),排程單元220自串流佇列讀取資料框並儲存在這至少一資料列(Queue)裡,硬體編碼器自至少一資料列(Queue)讀取資料框進行編碼。在另一實施例中,排程單元220傳送讀取之資料框到硬體編碼器230-1、230-2、…、230-N。
在一實施例中,排程單元220以一處理單元自至少一記憶體裝置讀取至少一可讀取程式碼來實現排程單元220的功能。
在一實施例中,上述範例實施例中提及的上述排程單元220例如是以積體電路或電路板等組成的硬體裝置,而可分別執行上述之功能。
本揭露更提出一種內儲程式之電腦可讀取紀錄媒體,當電腦載入該程式並執行後,可完成如上述實施例所載之串流資料編碼排程方法。
綜上所述,雖然本揭露已以若干實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明。在不脫離本發明之精神和範圍內,所為之更動與潤飾,均屬本發明之專利保護範圍。關於本發明所界定之保護範圍請參考所附之申請專利範圍。
200‧‧‧串流資料編碼排程裝置
210‧‧‧儲存單元
210-1、 210-2、210-3、…、210-M‧‧‧串流佇列
220‧‧‧排程單元
230-1、230-2、…、230-N‧‧‧硬體編碼器
300‧‧‧串流資料編碼排程方法
301、302、302、304、305、306‧‧‧步驟
210‧‧‧儲存單元
210-1、 210-2、210-3、…、210-M‧‧‧串流佇列
220‧‧‧排程單元
230-1、230-2、…、230-N‧‧‧硬體編碼器
300‧‧‧串流資料編碼排程方法
301、302、302、304、305、306‧‧‧步驟
圖1繪示不同排程機制之不同編碼延遲示意圖 圖2繪示依據本揭露之一實施例之串流資料編碼排程裝置的示意圖。 圖3A繪示依據本揭露之一實施例之串流資料編碼排程方法的流程圖。 圖3B繪示依據本揭露之另一實施例之串流資料編碼排程方法的流程圖。
301、302、302、304、305、306‧‧‧步驟
Claims (21)
- 一種串流資料編碼排程方法,執行於一串流資料編碼裝置,包括:判斷是否有至少一閒置硬體編碼器;判斷至少一串流佇列中是否有至少一滿群框串流佇列(full GOF streaming buffer);如果有至少一閒置硬體編碼器,且該至少一串流佇列中沒有滿群框串流佇列,但有至少一未滿群框串流佇列(non-full GOF streaming buffer),則計算該至少一未滿群框串流佇列個別之一接收比例,以及使用該至少一閒置硬體編碼器其中之一對一具有最高接收比例之未滿群框串流佇列(non-full GOF streaming buffer)之已經接收之資料框開始進行編碼;以及如果有至少一閒置硬體編碼器,且該至少一串流佇列中有至少一滿群框串流佇列,使用該至少一閒置硬體編碼器其中之一對該至少一滿群框串流佇列之一滿群框串流佇列進行編碼。
- 如第1項所述之方法,其中該使用該至少一閒置硬體編碼器其中之一對該具有最高接收比例之未滿群框串流佇列(non-full GOF streaming buffer)之已經接收之資料框開始進行編碼步驟之後,使用該至少一閒置硬體編碼器其中之一對該具有最高接收比例之未滿群框串流佇列(non-full GOF streaming buffer)之資料框繼續編碼,直到該具有最高接收比例之未滿群框串流佇列的剩餘資料框都已經接收並編碼,且該具有最高接收比例之未滿群框串流佇列的該已經接收之資料框與該剩餘資料框組成該具有最高接收比例之未滿群框串流佇列之滿群框。
- 如第1項所述之方法,其中該至少一閒置硬體編碼器其中之一,在該具有最高接收比例之未滿群框串流佇列之剩餘資料框都已經接收並編碼前,不會對其他滿群框串流佇列(full GOF)或其他未滿群框串流佇列(non-full GOF)進行編碼,且該具有最高接收比例之未滿群框串流佇列的該已經接收之資料框與該剩餘資料框組成該具有最高接收比例之未滿群框串流佇列之滿群框。
- 如第1項所述之方法,其中,該至少一未滿群框串流佇列個別之該接收比例,與該至少一未滿群框串流佇列個別之一解析度級數成正比。
- 如第1項所述之方法,其中該至少一未滿群框串流佇列個別之該接收比例,與該至少一未滿群框串流佇列個別之一滿群框總數成正比。
- 如第1項所述之方法,其中該至少一未滿群框串流佇列個別之該接收比例,與該至少一未滿群框串流佇列個別之一複雜度成正比,且該複雜度是依據運動向量變異數(motion vector variance)、 DCT係數變異數(DCT Coefficient variance)或解析度之至少一,預先計算而得。
- 如第1項所述之方法,其中該至少一未滿群框串流佇列個別之該接收比例,與該至少一未滿群框串流佇列個別接收剩餘資料框所需時間成反比,且該至少一未滿群框串流佇列個別之該已經接收之資料框與該剩餘資料框組成該至少一未滿群框串流佇列個別之滿群框。
- 如第1項所述之方法,其中該至少一閒置硬體編碼器其中之一是依據編碼效率而選定。
- 如第8項所述之方法,其中該至少一未滿群框串流佇列包括複數個未滿群框串流佇列,該至少一閒置硬體編碼器包括複數個閒置硬體編碼器,且該使用該至少一閒置硬體編碼器其中之一對該具有最高接收比例之未滿群框串流佇列(non-full GOF)之已經接收之資料框開始進行編碼之步驟,更包括:使用該至少一閒置硬體編碼器之一具最高編碼效率的閒置硬體編碼器對該具有最高接收比例之未滿群框串流佇列(non-full GOF)之已經接收之資料框開始進行編碼;以及使用該至少一閒置硬體編碼器之一具第二高編碼效率的閒置硬體編碼器對該具有第二高接收比例之未滿群框串流佇列(non-full GOF)之已經接收之資料框開始進行編碼。
- 一串流資料編碼裝置,包括:一儲存單元,儲存至少一串流佇列;至少一硬體編碼器;以及一排程單元,設置用以執行下列步驟:判斷該至少一硬體編碼器中是否有至少一閒置的硬體編碼器;判斷該至少一串流佇列中是否有至少一滿群框串流佇列(full GOF);如果有至少一閒置硬體編碼器,且該至少一串流佇列中沒有滿群框串流佇列,但有至少一未滿群框串流佇列(non-full GOF),則執行下列步驟:計算該至少一未滿群框串流佇列個別之一接收比例;以及使用該至少一閒置硬體編碼器其中之一對一具有最高接收比例之未滿群框串流佇列(non-full GOF)之已經接收之資料框開始進行編碼;以及如果有至少一閒置硬體編碼器,且該至少一串流佇列中有至少一滿群框串流佇列,使用該至少一閒置硬體編碼器其中之一對該至少一滿群框串流佇列之一滿群框串流佇列進行編碼。
- 如第10項所述之裝置,其中該排程單元更執行下列步驟:設置以該使用該至少一閒置硬體編碼器其中之一對該具有最高接收比例之未滿群框串流佇列(non-full GOF)之已經接收之資料框開始進行編碼步驟之後,使用該至少一閒置硬體編碼器其中之一對該具有最高接收比例之未滿群框串流佇列(non-full GOF)之資料框繼續編碼,直到該具有最高接收比例之未滿群框串流佇列的剩餘資料框都已經接收並編碼;以及該具有最高接收比例之未滿群框串流佇列的該已經接收之資料框與該剩餘資料框組成該具有最高接收比例之未滿群框串流佇列之滿群框。
- 如第10項所述之裝置,其中該至少一閒置硬體編碼器其中之一,在該具有最高接收比例之未滿群框串流佇列之剩餘資料框都已經接收並編碼前,不會對其他滿群框串流佇列(full GOF)或未滿群框串流佇列(non-full GOF)進行編碼,且該具有最高接收比例之未滿群框串流佇列的該已經接收之資料框與該剩餘資料框組成該具有最高接收比例之未滿群框串流佇列之滿群框。
- 如第10項所述之裝置,其中該至少一未滿群框串流佇列個別之該接收比例,與該至少一未滿群框串流佇列個別之一解析度級數成正比。
- 如第10項所述之裝置,其中該至少一未滿群框串流佇列個別之該接收比例,與該至少一未滿群框串流佇列個別之一滿群框總數成正比。
- 如第10項所述之裝置,其中該至少一未滿群框串流佇列個別之該接收比例,與該至少一未滿群框串流佇列個別之一複雜度成正比,且該複雜度是依據運動向量變異數(motion vector variance)、 DCT係數變異數(DCT Coefficient variance)或解析度之至少一,預先計算而得。
- 如第10項所述之裝置,其中,該至少一未滿群框串流佇列個別之該接收比例,與該至少一未滿群框串流佇列個別接收剩餘資料框所需時間成反比,且該至少一未滿群框串流佇列個別之已經接收之資料框與該剩餘資料框組成該至少一未滿群框串流佇列個別之滿群框。
- 如第10項所述之裝置,其中該至少一閒置硬體編碼器其中之一是依據編碼效率而選定。
- 如第17項所述之裝置,其中該至少一未滿群框串流佇列包括複數個未滿群框串流佇列,該至少一閒置硬體編碼器包括複數個閒置硬體編碼器,以及該排程單元設置以使用該至少一閒置硬體編碼器之該閒置硬體編碼器對該具有最高接收比例之未滿群框串流佇列(non-full GOF)之已經接收之資料框開始進行編碼之步驟,更包括:使用該至少一閒置硬體編碼器之一具最高編碼效率的閒置硬體編碼器對該具有最高接收比例之未滿群框串流佇列(non-full GOF)之已經接收之資料框開始進行編碼,以及使用該至少一閒置硬體編碼器之一具第二高編碼效率的閒置硬體編碼器對該具有第二高接收比例之未滿群框串流佇列(non-full GOF)之已經接收之資料框開始進行編碼。
- 如第10項所述之裝置,其中,該排程單元以一處理單元自至少一記憶體裝置讀取至少一可讀取程式碼來實現。
- 如第10項所述之裝置,其中,該排程單元以積體電路、電路板來實現。
- 一種內儲程式之電腦可讀取紀錄媒體,當電腦載入該程式並執行後,可完成如申請專利範圍第1項所述之方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104136679A TWI546779B (zh) | 2015-11-06 | 2015-11-06 | 串流資料的編碼排程方法、裝置與電腦可讀取媒體 |
US14/965,630 US10334250B2 (en) | 2015-11-06 | 2015-12-10 | Method and apparatus for scheduling encoding of streaming data |
CN201610006019.6A CN106685904B (zh) | 2015-11-06 | 2016-01-05 | 串流数据的编码排程方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104136679A TWI546779B (zh) | 2015-11-06 | 2015-11-06 | 串流資料的編碼排程方法、裝置與電腦可讀取媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI546779B true TWI546779B (zh) | 2016-08-21 |
TW201717162A TW201717162A (zh) | 2017-05-16 |
Family
ID=57183827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104136679A TWI546779B (zh) | 2015-11-06 | 2015-11-06 | 串流資料的編碼排程方法、裝置與電腦可讀取媒體 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10334250B2 (zh) |
CN (1) | CN106685904B (zh) |
TW (1) | TWI546779B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240121416A1 (en) * | 2022-10-10 | 2024-04-11 | Microsoft Technology Licensing, Llc | Systems and methods for encoding an interactive software video stream |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434196B1 (en) | 1998-04-03 | 2002-08-13 | Sarnoff Corporation | Method and apparatus for encoding video information |
US6636222B1 (en) | 1999-11-09 | 2003-10-21 | Broadcom Corporation | Video and graphics system with an MPEG video decoder for concurrent multi-row decoding |
US7050496B2 (en) | 2000-02-15 | 2006-05-23 | 4Nsys Co., Ltd. | Multi-channel image encoding method and system |
US8824553B2 (en) | 2003-05-12 | 2014-09-02 | Google Inc. | Video compression method |
US7593580B2 (en) * | 2003-07-14 | 2009-09-22 | Texas Instruments Incorporated | Video encoding using parallel processors |
US20070291040A1 (en) | 2005-01-25 | 2007-12-20 | Reuven Bakalash | Multi-mode parallel graphics rendering system supporting dynamic profiling of graphics-based applications and automatic control of parallel modes of operation |
US7809061B1 (en) | 2004-01-22 | 2010-10-05 | Vidiator Enterprises Inc. | Method and system for hierarchical data reuse to improve efficiency in the encoding of unique multiple video streams |
DE602004030487D1 (de) | 2004-01-30 | 2011-01-20 | Ericsson Telefon Ab L M | Paketablaufsteuerung zur Datenstromübertragung |
US7991053B2 (en) | 2004-05-04 | 2011-08-02 | Qualcomm Incorporated | Method and apparatus to enable acquisition of media in streaming applications |
TWI237806B (en) | 2004-11-03 | 2005-08-11 | Sunplus Technology Co Ltd | Audio decoding system with ring buffer and method thereof |
US8217950B2 (en) | 2005-05-27 | 2012-07-10 | Advanced Micro Devices, Inc. | Video processing across multiple graphics processing units |
US7768517B2 (en) | 2006-02-21 | 2010-08-03 | Nvidia Corporation | Asymmetric multi-GPU processing |
US7929599B2 (en) | 2006-02-24 | 2011-04-19 | Microsoft Corporation | Accelerated video encoding |
US8726279B2 (en) | 2006-05-06 | 2014-05-13 | Nvidia Corporation | System for multi threaded multi processor sharing of asynchronous hardware units |
US8135063B2 (en) * | 2006-09-08 | 2012-03-13 | Mediatek Inc. | Rate control method with frame-layer bit allocation and video encoder |
US8233527B2 (en) | 2007-05-11 | 2012-07-31 | Advanced Micro Devices, Inc. | Software video transcoder with GPU acceleration |
US8861591B2 (en) | 2007-05-11 | 2014-10-14 | Advanced Micro Devices, Inc. | Software video encoder with GPU acceleration |
US8320448B2 (en) | 2008-11-28 | 2012-11-27 | Microsoft Corporation | Encoder with multiple re-entry and exit points |
TW201143336A (en) | 2010-05-21 | 2011-12-01 | Acer Inc | System for sharing hardwaer resouce and method thereof |
US8705616B2 (en) * | 2010-06-11 | 2014-04-22 | Microsoft Corporation | Parallel multiple bitrate video encoding to reduce latency and dependences between groups of pictures |
US8493482B2 (en) | 2010-08-18 | 2013-07-23 | Apple Inc. | Dual image sensor image processing system and method |
US9626216B2 (en) | 2012-05-09 | 2017-04-18 | Nvidia Corporation | Graphics processing unit sharing between many applications |
US20140286390A1 (en) | 2013-03-20 | 2014-09-25 | Nvidia Corporation | Encoder controller graphics processing unit and method of encoding rendered graphics |
US9430258B2 (en) | 2013-05-10 | 2016-08-30 | Vmware, Inc. | Efficient sharing of identical graphics resources by multiple virtual machines using separate host extension processes |
TW201445500A (zh) | 2013-05-16 | 2014-12-01 | Hon Hai Prec Ind Co Ltd | 顯示適配器控制系統、控制方法及電腦裝置 |
-
2015
- 2015-11-06 TW TW104136679A patent/TWI546779B/zh active
- 2015-12-10 US US14/965,630 patent/US10334250B2/en active Active
-
2016
- 2016-01-05 CN CN201610006019.6A patent/CN106685904B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20170134729A1 (en) | 2017-05-11 |
TW201717162A (zh) | 2017-05-16 |
CN106685904A (zh) | 2017-05-17 |
US10334250B2 (en) | 2019-06-25 |
CN106685904B (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017161907A1 (zh) | 视频编码方法及装置、设备、存储介质 | |
US8270800B2 (en) | Information processing apparatus and method, recording medium, and program | |
JP2016167867A5 (zh) | ||
WO2021082667A1 (zh) | 视频数据编码方法、装置、设备和存储介质 | |
US20140187331A1 (en) | Latency reduction by sub-frame encoding and transmission | |
JP2012138883A5 (zh) | ||
CN103475927B (zh) | 在线视频实时变速播放方法及系统 | |
TWI496116B (zh) | 由量化控制改良解碼器效能的方法與系統 | |
WO2010045289A1 (en) | System and method for progressive delivery of transcoded media content | |
JP2015515776A (ja) | 適応性のあるトリックプレイストリーミング | |
JP2014192589A (ja) | 動画像データ配信装置、方法、プログラム、及びシステム | |
RU2017123542A (ru) | Способ кодирования, способ декодирования, устройство кодирования, устройство декодирования и устройство кодирования и декодирования | |
US20100247066A1 (en) | Method and apparatus for reverse playback of encoded multimedia content | |
TWI637631B (zh) | 影像處理裝置、影視子系統與影視處理電路 | |
JP2007142614A (ja) | 画像処理装置、画像処理方法、プログラム及び情報記録媒体 | |
JP2022516517A (ja) | メディアタイトルのバッファ制約バージョンを生成する際の符号化演算の最適化 | |
JP2021057770A5 (zh) | ||
JP2006203910A (ja) | 同期化イーサネット(登録商標)システムにおいてジッターなしにデータを伝送する方法 | |
TW201933867A (zh) | 送訊裝置及送訊方法、以及程式 | |
TWI546779B (zh) | 串流資料的編碼排程方法、裝置與電腦可讀取媒體 | |
TW202042560A (zh) | 修正視訊串流流量的方法、機上盒及電腦可讀儲存介質 | |
TW201445989A (zh) | 分散式編解碼系統及方法 | |
JP2018511237A (ja) | コンテンツ適応型bピクチャパターンビデオエンコーディング | |
US9665422B2 (en) | Information processing apparatus and method, and, program | |
JP2015525980A5 (zh) |