本發(fā)明是有關(guān)于一種串流數(shù)據(jù)的編碼排程方法與裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)軟硬件技術(shù)的提升,透過網(wǎng)絡(luò)的線上視音頻串流成為一個普遍的網(wǎng)絡(luò)應(yīng)用。在影音服務(wù)應(yīng)用中,例如可以將商標(biāo)、個人化圖案、浮水印、贊助商廣告等訊息編碼或加入視音頻串流;或是將直播畫面轉(zhuǎn)成不同解析度供不同裝置播放。是以,串流數(shù)據(jù)常需要先被重新編碼,再傳送到例如使用者裝置或后端服務(wù)器。換句話說,串流數(shù)據(jù)的編碼在視音頻廣播的網(wǎng)絡(luò)應(yīng)用里扮演重要角色。而串流數(shù)據(jù)的編碼需要耗費(fèi)龐大的計(jì)算量。
現(xiàn)今,硬件編碼器已經(jīng)廣泛被使用以提供快速編碼。例如,現(xiàn)場影視直播常采用圖形處理器(Graphics Processing Unit,GPU)來做編碼。而利用硬件資源分享技術(shù)可讓硬件編碼器處理更多編碼工作,使發(fā)揮最大效能。一個好的排程機(jī)制使有效使用硬件編碼器是目前業(yè)界所致力的課題之一。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明有關(guān)于一種串流數(shù)據(jù)編碼排程方法及裝置,透過一排程機(jī)制,有效使用硬件編碼器以提供串流數(shù)據(jù)的編碼。
根據(jù)本發(fā)明的一實(shí)施例,提出一種串流數(shù)據(jù)編碼排程方法,執(zhí)行于串流數(shù)據(jù)編碼裝置,其步驟包括:判斷是否有至少一閑置硬件編碼器;判斷至少一串流隊(duì)列中是否有至少一滿群框串流隊(duì)列(full GOF(group of frames)streaming buffer);如果有至少一閑置硬件編碼器,且該至少一串流隊(duì)列中沒有滿群框串流隊(duì)列,但有至少一未滿群框串流隊(duì)列(non-full GOF streaming buffer),則計(jì)算該至少一未滿群框串流隊(duì)列各自的接收比例,以及使用該至少一閑置硬件編碼器其中之一對具有最高接收比例的未滿群框串流隊(duì)列(non-full GOF streaming buffer)的已經(jīng)接收的數(shù)據(jù)框開始進(jìn)行編碼;以及 如果有至少一閑置硬件編碼器,且該至少一串流隊(duì)列中有至少一滿群框串流隊(duì)列,使用該至少一閑置硬件編碼器其中之一對該至少一滿群框串流隊(duì)列的一滿群框串流隊(duì)列進(jìn)行編碼。
根據(jù)本發(fā)明的一實(shí)施例,提出一種串流數(shù)據(jù)編碼裝置,包括儲存單元、至少一硬件編碼器以及排程單元。儲存單元儲存至少一串流隊(duì)列;排程單元,設(shè)置用以:判斷是否有至少一閑置硬件編碼器;判斷該至少一串流隊(duì)列中是否有至少一滿群框串流隊(duì)列;如果有至少一閑置硬件編碼器,且該至少一串流隊(duì)列中沒有滿群框串流隊(duì)列,但有至少一未滿群框串流隊(duì)列,則計(jì)算該至少一未滿群框串流隊(duì)列各自的接收比例,以及使用該至少一閑置硬件編碼器其中之一對具有最高接收比例的未滿群框串流隊(duì)列的已經(jīng)接收的數(shù)據(jù)框開始進(jìn)行編碼;以及如果有至少一閑置硬件編碼器,且該至少一串流隊(duì)列中有至少一滿群框串流隊(duì)列,使用該至少一閑置硬件編碼器其中之一對該至少一滿群框串流隊(duì)列的一滿群框串流隊(duì)列進(jìn)行編碼。
根據(jù)本發(fā)明的一實(shí)施例,提出一種內(nèi)儲程序的電腦可讀取紀(jì)錄媒體,當(dāng)電腦載入該程序并執(zhí)行后,可完成如上所述的方法。
以上的關(guān)于本發(fā)明內(nèi)容的說明及以下的實(shí)施方式的說明用以示范與解釋本發(fā)明的精神與原理,并且提供本發(fā)明的專利權(quán)利要求保護(hù)范圍更進(jìn)一步的解釋。
附圖說明
圖1繪示不同排程機(jī)制的不同編碼延遲示意圖
圖2繪示依據(jù)本發(fā)明的一實(shí)施例的串流數(shù)據(jù)編碼排程裝置的示意圖。
圖3A繪示依據(jù)本發(fā)明的一實(shí)施例的串流數(shù)據(jù)編碼排程方法的流程圖。
圖3B繪示依據(jù)本發(fā)明的另一實(shí)施例的串流數(shù)據(jù)編碼排程方法的流程圖。
其中,附圖標(biāo)記:
200:串流數(shù)據(jù)編碼排程裝置
210:儲存單元
210-1、210-2、210-3、…、210-M:串流隊(duì)列
220:排程單元
230-1、230-2、…、230-N:硬件編碼器
300:串流數(shù)據(jù)編碼排程方法
301、302、302、304、305、306:步驟
具體實(shí)施方式
以下參照附圖詳細(xì)敘述本發(fā)明的其中幾組實(shí)施態(tài)樣。需注意的是,實(shí)施例所提出的多組實(shí)施態(tài)樣的結(jié)構(gòu)和內(nèi)容僅為舉例說明的用,本發(fā)明欲保護(hù)的范圍并非僅限于所述的該些態(tài)樣。需注意的是,本發(fā)明并非顯示出所有可能的實(shí)施例,本領(lǐng)域的技術(shù)人員可在不脫離本發(fā)明的精神和范圍內(nèi)對實(shí)施例的結(jié)構(gòu)加以變化與修改,以符合實(shí)際應(yīng)用所需。因此,未于本發(fā)明提出的其他實(shí)施態(tài)樣也可能可以應(yīng)用。再者,實(shí)施例中相同或類似的標(biāo)號用以標(biāo)示相同或類似的部分。
首先定義群框(Group of Frames:GOF)以及滿群框串流隊(duì)列(full GOF streaming buffer)。群框,意即,數(shù)據(jù)框群;滿群框串流隊(duì)列,意即,當(dāng)串流隊(duì)列(streaming buffer)中承載的數(shù)據(jù)框數(shù)量大于或等于該串流隊(duì)列的滿群框總數(shù)(frame number of GOF),我們稱該串流隊(duì)列為滿群框串流隊(duì)列(full GOF streaming buffer),否則稱該串流隊(duì)列為未滿群框串流隊(duì)列(non-full GOF streaming buffer)。進(jìn)一步說明:當(dāng)該至少一串流隊(duì)列中有至少一滿群框串流隊(duì)列,也就是說,包括有至少一個群框(Group of Frames:GOF)在該至少一串流隊(duì)列中的任一串流隊(duì)列里;當(dāng)至少一串流隊(duì)列中沒有滿群框串流隊(duì)列,也就是說,沒有包括群框(GOF)在該至少一串流隊(duì)列中的任一串流隊(duì)列里;當(dāng)有至少一未滿群框串流隊(duì)列,也就是說,包括有至少一個未滿群框(non-full GOF)在該至少一串流隊(duì)列中的任一串流隊(duì)列里。
圖1繪示不同編碼排程所造成的不同編碼延遲。在圖1以一個串流隊(duì)列及滿群框總數(shù)為8來舉例來說明,該串流隊(duì)列承載來自一串流源(如,錄影機(jī))的數(shù)據(jù)框。方案A揭示編碼器在串流隊(duì)列的數(shù)據(jù)框數(shù)量達(dá)到滿群框總數(shù)8時,才開始進(jìn)行編碼,而編碼器可能在數(shù)據(jù)框數(shù)量尚未達(dá)到滿群框總數(shù)8時,即已經(jīng)閑置(例如,達(dá)到6數(shù)據(jù)框時)。如圖1中所示,在時間Tx,串流隊(duì)列有8個數(shù)據(jù)框,編碼器在時間Tx開始進(jìn)行編碼原則上會在時間Tz完成編碼。方案B揭示編碼器在串流隊(duì)列的數(shù)據(jù)框數(shù)量未達(dá)到滿群框總數(shù)8時,即開始進(jìn)行編碼。如圖中所示,在時間Ts,串流隊(duì)列有6個數(shù)據(jù)框,編碼器在時間Ts開始閑置但隨即進(jìn)行編碼,原則上會在時間Ty完成8個數(shù)據(jù)框的編碼。由圖1可 以看出,編碼延遲A較編碼延遲B長,方案B的完成時間將早于方案A,且方案A的有較長的編碼器閑置時間(Tx-Ts)。由此可推論,方案B效率較佳。
基于以上的分析,本發(fā)明提出串流數(shù)據(jù)編碼排程的方法及裝置的實(shí)施范例,所述的串流數(shù)據(jù)(streaming data)包括多個數(shù)據(jù)框(frames)。
圖2繪示依據(jù)本發(fā)明一實(shí)施例的串流數(shù)據(jù)編碼排程裝置200的方塊圖。圖2繪示依據(jù)本發(fā)明的一實(shí)施例進(jìn)一步描述如下,串流數(shù)據(jù)編碼排程裝置200包括儲存單元210儲存至少一串流隊(duì)列210-1、210-2、210-3、…、210-M,排程單元220以及至少一硬件編碼器230-1、230-2、…、230-N,其中,M、N是正整數(shù)。
如圖3A所示的一實(shí)施例,排程單元220,設(shè)置用以判斷是否有至少一閑置硬件編碼器(步驟302),判斷該至少一串流隊(duì)列中是否有至少一滿群框串流隊(duì)列(full GOF)(步驟303),如果有至少一閑置硬件編碼器且該至少一串流隊(duì)列中沒有滿群框串流隊(duì)列,但有至少一未滿群框串流隊(duì)列(non-full GOF),則計(jì)算該至少一未滿群框串流隊(duì)列各自的接收比例(步驟305),以及使用該至少一閑置硬件編碼器其中之一對一具有最高接收比例的未滿群框串流隊(duì)列(non-full GOF)的已經(jīng)接收的數(shù)據(jù)框開始進(jìn)行編碼(步驟306),如果有至少一閑置硬件編碼器且該至少一串流隊(duì)列中有至少一滿群框串流隊(duì)列,使用該至少一閑置硬件編碼器其中之一對該至少一滿群框串流隊(duì)列的一滿群框串流隊(duì)列進(jìn)行編碼(步驟304)。在一實(shí)施例,當(dāng)有多個滿群框隊(duì)列時,會針對依照群框隊(duì)列滿群框的時間點(diǎn)先后順序,以先到先服務(wù)(first-in-first-out)方式,依序編碼該些滿群框隊(duì)列的數(shù)據(jù)框。當(dāng)判斷是否有至少一閑置硬件編碼器(步驟302),如果無至少一閑置硬件編碼器則可持續(xù)判斷是否有一閑置編碼器,或被動等待硬件編碼器轉(zhuǎn)為閑置時發(fā)出通知等等各種實(shí)作判斷方式,不限定于圖3A中回圈方式。
在一實(shí)施例,所謂閑置硬件編碼器是指在當(dāng)下這個硬件編碼器沒有進(jìn)行編碼動作。
在一實(shí)施例中,串流隊(duì)列210-1、210-2、210-3、..210-M承載來自至少一串流源的數(shù)據(jù)框。在一些實(shí)施例中,所述串流源可以是錄影機(jī)、錄音機(jī)等,但不限于此。在一些實(shí)施例中,所述硬件編碼器可以是圖形處理器(GPU)、聲音處理器或其他編碼器。在一些實(shí)施例中,儲存單元210可以是一個或多個記憶 體裝置,但不限于此。
在一實(shí)施例中,各個串流隊(duì)列可以有各自對應(yīng)的滿群框總數(shù)(GOF number),各串流隊(duì)列的滿群框總數(shù)原則上是預(yù)先設(shè)定,但不限于此。在一實(shí)施例,各個串流隊(duì)列的滿群框總數(shù)是相同的,在一些實(shí)施例,部份串流隊(duì)列的滿群框總數(shù)是不同的。
為方便解釋,這里以3個串流隊(duì)列為例說明,并分別以參數(shù)GOFFrameNumber1,GOFFrameNumber2,GOFFrameNumber3來代表串流隊(duì)列210-1,210-2,210-3的滿群框總數(shù)。
例如:GOFFrameNumber1=8,GOFFrameNumber2=8,以及GOFFrameNumber3=10.
在步驟304,如果有至少一閑置硬件編碼器且該至少一串流隊(duì)列中有至少一滿群框串流隊(duì)列,該排程單元220使用該至少一閑置硬件編碼器其中之一對該至少一滿群框串流隊(duì)列的一滿群框串流隊(duì)列進(jìn)行編碼,進(jìn)一步說明如下。
例如,如果有至少一閑置硬件編碼器且該至少一串流隊(duì)列中有至少一滿群框串流隊(duì)列X,排程單元220自該滿群框串流隊(duì)列X讀取GOFFrameNumberx個數(shù)據(jù)框,并使用閑置硬件編碼器Y來對這些數(shù)據(jù)框進(jìn)行編碼,其中X、Y是正整數(shù)。
進(jìn)一步舉例說明,當(dāng)串流隊(duì)列210-1承載9個數(shù)據(jù)框,其數(shù)量大于等于GOFFrameNumber1(=8),當(dāng)串流隊(duì)列210-2承載6個數(shù)據(jù)框,其數(shù)量小于GOFFrameNumber2(=8),當(dāng)串流隊(duì)列210-3承載9個數(shù)據(jù)框,其數(shù)量小于GOFFrameNumber3(=10),則串流隊(duì)列210-1為滿群框串流隊(duì)列,而串流隊(duì)列210-2、210-3是未滿群框串流隊(duì)列。
延續(xù)前述舉例的3個串流隊(duì)列的承載數(shù)據(jù)框狀況,則排程單元220自流隊(duì)列210-1讀取其滿群框總數(shù)(GOFFrameNumber1)的8個數(shù)據(jù)框進(jìn)行編碼。
當(dāng)如果有一個以上的閑置硬件編碼器的情況,后面會針對如何選取閑置硬件編碼器Y進(jìn)行編碼來另做說明,在此暫不著墨。
在步驟305,當(dāng)有至少一閑置硬件編碼器且該至少一串流隊(duì)列中沒有滿群框串流隊(duì)列,但有至少一未滿群框串流隊(duì)列(non-full GOF)的情況下,排程單元220計(jì)算該至少一未滿群框串流隊(duì)列各自的接收比例;在步驟306,排程單元220使用該至少一閑置硬件編碼器其中之一對一具有最高接收比例的未滿 群框串流隊(duì)列(non-full GOF)的已經(jīng)接收的數(shù)據(jù)框開始進(jìn)行編碼。
例如,串流隊(duì)列210-1已經(jīng)接收6個數(shù)據(jù)框(少于GOFFrameNumber1:8),串流隊(duì)列210-2已經(jīng)接收4個數(shù)據(jù)框(少于GOFFrameNumber2:8),串流隊(duì)列210-3已經(jīng)接收5個數(shù)據(jù)框(少于GOFFrameNumber3:10),則串流隊(duì)列210-1、210-2、210-3都屬于未滿群框串流隊(duì)列,所以,在所有串流隊(duì)列中沒有滿群框串流隊(duì)列情況下,則排程單元220計(jì)算串流隊(duì)列210-1、210-2、210-3各自的接收比例1、接收比例2、接收比例3。
例如,當(dāng)接收比例1是所有接收比例中具最高值的,則排程單元220開始自串流隊(duì)列210-1中一一讀取已經(jīng)接收的數(shù)據(jù)框(6個數(shù)據(jù)框,承前段舉例),并使用閑置硬件編碼器Y來對這些數(shù)據(jù)框進(jìn)行編碼。串流隊(duì)列210-1只需等待2個數(shù)據(jù)框就到達(dá)滿眶,而串流隊(duì)列201-2與210-3分別需等待4個與5個數(shù)據(jù)框才到達(dá)滿框。因此優(yōu)先選擇串流210-1的編碼等待時間縮短,所以編碼延遲將會最小或降低。
如圖3B所示的一實(shí)施例,排程單元220在使用該至少一閑置硬件編碼器其中之一對具有最高接收比例的未滿群框串流隊(duì)列(non-full GOF)的已經(jīng)接收的數(shù)據(jù)框開始進(jìn)行編碼步驟(圖3A步驟306)之后,使用該至少一閑置硬件編碼器其中之一閑置硬件編碼器Y對該具有最高接收比例的未滿群框串流隊(duì)列(non-full GOF)的數(shù)據(jù)框繼續(xù)編碼,直到該具有最高接收比例的未滿群框串流隊(duì)列的剩余數(shù)據(jù)框都已經(jīng)接收并編碼,其中,該具有最高接收比例的未滿群框串流隊(duì)列的該已經(jīng)接收的數(shù)據(jù)框與該剩余數(shù)據(jù)框組成該具有最高接收比例的未滿群框串流隊(duì)列的滿群框(即,達(dá)到GOFFrameNumber數(shù)量)。(圖3A步驟307)
以GOFFrameNumber1=8為例說明,當(dāng)排程單元220自串流隊(duì)列210-1讀取其承載的已經(jīng)接收到的6個數(shù)據(jù)框并交由閑置硬件編碼器Y進(jìn)行編碼,排程單元220繼續(xù)自串流隊(duì)列210-1讀取其后續(xù)接收的數(shù)據(jù)框并編碼,直到剩余的2個剩余數(shù)據(jù)框都已經(jīng)接收以及編碼。
在一實(shí)施例中,硬件編碼器在開始編碼時,進(jìn)入忙碌狀態(tài),在另一實(shí)施例中,硬件編碼器完成一串流隊(duì)列的滿群框總數(shù)的數(shù)據(jù)框讀取及編碼時,進(jìn)入閑置狀態(tài)。
在一實(shí)施例中,至少一閑置硬件編碼器其中之一,在具有最高接收比例的 未滿群框串流隊(duì)列的剩余數(shù)據(jù)框都已經(jīng)接收并編碼前,不會對其他滿群框串流隊(duì)列或未滿群框串流隊(duì)列進(jìn)行編碼,其中,該具有最高接收比例的未滿群框串流隊(duì)列的該已經(jīng)接收的數(shù)據(jù)框與該剩余數(shù)據(jù)框組成該具有最高接收比例的該未滿群框串流隊(duì)列的滿群框(即,達(dá)到GOFFrameNumber數(shù)量)。
延續(xù)前面的舉例,閑置硬件編碼器Y在完成串流隊(duì)列210-1的滿群框總數(shù)(GOFFrameNumber1)8個數(shù)據(jù)框的編碼后,閑置硬件編碼器Y將可以進(jìn)行其他串流隊(duì)列的編碼。
在一實(shí)施例中,該至少一未滿群框串流隊(duì)列各自的該接收比例,與該至少一未滿群框串流隊(duì)列各自的一解析度級數(shù)成正比。
解析度級數(shù)是依據(jù)串流隊(duì)列的解析度而定的,可以是在初始步驟(圖3A,步驟301)或是在計(jì)算接收比例的步驟(圖3A,步驟305)時決定的。
這里列舉幾個決定解析度級數(shù)的實(shí)施例,但不在此限。例如,面積比例法(Area Ratio method)、窮舉法(Exhaustive method)、分類法(Classification method)、內(nèi)插法(Interpolation method)等,在此以影像來舉例說明。
串流隊(duì)列的解析度(W x H)例如是:(1920x1080)、(1024x768)、(800x600)等。
在面積比例法(Area Ratio method)的一實(shí)施例,例如以1920x1080為基本解析度,這個串流隊(duì)列的解析度級數(shù)的計(jì)算可以下式表示:
解析度級數(shù)=(Wx H)/(1920x1080)
在窮舉法(Exhaustive method)的一實(shí)施例,預(yù)先估算各種不同解析度(如,1920x1080、1024x768、800x600,等)所需的編碼時間,然后計(jì)算這個串流隊(duì)列編碼時間與基本解析度所需編碼時間的比例。例如以1920x1080為基本解析度,這個串流隊(duì)列的解析度級數(shù)的計(jì)算可以下式表示:
解析度級數(shù)=((Wx H)所需編碼時間)/((1920x1080)所需編碼時間)
在分類法(Classification method)的一實(shí)施例,預(yù)先估算各種已知的不同解析度(如,1920x1080、1024x768、800x600等)所需的編碼時間,將各串流隊(duì)列歸類到與其解析度相近的解析度群組,然后計(jì)算這個串流隊(duì)列編碼時間與基本解析度所需編碼時間的比例。例如以1920x1080為基本解析度,假設(shè)這個串流隊(duì)列解析度(W x H)與解析度群組1(Wgroup1 x Hgroup1)相近,則這個串流隊(duì)列被歸類到解析度群組1,這個串流隊(duì)列的解析度級數(shù)的計(jì)算可以下式表示:
解析度級數(shù)=((Wgroup1 x Hgroup1)所需編碼時間)/((1920x1080)所需編碼時間)
在內(nèi)插法(Interpolation method)的一實(shí)施例,預(yù)先估算各種已知的不同解析度(如,1920x1080、1024x768、800x600,等)所需的編碼時間,針對這個串流隊(duì)列解析度(W x H)以面積內(nèi)插方式推算這個串流隊(duì)列編碼時間,然后計(jì)算這個串流隊(duì)列編碼時間與基本解析度所需編碼時間的比例。例如以1920x1080為基本解析度,這個串流隊(duì)列的解析度級數(shù)的計(jì)算可以下式表示:
解析度級數(shù)=(內(nèi)插計(jì)算(Wx H)所需編碼時間)/((1920x1080)所需編碼時間)
在一實(shí)施例中,該至少一未滿群框串流隊(duì)列各自的接收比例,與該至少一未滿群框串流隊(duì)列各自的一滿群框總數(shù)(GOFFrameNumber)成正比。
在一實(shí)施例中,該至少一未滿群框串流隊(duì)列各自的該接收比例,與該至少一未滿群框串流隊(duì)列各自的一復(fù)雜度成正比,其中,該復(fù)雜度是依據(jù)運(yùn)動向量變異數(shù)(motion vector variance)、DCT系數(shù)變異數(shù)(DCT Coefficient variance)或解析度的至少一,但不限于此,并預(yù)先計(jì)算而得。在一實(shí)施例中,串流隊(duì)列的復(fù)雜度是在初始步驟(圖3A,步驟301)計(jì)算的,或在初始步驟的前計(jì)算的。
在一實(shí)施例中,該至少一未滿群框串流隊(duì)列各自的該接收比例,與該至少一未滿群框串流隊(duì)列各自接收剩余數(shù)據(jù)框所需時間成反比,其中,該至少一未滿群框串流隊(duì)列各自的該已經(jīng)接收的數(shù)據(jù)框與該剩余數(shù)據(jù)框組成該未滿群框串流隊(duì)列各自的滿群框(即,達(dá)到GOFFrameNumber數(shù)量)。進(jìn)一步說明如下:
延續(xù)前述的舉例,串流隊(duì)列201-1的滿群框總數(shù)GOFFrameNumber1是8,已經(jīng)接收的數(shù)據(jù)框有6個,所以有2個剩余數(shù)據(jù)框尚未收到。接收2個剩余數(shù)據(jù)框所需時間,例如是(2/數(shù)據(jù)框速率)。接收比例與所需時間成反比。在一實(shí)施例中,數(shù)據(jù)框速率是指串流隊(duì)列每秒內(nèi)所包含的數(shù)據(jù)框數(shù)量。
在一實(shí)施例中,串流隊(duì)列index的接收比例的計(jì)算可以下式表示:
在另一實(shí)施例中,串流隊(duì)列index的接收比例的計(jì)算可以下式表示:
參數(shù)說明如下:
GOFFrameNumberindex:串流隊(duì)列index的滿群框總數(shù)。
ResolutionRateindex:串流隊(duì)列index的解析度級數(shù)。
AlreadyReceivedFramesindex:串流隊(duì)列index的已經(jīng)接收數(shù)據(jù)框數(shù)量。
FrameRateindex:串流隊(duì)列index的數(shù)據(jù)框速率。
RCidnex:串流隊(duì)列index的復(fù)雜度。
在一實(shí)施例中,串流數(shù)據(jù)編碼排程裝置有一個硬件編碼器,在另一實(shí)施例中,串流數(shù)據(jù)編碼排程裝置有一個以上的硬件編碼器。
在圖3A步驟304及306,在一實(shí)施例中,該至少一閑置硬件編碼器其中之一是依據(jù)編碼效率而選定。
在一實(shí)施例中,該至少一閑置硬件編碼器的編碼效率排序是預(yù)先設(shè)定或在初始步驟設(shè)定的(圖3A,步驟304)。
在圖3A步驟306中,當(dāng)該至少一未滿群框串流隊(duì)列包括多個未滿群框串流隊(duì)列,該至少一閑置硬件編碼器包括多個閑置硬件編碼器,排程單元220設(shè)置以使用該至少一閑置硬件編碼器其中之一對該具有最高接收比例的未滿群框串流隊(duì)列的已經(jīng)接收的數(shù)據(jù)框開始進(jìn)行編碼的步驟,在一實(shí)施例中,更包括:使用該至少一閑置硬件編碼器的一具最高編碼效率的閑置硬件編碼器對該具有最高接收比例的未滿群框串流隊(duì)列的已經(jīng)接收的數(shù)據(jù)框開始進(jìn)行編碼,以及使用該至少一閑置硬件編碼器的一具第二高編碼效率的閑置硬件編碼器對該具有第二高接收比例的未滿群框串流隊(duì)列(non-full GOF)的已經(jīng)接收的數(shù)據(jù)框開始進(jìn)行編碼。
上述的編碼效率,例如是編碼速度、硬件架構(gòu)、數(shù)據(jù)存取速度、硬件內(nèi)部運(yùn)算單元數(shù)目等,但不限于此。
在一實(shí)施例中,串流數(shù)據(jù)編碼排程裝置另包括至少一數(shù)據(jù)列(Queue),排程單元220自串流隊(duì)列讀取數(shù)據(jù)框并儲存在這至少一數(shù)據(jù)列(Queue)里,硬件編碼器自至少一數(shù)據(jù)列(Queue)讀取數(shù)據(jù)框進(jìn)行編碼。在另一實(shí)施例中,排程單元220傳送讀取的數(shù)據(jù)框到硬件編碼器230-1、230-2、…、230-N。
在一實(shí)施例中,排程單元220以一處理單元自至少一記憶體裝置讀取至少一可讀取程序碼來實(shí)現(xiàn)排程單元220的功能。
在一實(shí)施例中,上述范例實(shí)施例中提及的上述排程單元220例如是以集成 電路或電路板等組成的硬件裝置,而可分別執(zhí)行上述的功能。
本發(fā)明更提出一種內(nèi)儲程序的電腦可讀取紀(jì)錄媒體,當(dāng)電腦載入該程序并執(zhí)行后,可完成如上述實(shí)施例所載的串流數(shù)據(jù)編碼排程方法。
綜上所述,雖然本發(fā)明已以若干實(shí)施例公開如上,但其并非用以限定本發(fā)明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的更動與修改。因此,本發(fā)明的保護(hù)范圍當(dāng)視后附的權(quán)利要求書保護(hù)范圍所界定者為準(zhǔn)。