本發(fā)明針對(duì)數(shù)據(jù)壓縮和解壓縮,并且更特別地針對(duì)從音頻/視頻解碼器中的時(shí)間同步中的中斷中恢復(fù)。
背景技術(shù):
數(shù)據(jù)壓縮用于減少存儲(chǔ)、發(fā)送或重建(解碼和回放)的數(shù)據(jù)的量,尤其是對(duì)于視頻內(nèi)容。解碼以適合于回放的格式從壓縮數(shù)據(jù)中恢復(fù)音頻和視頻內(nèi)容。可獲得用于高效地編碼和解碼壓縮信號(hào)的格式的各種標(biāo)準(zhǔn)。通常用于運(yùn)動(dòng)圖像和關(guān)聯(lián)的音頻的一些標(biāo)準(zhǔn)是國際標(biāo)準(zhǔn)組織(ISO)、國際電工委員會(huì)(IEC)和運(yùn)動(dòng)圖像專家組(MPEG)標(biāo)準(zhǔn)、以及諸如ITU-T H.262|ISO/IEC13818(MPEG2)和ITU-T H.264之類的國際電信聯(lián)盟(ITU)建議、VPx標(biāo)準(zhǔn)和VC-1標(biāo)準(zhǔn)。
在ISO/IEC13818(MPEG2)標(biāo)準(zhǔn)中,編碼的視頻位流的最高語法結(jié)構(gòu)是視頻序列。視頻序列開始于序列報(bào)頭,該序列報(bào)頭可以可選地被一組圖像報(bào)頭跟隨,并且然后被一個(gè)或多個(gè)編碼幀跟隨。編碼的位流中編碼幀的次序是解碼器處理它們的次序,但不一定是用于顯示的正確的次序。
除其它信息之外,程序映射表指定哪些分組標(biāo)識(shí)符(PID)與因此哪些基本流關(guān)聯(lián)以形成每個(gè)程序。該表還為每個(gè)程序指示攜帶程序時(shí)鐘恢復(fù)數(shù)據(jù)(PCR)的傳輸流分組的PID。
用于各種視頻壓縮標(biāo)準(zhǔn)的解碼過程包括:以接收不同的圖像項(xiàng)的次序,為所述不同的圖像項(xiàng)解碼壓縮數(shù)據(jù),所述次序可通過在輸入傳輸位流中的解碼時(shí)間戳(DTS)來定義;根據(jù)運(yùn)動(dòng)矢量或幀內(nèi)預(yù)測模式組合幀間編碼項(xiàng)和幀內(nèi)編碼項(xiàng);重新排序圖像項(xiàng)并將視頻數(shù)據(jù)與音頻數(shù)據(jù)同步以用于呈現(xiàn)。
為了實(shí)現(xiàn)音頻和視頻之間的時(shí)間同步,輸入傳輸位流還通常包含呈現(xiàn)時(shí)間戳(PTS)。然而,中斷可能出現(xiàn)在時(shí)間戳中,例如由于數(shù)據(jù)在從源開始的傳輸(流送或廣播)期間被丟棄、回放循環(huán)期間的環(huán)繞、在創(chuàng)建或編碼諸如拼接文件之類的源文件期間的時(shí)間戳跳躍、重新啟動(dòng)播放列表或源服務(wù)器、或者由PCR 定義的位流時(shí)鐘和時(shí)間戳之間的重新同步。
在解碼器處由丟失的PTS造成的中斷可由解碼器解復(fù)用器(demux)從傳輸流中檢測。在解碼器處使用PCR復(fù)位解碼器中的本地系統(tǒng)時(shí)鐘來從丟失的PTS中恢復(fù)將需要系統(tǒng)時(shí)鐘控制器復(fù)位本地系統(tǒng)時(shí)鐘和軟件支持。在解碼器處通過解碼器渲染模塊復(fù)位本地系統(tǒng)時(shí)鐘來從丟失的PTS中恢復(fù)將需要運(yùn)行時(shí)可配置的本地系統(tǒng)時(shí)鐘和軟件支持。在可變持續(xù)時(shí)間采樣的情況下,在解碼器處通過解碼器解復(fù)用器基于在中斷之前接收并通過視頻或音頻幀持續(xù)時(shí)間校正的PTS來使用丟失的PTS的預(yù)測來從丟失的PTS中恢復(fù)會(huì)提供錯(cuò)誤的預(yù)測。
具有下述音頻/視頻解碼器將是有利的:其中從呈現(xiàn)時(shí)間戳中的中斷中可靠恢復(fù)可通過預(yù)測一個(gè)或多個(gè)丟失的呈現(xiàn)時(shí)間戳來實(shí)現(xiàn),而不復(fù)位解碼器中的本地系統(tǒng)時(shí)鐘。
附圖說明
本發(fā)明連同其目的和優(yōu)點(diǎn)可通過參考附圖中所示的實(shí)施例的以下描述被最佳地理解。圖中的要素是為了簡明和清楚而被圖示,并且不一定按比例繪制。
圖1是根據(jù)本發(fā)明的實(shí)施例的視頻和音頻解碼器的示意性框圖;
圖2是可在實(shí)現(xiàn)圖1的多核視頻解碼器中使用的數(shù)據(jù)處理系統(tǒng)的示意性框圖;
圖3是圖1的解碼器的操作的示例的流程圖;
圖4是在圖1的解碼器的操作的一個(gè)場景中出現(xiàn)的信號(hào)的時(shí)序圖;以及
圖5是在圖1的解碼器的操作的另一個(gè)場景中出現(xiàn)的信號(hào)的時(shí)序圖。
具體實(shí)施方式
圖1圖示根據(jù)本發(fā)明的實(shí)施例的用于解碼壓縮音頻和視頻數(shù)據(jù)的解碼器100。解碼器100在下面被描述為用于解碼根據(jù)ITU-T H.262|ISO/IEC13818(MPEG2)標(biāo)準(zhǔn)壓縮的數(shù)據(jù),但應(yīng)該理解:解碼器100可適于和用于解碼根據(jù)其它標(biāo)準(zhǔn)壓縮的數(shù)據(jù)。解碼器100解碼來自諸如調(diào)諧器之類的源102或來自網(wǎng)絡(luò)的包含壓縮視頻圖像和音頻數(shù)據(jù)的廣播分組化的基本位流(PES)。該P(yáng)ES還包含呈現(xiàn)時(shí)間戳(PTS)序列,用于同步音頻和視頻及音頻數(shù)據(jù)的呈現(xiàn)。解碼器100包括解復(fù)用器和控制解碼器模塊104,用于從分組化的基本位流(PES)恢復(fù)(retrieve)基本位流(ES)。解碼器100還包括:本地時(shí)鐘106;以及呈現(xiàn)解碼器模塊,解碼恢復(fù)的基本位流以用于呈現(xiàn)。解復(fù)用器和控制解碼器模塊104 通過視頻緩沖器110向視頻解碼器108提供視頻ES,并通過音頻緩沖器114向音頻解碼器112提供音頻ES。解復(fù)用器和控制解碼器模塊104還提供從PES解碼的系統(tǒng)控制數(shù)據(jù)。視頻解碼器108的輸出可以是YUV格式,而音頻解碼器112的輸出可以是線性脈沖編碼調(diào)制(LPCM)格式。視頻和音頻信號(hào)具有不同且變化的延遲(模塊104的輸入和來自視頻及音頻解碼器108和112的輸出之間的通過時(shí)間),并且包含實(shí)現(xiàn)視頻和音頻呈現(xiàn)的同步的PTS。解碼的視頻和音頻信號(hào)在視頻渲染設(shè)備116和音頻渲染設(shè)備118上被呈現(xiàn)給觀看者,由從本地時(shí)鐘106的時(shí)鐘信號(hào)中識(shí)別渲染時(shí)間的PTS來同步,其中本地時(shí)鐘106本身與由PCR信號(hào)表示的系統(tǒng)時(shí)鐘同步。
圖2是可在實(shí)現(xiàn)解碼器100中使用的數(shù)據(jù)處理系統(tǒng)200的示意性框圖。數(shù)據(jù)處理系統(tǒng)200包括:耦合到存儲(chǔ)器204的處理器202,其中存儲(chǔ)器204可在并行解碼器100中提供緩沖器;以及耦合到存儲(chǔ)器204的另外的存儲(chǔ)器或存儲(chǔ)裝置206。數(shù)據(jù)處理系統(tǒng)200還包括:呈現(xiàn)設(shè)備208、輸入/輸出接口210和軟件212,呈現(xiàn)設(shè)備208可以是顯示重建的圖像數(shù)據(jù)以及播放音頻數(shù)據(jù)的視頻渲染設(shè)備116和音頻渲染設(shè)備118。軟件212包括操作系統(tǒng)軟件214、應(yīng)用程序216和數(shù)據(jù)218。除了用于實(shí)現(xiàn)上述壓縮視頻圖像數(shù)據(jù)的解碼的算法和其它軟件之外,數(shù)據(jù)處理系統(tǒng)200通常在本領(lǐng)域中已知。當(dāng)軟件或程序正在處理器202上執(zhí)行時(shí),處理器變成用于進(jìn)行在處理器202上運(yùn)行的軟件或應(yīng)用代碼的步驟或指令的“裝置(menas-for)”。也就是說,如由本領(lǐng)域技術(shù)人員已知的,對(duì)于不同指令和與指令關(guān)聯(lián)的不同數(shù)據(jù),由于不同的寄存器值等等,處理器202的內(nèi)部電路具有不同狀態(tài)。因此,用于本文所述的結(jié)構(gòu)的任何“裝置(means-for)”涉及處理器202,因?yàn)樗M(jìn)行本文公開的方法的步驟。
在解碼器100中,如果中斷出現(xiàn)在PTS序列中,則解復(fù)用器和控制解碼器模塊104提供在中斷之后的PTS的預(yù)測TSP,該預(yù)測以在檢測到中斷時(shí)在基本位流的數(shù)據(jù)中的最后的PTS是否仍然有效為條件。在解碼器100中,如果當(dāng)中斷出現(xiàn)在PTS序列中時(shí)來自基本位流的數(shù)據(jù)中的最后的PTS仍然有效,則解復(fù)用器和控制解碼器模塊104提供在中斷之后的PTS的預(yù)測TSP,該預(yù)測基于根據(jù)在檢測到中斷之前接收的PTS使用基本位流中采樣數(shù)據(jù)的定義的持續(xù)時(shí)間TDURATION的外推(extrapolation)。如果當(dāng)檢測到中斷時(shí)來自基本位流的數(shù)據(jù)中的最后的PTS已經(jīng)失效,在中斷的檢測之后的PTS的預(yù)測TSP基于使用定義的 持續(xù)時(shí)間TLATENCY外推由本地時(shí)鐘106所指示的當(dāng)前時(shí)間TM。如果其指示的渲染時(shí)間TSMIN晚于由本地時(shí)鐘106指示的當(dāng)前時(shí)間TM(TSMIN>TM),則PTS仍然有效,并且如果由本地時(shí)鐘106指示的當(dāng)前時(shí)間TM已經(jīng)晚于PTS指示的渲染時(shí)間TSMIN(TSMIN<TM),則PTS已經(jīng)失效。PTS的有效性可由數(shù)據(jù)是否仍然存在于從解復(fù)用器和控制解碼器模塊104的輸入到來自呈現(xiàn)解碼器模塊108的輸出的流水線104、110、108中來定義。基于由本地時(shí)鐘指示的當(dāng)前時(shí)間TM的預(yù)測TSP可使用從來自解復(fù)用器和控制解碼器模塊104的輸出到來自渲染模塊116、118的輸出的延遲的定義的持續(xù)時(shí)間TLATENCY來外推。
解復(fù)用器和控制解碼器模塊104可在中斷之后基于使用定義的數(shù)據(jù)(在中斷的檢測之前接收的PTS,或者由本地時(shí)鐘指示的當(dāng)前時(shí)間)的外推來提供第一PTS的預(yù)測TSP,并且在中斷之后基于第一PTS的預(yù)測TSP提供隨后的PTS的調(diào)整。隨后的PTS的調(diào)整可在中斷之后使用隨后的PTS和第一PTS的接收值之間的差(TN+1-TN),(TN+2-TN)來外推第一PTS的預(yù)測TSP。
當(dāng)分組化的基本位流PES包含在不同軌道中的具有各自的PTS序列的壓縮視頻圖像和音頻數(shù)據(jù)時(shí),可以只有在所有PTS序列中檢測到中斷的情況下才調(diào)整PTS。
圖3圖示解碼器100的示例的操作的方法300。該方法300開始于在302處接收PES。在304處,解復(fù)用器和控制解碼器模塊104檢查PES中PTS的連續(xù)性。如果沒有發(fā)現(xiàn)中斷,則解碼器100處理解碼PES并周期性地返回到步驟304。如果在306處發(fā)現(xiàn)中斷,則解復(fù)用器和控制解碼器模塊104檢查中斷是否涉及PES的所有軌道,如果不是,則解碼器100處理解碼PES并周期性地返回到步驟304。如果中斷涉及PES的所有軌道,則在310處,解復(fù)用器和控制解碼器模塊104找到由在檢測到中斷之前在其輸入處的最后的PTS指示的呈現(xiàn)時(shí)間TSMIN,并且還在312處在檢測到中斷時(shí)得到本地時(shí)鐘106指示的時(shí)間。在314處,通過計(jì)算參數(shù)TPIPELINE=TSMIN-TM,解復(fù)用器和控制解碼器模塊104檢查來自基本位流的數(shù)據(jù)是否仍然存在于從解復(fù)用器和控制解碼器模塊104的輸入到來自呈現(xiàn)解碼器模塊108的輸出的流水線104、110、108中,以檢查在中斷之前接收的最后的PTS是否仍然有效。如果TPIPELINE為正,并且因此流水線104、110、108在其緩沖器中仍然具有ES數(shù)據(jù),則在316處,在中斷之后的PTS N的預(yù)測TSP基于從TSMIN(在檢測到中斷之前接收的最后的PTS)使用 基本位流中視頻或音頻采樣數(shù)據(jù)的定義的持續(xù)時(shí)間TDURATION外推TSP=TSMIN+TDURATION。如果TPIPELINE為負(fù),并且因此流水線104、110、108在其緩沖器中不再具有ES數(shù)據(jù),則在318處,在中斷之后的PTSN的預(yù)測TSP基于外推TSP=TM+TLATENCY,該外推是從由本地時(shí)鐘106指示的當(dāng)前時(shí)間TM使用從來自解復(fù)用器和控制解碼器模塊104的輸出至少到來自呈現(xiàn)解碼器模塊108、112的輸出的延遲的定義的持續(xù)時(shí)間TLATENCY來外推得到的。在相同基礎(chǔ)上調(diào)整所有軌道的PTS。在PTS N之后的隨后的PTS N+1、N+2、...使用PTS N的預(yù)測TSPN以及由連續(xù)的PTS N、N+1、N+2、...指示的時(shí)間TSN和時(shí)間TS(N+1)、TS(N+2)、...之間的差來調(diào)整:
TSP(N+1)=TSPN+(TS(N+1)-TSN)
TSP(N+2)=TSPN+(TS(N+2)-TSN)。
圖4和5以圖形方式圖示方法300。在每個(gè)圖中,時(shí)序圖的上部線表示輸出連續(xù)的PTS 0、1、2、N、N+1、N+2到解復(fù)用器和控制解碼器模塊104的輸出緩沖器(及其輸入,其處理時(shí)間被假定為可忽略不計(jì))的時(shí)間。在緊接在PTS N之前在由本地時(shí)鐘106指示的當(dāng)前時(shí)間TM檢測到中斷。從來自解復(fù)用器和控制解碼器模塊104的輸出到來自渲染模塊116、118的相應(yīng)的輸出的延遲的持續(xù)時(shí)間TLATENCY由從時(shí)序圖的上部線到下部線的虛線箭頭圖示,下部線表示相對(duì)于本地時(shí)鐘106由每個(gè)PTS所指示的呈現(xiàn)的時(shí)間。預(yù)測由粗體虛線箭頭表示。
圖4圖示一種場景,其中當(dāng)中斷在TM處出現(xiàn)在PTS序列中時(shí),來自基本位流的數(shù)據(jù)仍然存在于從來自解復(fù)用器和控制解碼器模塊104的輸入到來自呈現(xiàn)解碼器模塊108的輸出的流水線104、110、108中,使得在來自基本位流的數(shù)據(jù)中的最后的PTS 2仍然有效。解復(fù)用器和控制解碼器模塊104計(jì)算參數(shù)TPIPELINE=TSMIN-TM,其中TSMIN=T2,并且TM近似等于T1,從而TPIPELINE為正。在中斷之后的第一個(gè)PTS N的預(yù)測TSP=TSMIN+TDURATION基于從TSMIN=T2(在檢測到中斷之前接收的最后的PTS)使用基本位流中連續(xù)的視頻采樣數(shù)據(jù)之間的持續(xù)時(shí)間TDURATION(諸如(T2-T1))來外推。在這種場景中,預(yù)測TSP近似等于T3。
圖5圖示一種場景,其中當(dāng)中斷在TM處出現(xiàn)在PTS序列中時(shí),來自基本位流的數(shù)據(jù)不再存在于從解復(fù)用器和控制解碼器模塊104的輸入到來自呈現(xiàn)解碼器模塊108的輸出的流水線104、110、108中,使得來自基本位流的數(shù)據(jù)中 的最后的PTS4(以及3)已經(jīng)失效。從3開始的PTS丟失(由點(diǎn)劃線箭頭圖示),并且在檢測到中斷之前不到達(dá)。解復(fù)用器和控制解碼器模塊104計(jì)算參數(shù)TPIPELINE=TSMIN-TM,其中TSMIN=T2,并且TM近似等于T4,從而TPIPELINE為負(fù)。在中斷之后的第一個(gè)PTS N的預(yù)測TSP=TM+TLATENCY基于從由本地時(shí)鐘106指示的當(dāng)前時(shí)間TM的外推,該外推是使用從來自解復(fù)用器和控制解碼器模塊104的輸出(例如在近似等于時(shí)間T0的PTS 2處)到來自渲染模塊116、118的相應(yīng)的輸出(在時(shí)間T2處)的延遲的定義的持續(xù)時(shí)間TLATENCY來外推的。在這種場景中,預(yù)測TSP近似等于T6。
本發(fā)明可至少部分地在非暫態(tài)機(jī)器可讀介質(zhì)中實(shí)現(xiàn),該非暫態(tài)計(jì)算機(jī)可讀介質(zhì)包含用于在計(jì)算機(jī)系統(tǒng)上運(yùn)行的計(jì)算機(jī)程序,該程序至少包括代碼部分,用于在諸如計(jì)算機(jī)系統(tǒng)之類的可編程裝置上運(yùn)行時(shí)執(zhí)行根據(jù)本發(fā)明的方法的步驟,或者使得可編程裝置能夠執(zhí)行根據(jù)本發(fā)明的設(shè)備或系統(tǒng)的功能。
計(jì)算機(jī)程序可被內(nèi)部存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上,或者經(jīng)由計(jì)算機(jī)可讀傳輸介質(zhì)被發(fā)送到計(jì)算機(jī)系統(tǒng)。
在前述說明書中,已經(jīng)參考本發(fā)明的實(shí)施例的具體示例來描述本發(fā)明。然而,明顯的是:可在其中做出各種修改和改變而不脫離如在所附權(quán)利要求中闡述的本發(fā)明的更寬的精神和范圍。
此外,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到:上述操作之間的邊界僅僅用作說明。多個(gè)操作可被組合成單個(gè)操作,單個(gè)操作可被分布在另外的操作中,并且各操作可在時(shí)間上被至少部分地重疊執(zhí)行。此外,替代實(shí)施例可包括特定操作的多個(gè)實(shí)例,并且操作的次序可在各種其它實(shí)施例中改變。
在權(quán)利要求中,詞語“包括”或“具有”不排除存在除了權(quán)利要求中所列出的以外的其它要素或步驟。此外,如本文所使用的,術(shù)語“a”或“an”被定義為一個(gè)或一個(gè)以上。另外,在權(quán)利要求中諸如“至少一個(gè)”和“一個(gè)或多個(gè)”之類的引導(dǎo)性短語的使用不應(yīng)當(dāng)被解釋為暗示:通過不定冠詞“a”或“an”引入的另一個(gè)權(quán)利要求要素將包含這樣引入的權(quán)利要求要素的任何特定權(quán)利要求限制到只包含一個(gè)這樣的要素的發(fā)明,即使當(dāng)相同的權(quán)利要求包括引導(dǎo)性短語“一個(gè)或多個(gè)”或“至少一個(gè)”以及諸如“a”或“an”之類的不定冠詞。這同樣適用于定冠詞的使用。除非另有說明,否則諸如“第一”和“第二”之類的術(shù)語用于任意區(qū)分這樣的術(shù)語描述的要素。因此,這些術(shù)語不一定旨在指示這樣的要素的時(shí)間或其它優(yōu)先次 序。在相互不同的權(quán)利要求中列舉某些措施的純粹的事實(shí)不指示這些措施的組合不能被有利地使用。