本發(fā)明是有關(guān)于一種比特流解碼方法與相關(guān)比特流解碼電路,且特別是有關(guān)于一種時(shí)域可適(temporal scalable)的視頻比特流解碼方法與相關(guān)比特流解碼電路,可減輕解碼負(fù)擔(dān),并流暢地播放視頻。
背景技術(shù):
視頻可表達(dá)豐富生動(dòng)的視覺信息,視頻播放功能也成為現(xiàn)代電子產(chǎn)品的發(fā)展重點(diǎn)。視頻是由一系列依序排列的畫面(frame)所形成;為方便視頻的儲(chǔ)存及傳輸,視頻中的諸畫面會(huì)被編碼至一比特流中。要實(shí)現(xiàn)視頻播放功能,就要先由比特流中解碼出各個(gè)畫面才能予以播放。
視頻解碼可由硬件或軟件的解碼器執(zhí)行,而解碼器的解碼能力受限于其規(guī)格,若視頻的畫面更新率超過解碼器的規(guī)格,則無法流暢地播放視頻。舉例而言,規(guī)格為60fps(frame per second)的解碼器代表該解碼器一秒最多只能解出60個(gè)畫面,而畫面更新率為120fps的視頻對(duì)規(guī)格為60fps的解碼器即為逾越規(guī)格的視頻(over-spec);若用規(guī)格為60fps的解碼器解碼畫面更新率為120fps的視頻,則無法流暢地播放視頻。再者,即使某一視頻并未逾越解碼器的規(guī)格而得以被播放,若播放時(shí)有其它軟件(如前景應(yīng)用程序)或固件要求解碼器釋出或停用部份系統(tǒng)資源,則解碼器的解碼能力也會(huì)受影響,單位時(shí)間中可解碼的畫面會(huì)連帶變少。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明可適當(dāng)?shù)卦谟庠揭?guī)格的視頻中選出哪些畫面可被棄置而不予解碼,使逾越規(guī)格的視頻仍能被流暢地播放,實(shí)現(xiàn)時(shí)域可適性。本發(fā)明的目的之一系提供一種比特流解碼方法,包括:藉由剖析(parsing)該比特流中的一目前畫面的標(biāo)頭獲得該目前畫面的一播放順序,其中該目前畫面屬于一群組;以及, 根據(jù)該目前畫面的該播放順序,判斷解碼該目前畫面或棄置(drop)該目前畫面而不予解碼。其中,根據(jù)該目前畫面的該播放順序并判斷解碼該目前畫面或棄置該目前畫面而不予解碼的步驟包含:根據(jù)該目前畫面的該播放順序,判斷該目前畫面的播放順序是否晚于該群組中各個(gè)先前畫面的播放順序;并且,根據(jù)該目前畫面的播放順序晚于該群組中各個(gè)先前畫面的播放順序的一判斷結(jié)果,解碼該目前畫面。
該方法可更包含:藉由剖析該比特流中的一目前畫面的標(biāo)頭獲得該目前畫面的一或多個(gè)參考畫面;根據(jù)該目前畫面的該一或多個(gè)參考畫面,判斷解碼該目前畫面或棄置該目前畫面而不予解碼。其中,根據(jù)該目前畫面的該一或多個(gè)參考畫面判斷解碼該目前畫面或棄置該目前畫面而不予解碼的步驟包含;根據(jù)該目前畫面的該一或多個(gè)參考畫面,判斷該目前畫面是否一并參考該群組中前一播放順序的畫面與后一播放順序的畫面;根據(jù)該目前畫面一并參考該群組中前一播放順序的畫面與后一播放順序的畫面的一判斷結(jié)果,棄置該目前畫面而不予解碼。根據(jù)該目前畫面的該播放順序判斷解碼該目前畫面或棄置該目前畫面而不予解碼的步驟可更包含:根據(jù)該目前畫面的該播放順序,判斷該目前畫面的播放順序是否為一數(shù)值的整數(shù)倍;根據(jù)該目前畫面的播放順序?yàn)樵摂?shù)值的整數(shù)倍的一判斷結(jié)果,解碼該目前畫面;根據(jù)該目前畫面的播放順序非為該數(shù)值的整數(shù)倍的一判斷結(jié)果,棄置該目前畫面而不予解碼。
本發(fā)明的目的之一系提供一種比特流解碼電路,包括一控制單元與一解碼器,耦接于該控制單元??刂茊卧煽刂平獯a器的運(yùn)作,以實(shí)現(xiàn)本發(fā)明的方法。
為了對(duì)本發(fā)明的上述及其它方面有更佳的了解,下文特舉較佳范例,并配合所附圖式,作詳細(xì)說明如下:
附圖說明
圖1示意一視頻與其群組。
圖2至圖8示意各種相互參考結(jié)構(gòu)的范例,可用以將圖1視頻編碼為比特流。
圖9示意的是依據(jù)本發(fā)明一范例的比特流解碼電路。
圖10示意的是依據(jù)本發(fā)明一范例的流程。
圖11示意的是圖10中相關(guān)步驟的運(yùn)作。
符號(hào)說明
v0:視頻
p1-p2、0-119、pg1-pg2:畫面
g1-g2:群組
b2-b9:比特流
s2a-s2c、s3a-s3c、s4a-s4b、s5a-s5c、s6a-s6c、s7a-s7b:結(jié)構(gòu)
500:電視控制芯片
510:比特流解碼電路
512:控制單元
514:解碼器
520:比特流緩存器
530:后續(xù)電路
1000:流程
1010-1050、1110-1150:步驟
具體實(shí)施方式
本發(fā)明可適當(dāng)?shù)卦谟庠揭?guī)格的視頻中選出哪些畫面可被棄置而不予解碼,使逾越規(guī)格的視頻仍能被流暢地播放,實(shí)現(xiàn)時(shí)域可適性。請(qǐng)參考圖1,圖1示意一視頻v0,其可由一系列畫面依序排列所形成,例如畫面p1、p2、pg1與pg2等。要播放視頻v0時(shí)也是依相同順序顯示各畫面;換言之,視頻v0中的各畫面會(huì)對(duì)應(yīng)一播放順序。在視頻v0中的畫面可形成一或多個(gè)群組,如群組g1與g2;各個(gè)群組可包括一或多個(gè)播放順序連續(xù)的畫面。舉來來說,群組g1包含多個(gè)播放順序連續(xù)的畫面,其中畫面pg1為群組g1中播放順序最早的畫面,群組g2包含多個(gè)播放順序連續(xù)的畫面,其中畫面pg2為群組g2中播放順序最早的畫面。
視頻v0可依照畫面間的交互參考結(jié)構(gòu)而被編碼為比特流。在現(xiàn)代的視頻編解碼標(biāo)準(zhǔn)(如MPEG4、H.264及/或H.265等)中,在編碼一畫面時(shí)可以不參考其它畫面、可以只參考一個(gè)播放順序在前的畫面、或者同時(shí)參考一個(gè)播放 順序在前的畫面與一個(gè)播放順序在后的畫面。畫面間相互參考的關(guān)系會(huì)影響各畫面在比特流中的順序。
延續(xù)圖1,請(qǐng)參考圖2至圖7;圖2至圖7舉例示意各種參考結(jié)構(gòu)。為方便說明,以下會(huì)以“畫面i”代表“播放順序?yàn)閕的畫面”;各群組中播放順序最早的畫面為畫面0,播放順序緊接在后的畫面為畫面1,以此類推。各畫面的播放順序可由播放順序計(jì)數(shù)值(POC,picture order count)得知。在實(shí)務(wù)上,對(duì)播放順序緊鄰的前后兩畫面而言,兩者的播放順序計(jì)數(shù)值可以是遞增1或遞增2,但為方便說明,此兩畫面的播放順序會(huì)被視為以1遞增。
如圖2所示,群組g1系依據(jù)“二畫面為一單位”的規(guī)律結(jié)構(gòu)(如結(jié)構(gòu)s2a、s2b與s2c)而被編碼為一比特流b2。在結(jié)構(gòu)s2a中,畫面1有兩個(gè)箭頭分別指向畫面0與2,代表畫面1為雙向預(yù)測(cè)畫面(B畫面),其被編碼時(shí)會(huì)同時(shí)參考畫面0與2。另一方面,畫面2有一個(gè)箭頭指向畫面0,代表畫面2為單向預(yù)測(cè)畫面(P畫面),其被編碼時(shí)只參考畫面0。因應(yīng)結(jié)構(gòu)s2a的相互參考關(guān)系,在比特流b2中,編碼后的畫面0與2會(huì)排列在畫面1之前;當(dāng)解碼器解碼比特流b2時(shí),便可依序先解碼出畫面0,再參考畫面0解碼出2,再參考畫面0與2解碼出畫面1。在結(jié)構(gòu)s2b中,畫面3參考畫面2與4,故畫面4會(huì)在比特流b2中排列在畫面3之前。在結(jié)構(gòu)s2c中,畫面5參考畫面4與6,故畫面6會(huì)在比特流b2中排列在畫面5之前。
編碼后畫面在比特流中的順序可稱為解碼順序。由圖2可知,解碼順序不會(huì)等于播放順序。
在圖2的例子中,結(jié)構(gòu)s2a、s2b與s2c為相同的結(jié)構(gòu),因?yàn)槠浣换⒖缄P(guān)系均符合相同的參考態(tài)樣,即:“畫面(2i)參考畫面(2i-2),畫面(2i-1)參考畫面(2i-2)與畫面(2i)”。
圖3中,群組g1中的畫面系依據(jù)“三畫面為一單位”的規(guī)律結(jié)構(gòu)(如結(jié)構(gòu)s3a、s3b與s3c)而被編碼為比特流b3;結(jié)構(gòu)s3a、s3b與s3c為相同的結(jié)構(gòu),因?yàn)槠浣换⒖缄P(guān)系均符合相同的參考態(tài)樣,即:“畫面(3i)參考畫面(3i-3),畫面(3i-2)參考畫面(3i-3)與畫面(3i),畫面(3i-1)參考畫面(3i-3)與畫面(3i)”。
類似圖2與圖3,在圖4中,群組g1中的畫面系依據(jù)“四畫面為一單位” 的規(guī)律結(jié)構(gòu)(如結(jié)構(gòu)s4a與s4b)而被編碼為比特流b4。
在圖5中,群組g1中的畫面系依據(jù)“四畫面為一單位”的四雙元(dyadic)規(guī)律結(jié)構(gòu)(如結(jié)構(gòu)s5a、s5b與s5c)而被編碼至比特流b5。結(jié)構(gòu)s5a、s5b與s5c是相同的,具有共通的參考態(tài)樣:畫面(4i)參考畫面(4i-4)、畫面(4i-2)參考畫面(4i)與畫面(4i-4)、畫面(4i-3)參考畫面(4i-4)與畫面(4i-2)、畫面(4i-1)參考畫面(4i-2)與畫面(4i)。
在圖6中,群組g1中的畫面系依據(jù)“八畫面為單位”的八雙元規(guī)律結(jié)構(gòu)(如結(jié)構(gòu)s6a、s6b與s6b)而被編碼至比特流b6。
在圖7中,群組g1中的畫面系依據(jù)“十六畫面為一單位”的十六雙元規(guī)律結(jié)構(gòu)(如結(jié)構(gòu)s7a與s7b)而被編碼至比特流b7。
同一群組的畫面可依據(jù)重復(fù)的同一種結(jié)構(gòu)(如圖2至圖7的例子)而被編碼至比特流中,也可以有部份畫面是以不同結(jié)構(gòu)被編碼至比特流中。請(qǐng)參考圖8,其系舉例說明混合不同結(jié)構(gòu)的編碼。在圖8例子中,群組g1有畫面0至畫面119,畫面0至112是重復(fù)以八畫面為一單位的八雙元結(jié)構(gòu)s6a、s6b等至s6c被編碼至比特流b8中;畫面112至116以四畫面為一單位的四雙元結(jié)構(gòu)(如結(jié)構(gòu)s5a)被編碼至比特流b8中;畫面116至118以兩畫面為一單位的結(jié)構(gòu)(如結(jié)構(gòu)s2a)被編碼至比特流b8中;畫面119可自成一結(jié)構(gòu)。
請(qǐng)參考圖9,圖9示意的是依據(jù)本發(fā)明一范例的比特流解碼電路510。比特流解碼電路510可包括一控制單元512與一解碼器514;控制單元512耦接于解碼器514。舉例而言,比特流解碼電路510可被包含于一電視控制芯片500中。控制單元512可為一邏輯運(yùn)算與執(zhí)行單元,可執(zhí)行軟件或固件,據(jù)以控制解碼器514。解碼器514可為一硬件電路;在控制單元512的控制下,解碼器514可自電視控制芯片500中的一比特流緩存器520存取一比特流中的畫面,并解碼出比特流中的畫面以供電視控制芯片500中的后續(xù)電路530進(jìn)行后續(xù)處理(post processing)后,輸出至屏幕(未繪示)以進(jìn)行播放,其中后續(xù)處理可以包括:對(duì)畫面進(jìn)行時(shí)域?yàn)V波、加入特效、合成、剪輯、縮放、調(diào)整速度(例如插補(bǔ)畫面以改為慢動(dòng)作視頻)等等。其中,比特流例如可以包括圖1至圖8的比特流b2、b3、b4、b5、b6、b7或/及b8。當(dāng)比特流的畫面更新率逾越解碼器514的解碼規(guī)格,以及/或者,當(dāng)解碼器514需釋出或停用系統(tǒng)資源而影響其 解碼能力時(shí),控制單元512可執(zhí)行如圖10所示的流程1000,以適當(dāng)?shù)貤壷帽忍亓髦心承┊嬅娑挥杞獯a,使比特流中的視頻仍可被播放。流程1000將詳述如下。
步驟1010:剖析一比特流中的一畫面的標(biāo)頭以獲得其播放順序與其參考畫面。以圖6為例,假設(shè)一比特流包括比特流b6,一范例中,控制單元512可自電視控制芯片500中的比特流緩存器520存取畫面0的標(biāo)頭,并剖析畫面0的標(biāo)頭以獲得畫面0的播放順序?yàn)?與其未參考任何畫面;另一范例中,控制單元512可自電視控制芯片500中的比特流緩存器520存取畫面8,并剖析畫面8的標(biāo)頭以獲得畫面8的播放順序?yàn)?,以及畫面8的參考畫面為畫面0;另一范例中,控制單元512可自電視控制芯片500中的比特流緩存器520存取畫面4,并剖析畫面4的標(biāo)頭以獲得畫面4的播放順序?yàn)?,以及畫面4的參考畫面為畫面0與畫面8,以此類推。
步驟1020:根據(jù)該畫面的播放順序判斷其為一主畫面。在一范例中,若目前畫面的播放順序晚于前一主畫面的播放順序,則判斷目前畫面為一主畫面。以圖6為例,假設(shè)比特流包括比特流b6,控制單元512會(huì)依照解碼順序(畫面0、8、4、2、1、3、…)分別判斷比特流中的各畫面是否為一主畫面。首先,控制單元512會(huì)判斷畫面0為一第一主畫面,由于畫面0沒有前一主畫面可供比較;接下來,控制單元512判斷畫面8為一第二主畫面,因?yàn)楫嬅?的播放順序晚于前一主畫面0的播放順序;接下來,控制單元512不會(huì)判斷畫面4為一主畫面,因畫面4的播放順序并未晚于前一主畫面8的播放順序。同理,后續(xù)畫面2、1、3、6、5、7都不會(huì)被判斷為主畫面,因畫面其播放順序均未晚于前一主畫面8的播放順序;接著,控制單元512會(huì)判斷畫面16為一第三主畫面,因?yàn)楫嬅?6的播放順序晚于前一主畫面8的播放順序??偨Y(jié)來說,在比特流b6中,畫面0、8、16會(huì)被分別判斷為第一主畫面、第二主畫面及第三主畫面。
步驟1030:在該畫面被判斷為一主畫面后,根據(jù)該畫面的播放順序判斷該比特流處于一穩(wěn)定狀態(tài)。在一范例中,若第三主畫面與第二主畫面間的播放順序差異,相等于第二主畫面與其第一主畫面間的播放順序差異,則判斷該比特流處于一穩(wěn)定狀態(tài)。承上例,在畫面16被判斷為一第三主畫面后,由于第 三主畫面16與第二主畫面8間的播放順序差異8(16-8),相等于第二主畫面8與第一主畫面間0的播放順序差異8(8-0),因此控制單元512會(huì)判斷比特流處于一穩(wěn)定狀態(tài)。
步驟1040:在該比特流被判斷處于穩(wěn)定狀態(tài)后,預(yù)測(cè)該比特流適用的可棄模式。在一范例中,若第二主畫面與第三主畫面間的畫面(不包含第二主畫面與第三主畫面)中,播放順序?yàn)橐粩?shù)値K的倍數(shù)的畫面均未參考播放順序不為數(shù)値K的倍數(shù)的畫面中任一畫面,則預(yù)測(cè)該比特流適用1/K可棄模式,1/K可棄模式代表每K個(gè)畫面中可以只解碼其中之一,其它則不予解碼。承上例,并以數(shù)値K=2為例,比特流被判斷處于穩(wěn)定狀態(tài)后,第二主畫面8與第三主畫面間16的畫面1~7中,播放順序?yàn)?的倍數(shù)的畫面有畫面2、4、6,播放順序不為2的倍數(shù)的畫面有畫面1、3、5、7,由于畫面2的參考畫面為畫面0、4,畫面4的參考畫面為畫面0、8,畫面6的參考畫面為畫面4、8,換句話說,播放順序?yàn)?的倍數(shù)的畫面2、4、6均未參考播放順序不為2的倍數(shù)的畫面1、3、5、7中任一畫面,因此控制單元512可預(yù)測(cè)該比特流適用1/2可棄模式,換句話說,即使解碼器514僅解碼該比特流中一半的畫面,而不解碼另一半的畫面,亦不會(huì)使得視頻無法播放。
須注意的是,在控制單元512預(yù)測(cè)出比特流適用的可棄模式前,控制單元512會(huì)對(duì)比特流中的所有畫面進(jìn)行解碼。承上例,在控制單元512根據(jù)畫面16預(yù)測(cè)出比特流適用的可棄模式前,控制單元512會(huì)控制解碼器514對(duì)畫面0~8與畫面16進(jìn)行解碼。
步驟1050:在預(yù)測(cè)的可棄模式下,判斷解碼或棄置該比特流中的另一畫面。在一范例中,請(qǐng)參閱圖11,若一目前畫面被判斷為一主畫面(步驟1110),則解碼該畫面(步驟1120);承上例,控制單元512根據(jù)畫面0、8、4、…、16預(yù)測(cè)比特流可適用于1/2可棄模式后,在比特流接下來的畫面12、10、9、…、24中,由于畫面24的播放順序晚于前一主畫面16的播放順序,因此控制單元512會(huì)判斷畫面24為一主畫面,進(jìn)而控制解碼器514對(duì)畫面24進(jìn)行解碼。
若一畫面未被判斷為一主畫面(步驟1110),且一并參考其前一播放順序與后一播放順序的畫面(步驟1130),則棄置該畫面而不予解碼(步驟1140);承上例,控制單元512根據(jù)畫面0、8、4、…、16預(yù)測(cè)比特流可適用于1/2可 棄模式后,比特流接下來的畫面12、10、9、…、24中,畫面9、11、13、15的播放順序均未晚于前一主畫面16的播放順序,因此控制單元512不會(huì)判斷畫面9、11、13、15為主畫面,又畫面9的參考畫面為畫面8與畫面10,畫面11的參考畫面為畫面10與畫面12,畫面13的參考畫面為畫面12與畫面14,畫面15的參考畫面為畫面14與畫面16,換句話說,畫面9、11、13、15均一并參考其前一播放順序與后一播放順序的畫面,因此控制單元512會(huì)控制解碼器514棄置畫面9、11、13、15而不予解碼。
若一畫面未被判斷為一主畫面(步驟1110),未一并參考其前一播放順序與后一播放順序的畫面(步驟1130),且其播放順序?yàn)閿?shù)値K的整數(shù)倍(步驟1150),則解碼該畫面(步驟1120);承上例,控制單元512根據(jù)畫面0、8、4、…、16預(yù)測(cè)比特流可適用于1/2可棄模式后,比特流接下來的畫面12、10、9、…、24中,畫面10、12、14的播放順序均未晚于前一主畫面16的播放順序,因此控制單元512不會(huì)判斷畫面10、12、14為主畫面,又畫面10的參考畫面為畫面8與畫面12(非畫面9與畫面11),畫面12的參考畫面為畫面8與畫面16(非畫面11與畫面13),畫面14的參考畫面為畫面12與畫面16(非畫面13與畫面15),換句話說,畫面10、12、14均未一并參考其前一播放順序與后一播放順序的畫面,因此控制單元512會(huì)控制解碼器514對(duì)畫面24進(jìn)行解碼。
綜上所述,控制單元512根據(jù)畫面0、8、4、…、16預(yù)測(cè)比特流可適用于1/2可棄模式后,比特流接下來的畫面12、10、9、…、24經(jīng)過如圖11所示的流程1100后,控制單元512會(huì)控制解碼器514對(duì)畫面10、12、14、24解碼,并棄置畫面9、11、13、15而不予解碼。由圖6可知,畫面10、12、14、24均未參考畫面9、11、13、15,因此即使棄置了畫面9、11、13、15而不予解碼,亦不會(huì)造成畫面10、12、14、24無法解碼。如此一來,解碼器514可解碼其畫面更新率為解碼器514的規(guī)格兩倍的視頻,例如,規(guī)格為60fps的解碼514便可解碼畫面更新率為120fps的視頻,使畫面更新率為120fps的視頻仍可被播放,實(shí)現(xiàn)了時(shí)域可適性。
綜上所述,雖然本發(fā)明已以較佳范例揭露如上,然其并非用以限定本發(fā)明。本發(fā)明所屬技術(shù)領(lǐng)域中具有通常知識(shí)者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng) 可作各種的更動(dòng)與潤飾。因此,本發(fā)明的保護(hù)范圍當(dāng)視后附的權(quán)利要求所界定者為準(zhǔn)。