技術(shù)領(lǐng)域
本文所論述的實(shí)施方式涉及在不對(duì)經(jīng)編碼的視頻數(shù)據(jù)進(jìn)行解碼的情況下能夠?qū)λ鲆曨l數(shù)據(jù)進(jìn)行編輯的視頻解碼編碼裝置和視頻編碼方法,并且還涉及用于對(duì)由這種視頻編碼裝置編碼的視頻數(shù)據(jù)進(jìn)行解碼的視頻解碼裝置和視頻解碼方法。
背景技術(shù):
通常,用于表示視頻數(shù)據(jù)的數(shù)據(jù)的量是非常大的。因此,處理這種視頻數(shù)據(jù)的裝置在將視頻數(shù)據(jù)傳輸至另一裝置之前或者在將視頻數(shù)據(jù)存儲(chǔ)在存儲(chǔ)裝置中之前通過(guò)編碼來(lái)壓縮視頻數(shù)據(jù)。由國(guó)際標(biāo)準(zhǔn)化組織/國(guó)際電工委員會(huì)(ISO/IEC)提出的諸如MPEG-2(活動(dòng)圖像專家組2)、MPEG-4以及H.264MPEG-4高級(jí)視頻編碼(MPEG-4AVC/H.264)的編碼標(biāo)準(zhǔn)是如今被廣泛使用的典型編碼標(biāo)準(zhǔn)。
這種編碼標(biāo)準(zhǔn)采用幀間編碼方法(inter-coding method)(通過(guò)使用不僅是來(lái)自畫面自身的信息而且是來(lái)自該畫面之前和之后的畫面的信息來(lái)對(duì)該畫面進(jìn)行編碼)和幀內(nèi)編碼方法(intra-coding method)(僅使用要被編碼的畫面中所包含的信息來(lái)對(duì)畫面進(jìn)行編碼)。幀間編碼方法使用三種畫面,被稱為經(jīng)幀內(nèi)編碼的畫面(I畫面)、通常根據(jù)過(guò)去的畫面來(lái)預(yù)測(cè)的前向預(yù)測(cè)出的畫面(P畫面)以及通常根據(jù)過(guò)去和未來(lái)的畫面來(lái)預(yù)測(cè)的雙向預(yù)測(cè)出的畫面(B畫面)。
通常,通過(guò)幀間編碼來(lái)編碼的畫面或塊的代碼量小于通過(guò)幀內(nèi)編碼來(lái)編碼的畫面或塊的代碼量。這樣,根據(jù)所選擇的編碼模式,在同樣的視頻序列內(nèi)代碼量因畫面不同而不同。類似地,根據(jù)所選擇的編碼模式,在同樣的畫面內(nèi)代碼量因塊不同而不同。因此,為了即使在代碼量按時(shí)間變化的情況下也能在恒定的傳輸速率下使包含經(jīng)編碼的視頻的數(shù)據(jù)流能被傳輸,在傳輸端提供用于緩沖數(shù)據(jù)流的傳輸緩沖器并且在接收端提供用于緩沖數(shù)據(jù)流的接收緩沖器。
MPEG-2和MPEG-4AVC/H.264均分別定義了在被稱為視頻緩沖驗(yàn)證器(VBV)或編碼圖像緩沖區(qū)(CPB)的理想化視頻解碼裝置中的接收緩沖器的性能。為了方便,理想化視頻解碼裝置在下文中將簡(jiǎn)稱為理想化解碼器。規(guī)定理想化解碼器執(zhí)行不花時(shí)間地解碼的即時(shí)解碼。例如,日本特開(kāi)專利申請(qǐng)第2003-179938號(hào)公開(kāi)了一種關(guān)于VBV的視頻編碼器控制方法。
為了理想化解碼器中的接收緩沖器不會(huì)上溢出或下溢出,當(dāng)理想化解碼器對(duì)給定畫面進(jìn)行解碼時(shí),視頻編碼器控制代碼的量以保證在接收緩沖器中能獲得用以解碼給定畫面所需的所有數(shù)據(jù)。
當(dāng)視頻編碼器以恒定的傳輸速率傳輸經(jīng)編碼的視頻數(shù)據(jù)流時(shí),如果一直到畫面要被視頻解碼器解碼并顯示時(shí)解碼該畫面所需的數(shù)據(jù)的傳輸還沒(méi)有完成,則接收緩沖器會(huì)下溢出。換言之,接收緩沖器下溢出指這樣的情況,其中,在視頻解碼器的接收緩沖器中不能獲得解碼該畫面所需的數(shù)據(jù)。如果這種情況發(fā)生,則視頻解碼器不能執(zhí)行解碼并且出現(xiàn)跳幀。
鑒于此,視頻解碼器將該數(shù)據(jù)流從其接收時(shí)間起延遲了預(yù)定的時(shí)間之后再顯示該畫面,使得可在不造成接收緩沖器下溢出的情況下進(jìn)行解碼。如之前所描述的,規(guī)定了理想化解碼器完成不花時(shí)間的解碼。結(jié)果,如果輸入至視頻編碼器的第i個(gè)畫面的輸入時(shí)間是t(i)并且第i個(gè)畫面在理想化解碼器的解碼時(shí)間是tr(i),則畫面為顯示做好準(zhǔn)備的最早時(shí)間與tr(i)一樣,由于對(duì)于任何畫面而言畫面顯示周期{t(i+1)-t(i)}等于{tr(i+1)-tr(i)},所以解碼時(shí)間被給出為tr(i)=t(i)+dly,即,該時(shí)間從輸入時(shí)間t(i)開(kāi)始被延遲了固定的時(shí)間dly。這意味著,視頻編碼器在時(shí)間tr(i)之前必須完成解碼所需所有數(shù)據(jù)至接收緩沖器的傳輸。
參考圖1,將給出接收緩沖器如何操作的描述。在圖1中,橫坐標(biāo)表示時(shí)間,縱坐標(biāo)表示接收緩沖器的緩沖器占用率。實(shí)折線100描繪了作為時(shí)間的函數(shù)的緩沖器占用率。
接收緩沖器的緩沖器占用率以同步于規(guī)定的傳輸速率的速率進(jìn)行恢復(fù),并且在畫面的解碼時(shí)間從緩沖器取回用于解碼每個(gè)畫面的數(shù)據(jù)。第i個(gè)畫面的數(shù)據(jù)在時(shí)間at(i)開(kāi)始被輸入至接收緩沖器,而第i個(gè)畫面的最后的數(shù)據(jù)在時(shí)間ft(i)被輸入。理想化解碼器在時(shí)間tr(i)完成第i個(gè)畫面的解碼,因此第i個(gè)畫面在tr(i)為顯示做好準(zhǔn)備。然而,如果數(shù)據(jù)流包含B畫面,第i個(gè)畫面的實(shí)際顯示時(shí)間可能由于出現(xiàn)畫面重新排序(改變編碼順序)而變得遲于tr(i)。
下面將詳細(xì)描述描述了MPEG-4AVC/H.264中的每個(gè)畫面的解碼時(shí)間和顯示時(shí)間的方法。
在MPEG-4AVC/H.264中,在補(bǔ)充增強(qiáng)信息(SEI)消息中描述了與像素的解碼并不直接相關(guān)的的補(bǔ)充信息。定義了幾十種SEI消息類型,每種類型由payloadType(有效載荷類型)參數(shù)來(lái)標(biāo)識(shí)。SEI被附加到每個(gè)畫面。
BPSEI(緩沖期間SEI)作為一種類型的SEI被附加到獨(dú)立畫面,即,無(wú)需任何之前的畫面就能被解碼的畫面(通常,I畫面)。在BPSEI中描述了參數(shù)InitialCpbRemovalDelay。InitialCpbRemovalDelay參數(shù)指示被附加了BPSEI的畫面的第一位的到達(dá)接收緩沖器的時(shí)間與被附加了BPSEI的畫面的解碼時(shí)間之間的差。該差的分辨率是90kHz。第一畫面的解碼時(shí)間tr(0)是經(jīng)編碼的視頻數(shù)據(jù)的第一位的到達(dá)視頻解碼器的時(shí)間(該時(shí)間被指定為0);即,解碼時(shí)間從時(shí)間0開(kāi)始被延遲了等于InitialCpbRemovalDelay÷90,000[秒]的時(shí)間量。
通常,PTSEI(畫面定時(shí)SEI)作為一種類型的SEI被附加到每個(gè)畫面。在PTSEI中描述了參數(shù)CpbRemovalDelay和DpbOutputDelay。CpbRemovalDelay參數(shù)指示前一被附加了BPSEI的畫面的解碼時(shí)間與被附加了PTSEI的畫面的解碼時(shí)間之間的差。DpbOutputDelay參數(shù)指示被附加了PTSEI的畫面的解碼時(shí)間與該畫面的顯示時(shí)間之間的差。這些差的分辨率是一域畫面間隔。因此,當(dāng)畫面是一個(gè)幀時(shí),參數(shù)CpbRemovalDelay和DpbOutputDelay中的每一個(gè)的值是2的倍數(shù)。
第二個(gè)以及后續(xù)畫面的解碼時(shí)間tr(i)從第一畫面的解碼時(shí)間tr(0)開(kāi)始被延遲了等于tc*CpbRemovalDelay(i)[秒]的時(shí)間量。CpbRemovalDelay(i)是被附加到第i個(gè)畫面的CpbRemovalDelay。另一方面,tc是畫面間時(shí)間間隔[秒];例如,在29.97Hz漸進(jìn)視頻的情況中,tc是1001/60000。
包括被附加了BPSEI的畫面的多個(gè)畫面中的每一個(gè)的顯示時(shí)間從tr(i)被延遲了等于tc*CpbRemovalDelay(i)的時(shí)間量。CpbRemovalDelay(i)是被附加到第i個(gè)畫面的CpbRemovalDelay。換言之,在時(shí)間tr(0)之后,在等于tc的整數(shù)倍的時(shí)間解碼并顯示每個(gè)畫面。
基于視頻數(shù)據(jù)的目的,可對(duì)經(jīng)編碼的視頻進(jìn)行編輯。編輯經(jīng)編碼的視頻涉及將編碼的視頻數(shù)據(jù)劃分成更小的部分并將它們進(jìn)行拼接(splicing)以產(chǎn)生新的經(jīng)編碼的視頻數(shù)據(jù)流。例如,另一視頻數(shù)據(jù)流(例如,廣告)插入進(jìn)當(dāng)前廣播視頻流(即,拼接)是編輯的一個(gè)實(shí)例。
當(dāng)編輯經(jīng)幀間預(yù)測(cè)性編碼的視頻時(shí),尤其是在經(jīng)幀間編碼的畫面的情況下,經(jīng)編碼的畫面不能通過(guò)其自身被正確地解碼。因此,當(dāng)將兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流拼接在期望的畫面位置時(shí),經(jīng)編碼的視頻數(shù)據(jù)編輯器首先將要被拼接的兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流解碼,然后基于經(jīng)解碼的一個(gè)接一個(gè)畫面將它們進(jìn)行拼接,之后對(duì)拼接視頻數(shù)據(jù)進(jìn)行重新編碼。
然而,由于重新編碼會(huì)是非常麻煩,尤其,在諸如拼接的實(shí)時(shí)處理的情況中,一般要限制拼接點(diǎn)并且通過(guò)消除重新編碼的需要來(lái)直接編輯編碼的視頻。當(dāng)在無(wú)需重新編碼的情況下通過(guò)編輯來(lái)拼接兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流時(shí),要被拼接在時(shí)間下游側(cè)的經(jīng)編碼的視頻數(shù)據(jù)流的第一畫面必須是I畫面。此外,要被拼接在時(shí)間下游側(cè)的經(jīng)編碼的視頻數(shù)據(jù)流的GOP結(jié)構(gòu)受限于所謂的緊湊GOP結(jié)構(gòu),其中跟隨起始I畫面的所有畫面在不參考在時(shí)間上在起始I畫面之前的任何畫面的情況下是可被解碼的,這就有可能通過(guò)在期望的拼接點(diǎn)進(jìn)行編輯來(lái)對(duì)被拼接在下游側(cè)的經(jīng)編碼的視頻數(shù)據(jù)流的起始I畫面之后的所有畫面進(jìn)行正確地解碼。
然而,由于緊湊GOP結(jié)構(gòu)的編碼效率低于非緊湊GOP結(jié)構(gòu)的編碼效率,所以可采用非緊湊GOP結(jié)構(gòu)。在此情形中,拼接點(diǎn)之后的緊跟起始I畫面的一些畫面不能被正確解碼,但是由于這些畫面在顯示順序上在起始I畫面之前,如果它們不被顯示就不會(huì)有問(wèn)題。因此,作為通常的做法,在顯示了時(shí)間上在前的經(jīng)編碼的視頻數(shù)據(jù)流的最后畫面之后,視頻解碼器執(zhí)行諸如凍結(jié)顯示的處理,由此掩蓋未能被正確解碼的畫面的顯示。
在現(xiàn)有技術(shù)中,即使在不重新編碼的情況下編輯經(jīng)幀間預(yù)測(cè)性編碼的視頻數(shù)據(jù)時(shí),還編輯頭(header)信息,使得在拼接在一起的兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流之間不出現(xiàn)矛盾。例如,在MPEG-4AVC/H.264中,POC(圖像序列號(hào))和幀編號(hào)(FrameNum)被附加到片頭,以保持畫面間的時(shí)間關(guān)系并且標(biāo)識(shí)參考畫面。POC指示畫面的相關(guān)顯示順序。幀編號(hào)是每次參考畫面出現(xiàn)在經(jīng)編碼的視頻中時(shí)就被加1的值。由于POC值和幀編號(hào)值在拼接的兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流之間必須是連續(xù)的,所以需要對(duì)要被拼接在時(shí)間在前的經(jīng)編碼的視頻數(shù)據(jù)流的下游側(cè)的經(jīng)編碼的視頻數(shù)據(jù)流中的所有POC值和幀編號(hào)進(jìn)行編輯。
另一方面,在非專利文獻(xiàn)JCTVC-I1003("High-Efficiency Video Coding(HEVC)text specification Working Draft 7,"Joint Collaborative Team on Video Coding of ITU-T SG16WP3and ISO/IEC JTC1/SC29/WG11,May 2012)中所公開(kāi)的方法中,由于已引入了用于標(biāo)識(shí)參考畫面的新方法,所以廢除了幀編號(hào)。此外,由于被拼接在下游側(cè)的經(jīng)編碼的視頻數(shù)據(jù)流的第一畫面的POC值關(guān)于被拼接在上游側(cè)的經(jīng)編碼的視頻數(shù)據(jù)流無(wú)需具有連續(xù)性,所以無(wú)需編輯片頭。在上面的非專利文獻(xiàn)中所公開(kāi)的方法中,除了在MPEG-4AVC/H.264中定義的IDR(即時(shí)解碼刷新(Instantaneous Decoding Refresh))畫面之外,還引入了CRA(凈隨機(jī)存取(Clean Random Access))畫面、BLA(斷開(kāi)鏈路存取(Broken Link Access))畫面以及TFD(被標(biāo)記用于丟棄(Tagged For Discard))畫面作為新畫面類型。
在這些畫面中,CRA畫面和BLA畫面都是獨(dú)立畫面,即,不用參考任何其它畫面的畫面,因此,可正確地解碼CRA畫面或BLA畫面之后的畫面。例如,當(dāng)視頻解碼器開(kāi)始從CRA畫面開(kāi)始的解碼時(shí),可正確地解碼除了緊跟CRA畫面的TFD畫面以外的任何后續(xù)畫面。
TFD畫面是這樣的畫面,即,緊跟CRA畫面或BLA畫面出現(xiàn)并且參考在時(shí)間順序上和解碼順序上早于CRA畫面或BLA畫面出現(xiàn)的畫面。在符合MPEG-2的非緊湊GOP結(jié)構(gòu)的情況下,在GOP頭部的緊跟I畫面的多個(gè)B畫面均對(duì)應(yīng)于TFD畫面。
作為編輯經(jīng)編碼的視頻數(shù)據(jù)的結(jié)果產(chǎn)生BLA畫面。在拼接的兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流中,拼接在下游側(cè)的經(jīng)編碼的視頻數(shù)據(jù)流通常以CRA畫面開(kāi)始,但是如果此CRA畫面出現(xiàn)在拼接的經(jīng)編碼的視頻數(shù)據(jù)的中間,則其畫面類型從CRA畫面改變?yōu)锽LA畫面。在上面的非專利文中所公開(kāi)的方法中,當(dāng)BLA畫面出現(xiàn)時(shí),允許POC值變得不連續(xù)。此外,從被拼接的經(jīng)編碼的視頻數(shù)據(jù)中的任何點(diǎn)不能正確地解碼緊跟此BLA畫面的TFD畫面,是因?yàn)閺谋黄唇拥慕?jīng)編碼的視頻流丟失了要被其參考的畫面。因此,視頻編碼器可從經(jīng)編碼的視頻數(shù)據(jù)刪除要被拼接在下游側(cè)的經(jīng)編碼的視頻數(shù)據(jù)流頭部的BLA畫面之后的任何TFD畫面。
技術(shù)實(shí)現(xiàn)要素:
在上述的非專利文獻(xiàn)中所公開(kāi)的方法中,如在MPEG-4AVC/H.264中,每個(gè)經(jīng)編碼的畫面的解碼時(shí)間和顯示時(shí)間通過(guò)利用參數(shù)InitialCpbRemovalDelay、CpbRemovalDelay以及DpbOutputDelay來(lái)確定。當(dāng)拼接兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流時(shí),拼接點(diǎn)之后的畫面的參數(shù)CpbRemovalDelay和DpbOutputDelay需要被校正為適當(dāng)?shù)闹?,以便確保跨拼接點(diǎn)的連續(xù)的視頻解碼和顯示。
更具體地,視頻編碼器或視頻解碼器需要基于時(shí)間上在前的經(jīng)編碼的視頻數(shù)據(jù)流中的最后的被附加了BPSEI的畫面之后的畫面的數(shù)目來(lái)校正被拼接在下游側(cè)的經(jīng)編碼的視頻數(shù)據(jù)流的前面的CRA畫面的CpbRemovalDelay的值。此外,視頻編碼器或視頻解碼器中的值增長(zhǎng)以便確保CPB的緩沖器的連續(xù)性。此外,當(dāng)丟棄要被拼接在下游側(cè)的經(jīng)編碼的視頻數(shù)據(jù)流中的TFD畫面時(shí),視頻編碼器或視頻解碼器需要校正在丟棄TFD畫面之后要被校正的畫面的CpbRemovalDelay的值以及拼接點(diǎn)之后的第一CRA畫面的DpbOutputDelay的值。
因此,在上面的非專利文獻(xiàn)中所公開(kāi)的方法中,當(dāng)為了拼接兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流而執(zhí)行編輯操作時(shí)仍需要校正PTSEI的內(nèi)容。
因此,本發(fā)明的一個(gè)目的是提供在拼接兩個(gè)經(jīng)幀間預(yù)測(cè)性編碼的視頻數(shù)據(jù)流時(shí)在不編輯原始的經(jīng)編碼的視頻數(shù)據(jù)的頭中的參數(shù)的情況下能確保連續(xù)的視頻解碼處理和顯示處理的一種運(yùn)動(dòng)視頻編碼裝置和運(yùn)動(dòng)視頻解碼裝置。
根據(jù)一種實(shí)施方式,提供了一種用于通過(guò)幀間預(yù)測(cè)性編碼來(lái)對(duì)經(jīng)編碼的視頻數(shù)據(jù)進(jìn)行解碼的視頻解碼方法。該視頻解碼方法包括:當(dāng)所述經(jīng)編碼的視頻數(shù)據(jù)包含指示所述經(jīng)編碼的視頻數(shù)據(jù)已通過(guò)將第二經(jīng)編碼的視頻數(shù)據(jù)拼接到第一經(jīng)編碼的視頻數(shù)據(jù)的尾端而被產(chǎn)生的信息、指示在所述第一經(jīng)編碼的視頻數(shù)據(jù)和所述第二經(jīng)編碼的視頻數(shù)據(jù)被拼接于的拼接點(diǎn)之后的、所述第二經(jīng)編碼的視頻數(shù)據(jù)中的在編碼順序上遲于起始的經(jīng)編碼的畫面的一個(gè)或多個(gè)經(jīng)編碼的畫面已被丟棄的信息、用于對(duì)跟隨所述起始的經(jīng)編碼的畫面的畫面的解碼延遲進(jìn)行校正的解碼延遲校正信息、以及用于對(duì)所述起始的經(jīng)編碼的畫面的顯示延遲進(jìn)行校正的顯示延遲校正信息時(shí),則由至少一個(gè)處理器基于所述顯示延遲校正信息來(lái)對(duì)所述起始的經(jīng)編碼的畫面的顯示延遲進(jìn)行校正,同時(shí)由所述至少一個(gè)處理器基于所述解碼延遲校正信息來(lái)對(duì)跟隨所述起始的經(jīng)編碼的畫面的畫面的解碼延遲進(jìn)行校正。其中,所述解碼延遲校正信息攜帶了與在編碼順序上遲于所述起始的經(jīng)編碼的畫面的被丟棄的經(jīng)編碼的畫面的數(shù)目對(duì)應(yīng)的值。
附圖說(shuō)明
圖1是示出接收緩沖器的緩沖器占用率與顯示時(shí)間之間的關(guān)系的示圖。
圖2是示出視頻數(shù)據(jù)中所包含的各種畫面的顯示順序和解碼順序與解碼延遲之間的關(guān)系以及各個(gè)畫面的顯示延遲值的示圖。
圖3是用于解釋當(dāng)兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流被拼接時(shí)拼接點(diǎn)之后的畫面的解碼延遲和顯示延遲值的示圖。
圖4是用于解釋在根據(jù)第一實(shí)施方式的經(jīng)編碼的視頻中的一個(gè)畫面的數(shù)據(jù)結(jié)構(gòu)的示圖。
圖5是根據(jù)第一實(shí)施方式的視頻編碼裝置的簡(jiǎn)化框圖。
圖6是根據(jù)第一實(shí)施方式的視頻編碼處理的操作流程圖。
圖7是根據(jù)第一實(shí)施方式的視頻編輯處理的操作流程圖。
圖8是根據(jù)第一實(shí)施方式的視頻解碼裝置的簡(jiǎn)化框圖。
圖9是根據(jù)第一實(shí)施方式的視頻解碼處理的操作流程圖。
圖10是用于解釋在根據(jù)第二實(shí)施方式的經(jīng)編碼的視頻中的一個(gè)畫面的數(shù)據(jù)結(jié)構(gòu)的示圖。
圖11是用于解釋當(dāng)兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流被拼接時(shí)并且當(dāng)被拼接在拼接點(diǎn)的上游的經(jīng)編碼的視頻數(shù)據(jù)流中已丟棄了在顯示順序上在該拼接點(diǎn)之前的畫面時(shí)在該拼接點(diǎn)之后畫面的解碼延遲和顯示延遲值的示圖。
圖12是用于解釋當(dāng)被拼接在拼接點(diǎn)的下游的經(jīng)編碼的視頻數(shù)據(jù)流中要重新排序的畫面的數(shù)目小于被拼接在拼接點(diǎn)的上游的經(jīng)編碼的視頻數(shù)據(jù)流中要重新排序的畫面的畫面時(shí)在拼接點(diǎn)之后的畫面的延遲和顯示延遲值的示圖。
圖13是用于解釋當(dāng)被拼接在拼接點(diǎn)的上游的經(jīng)編碼的視頻數(shù)據(jù)流中要重新排序的畫面的數(shù)目小于被拼接在拼接點(diǎn)的下游的經(jīng)編碼的視頻數(shù)據(jù)流中要重新排序的畫面的數(shù)目時(shí)拼接點(diǎn)之后的畫面的解碼延遲和顯示延遲值的示圖。
圖14是用于解釋在根據(jù)第五實(shí)施方式的經(jīng)編碼的視頻中的一個(gè)畫面的數(shù)據(jù)結(jié)構(gòu)的示圖。
圖15是用于解釋在根據(jù)第六實(shí)施方式的經(jīng)編碼的視頻中的一個(gè)畫面的數(shù)據(jù)結(jié)構(gòu)的示圖。
圖16是用于解釋在根據(jù)第七實(shí)施方式的經(jīng)編碼的視頻中的一個(gè)畫面的數(shù)據(jù)結(jié)構(gòu)的示圖。
圖17是示出通過(guò)執(zhí)行用于實(shí)現(xiàn)根據(jù)實(shí)施方式或其變形例中的任何一個(gè)的視頻編碼裝置或視頻解碼裝置中的各個(gè)單元的功能的計(jì)算機(jī)程序來(lái)作為視頻編碼裝置或視頻解碼裝置操作的計(jì)算機(jī)的構(gòu)造的示圖。
具體實(shí)施方式
下面將參考附圖描述根據(jù)各種實(shí)施方式的視頻編碼裝置和視頻解碼裝置。當(dāng)兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流在不對(duì)其進(jìn)行解碼的情況下被拼接時(shí),視頻編碼裝置計(jì)算待用于校正指示拼接點(diǎn)之后出現(xiàn)的每個(gè)畫面的解碼時(shí)間和顯示時(shí)間的參數(shù)的值,并在拼接點(diǎn)之后出現(xiàn)的每個(gè)畫面的頭信息中添加該值。以這種方式,視頻編碼裝置消除了當(dāng)拼接兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流時(shí)對(duì)原始的經(jīng)編碼的視頻數(shù)據(jù)的頭中的參數(shù)進(jìn)行編輯的需要。
在本實(shí)施方式中,畫面是幀。然而,該畫面可不限于幀,而可以是域(field)。幀指視頻數(shù)據(jù)中一個(gè)完整的靜態(tài)圖像,而域指通過(guò)從一個(gè)幀提取僅在奇數(shù)行或偶數(shù)行中的數(shù)據(jù)而獲得的靜態(tài)圖像。該經(jīng)編碼的視頻數(shù)據(jù)可以是彩色視頻數(shù)據(jù)或黑白視頻數(shù)據(jù)。
首先,參考圖2,將通過(guò)將一個(gè)畫面編碼結(jié)構(gòu)(picture coding structure)作為實(shí)例來(lái)描述根據(jù)第一實(shí)施方式的畫面解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay的值。
在圖2中,作為畫面編碼結(jié)構(gòu)的一個(gè)實(shí)例的畫面編碼結(jié)構(gòu)201包含多個(gè)畫面。畫面編碼結(jié)構(gòu)201中的每個(gè)塊表示一個(gè)畫面。對(duì)應(yīng)于每個(gè)畫面的塊中所攜帶的兩個(gè)字符中,在左邊的字母字符指示應(yīng)用于該畫面的編碼模式。字符I、P、B分別意味著I畫面、P畫面和B畫面。在每個(gè)塊中所攜帶的兩個(gè)字符中,右邊的數(shù)字指示輸入至視頻編碼裝置的順序。該輸入順序與其中畫面從視頻解碼裝置被輸出的順序一致。在畫面編碼結(jié)構(gòu)201上面描繪的每個(gè)箭頭指示要通過(guò)前向幀預(yù)測(cè)來(lái)編碼的畫面所參考的參考畫面。例如,畫面P4參考比畫面P4出現(xiàn)早的畫面I0。另一方面,在畫面編碼結(jié)構(gòu)201下面描繪的每個(gè)箭頭指示要通過(guò)后向幀預(yù)測(cè)來(lái)編碼的畫面所參考的參考畫面。例如,畫面B2參考遲于畫面B2出現(xiàn)的畫面P4。
表示在畫面編碼結(jié)構(gòu)201的下面的畫面序列是畫面編碼結(jié)構(gòu)201中所包含的畫面的解碼順序202。解碼順序202中的每個(gè)塊表示一個(gè)畫面,并且與在畫面編碼結(jié)構(gòu)201的情況一樣,塊中攜帶的字符指示編碼模式和輸入至視頻編碼裝置的順序。解碼順序202與通過(guò)視頻編碼裝置執(zhí)行的編碼的順序一致。
在解碼順序202中,BPSEI被附加到下面攜帶了標(biāo)記“BPSEI”的每個(gè)畫面。在示出的實(shí)例中,BPSEI被附加到每個(gè)I畫面。換言之,對(duì)于每個(gè)I畫面,定義了InitialCpbRemovalDelay參數(shù),其指示I畫面的第一個(gè)位到達(dá)接收緩沖器的時(shí)間與I畫面的解碼時(shí)間之間的差。
在解碼順序202的下面表示的塊陣列203指示附加到每個(gè)畫面的PTSEI中所攜帶的CpbRemovalDelay和DpbOutputDelay的值。塊陣列203的上部行中的每個(gè)塊攜帶了位于該塊正上方的解碼順序202中的對(duì)應(yīng)畫面的CpbRemovalDelay值。同樣,塊陣列203的下部行中的每個(gè)塊攜帶了位于該塊正上方的解碼順序202中的對(duì)應(yīng)畫面的DpbOutputDelay值。CpbRemovalDelay對(duì)應(yīng)于從BPSEI被附加到的畫面當(dāng)中的在編碼順序上最新近的畫面算起時(shí)的編碼順序。例如,當(dāng)從畫面I0算起時(shí),畫面P8在編碼順序上是第五個(gè)畫面。在本實(shí)施方式中,由于每個(gè)畫面是一個(gè)幀,并且畫面間時(shí)間間隔tc是以域?yàn)閱挝槐硎镜闹?,所以畫面P8的CpbRemovalDelay值被給出為10(=5*2)。
另一方面,DpbOutputDelay規(guī)定了視頻解碼裝置中所需的以按照正確的順序連續(xù)地輸出畫面的顯示延遲。例如,畫面P4的DpbOutputDelay值是10。這是正確顯示畫面B1(它的在視頻編碼裝置中的輸入順序與編碼順序之間的差是最大)所需的時(shí)間。換言之,由于畫面B1以P4之后的兩個(gè)畫面被解碼的延遲來(lái)解碼,所以畫面P4的顯示時(shí)間必須從畫面B1為顯示做好準(zhǔn)備的最早時(shí)間(即,畫面B1被解碼的時(shí)間)被進(jìn)一步延遲三個(gè)畫面時(shí)間。由于畫面P4的解碼時(shí)間與顯示時(shí)間之間的差等于5個(gè)畫面時(shí)間,并且由于tc以域?yàn)閱挝粊?lái)表示,所以DpbOutputDelay的值被給出為10。
接下來(lái),參考圖3,將給出當(dāng)兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)被拼接時(shí)為了消除在兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流的拼接點(diǎn)之前和之后在解碼延遲和顯示延遲上的任何差別被拼接在拼接點(diǎn)的下游的經(jīng)編碼的視頻數(shù)據(jù)流的每個(gè)畫面的解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay可采用的值的解釋。
拼接在拼接點(diǎn)的上游的第一經(jīng)編碼的視頻數(shù)據(jù)流301中的每個(gè)塊表示一個(gè)畫面,并且塊中所攜帶的字符指示編碼模式和輸入至視頻編碼裝置的順序,與圖2中的情況一樣。在所示出的實(shí)例中,第一經(jīng)編碼的視頻數(shù)據(jù)流301的編碼結(jié)構(gòu)與圖2中描繪的編碼結(jié)構(gòu)相同。
在所示出的實(shí)例中,緊跟第一經(jīng)編碼的視頻數(shù)據(jù)流的最后畫面B15拼接了第二視頻數(shù)據(jù)流302。在第二視頻數(shù)據(jù)流302中,同樣,每個(gè)塊表示一個(gè)畫面,并且塊中所攜帶的字符指示編碼模式和輸入至視頻編碼裝置的順序。第二經(jīng)編碼的視頻數(shù)據(jù)流302的編碼結(jié)構(gòu)也與在圖2中描繪的編碼結(jié)構(gòu)201相同。在所示出的實(shí)例中,第二經(jīng)編碼的視頻數(shù)據(jù)流302中的畫面I72和后續(xù)的畫面被拼接,從而在第一經(jīng)編碼的視頻數(shù)據(jù)流中的畫面B15之后。
在第二經(jīng)編碼的視頻數(shù)據(jù)流302的下面表示的塊陣列303指示被附加到第二經(jīng)編碼的視頻數(shù)據(jù)流302的每個(gè)畫面的PTSEI中所攜帶的解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay的值。在塊陣列303的上部行中的每個(gè)塊攜帶位于該塊正上方的第二經(jīng)編碼的視頻數(shù)據(jù)流302中的對(duì)應(yīng)畫面的解碼延遲CpbRemovalDelay的值。同樣,塊陣列303的下部行中的每個(gè)塊攜帶了位于該塊正上方的第二解碼視頻數(shù)據(jù)流302中的對(duì)應(yīng)畫面的顯示延遲DpbOutputDelay的值。
在塊陣列303下面描繪了通過(guò)拼接第一經(jīng)編碼的視頻數(shù)據(jù)流301和第二經(jīng)編碼的視頻數(shù)據(jù)流302產(chǎn)生的被拼接的經(jīng)編碼的視頻數(shù)據(jù)304。在示出的實(shí)例中,在被拼接的經(jīng)編碼的視頻數(shù)據(jù)304中不包含第二經(jīng)編碼的視頻數(shù)據(jù)流302中的畫面B67以及編碼順序在畫面B67之前的畫面。此外,畫面B70、B69以及B71均參考編碼順序上在畫面I72之前的畫面I68。結(jié)果,當(dāng)數(shù)據(jù)被拼接在畫面I72處時(shí),畫面B70、B76以及B71將變得不能被正確再現(xiàn)。因此,當(dāng)拼接數(shù)據(jù)時(shí)將畫面B70、B76以及B71丟棄。然而,畫面B70、B76以及B71可以不被丟棄并可保留在被拼接的經(jīng)編碼的視頻數(shù)據(jù)中。
塊陣列305指示應(yīng)具有的被拼接的經(jīng)編碼的視頻數(shù)據(jù)304中的畫面I72、P76、B74、B73以及B75的解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay的值。在塊陣列305的上部行中的每個(gè)塊攜帶位于該塊正上方的被拼接的經(jīng)編碼的視頻數(shù)據(jù)304中的對(duì)應(yīng)畫面的解碼延遲CpbRemovalDelay的值。同樣,塊陣列305的下部行中的每個(gè)塊攜帶了位于該塊正上方的被拼接的經(jīng)編碼的視頻數(shù)據(jù)304中的對(duì)應(yīng)畫面的顯示延遲DpbOutputDelay的值。拼接之后畫面I72的解碼延遲CpbRemovalDelay需要與關(guān)于畫面I12(其是具有前面最新近的BPSEI的畫面)的經(jīng)編碼的畫面間隔相匹配。在所示的實(shí)例中,從畫面I12算起時(shí),畫面I72在編碼順序上是第八個(gè)畫面,因此解碼延遲CpbRemovalDelay被給出為16。畫面I72的解碼延遲DpbOutputDelay還需被校正,使得遲于畫面I72解碼的畫面B73能被正確地顯示。畫面I72的顯示延遲DpbOutputDelay的值在丟棄畫面B70、B69以及B71之前和之后是不同的。在丟棄畫面B70、B69以及B71之后的顯示延遲DpbOutputDelay的值對(duì)應(yīng)于比畫面B69遲輸入至視頻編碼裝置但是編碼比畫面B69早的畫面的數(shù)目。在所示的實(shí)例中,存在兩個(gè)這樣的畫面,畫面I72和B70,因此畫面I72的顯示延遲被給出為4。
畫面P76、B74、B73以及B75中每個(gè)的解碼延遲CpbRemovalDelay的值在丟棄畫面B70、B69、以及B71之前和之后也是不同的。畫面P76、B74、B73以及B75中每個(gè)的解碼延遲CpbRemovalDelay的值在丟棄畫面B70、B69、以及B71之后等于從丟棄畫面之前的解碼延遲CpbRemovalDelay的值減去對(duì)應(yīng)于被丟棄的畫面的數(shù)目的值而獲得的值。在所示的實(shí)例中,通過(guò)從各個(gè)信號(hào)的解碼延遲CpbRemovalDelay的原始值減去6,畫面P76、B74、B73以及B75的解碼延遲CpbRemovalDelay的值被分別給出為2、4、6、8。畫面P76、B74、B73以及B75中每一個(gè)的顯示延遲DpbOutputDelay的值保持不變。此外,在被拼接的經(jīng)編碼的視頻數(shù)據(jù)中,對(duì)于遲于改變?yōu)榈谝籆RA畫面的畫面輸入的任何畫面,既無(wú)需校正編碼延遲DpbOutputDelay,也無(wú)需校正顯示延遲DpbOutputDelay。
如上所述,當(dāng)兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流被拼接在一起時(shí),需要在解碼時(shí)校正被拼接在拼接點(diǎn)的下游的經(jīng)編碼的視頻數(shù)據(jù)流中所包含的某些畫面的解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay的值。在本實(shí)施方式中,視頻編碼裝置在經(jīng)編碼的視頻數(shù)據(jù)的頭中添加當(dāng)視頻解碼裝置對(duì)被拼接的經(jīng)編碼的視頻數(shù)據(jù)進(jìn)行解碼時(shí)可被用于將解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay的值改變?yōu)檫m當(dāng)值的參數(shù),而不是校正拼接之前原始的經(jīng)編碼的視頻數(shù)據(jù)中所包含的受影響畫面的解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay的值。
接下來(lái),參考圖4,將描述根據(jù)第一實(shí)施方式的包含可被用于將解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay的值改變?yōu)檫m當(dāng)值的參數(shù)的經(jīng)編碼的視頻數(shù)據(jù)的結(jié)構(gòu)。
如圖4中所描繪的,一個(gè)畫面的數(shù)據(jù)結(jié)構(gòu)400包含六種網(wǎng)絡(luò)提取層(NAL)單元410至415。這些NAL單元410至415均符合在MPEG-4AVC/H.264中定義的NAL單元以及在非專利文獻(xiàn)JCTVC-I1003("High-Efficiency Video Coding(HEVC)text specification Working Draft 7,"Joint Collaborative Team on Video Coding of ITU-T SG16WP3and ISO/IEC JTC1/SC29/WG11,May 2012)中公開(kāi)的方法。頭NUH 420被附加到每個(gè)NAL單元。頭NUH 420包含指示NAL單元的類型的NalUnitType字段。當(dāng)NalUnitType是4時(shí),此頭被附加到的畫面是自含式CRA畫面,緊接在其之后出現(xiàn)參考在時(shí)間順序上以及解碼順序上在CRA畫面之前的畫面的TFD畫面。當(dāng)NalUnitType是5時(shí),此頭被附加到的畫面是CRA畫面,緊接在其之后不出現(xiàn)TFD畫面。當(dāng)NalUnitType是6時(shí),此頭被附加到的畫面是緊跟拼接點(diǎn)并且被TFD畫面緊跟的自含式BLA畫面。當(dāng)NalUnitType是7時(shí),此頭被附加到的畫面是BLA畫面,緊接在其之后不出現(xiàn)TFD畫面。每個(gè)畫面的NalUnitType不必受限于上面的規(guī)定值,而可以被設(shè)定成某些其它適合值。
下面將解釋NAL單元。
NAL單元410是定界符(DELIM)NAL單元并且指示畫面的邊界。
NAL單元411是序列參數(shù)設(shè)定(SPS)NAL單元,其攜帶經(jīng)編碼的視頻的整個(gè)序列所公用的一組參數(shù)。NAL單元411被附加到自含式畫面。
NAL單元412是畫面參數(shù)設(shè)定(PPS)NAL單元,其攜帶多個(gè)經(jīng)編碼的畫面所公用的一組參數(shù)。PPS NAL 412被附加到自含式畫面,并且有時(shí)可被附加到其它類型的畫面。
NAL單元413是BPSEI NAL單元,其僅被附加到自含式畫面。在本實(shí)施方式中,要被視頻解碼裝置用于校正在拼接點(diǎn)之后出現(xiàn)的每個(gè)畫面的解碼延遲和顯示延遲的參數(shù)被添加在此NAL單元413中。
NAL單元414是PTSEI NAL單元,其被附加到每個(gè)畫面。
NAL單元415是拼接(SLICE)NAL單元,其是經(jīng)編碼的畫面的內(nèi)容。
根據(jù)本實(shí)施方式的BPSEI NAL單元413包含多個(gè)(N+1)InitialCpbRemovalDelay/InitialCpbRemovalDelayOffset字段對(duì)(其中N是不小于0的整數(shù))和在這些對(duì)后面的RapCpbParamsPresentFlag字段。當(dāng)RapCpbParamsPresentFlag是1時(shí),BPSEI NAL單元413中還包含用于校正解碼延遲的解碼延遲校正信息AltCpbRemovalDelayOffset字段431和用于校正顯示延遲的顯示延遲校正信息AltDpbOutputDelay字段413。另一方面,當(dāng)RapCpbParamsPresentFlag是0時(shí),BPSEI NAL單元413中既不包含解碼延遲校正信息AltCpbRemovalDelayOffset字段431也不包含顯示延遲校正信息AltDpbOutputDelay字段413。將在后面給出如何確定和使用解碼延遲校正信息AltCpbRemovalDelayOffset字段431和顯示延遲校正信息AltDpbOutputDelay字段413的描述。
存在不止一個(gè)InitialCpbRemovalDelay/InitialCpbRemovalDelayOffset字段對(duì)的原因是描述適合于其中編碼的位流(bit stream)在(N+1)個(gè)不同的位速率(bit rate)下被傳輸?shù)那樾蔚腎nitialCpbRemovalDelay和InitialCpbRemovalDelayOffset參數(shù)。InitialCpbRemovalDelayOffset參數(shù)定義視頻編碼裝置中的第一畫面的編碼完成時(shí)間與傳輸經(jīng)編碼的畫面數(shù)據(jù)至視頻解碼裝置的傳輸?shù)拈_(kāi)始時(shí)間之間差。
PTSEI NAL單元414包含解碼延遲CpbRemovalDelay字段和DpbOutputDelay字段。這些字段的定義可以與在之前引用的非專利文獻(xiàn)中或在MPEG-4AVC/H.264中所公開(kāi)的方法中所給出定義相同。
圖5是根據(jù)第一實(shí)施方式的視頻編碼裝置的簡(jiǎn)化框圖。視頻編碼裝置1包括控制單元11、編碼控制單元12、畫面編碼單元13、拼接點(diǎn)標(biāo)識(shí)信息處理單元14以及數(shù)據(jù)拼接單元15。構(gòu)成視頻編碼裝置1的這些單元均作為單獨(dú)的電路被實(shí)現(xiàn)在視頻編碼裝置1中。可替選地,構(gòu)成視頻編碼裝置1的這些單元可以以單個(gè)集成電路(其上的實(shí)現(xiàn)各個(gè)單元的功能的電路被集成)的形式被實(shí)現(xiàn)在視頻編碼裝置1中。此外,構(gòu)成視頻編碼裝置1的這些單元可以是通過(guò)在視頻編碼裝置1中所合并的處理器上執(zhí)行計(jì)算機(jī)程序?qū)崿F(xiàn)的功能模塊。
當(dāng)對(duì)視頻數(shù)據(jù)進(jìn)行編碼時(shí)或者當(dāng)編輯該經(jīng)編碼的視頻數(shù)據(jù)時(shí),控制單元11控制視頻編碼裝置1的每個(gè)指定單元的操作。例如,控制器單元11基于經(jīng)編碼的視頻數(shù)據(jù)所需的再現(xiàn)圖像質(zhì)量、壓縮比等來(lái)確定被應(yīng)用于要被編碼的視頻數(shù)據(jù)的GOP結(jié)構(gòu)等。然后,控制單元11將GOP結(jié)構(gòu)等通過(guò)信號(hào)發(fā)給編碼控制單元12。
首先,將描述用于對(duì)視頻數(shù)據(jù)進(jìn)行編碼的視頻編碼處理。利用編碼控制單元12和畫面編碼單元13來(lái)執(zhí)行視頻編碼處理。
編碼控制單元12根據(jù)從控制單元11發(fā)過(guò)來(lái)的GOP結(jié)構(gòu)來(lái)確定每個(gè)畫面的編碼順序、編碼模式(例如,幀內(nèi)編碼、前向預(yù)測(cè),或后向預(yù)測(cè))等。然后,編碼控制單元12基于每個(gè)畫面的編碼模式、在GOP結(jié)構(gòu)內(nèi)的位置等來(lái)確定CRA畫面插入間隔、在編碼時(shí)要被重新排序的畫面數(shù)目以及最大顯示延遲。在圖2中所示出的實(shí)例中,CRA畫面插入間隔是2,要被重新排序的畫面數(shù)目是2,并且最大顯示延遲是5。編碼控制單元12基于這些值產(chǎn)生每個(gè)畫面的頭信息。
例如,如果畫面類型是在不參考任何其它畫面的情況下被編碼的I畫面(CRA畫面),并且如果該畫面不是經(jīng)編碼的視頻數(shù)據(jù)的起始畫面,則當(dāng)要被重新排序的畫面數(shù)目不小于1時(shí),編碼控制單元12將畫面的每個(gè)片的NUH 420中的NalUnitType設(shè)定為4,其指示該畫面被TFD畫面緊跟。另一方面,當(dāng)要被重新排序的畫面的數(shù)目被設(shè)定為0時(shí),編碼控制單元將畫面的每個(gè)片的NUH 420中的NalUnitType設(shè)定為5,其指示該畫面未被TFD畫面緊跟。經(jīng)編碼的視頻數(shù)據(jù)的起始畫面的每個(gè)片的NUH420中的NalUnitType被設(shè)定為8(IDR畫面)。此外,當(dāng)要被重新排序的畫面的數(shù)目不小于1時(shí),對(duì)于緊跟CRA畫面并且參考在解碼順序和顯示順序二者上都早于CRA畫面的畫面的非參考畫面,編碼控制單元12將NalUnitType設(shè)定為2(TFD畫面)。對(duì)于其它畫面,編碼控制單元將NalUnitType設(shè)定為1。
編碼控制單元12通知畫面編碼單元13關(guān)于要被編碼的畫面的每個(gè)片的頭NUH 420中已設(shè)定的NalUnitType的值。此外,編碼控制單元12根據(jù)畫面預(yù)測(cè)結(jié)構(gòu)獲得每個(gè)畫面的PTSET中的解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay(如圖2中所示)并且相應(yīng)地通知畫面編碼單元13。
當(dāng)畫面的每個(gè)片的NUH 420中的NalUnitType是8、4、5時(shí),編碼控制單元12將BPSEI附加到畫面。然后,當(dāng)NalUnitType是8或5時(shí),編碼控制單元12將RapCpbParamsPresentFlag設(shè)定為0。另一方面,當(dāng)NalUnitType是4時(shí),編碼控制單元12將RapCpbParamsPresentFlag設(shè)定為1。
此外,編碼控制單元12將用于校正顯示延遲的顯示延遲校正信息AltDpbOutputDelay參數(shù)的值設(shè)定成等于要重新排序的畫面數(shù)目的兩倍,即,在編碼順序上在CRA畫面之后、并且在在解碼順序上最早的畫面的顯示時(shí)間與CRA畫面的顯示時(shí)間之間出現(xiàn)的畫面的數(shù)目的兩倍。然后,編碼控制單元將用于校正解碼延遲的解碼延遲校正信息AltCpbRemovalDelayOffset參數(shù)的值設(shè)定成等于緊跟CRA畫面的TFD畫面的數(shù)目的兩倍。
對(duì)于每個(gè)畫面,編碼控制單元12將編碼模式和畫面的頭信息用信號(hào)發(fā)送至畫面編碼單元13,并且發(fā)出對(duì)該畫面進(jìn)行編碼的指令。
畫面編碼單元13響應(yīng)于來(lái)自編碼控制單元12的指令通過(guò)采用能夠幀間預(yù)測(cè)性編碼的視頻編碼方法中的一種用規(guī)定的編碼模式來(lái)編碼該畫面。畫面編碼單元13采用的視頻編碼方法可以是(例如)MPEG-4AVC/H.264或MPEG-2。畫面編碼單元13將包含每個(gè)經(jīng)編碼的畫面的經(jīng)編碼的視頻數(shù)據(jù)存儲(chǔ)在存儲(chǔ)單元(未描繪出)中。
接下來(lái),將描述當(dāng)拼接兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流時(shí)執(zhí)行的編輯處理。利用拼接點(diǎn)標(biāo)識(shí)信息處理單元14和數(shù)據(jù)拼接單元15來(lái)執(zhí)行編輯處理。
拼接點(diǎn)標(biāo)識(shí)信息處理單元14經(jīng)由未描繪出的用戶接口單元從存儲(chǔ)單元(未描繪出)讀出所選的這兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流。然而,拼接點(diǎn)標(biāo)識(shí)信息處理單元14根據(jù)未描繪的外部施加的控制信號(hào)來(lái)標(biāo)識(shí)時(shí)間上要被拼接在另一經(jīng)編碼的視頻數(shù)據(jù)流的下游的第二經(jīng)編碼的視頻數(shù)據(jù)流中的拼接點(diǎn)起始畫面。例如,外部控制信號(hào)規(guī)定從第二經(jīng)編碼的視頻數(shù)據(jù)流的起點(diǎn)開(kāi)始的經(jīng)編碼的畫面的數(shù)目,拼接點(diǎn)標(biāo)識(shí)信息處理單元14將這個(gè)數(shù)目的經(jīng)編碼的畫面內(nèi)的最遲的CRA畫面作為拼接點(diǎn)畫面。
對(duì)于被標(biāo)識(shí)出的拼接點(diǎn)CRA,如果那個(gè)畫面的片的NalUnitType是4,則拼接點(diǎn)標(biāo)識(shí)信息處理單元14將NalUnitType的值改變?yōu)?,其指示該畫面是未被TFD畫面緊跟的BLA畫面。此外,拼接點(diǎn)標(biāo)識(shí)信息處理單元14將第二經(jīng)編碼的視頻數(shù)據(jù)流中的拼接點(diǎn)CRA畫面及其后續(xù)畫面提供給數(shù)據(jù)拼接單元15,并且同時(shí)發(fā)出丟棄緊跟拼接點(diǎn)CRA畫面的TFD畫面的指令。
另一方面,對(duì)于被標(biāo)識(shí)出的拼接點(diǎn)CRA畫面,如果該畫面的片的NalUnitType是5,則拼接點(diǎn)標(biāo)識(shí)信息處理單元14將NalUnitType的值改變?yōu)?,其指示該畫面是未被TFD畫面緊跟的BLA畫面。此外,拼接點(diǎn)標(biāo)識(shí)信息處理單元14將第二經(jīng)編碼的視頻數(shù)據(jù)流中的拼接點(diǎn)CRA畫面及其后續(xù)畫面提供給數(shù)據(jù)拼接單元15。然而,在此情形中,拼接點(diǎn)標(biāo)識(shí)信息處理單元14并不發(fā)出以丟棄拼接點(diǎn)CRA畫面之后緊隨的TFD畫面的指令。
數(shù)據(jù)拼接單元15從拼接點(diǎn)標(biāo)識(shí)信息處理單元14接收第二經(jīng)編碼的視頻數(shù)據(jù)流,并且把它拼接到在時(shí)間上要被拼接在拼接點(diǎn)上游的第一經(jīng)編碼的視頻數(shù)據(jù)流的尾端。此時(shí),數(shù)據(jù)拼接單元15從第二經(jīng)編碼的視頻數(shù)據(jù)流中丟棄緊跟其起始畫面并且不能被正確再現(xiàn)的任何TFD畫面。然后,數(shù)據(jù)拼接單元15將通過(guò)將第一和第二經(jīng)編碼的視頻數(shù)據(jù)流拼接在一起而創(chuàng)建的被拼接的經(jīng)編碼的視頻數(shù)據(jù)存儲(chǔ)在存儲(chǔ)單元(未描繪出)中。
圖6是示出通過(guò)根據(jù)第一實(shí)施方式的視頻編碼裝置執(zhí)行的視頻編碼處理的操作流程圖。視頻編碼裝置1根據(jù)圖6的操作流程圖對(duì)要被編碼的整個(gè)視頻序列進(jìn)行編碼。
在開(kāi)始這個(gè)序列的編碼處理之前,例如,通過(guò)控制單元11來(lái)確定諸如GOP的畫面預(yù)測(cè)結(jié)構(gòu)(步驟S101)。將所確定的畫面預(yù)測(cè)結(jié)構(gòu)用信號(hào)發(fā)送至編碼控制單元12。
然后,編碼控制單元12基于畫面預(yù)測(cè)結(jié)構(gòu)、根據(jù)視頻數(shù)據(jù)的起點(diǎn)開(kāi)始的的目標(biāo)畫面的位置等來(lái)確定要被用于對(duì)目標(biāo)畫面進(jìn)行編碼的編碼模式并且產(chǎn)生要被編碼的目標(biāo)畫面的頭信息(步驟S102)。
接下來(lái),編碼控制單元12確定是否目標(biāo)畫面的片NUH中的NalUnitType是否是4或5或8中的任何一個(gè),或者不是其中之一(步驟S103)。當(dāng)NalUnitType是4時(shí),目標(biāo)畫面是被TFD畫面跟隨的CRA畫面。當(dāng)包含作為起始畫面的此目標(biāo)畫面的經(jīng)編碼的視頻數(shù)據(jù)流被拼接在另一經(jīng)編碼的視頻數(shù)據(jù)流的下游側(cè)時(shí),需要在視頻解碼處理過(guò)程中校正此目標(biāo)畫面及其后續(xù)畫面的解碼延遲和顯示延遲值。因此,編碼控制單元12將被附加到此目標(biāo)畫面的BPSEI中的RapCpbParamsPresentFlag設(shè)定為1(步驟S104)。然后,編碼控制單元12將要被用于校正顯示延遲的顯示延遲校正信息AltDpbOutputDelay的值設(shè)定成等于要被重新排序的畫面的數(shù)目的二倍。此外,編碼控制單元12將要被用于校正解碼延遲的解碼延遲校正信息AltCpbRemovalDelayOffset的值設(shè)定成等于緊跟CRA畫面的TFD畫面的數(shù)目的二倍(步驟S105)。
另一方面,當(dāng)NalUnitType是4或5時(shí),目標(biāo)畫面是被附加了BPSEI的畫面,但是此目標(biāo)畫面未被TFD畫面跟隨。因此,編碼控制單元12將被附加到此目標(biāo)畫面的BPSEI中的RapCpbParamsPresentFlag設(shè)定為0(步驟S106)。當(dāng)NalUnitType既不是4也不是5或8時(shí),此目標(biāo)畫面不是被附加了BPSEI的畫面。因此,編碼控制單元12并不設(shè)定RapCpbParamsPresentFlag。
在步驟S105或S106之后,或者如果在步驟S103中NalUnitType不是4或5,則編碼控制單元12將目標(biāo)畫面的數(shù)據(jù)與那個(gè)畫面的頭信息和編碼模式的類型一起提供至畫面編碼單元13。然后,畫面編碼單元13根據(jù)編碼模式和頭信息來(lái)對(duì)目標(biāo)畫面進(jìn)行編碼并將頭信息附加到經(jīng)編碼的畫面的數(shù)據(jù)(S107)。
之后,控制單元11確定在視頻序列中是否存在余下要被編碼的任何畫面(步驟S108)。如果存在余下要被編碼的任何畫面(步驟S108中的是),則控制單元11執(zhí)行從步驟S102開(kāi)始的處理以對(duì)下一目標(biāo)畫面進(jìn)行編碼。另一方面,如果不存在余下要被編碼的任何畫面(步驟S108中的否),則控制單元11終止編碼處理。
圖7是示出通過(guò)根據(jù)第一實(shí)施方式的視頻編碼裝置執(zhí)行的視頻編輯處理的操作流程圖。
拼接點(diǎn)標(biāo)識(shí)信息處理單元14從存儲(chǔ)單元(未描繪出)依次讀出要被拼接在拼接點(diǎn)的上游的第一經(jīng)編碼的視頻數(shù)據(jù)流中的直到拼接點(diǎn)的編碼數(shù)據(jù)(步驟S201)。此外,拼接點(diǎn)標(biāo)識(shí)信息處理單元14從存儲(chǔ)單元(未描繪出)讀出要被拼接在拼接點(diǎn)下游的第二經(jīng)編碼的視頻數(shù)據(jù)流中的在拼接點(diǎn)之后的經(jīng)編碼的畫面(步驟S202)。接下來(lái),針對(duì)讀取自第二經(jīng)編碼的視頻數(shù)據(jù)流的起始CRA畫面,拼接點(diǎn)標(biāo)識(shí)信息處理單元14將每個(gè)片NUH中的NalUnitType的值改變?yōu)橹甘綛LA畫面的值,并將起始CRA畫面提供至數(shù)據(jù)拼接單元15(步驟S203)。此外,拼接點(diǎn)標(biāo)識(shí)信息處理單元14確定是否NalUnitType的原始值是4,即,是否存在任何TFD畫面(步驟204)。如果NalUnitType的原始值是4(步驟S204中的是),則存在在起始CRA(拼接之后其是BLA畫面)畫面之后的TFD畫面。因此,拼接點(diǎn)標(biāo)識(shí)信息處理單元將TFD丟棄標(biāo)志設(shè)定為1(步驟S205)。另一方面,如果NalUnitType的原始值不是4(步驟S204中的否),則不存在起始CRA畫面之后的TFD畫面。因此,拼接點(diǎn)標(biāo)識(shí)信息處理單元將TFD丟棄標(biāo)志設(shè)定為0(步驟S206)。
在步驟S205或S206,拼接點(diǎn)標(biāo)識(shí)信息處理單元14將第二經(jīng)編碼的視頻數(shù)據(jù)流的起始CRA畫面及其后續(xù)畫面提供至數(shù)據(jù)拼接單元15。然后,數(shù)據(jù)拼接單元15將起始CRA畫面(即,BLA畫面)拼接在第一經(jīng)編碼的視頻數(shù)據(jù)流的拼接點(diǎn)的下游側(cè)(步驟S207)。
之后,數(shù)據(jù)拼接單元15進(jìn)行至在被拼接到第一經(jīng)編碼的視頻數(shù)據(jù)流的畫面之后或者在被丟棄的畫面之后的在第二經(jīng)編碼的視頻數(shù)據(jù)流中的下一目標(biāo)畫面。然后,數(shù)據(jù)拼接單元15確定是否此目標(biāo)畫面的每個(gè)片NUH中的NalUnitType是2(即,是否該畫面是TFD畫面),并且是否TFD丟棄標(biāo)志是1(步驟S208)。
如果NalUnitType是2并且如果TFD丟棄標(biāo)志是1(步驟S208中的是),則數(shù)據(jù)拼接單元15丟棄此目標(biāo)畫面(步驟S209)。另一方面,如果NalUnitType不是2或者如果TFD丟棄標(biāo)志是0(步驟S208中的否),則數(shù)據(jù)拼接單元15將此目標(biāo)畫面添加于被拼接的經(jīng)編碼的視頻數(shù)據(jù)的尾端,并將TFD丟棄標(biāo)志設(shè)定為0(步驟S201)。
在步驟S209或S210之后,數(shù)據(jù)拼接單元15確定目標(biāo)畫面之后是否存在任何其它畫面(步驟S211)。如果存在任何后續(xù)畫面(步驟S211中的是),則數(shù)據(jù)拼接單元15返回步驟S208以重復(fù)上面的步驟。另一方面,如果不存在任何后續(xù)畫面(步驟S211中的否),則數(shù)據(jù)拼接單元15終止視頻編輯處理。
接下來(lái)將描述用于對(duì)通過(guò)根據(jù)第一實(shí)施方式的視頻編碼裝置1編碼或編輯了的經(jīng)編碼的視頻數(shù)據(jù)進(jìn)行解碼的視頻解碼裝置。
圖8是根據(jù)第一實(shí)施方式的視頻解碼裝置的簡(jiǎn)化框圖。視頻解碼裝置2包括控制單元21、頭信息分析單元22、畫面解碼/顯示時(shí)間確定單元23、畫面解碼單元24以及幀存儲(chǔ)器25。構(gòu)成視頻解碼裝置2的這些單元均作為單獨(dú)的電路被實(shí)現(xiàn)在視頻解碼裝置2中??商孢x地,構(gòu)成視頻解碼裝置2的這些單元可以以單個(gè)集成電路(其上的實(shí)現(xiàn)各個(gè)單元的功能的電路被集成)的形式被實(shí)現(xiàn)在視頻解碼裝置2中。此外,構(gòu)成視頻解碼裝置2的這些單元可以是通過(guò)在視頻解碼裝置2中所合并的處理器上執(zhí)行計(jì)算機(jī)程序?qū)崿F(xiàn)的功能模塊。
在對(duì)經(jīng)編碼的視頻數(shù)據(jù)進(jìn)行解碼時(shí),控制單元21控制視頻解碼裝置2的每個(gè)指定單元的操作。
頭信息分析單元22分析經(jīng)編碼的視頻數(shù)據(jù)的頭信息并將確定畫面解碼和顯示時(shí)間所需的參數(shù)(例如,每個(gè)畫面的NalUnitType,BPSEI中所攜帶的AltDpbOutputDelay和AltCpbRemovalDelayOffset,以及PTSEI中所攜帶CpbRemovalDelay和DpbOutputDelay)傳遞至畫面解碼/顯示時(shí)間確定單元23。
從頭信息分析單元22接收參數(shù)的畫面解碼/顯示時(shí)間確定單元23檢查要被解碼的目標(biāo)畫面的片NUH。當(dāng)NUH中所攜帶的NalUnitType的值是6或7時(shí),畫面解碼/顯示時(shí)間確定單元23確定要被解碼的畫面是BLA畫面。
當(dāng)要被解碼的畫面是BLA畫面時(shí),畫面解碼/顯示時(shí)間確定單元23使用以下列方式計(jì)算出的值而不是被附加到BLA畫面的PTSEI中所攜帶的CpbRemovalDelay的值來(lái)作為BLA畫面的解碼延遲CpbRemovalDelay。
畫面解碼/顯示時(shí)間確定單元23從BLA畫面之前的緊跟最新近的被附加了BPSEI的畫面的畫面開(kāi)始一直到緊接在BLA畫面之前的畫面,對(duì)畫面的數(shù)目A進(jìn)行計(jì)數(shù)。接下來(lái),畫面解碼/顯示時(shí)間確定單元23檢查被附加到緊接在BLA畫面之前的畫面的PTSEI中所攜帶的CpbRemovalDelay的值B。然后畫面解碼/顯示時(shí)間確定單元23將BLA畫面的解碼延遲CpbRemovalDelay的值計(jì)算為A*(B/(A-1))。
當(dāng)要被解碼的畫面是NalUnitType是7(其指示BLA畫面被TFD畫面緊跟)的BLA畫面時(shí),畫面解碼/顯示時(shí)間確定單元23進(jìn)一步檢查被附加到BLA畫面的BPSEI中的標(biāo)志RapCpbParamsPresentFlag。當(dāng)RapCpbParamsPresentFlag的值是1時(shí),畫面解碼/顯示時(shí)間確定單元23確定緊跟BLA畫面的TFD畫面已被丟棄,并且以下面的方式校正該BLA畫面的顯示延遲DpbOutputDelay和從緊跟BLA畫面的畫面到下一個(gè)被附加了BPSEI的畫面的每個(gè)后續(xù)畫面的解碼延遲CpbRemovalDelay。
畫面解碼/顯示時(shí)間確定單元23使用被附加到BLA畫面的BPSEI中所攜帶的AltDpbOutputDelay,而不是被附加到BLA畫面的PTSET中所攜帶的DpbOutputDelay來(lái)作為BLA畫面的顯示延遲DpbOutputDelay。此外,畫面解碼/顯示時(shí)間確定單元23對(duì)從緊跟BLA畫面的畫面到下一個(gè)被附加了BPSEI的畫面中的每個(gè)后續(xù)畫面、通過(guò)從被附加到后續(xù)畫面的PTSET中所攜帶的CpbRemovalDelay的值減去被附加到BLA畫面的BPSEI中所攜帶的AltCpbRemovalDelayOffset的值來(lái)進(jìn)行校正。
對(duì)于除上面的畫面之外的畫面,畫面解碼/顯示時(shí)間確定單元23通過(guò)直接取得被附加到該畫面的PTSEI中所攜帶的CpbRemovalDelay和DpbOutputDelay的值來(lái)確定該畫面的解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay。
畫面解碼/顯示時(shí)間確定單元23基于上面的解碼延遲CpbRemovalDelay來(lái)確定每個(gè)畫面的解碼時(shí)間,并且在確定的解碼時(shí)間將解碼指令發(fā)送至畫面解碼單元24。此外,畫面解碼/顯示時(shí)間確定單元23基于上面的顯示延遲DpbOutputDelay來(lái)確定每個(gè)畫面的顯示時(shí)間,并且在確定的顯示時(shí)間將顯示指令發(fā)送至幀存儲(chǔ)器25。
一旦接收到目標(biāo)畫面的解碼指令,畫面解碼單元24通過(guò)利用幀存儲(chǔ)器25中所存儲(chǔ)的參考畫面來(lái)解碼目標(biāo)畫面。然后,畫面解碼單元24將經(jīng)解碼的畫面存儲(chǔ)到幀存儲(chǔ)器25中。畫面解碼單元24通過(guò)使用與視頻編碼裝置1中的畫面編碼單元所采用的方法相同的編碼方法來(lái)執(zhí)行該解碼。
幀存儲(chǔ)器25存儲(chǔ)經(jīng)解碼的畫面。此外,幀存儲(chǔ)器25將經(jīng)解碼的畫面輸出至畫面解碼單元24以向隨后要被解碼的畫面提供參考畫面。幀存儲(chǔ)器25還根據(jù)從畫面解碼/顯示時(shí)間確定單元23接收的顯示指令向顯示單元(未描繪出)輸出經(jīng)解碼的畫面。
圖9是示出通過(guò)根據(jù)第一實(shí)施方式的視頻解碼裝置執(zhí)行的視頻解碼處理的操作流程圖。視頻解碼裝置2根據(jù)圖9的操作流程圖來(lái)對(duì)要被解碼的整個(gè)視頻序列進(jìn)行解碼。
在對(duì)整個(gè)序列開(kāi)始解碼處理之前,控制單元21將變量“cnt”和“flag”初始化為0(步驟S301)。變量“cnt”表示從被附加了BPSEI的畫面至下一個(gè)被附加了BPSEI的畫面范圍中的畫面的數(shù)目。變量“flag”是指示畫面是否是其CpbRemovalDelay需要校正的非BLA畫面的變量。
接下來(lái),頭信息分析單元22分析要被解碼的目標(biāo)畫面的頭信息,并將確定顯示時(shí)間所需的參數(shù)傳送至畫面解碼/顯示時(shí)間確定單元23(步驟S302)。畫面解碼/顯示時(shí)間確定單元23確定是否變量“flag”是0或者是否要被解碼的畫面的片頭NUH中的NalUnitType的值是6或7,即,是否要被解碼的畫面是BLA畫面(步驟S303)。如果變量標(biāo)志是1,并且如果要被解碼的畫面的片頭NUH中的NalUnitType的值不是6或7(步驟S303中的否),則畫面解碼/顯示時(shí)間確定單元23通過(guò)使用解碼延遲校正信息來(lái)校正要被解碼的畫面(在此情形中,其是非BLA畫面)的解碼延遲CpbRemovalDelay。
在步驟S304之后,或者如果在步驟S303中確定出變量“flag”是0或者NalUnitType是6或7(步驟S303中的是),則畫面解碼/顯示時(shí)間確定單元23確定是否要被解碼的畫面是被附加了BPSEI的畫面(步驟S305)。
如果要被解碼的畫面是被附加了BPSEI的畫面(步驟S305中的是),則畫面解碼/顯示時(shí)間確定單元23將變量“cnt”的值復(fù)制為變量“d”,并將變量“cnt”和“flag”重置為0(步驟S306)。如果要被解碼的畫面不是被附加了BPSEI的畫面(步驟S305中的否),則畫面解碼/顯示時(shí)間確定單元23使變量“cnt”的值增加1(步驟S307)。
在步驟S306或S307之后,畫面解碼/顯示時(shí)間確定單元23確定要被解碼的畫面的片頭NUH中的NalUnitType的值是否是6或7(步驟S308)。如果要被解碼的畫面的片頭NUH中的NalUnitType的值是6或7(步驟S308中的是),則要被解碼的畫面是BLA畫面。然后,畫面解碼/顯示時(shí)間確定單元23根據(jù)變量“d”的值來(lái)校正畫面的解碼延遲CpbRemovalDelay(步驟S309)。
接下來(lái),畫面解碼/顯示時(shí)間確定單元23確定是否要被解碼的畫面的片頭NUH中的NalUnitType的值是7并且是否被附加到要被解碼的畫面的BPSEI中的RapCpbParamsPresentFlag的值是1(步驟S310)。如果要被解碼的畫面的片頭NUH中的NalUnitType的值是7,并且如果被附加到要被解碼的畫面的BPSEI中的RapCpbParamsPresentFlag的值是1(步驟S310中是),則畫面解碼/顯示時(shí)間確定單元23將變量“flag”設(shè)定為1,同時(shí)將BLA畫面的顯示延遲DpbOutputDelay校正為顯示延遲校正信息AltDpbOutputDelay(步驟S311)。
在步驟S311之后,或者如果在步驟S308中確定出要被解碼的畫面的片頭NUH中的NalUnitType的值不是6或7(步驟S308中的否),或者如果在步驟S310中確定出要被解碼的畫面的片頭NUH中的NalUnitType的值不是7并且被附加到要被解碼的畫面的BPSEI中的RapCpbParamsPresentFlag的值是0(步驟S310中的否),則畫面解碼/顯示時(shí)間確定單元23在確定的解碼時(shí)間向畫面解碼單元24發(fā)出解碼指令。此外,畫面解碼/顯示時(shí)間確定單元23在確定的顯示定時(shí)向幀存儲(chǔ)器25發(fā)出顯示指令。然后,畫面解碼單元24在解碼時(shí)間對(duì)目標(biāo)畫面進(jìn)行解碼。另一方面,幀存儲(chǔ)器25在顯示單元(未描繪出)上顯示經(jīng)解碼的畫面(步驟S312)。
控制單元21確定經(jīng)編碼的視頻數(shù)據(jù)中是否存在余下要被解碼的任何畫面(步驟S313)。如果存在余下要被解碼的任何畫面(步驟S313中的是)則控制單元21返回至步驟S302。然后,解碼順序中下一個(gè)要被解碼的畫面被當(dāng)做目標(biāo)畫面,并且重復(fù)從步驟S302開(kāi)始的處理。另一方面,如果不存在余下要被解碼的任何畫面(步驟S313中的否),則控制單元21終止視頻解碼處理。
如上所述,即使當(dāng)兩個(gè)或多個(gè)經(jīng)編碼的視頻數(shù)據(jù)流在不對(duì)其解碼的情況下被拼接在一起時(shí),根據(jù)本實(shí)施方式的視頻編碼裝置不需要校正在編碼時(shí)確定的解碼延遲和顯示延遲參數(shù)。然后,由于可利用在拼接經(jīng)編碼的視頻數(shù)據(jù)流時(shí)添加的解碼延遲校正和顯示延遲校正參數(shù)來(lái)校正每個(gè)畫面的解碼延遲和顯示延遲,所以根據(jù)本實(shí)施方式的視頻解碼裝置可在校正時(shí)間對(duì)每個(gè)畫面進(jìn)行解碼并顯示。
接下來(lái),將描述第二實(shí)施方式。第二實(shí)施方式與第一實(shí)施方式的不同在于經(jīng)編碼的視頻數(shù)據(jù)的結(jié)構(gòu)。
參考圖10,將描述根據(jù)第二實(shí)施方式的經(jīng)編碼的視頻數(shù)據(jù)的結(jié)構(gòu)。與根據(jù)圖4中描繪的第一實(shí)施方式的經(jīng)編碼的畫面結(jié)構(gòu)一樣,一個(gè)畫面的數(shù)據(jù)結(jié)構(gòu)包含六種NAL單元1010至1015。其中,BPSEI 1013和1014不同于圖4中描繪的BPSEI 413和BPSEI 414。另一方面,DELIM 1010、SPS 1011、PPS 1012、SLICE 1015以及NUH 1020分別與圖4中描繪的DELIM 410、SPS 411、PPS 412、SLICE 415以及NUH 420相同。
BPSEI 1013像BPSEI 413一樣包含多個(gè)(N+1)個(gè)字InitialCpbRemovalDelay和InitialCpbRemovalDelayOffset段以及這些字段之后的RapCpbParamsPresentFlag字段。然而,AltCpbRemovalDelay字段和AltDpbOutputDelay字段并不被包含在BPSEI中。另一方面,PTSEI 1014像PTSEI 414一樣包含CpbRemovalDelay字段和DpbOutputDelay字段。當(dāng)BPSEI中的RapCpbParamsPresentFlag的值是1時(shí),PTSEI 1014進(jìn)一步包含AltCpbRemovalDelay字段和AltDpbOutputDelay字段。
如果即使當(dāng)TFD畫面被丟棄時(shí)特定畫面的PTSET中的CpbRemovalDelay或DpbOutputDelay也不改變,則CpbRemovalDelay或DpbOutputDelay的值被設(shè)定為與CpbRemovalDelay或DpbOutputDelay的值相同。
如上所述,與第一實(shí)施方式的差異在于攜帶AltCpbRemovalDelay和AltDpbOutputDelay字段的SEI的類型。因此,第二實(shí)施方式的視頻編碼裝置與第一實(shí)施方式的視頻編碼裝置的不同在于編碼控制單元12的操作。因此下面描述編碼控制單元12的操作。
編碼控制單元12將AltCpbRemovalDelay和AltDpbOutputDelay字段被存儲(chǔ)到被附加到每個(gè)畫面的PTSEI中,而不是在BPSEI中。在此情形中,編碼控制單元12執(zhí)行控制,使得每個(gè)畫面的解碼延遲和顯示延遲的值在兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流被拼接時(shí)分別被存儲(chǔ)到AltCpbRemovalDelay和AltDpbOutputDelay字段中。
接下來(lái),將描述根據(jù)第二實(shí)施方式的視頻解碼裝置的操作。根據(jù)第二實(shí)施方式的視頻解碼裝置的構(gòu)造與根據(jù)第一實(shí)施方式的視頻解碼裝置的構(gòu)造基本上相同。然而,第二實(shí)施方式的視頻解碼裝置與第一實(shí)施方式的視頻解碼裝置不同在于畫面解碼解碼/顯示時(shí)間確定單元23的操作。因此下面描述畫面解碼/顯示時(shí)間確定單元23的操作。
當(dāng)要被解碼的畫面是其NalUnitType是7的BLA畫面時(shí),畫面解碼/顯示時(shí)間確定單元23進(jìn)一步檢查BPSEI中的RapCpbParamsPresentFlag。當(dāng)RapCpbParamsPresentFlag是1時(shí),畫面解碼/顯示時(shí)間確定單元23確定緊跟BLA畫面的TFD畫面已被丟棄。然后,畫面解碼/顯示時(shí)間確定單元23以下面的方式校正BLA畫面的DpbOutputDelay和從緊跟BLA畫面的畫面(非TFD畫面)至下一個(gè)被附加了BPSEI的畫面范圍中的每個(gè)畫面的CpbRemovalDelay。
畫面解碼/顯示時(shí)間確定單元23使用被附加到BLA畫面的PTSEI中所攜帶的AltDpbOutputDelay,而不是被附加到BLA畫面的PTSET中所攜帶的DpbOutputDelay來(lái)作為BLA畫面的DpbOutputDelay。
此外,畫面解碼/顯示時(shí)間確定單元23使用被附加到該畫面的PTSEI中所攜帶的AltCpbRemovalDelayOffset,而不是被附加到該畫面的PTSET中所攜帶的CpbRemovalDelay來(lái)作為從緊跟BLA畫面的畫面到下一個(gè)被附加了BPSEI的畫面的范圍中的每個(gè)畫面的CpbRemovalDelay。
接下來(lái),將描述第三實(shí)施方式,第三實(shí)施方式不同于第一實(shí)施方式在于視頻解碼裝置中的畫面解碼/顯示時(shí)間確定單元23計(jì)算BLA畫面的解碼延遲。因此下面將描述畫面解碼/顯示時(shí)間確定單元23。
畫面解碼/顯示時(shí)間確定單元23在分析從頭信息分析單元22傳遞的目標(biāo)畫面的頭信息時(shí)對(duì)片NUH進(jìn)行檢查。當(dāng)HUH中所攜帶的NalUnitType的值是6或7時(shí),畫面解碼/顯示時(shí)間確定單元23確定出要被解碼的目標(biāo)畫面是BLA畫面。
當(dāng)要被解碼的目標(biāo)畫面是BLA畫面時(shí),畫面解碼/顯示時(shí)間確定單元23使用以下面的方式計(jì)算出的值,而不是被附加到BLA畫面的PTSEI中所攜帶的CpbRemovalDelay的值來(lái)作為BLA畫面的CpbRemovalDelay。
用A來(lái)表示從BLA畫面(下文中被稱為Pic2)之前的、緊跟最新近的被附加了BPSEI的畫面(在下文中被稱為Pic1)的畫面開(kāi)始一直到緊接在Pic2之前的畫面進(jìn)行計(jì)數(shù)所得到的畫面數(shù)目。畫面解碼/顯示時(shí)間確定單元23根據(jù)Pic2的CpbRemovalDelay的值B導(dǎo)出第一校正值Mod1為A*(B/(A-1))。B/(A-1)對(duì)應(yīng)于連續(xù)的畫面之間的時(shí)間差(單位是tc)。B/(A-1)將在下文中被指定為“s”。
接下來(lái),畫面解碼/顯示時(shí)間確定單元23計(jì)算用于校正在拼接點(diǎn)處的CPB中保持的數(shù)據(jù)量上的差別。用Pos2表示正好在對(duì)Pic2進(jìn)行解碼之前在CPB中保持的數(shù)據(jù)量,更具體地,當(dāng)通過(guò)將被附加到Pic2的BPSEI中所攜帶的InitialCpbRemovalDelay的值(表示為Init2)除以90000(即,90kHz)而計(jì)算出的時(shí)間[秒]從時(shí)間0(帶有作為起始畫面的Pic2的經(jīng)編碼的視頻數(shù)據(jù)流的第一位到達(dá)視頻解碼裝置的接收緩沖器的時(shí)間)開(kāi)始消逝時(shí)在CPB中保持的數(shù)據(jù)量。然后,Pos被計(jì)算為(R*Init2/90000)。R表示位速率。
另一方面,用Init1表示被附加到Pic1的BPSEI中所攜帶的InitialCpbRemovalDelay的值,TotalB表示位于Pic1與Pic2之間(包括Pic1)的所有畫面的代碼的總量;然后,正好在對(duì)Pic2解碼之前在視頻解碼裝置對(duì)經(jīng)編碼的視頻數(shù)據(jù)從其開(kāi)始進(jìn)行解碼時(shí)被保持在CPB中的數(shù)據(jù)量Pos2被計(jì)算為(R*(Init1+(A+1)*s)-TotalB)。
當(dāng)Pos1小于Pos2時(shí),直到解碼裝置剛開(kāi)始對(duì)解碼視頻數(shù)據(jù)流中的Pic2進(jìn)行解碼時(shí),所有的Pic2數(shù)據(jù)還沒(méi)有到達(dá)視頻解碼裝置,因此不能對(duì)Pic1進(jìn)行解碼。這可以通過(guò)以(s*tc)為時(shí)間單位延遲Pic2的解碼時(shí)間來(lái)避免。
當(dāng)(Pos2-Pos1)<Th時(shí),畫面解碼/顯示時(shí)間確定單元23將第二校正值Mod2設(shè)定成0。閾值Th是正值。另外,畫面解碼/顯示時(shí)間確定單元23將第二校正值Mod2設(shè)定成(Ceil((Pos2-Pos1)/R/(s*tc)))。Ceil()是取頂函數(shù)。當(dāng)要被解碼的畫面是BLA畫面時(shí),畫面解碼/顯示時(shí)間確定單元23將BLA畫面的CpbRemovalDelay替換為(Mod1+Mod2)。
以這種方式,根據(jù)第三實(shí)施方式的視頻解碼裝置確定正好在對(duì)BLA畫面進(jìn)行解碼之前在CPB中保持的數(shù)據(jù)量。結(jié)果,根據(jù)此實(shí)施方式的視頻解碼裝置能防止在VPB中出現(xiàn)下溢出。
接下來(lái),將描述第四實(shí)施方式。在第四實(shí)施方式中,即使當(dāng)被拼接在拼接點(diǎn)上游的第一經(jīng)編碼的視頻數(shù)據(jù)流中要被重新排序的畫面的數(shù)目不同于被拼接在拼接點(diǎn)的下游的第二經(jīng)編碼的視頻數(shù)據(jù)流中要被重新排序畫面的數(shù)目時(shí),也可適當(dāng)?shù)卮_定解碼延遲和顯示延遲。此外,在第四實(shí)施方式中,即使當(dāng)在第一經(jīng)編碼的視頻數(shù)據(jù)流中在拼接點(diǎn)之前要被顯示的任何畫面已被丟棄了,也可適當(dāng)?shù)卮_定解碼延遲和顯示延遲。
參考圖11至圖13,針對(duì)不同畫面編碼結(jié)構(gòu)和不同編輯點(diǎn),給出畫面解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay的值的解釋。
在圖11中,第一經(jīng)編碼的視頻數(shù)據(jù)流中要被重新排序的畫面的數(shù)目以及第二經(jīng)編碼的視頻數(shù)據(jù)流中要被重新排序的畫面的數(shù)目都是2,與在圖3的情況中一樣。此外,第一經(jīng)編碼的視頻數(shù)據(jù)流1101和第二經(jīng)編碼的視頻數(shù)據(jù)流1102與圖3描繪中的第一經(jīng)編碼的視頻數(shù)據(jù)流301和第二經(jīng)編碼的視頻數(shù)據(jù)流301一樣。指示第二經(jīng)編碼的視頻數(shù)據(jù)流1102的解碼延遲和顯示延遲值的塊陣列1103與圖3中描繪的塊陣列也一樣。然而,與圖3不同的是,第一經(jīng)編碼的視頻數(shù)據(jù)流1101中的畫面B13是拼接點(diǎn)畫面。
結(jié)果,與被拼接的經(jīng)編碼的視頻數(shù)據(jù)流304不同的是,被拼接的經(jīng)編碼的視頻數(shù)據(jù)1104中不包含畫面B15。
塊陣列1105指示被拼接的經(jīng)編碼的視頻數(shù)據(jù)1104中的畫面I72、I76、B74、B73以及B75應(yīng)具有的解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay。塊陣列1105的上部行中的每個(gè)塊攜帶了位于該塊正上方的被拼接的經(jīng)編碼的視頻數(shù)據(jù)1104中的對(duì)應(yīng)畫面的解碼延遲CpbRemovalDelay的值。同樣,塊陣列1105的下部行中的每個(gè)塊攜帶了位于該塊正上方的被拼接的經(jīng)編碼的視頻數(shù)據(jù)1104中的對(duì)應(yīng)畫面的顯示延遲DpbOutputDelay的值。如可從塊陣列1105看到的,即使當(dāng)畫面I72被拼接使得在B13之后時(shí),畫面I72、I76、B74、B73以及B75的解碼延遲值和顯示延遲值與當(dāng)畫面I72被拼接使得緊跟畫面B15時(shí)的一樣。
與圖3相比較,位于在畫面I72與前面的最新近的被附加了BPSEI的畫面I12之間的畫面的數(shù)目是6,其比圖3中位于畫面I72與I12之間的畫面的數(shù)目小1。然而,與圖3中的情況一樣,為了以與畫面被輸入時(shí)相同的間隔及相同順序完全顯示經(jīng)解碼的畫面,CpbRemovalDelay的值需被設(shè)定為16。
將參考?jí)K陣列1106來(lái)描述原因。塊陣列1106指示按照解碼時(shí)間順序和顯示時(shí)間順序的在被拼接的經(jīng)編碼的視頻數(shù)據(jù)中的畫面。如塊陣列1106中所描繪的,被拼接的經(jīng)編碼的視頻數(shù)據(jù)并不包含畫面B15,但畫面P16需要在B14之后被顯示兩個(gè)畫面時(shí)間。如果畫面I72和后續(xù)的畫面要在顯示P16之后被連續(xù)地顯示,則畫面I72的解碼時(shí)間必須被延遲一個(gè)畫面時(shí)間。在此情形中,由于畫面B14被顯示了兩個(gè)畫面時(shí)間,所以出現(xiàn)了顯示凍結(jié)。
在圖12中所示的實(shí)例中,第二經(jīng)編碼的視頻數(shù)據(jù)流1202中要被重新排序的畫面的數(shù)目小于第一經(jīng)編碼的視頻數(shù)據(jù)流1201中要被重新排序的畫面的數(shù)目,在所示出的實(shí)例中,第一經(jīng)編碼的視頻數(shù)據(jù)流1201中要被重新排序的畫面的數(shù)目是2,而第二經(jīng)編碼的視頻數(shù)據(jù)流1202中要被重新排序的畫面的數(shù)目是1。塊陣列1203指示拼接之前第二經(jīng)編碼的視頻數(shù)據(jù)流中的每個(gè)畫面的解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay。
假如,第二經(jīng)編碼的視頻數(shù)據(jù)流1202中的畫面I72被拼接使得在第一經(jīng)編碼的視頻數(shù)據(jù)流1201中的畫面B15之后,如在被拼接的經(jīng)編碼的視頻數(shù)據(jù)流1204中所描繪的。在此情形中,拼接之后的畫面I72及其后續(xù)畫面的解碼延遲和顯示延遲值如在塊陣列1205中所描繪的一樣。塊陣列1206指示按照解碼時(shí)間順序和按照顯示時(shí)間順序的在被拼接的經(jīng)編碼的視頻數(shù)據(jù)中的畫面。
為了以與畫面被輸入相同的間隔及相同的順序接連地完全顯示經(jīng)解碼的畫面,如在塊陣列1206中所描繪的,需要與在第一經(jīng)編碼的視頻數(shù)據(jù)流1201中要被重新排序的畫面的數(shù)目與在第二經(jīng)編碼的視頻數(shù)據(jù)流1202中要被重新排序的畫面的數(shù)目之間的差成比例地增加第二經(jīng)編碼的視頻數(shù)據(jù)流1202中的起始畫面的解碼延遲。在所示的實(shí)例中,解碼延遲被增加了2至16
如果第一經(jīng)編碼的視頻數(shù)據(jù)流中被選為拼接點(diǎn)畫面的畫面不是B15,而是畫面B13、B14或B16,則第二經(jīng)編碼的視頻數(shù)據(jù)流中的起始畫面的解碼延遲與當(dāng)?shù)诙?jīng)編碼的視頻數(shù)據(jù)流被拼接從而在畫面B15之后時(shí)一樣。然而,在此情形中,在等于畫面B16之前的畫面當(dāng)中被丟棄的畫面的數(shù)目的時(shí)段內(nèi)出現(xiàn)畫面顯示凍結(jié)。
在圖13中所示的實(shí)例中,第一經(jīng)編碼的視頻數(shù)據(jù)流1301中要被重新排序的畫面的數(shù)目小于第二經(jīng)編碼的視頻數(shù)據(jù)流1302中要被重新排序的畫面的數(shù)目。在所示的實(shí)例中,第一經(jīng)編碼的視頻數(shù)據(jù)流1301中要被重新排序的畫面的數(shù)目是1,而第二經(jīng)編碼的視頻數(shù)據(jù)流1302中要被重新排序的畫面的數(shù)目是2。塊陣列指示拼接之前第二經(jīng)編碼的視頻數(shù)據(jù)流中每個(gè)畫面的解碼延遲CpbRemovalDelay和顯示延遲DpbOutputDelay。
假定第二經(jīng)編碼的視頻數(shù)據(jù)流1302中的畫面I72被拼接成跟隨在第一經(jīng)編碼的視頻數(shù)據(jù)流1301中的畫面B15,如在被拼接的經(jīng)編碼的視頻數(shù)據(jù)流1304中所描繪的。在此情形中,拼接之后畫面I72及其后續(xù)畫面的解碼延遲和顯示延遲如在塊陣列1305中所描述的。塊陣列1306指示按照解碼時(shí)間順序和顯示時(shí)間順序的在被拼接的經(jīng)編碼的視頻數(shù)據(jù)中的畫面。
為了以與畫面被輸入相同的間隔及相同的順序完全顯示經(jīng)解碼的畫面,第一經(jīng)編碼的視頻數(shù)據(jù)流中的最后顯示畫面需被重復(fù)。
如圖12和圖13中所示,基于第一經(jīng)編碼的視頻數(shù)據(jù)流中要重新排序的畫面的數(shù)目與第二經(jīng)編碼的視頻數(shù)據(jù)流中要重新排序的畫面的數(shù)目之間的關(guān)系,需要延遲第二經(jīng)編碼的視頻數(shù)據(jù)流中的起始畫面的解碼時(shí)間,否則可能跨拼接點(diǎn)而發(fā)生顯示畫面凍結(jié)。此外,如在圖11中所示出的,根據(jù)第一經(jīng)編碼的視頻數(shù)據(jù)流中拼接點(diǎn)的位置,顯示畫面凍結(jié)可能變得不可避免。
接下來(lái)將描述解決上述問(wèn)題的根據(jù)第四實(shí)施方式的視頻解碼裝置。第四實(shí)施方式的視頻解碼裝置與第一實(shí)施方式的視頻解碼裝置不同在于畫面解碼/顯示實(shí)現(xiàn)確定單元23的操作。因此下面描述畫面解碼/顯示實(shí)現(xiàn)確定單元23。
畫面解碼/顯示實(shí)現(xiàn)確定單元23在分析從頭信息分析單元22傳遞的目標(biāo)畫面的頭信息時(shí)對(duì)片NUH進(jìn)行檢查。當(dāng)HUH中所攜帶的NalUnitType的值是6或7時(shí),畫面解碼/顯示時(shí)間確定單元23確定出要被解碼的目標(biāo)畫面是BLA畫面。
當(dāng)要被解碼的目標(biāo)畫面是BLA畫面時(shí),畫面解碼/顯示時(shí)間確定單元23使用以下面的方式計(jì)算出的值,而不是被附加到BLA畫面的PTSEI中所攜帶的CpbRemovalDelay的值來(lái)作為BLA畫面的CpbRemovalDelay。
畫面解碼/顯示時(shí)間確定單元23從BLA畫面(在下文中被稱為Pic2)之前的緊跟最新近的被附加了BPSEI的畫面的畫面(在下文中被稱為Pic1)開(kāi)始一直到緊接在Pic2之前的畫面對(duì)畫面的數(shù)目A進(jìn)行計(jì)數(shù)。畫面解碼/顯示時(shí)間確定單元23檢查被附加到緊接在Pic2之前的畫面的PTSET中所攜帶的CpbRemovalDelay的值B,并將PTSET的第一校正值Mod1計(jì)算為A*(B/(A-1))。
接下來(lái),畫面解碼/顯示時(shí)間確定單元23將要重新排序的畫面的數(shù)目R1(其在緊接在Pic2之前的畫面所參考的SPS中被定義)與要重新排序的畫面的數(shù)目R2(其被緊跟Pic2的非TFD畫面所參考)相比較。指示SPS中要被重新排序的畫面的數(shù)目的字段是根據(jù)在非專利文獻(xiàn)JCTVC-I1003("High-Efficiency Video Coding(HEVC)text specification Working Draft 7,"Joint Collaborative Team on Video Coding of ITU-T SG16WP3and ISO/IEC JTC1/SC29/WG11,May 2012)中所公開(kāi)的方法的SpsNumReorderPics。
當(dāng)R1等于R2時(shí),畫面解碼/顯示時(shí)間確定單元23使用Mod1直接作為Pic2的CpbRemovalDelay。當(dāng)R2大于R1時(shí),畫面解碼/顯示時(shí)間確定單元23將PTSEI的第二校正值Mod2計(jì)算為(R2-R1)*B/(A-1)。當(dāng)R2小于R1時(shí),畫面解碼/顯示時(shí)間確定單元23使用Mod1直接作為Pic1的CpbRemovalDelay。
此外,畫面解碼/顯示時(shí)間確定單元23基于R1與R2之間的關(guān)系來(lái)確定第一經(jīng)編碼的視頻數(shù)據(jù)流中的最后畫面是否要被凍結(jié)顯示,向幀存儲(chǔ)器25發(fā)信號(hào)通知確定的凍結(jié)時(shí)間段。
畫面解碼/顯示時(shí)間確定單元23以下列方式確定凍結(jié)時(shí)間段(以tc為單位)。當(dāng)R1等于R2時(shí)或當(dāng)R1大于R2時(shí),畫面解碼/顯示時(shí)間確定單元23將凍結(jié)時(shí)間段設(shè)定成0。另一方面,當(dāng)R1小于R2時(shí),畫面解碼/顯示時(shí)間確定單元23將凍結(jié)時(shí)間段設(shè)定成(R2-R1)*B/(A-1)。
如上所述,根據(jù)第四實(shí)施方式,即使當(dāng)拼接在拼接點(diǎn)的上游的第一經(jīng)編碼的視頻數(shù)據(jù)流包含在編碼(解碼)順序上遲于拼接點(diǎn)畫面并且要早于拼接點(diǎn)畫面被再現(xiàn)的任何畫面時(shí),視頻解碼裝置也能適當(dāng)?shù)卮_定位于拼接點(diǎn)之后的每個(gè)畫面的解碼延遲和顯示延遲。此外,即使當(dāng)要被重新排序的畫面的數(shù)目在拼接點(diǎn)之前和之后是不同的時(shí),視頻解碼裝置也能適當(dāng)?shù)卮_定位于拼接點(diǎn)之后的每個(gè)畫面的解碼延遲和顯示延遲。
接下來(lái)將描述第五實(shí)施方式。在第五實(shí)施方式中,視頻編碼裝置添加了一個(gè)當(dāng)兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流被拼接在一起時(shí)用于標(biāo)識(shí)不會(huì)造成顯示畫面凍結(jié)的畫面的參數(shù)。
為了防止跨拼接點(diǎn)而發(fā)生顯示畫面凍結(jié),第一經(jīng)編碼的視頻數(shù)據(jù)流中要被重新排序的畫面的數(shù)目必須等于或大于第二經(jīng)編碼的視頻數(shù)據(jù)流中要被重新排序畫面的數(shù)目,并且第一經(jīng)編碼的視頻數(shù)據(jù)流的拼接點(diǎn)必須被定位在僅參考時(shí)間在前的畫面的畫面的前一位置。在圖11的實(shí)例中,滿足此條件的拼接點(diǎn)式畫面B11或B15。
圖14示出了在根據(jù)第五實(shí)施方式的經(jīng)編碼的視頻中所包含的一個(gè)畫面的數(shù)據(jù)結(jié)構(gòu)。圖14中所示出的經(jīng)編碼的視頻中所包含一個(gè)畫面的數(shù)據(jù)結(jié)構(gòu)與圖4中所示的時(shí)間結(jié)構(gòu)400不同在于包括了編輯點(diǎn)SEI(EPSEI)NAL單元1416。其它六個(gè)NAL單元1410至1415與圖4中所示的數(shù)據(jù)結(jié)構(gòu)400的對(duì)應(yīng)NAL單元410至415相同。
EPSEI NAL單元1416是指示不會(huì)跨拼接點(diǎn)而造成顯示畫面凍結(jié)的拼接點(diǎn)畫面的SEI數(shù)據(jù)。在本實(shí)施方式中,EPSEI不包括任何特定字段。
下面將描述根據(jù)第五實(shí)施方式的視頻編碼裝置的操作。第五實(shí)施方式的視頻編碼裝置與第一實(shí)施方式的視頻編碼裝置不同之處在于在編碼時(shí)將EPSEI附加到特定畫面的編碼控制單元12和畫面編碼單元13,以及在于通過(guò)在編輯時(shí)參考EPSEI來(lái)確定拼接點(diǎn)的數(shù)據(jù)拼接單元15。因此下面將描述用于附加EPSEI的編碼控制單元12和畫面編碼單元13以及在編輯過(guò)程中數(shù)據(jù)拼接單元15的操作。
在編碼時(shí),編碼控制單元命令畫面編碼單元13將EPSEI附加到要被編碼的畫面,如果該畫面是僅參考在顯示時(shí)間順序上較早的畫面的緊接在B畫面或P畫面之前的畫面或者緊接在I畫面之前的畫面的話??商孢x地,如果該畫面不是僅參考顯示時(shí)間順序上較早的I畫面或B畫面或P畫面,編碼控制單元12可以命令畫面編碼單元13將EPSEI附加到要被編碼的畫面。
當(dāng)從編碼控制單元12接收到用于附加EPSEI的命令時(shí),畫面編碼單元13對(duì)該畫面進(jìn)行編碼并將EPSEI附加到它。
在編輯時(shí),時(shí)間拼接單元15根據(jù)來(lái)自控制單元11的控制信號(hào)來(lái)標(biāo)識(shí)第一經(jīng)編碼的視頻數(shù)據(jù)流中的拼接點(diǎn)畫面??刂菩盘?hào)例如包括從第一經(jīng)編碼的視頻數(shù)據(jù)流的開(kāi)始計(jì)數(shù)的經(jīng)編碼的畫面的數(shù)目。數(shù)據(jù)拼接單元15通過(guò)在可應(yīng)用畫面以及跟隨該可應(yīng)用畫面的畫面當(dāng)中選擇在編碼順序上最早的被附加了EPSEI的畫面來(lái)確定拼接點(diǎn)畫面。可替選地,數(shù)據(jù)拼接單元15通過(guò)在可應(yīng)用畫面及跟隨可應(yīng)用畫面的畫面當(dāng)中選擇緊接在在編碼順序上最早的被附加了EPSEI的畫面的畫面來(lái)確定第一經(jīng)編碼的視頻數(shù)據(jù)流中的拼接點(diǎn)畫面。然后,然后,數(shù)據(jù)拼接單元15從存儲(chǔ)單元(未描繪出)讀出第一經(jīng)編碼的視頻數(shù)據(jù)流中的拼接點(diǎn)畫面和所有其之前的畫面。接下來(lái),數(shù)據(jù)拼接單元15從存儲(chǔ)單元(未描繪出)讀出提供自拼接點(diǎn)標(biāo)識(shí)信息處理單元14的第二經(jīng)編碼的視頻數(shù)據(jù)流的一部分(具有作為起始畫面的拼接點(diǎn)CRA畫面)。此時(shí),如果從拼接點(diǎn)標(biāo)識(shí)信息處理單元14發(fā)出丟棄緊跟拼接點(diǎn)CRA畫面的任何TFD畫面的指令,則數(shù)據(jù)拼接單元15丟棄所有這種TFD畫面。數(shù)據(jù)拼接單元15然后輸出讀取的第一經(jīng)編碼的視頻數(shù)據(jù)流,并在之后輸出第二經(jīng)編碼的視頻數(shù)據(jù)流。
如上所述,根據(jù)第五實(shí)施方式的視頻編碼裝置,指示當(dāng)兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流被拼接時(shí)不會(huì)造成顯示凍結(jié)的畫面的信息被附加到該經(jīng)編碼的視頻數(shù)據(jù),結(jié)果,視頻編碼裝置可將兩個(gè)經(jīng)編碼的視頻拼接在一起而不會(huì)造成顯示凍結(jié)。
接下來(lái),將描述第六實(shí)施方式。
在第六實(shí)施方式的視頻編碼裝置中,被用于獲得第二校正值Mod2(用于校正在拼接點(diǎn)處在CPB中保持的數(shù)據(jù)量上的差別)的值如在第三實(shí)施方式中所描述的那樣預(yù)先被附加到第一經(jīng)編碼的視頻數(shù)據(jù)流。
圖15示出了根據(jù)第六實(shí)施方式的經(jīng)編碼的視頻中所包含的一個(gè)畫面的數(shù)據(jù)結(jié)構(gòu)。圖15中所示出的數(shù)據(jù)結(jié)構(gòu)150與圖14中所示出的數(shù)據(jù)結(jié)構(gòu)1400不同在于EPSEI NAL單元1516包括BufferOccupancy字段。其它六個(gè)NAL單元1510至1515與圖14中示出的數(shù)據(jù)結(jié)構(gòu)400的對(duì)應(yīng)NAL單元1410至1415相同。BufferOccupancy字段指示剛好在拼接點(diǎn)前在CPB中保持的數(shù)據(jù)量。
將描述根據(jù)第六實(shí)施方式的視頻編碼裝置的操作。第六實(shí)施方式的視頻編碼裝置不同于第五實(shí)施方式的視頻編碼裝置之處在于編碼控制單元12的操作部分。因此下面描述所不同的編碼控制單元12的操作部分。
編碼控制單元12命令畫面編碼單元13將EPSEI附加到要被編碼的畫面,如果該畫面是僅參考在顯示時(shí)間順序上較早的畫面的緊接在B畫面或P畫面之前的畫面或者緊接在I畫面之前的畫面的話。在第三實(shí)施方式中所描述的值(R*(Init1+(A+1)*s)-TotalB)被存儲(chǔ)在EPSEI中的BufferOccupancy字段??蛇x擇地,(R*(Init1+(A+1)*s)-TotalB)被位速率R除后可被存儲(chǔ)在BufferOccupancy字段。
將描述根據(jù)第六實(shí)施方式的視頻解碼裝置的操作。第六實(shí)施方式的視頻解碼裝置與第三實(shí)施方式的視頻解碼裝置不同之處在于畫面解碼/顯示時(shí)間確定單元23的操作部分。因此下面描述所不同的畫面解碼/顯示時(shí)間確定單元23的操作部分。
當(dāng)分析從頭信息分析單元22傳送的目標(biāo)畫面的頭信息時(shí),畫面解碼/顯示時(shí)間確定單元23檢查片NUH。當(dāng)NUH中所攜帶的NalUnitType的值是6或7時(shí),畫面解碼/顯示時(shí)間確定單元23確定要被解碼的畫面是BLA畫面。
當(dāng)要被解碼的畫面是BLA畫面時(shí),畫面解碼/顯示時(shí)間確定單元23使用以下面的方式計(jì)算出的值,而不是在被附加到BLA畫面的PTSEI中所攜帶的CpbRemovalDelay的值來(lái)作為BLA畫面的解碼延遲CpbRemovalDelay。
用A來(lái)表示從BLA畫面(下文中被稱為Pic2)之前的、緊跟最新近的被附加了BPSEI的畫面(下文中被稱為Pic1)的畫面開(kāi)始一直到緊接在Pic2之前的畫面進(jìn)行計(jì)數(shù)所得到的畫面數(shù)目。畫面解碼/顯示時(shí)間確定單元23根據(jù)Pic2的CpbRemovalDelay的值B導(dǎo)出第一校正值Mod1為A*(B/(A-1))。B/(A-1)對(duì)應(yīng)于連續(xù)的畫面之間的時(shí)間差(單位是tc)。B/(A-1)將在下文中被指定為“s”。
畫面解碼/顯示時(shí)間確定單元23通過(guò)使用被附加到緊接在BLA畫面之前的畫面的EPSEI中的字段BufferOccupancy中所存儲(chǔ)的值(或者該值乘以R后所得的結(jié)果,如果存儲(chǔ)了該值除以比特率R后所得的結(jié)果的話)作為在第三實(shí)施方式中所描述的值(R*(Init1+(A+1)*s)-TotalB),根據(jù)第三實(shí)施方式的方法來(lái)計(jì)算第二校正值Mod2。
接下來(lái),畫面解碼/顯示時(shí)間確定單元23將要被重新排序的畫面數(shù)目R1(其在緊接在Pic2之前的畫面所參考的SPS中被定義)與要被重新排序的畫面數(shù)目R2(其被緊跟Pic2的非TFD畫面所參考)相比較。根據(jù)在之前引用的非專利文獻(xiàn)中所公開(kāi)的的方法,SPS中指示要被重新排序的畫面的數(shù)目的字段是SpsNumReorderPics。
當(dāng)R2大于R1時(shí),畫面解碼/顯示時(shí)間確定單元23將PTSEI的第三校正值Mod3計(jì)算為(R2-R1)*B/(A-1)。否則,畫面解碼/顯示時(shí)間確定單元23將PTSEI的第三校正值Mod3設(shè)定為0。然后,畫面解碼/顯示時(shí)間確定單元23將Pic2的CpbRemovalDelay校正為(Mod1+Mod2+Mod3)。
接下來(lái),將描述第七實(shí)施方式,在第七實(shí)施方式中,當(dāng)拼接兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流時(shí),視頻編碼裝置校正BLA畫面的CpbRemovalDelay。此時(shí),視頻編碼裝置添加指示是否被拼接的經(jīng)編碼的視頻數(shù)據(jù)可跨BLA畫面而被連續(xù)地解碼并顯示的參數(shù)。
校正BLA畫面的CpbRemovalDelay的方法與第六實(shí)施方式中畫面解碼/顯示時(shí)間確定單元23用于校正CpbRemovalDelay的方法基本上相同。
圖16示出了根據(jù)第七實(shí)施方式的經(jīng)編碼的視頻中所編碼的一個(gè)畫面的數(shù)據(jù)結(jié)構(gòu)。圖16中所示出的經(jīng)編碼的視頻中所編碼的一個(gè)畫面的數(shù)據(jù)結(jié)構(gòu)1600不同于圖14中所示出的數(shù)據(jù)結(jié)構(gòu)1400之處在于BPSEI NAL單元1613包括ContinuousHrdFlag字段。其它六個(gè)NAL單元1610至1612和1614至1617與圖14中所示出的數(shù)據(jù)結(jié)構(gòu)1400的對(duì)應(yīng)NAL單元1410至1412和1414至1417相同。
ContinuousHrdFlag字段指示視頻解碼裝置是否可跨BPSEI已被附加到的BLA畫面而連續(xù)地解碼并顯示經(jīng)編碼的視頻數(shù)據(jù)。
ContinuousHrdFlag字段可被包含在SPS 1611或某些其它NAL單元中,而不是被包含在BPSEI中。
將描述根據(jù)第七實(shí)施方式的視頻編碼裝置的操作。第七實(shí)施方式的視頻編碼裝置的操作不同于第五實(shí)施方式的視頻編碼裝置的操作在于數(shù)據(jù)拼接單元15的操作部分。因此下面描述所不同的數(shù)據(jù)拼接單元15的操作部分。
數(shù)據(jù)拼接單元15從拼接點(diǎn)標(biāo)識(shí)信息處理單元14接收第二經(jīng)編碼的視頻數(shù)據(jù)流,并將其拼接到時(shí)間上被拼接在拼接點(diǎn)上游的第一經(jīng)編碼的視頻數(shù)據(jù)流的尾端。此時(shí),數(shù)據(jù)拼接單元15將畫面參數(shù)(指示第一和第二經(jīng)編碼的視頻數(shù)據(jù)流中所包含的畫面的特征)中的至少一個(gè)進(jìn)行比較。例如,如果,第一和第二經(jīng)編碼的視頻數(shù)據(jù)流中,在兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流之間畫面尺寸或畫面速率不同,則數(shù)據(jù)拼接單元15將參數(shù)ContFlag(其指示被拼接的經(jīng)編碼的視頻數(shù)據(jù)是否能跨拼接點(diǎn)而被連續(xù)地解碼并顯示)的值設(shè)定成0(其指示視頻數(shù)據(jù)不能被連續(xù)地解碼并顯示)。另一方面,如果第一和第二經(jīng)編碼的視頻數(shù)據(jù)流之間畫面尺寸和畫面速率相同,則數(shù)據(jù)拼接單元15以與第六實(shí)施方式中的畫面解碼/顯示時(shí)間確定單元23校正CpbRemovalDelay的方式相同的方式來(lái)計(jì)算BLA畫面的CpbRemovalDelay。數(shù)據(jù)拼接單元15根據(jù)第六實(shí)施方式中的編碼控制單元12用于計(jì)算BufferOccupancy字段的值的方法來(lái)計(jì)算對(duì)應(yīng)于在EPSEI中的BufferOccupancy字段的值,即,用于計(jì)算第二校正參數(shù)Mod2的值。此外,數(shù)據(jù)拼接單元15將ContFlag參數(shù)設(shè)定成1,其指示拼接編碼數(shù)據(jù)可被連續(xù)地解碼并顯示。
除了畫面尺寸和畫面速率之外,畫面的色差成分格式或畫面的像素分辨率可作為用于確定被拼接的經(jīng)編碼的視頻數(shù)據(jù)是否能跨拼接點(diǎn)而被連續(xù)地解碼并顯示的畫面參數(shù)而被添加。在此情形中,如果在第一和第二經(jīng)編碼的視頻數(shù)據(jù)之間,所有的參數(shù)是相同的,則確定出被拼接的經(jīng)編碼的視頻數(shù)據(jù)可跨拼接點(diǎn)而被連續(xù)地解碼并顯示。
當(dāng)ContFlag參數(shù)的值是0時(shí),數(shù)據(jù)拼接單元15將被附加到BLA畫面的BPSEI中的ContinuousHrdFlag字段的值設(shè)定為0,其指示被拼接的經(jīng)編碼的視頻數(shù)據(jù)不能被連續(xù)地解碼并顯示。另一方面,當(dāng)ContFlag參數(shù)的值是1時(shí),數(shù)據(jù)拼接單元15將被附加到BLA畫面的BPSEI中的ContinuousHrdFlag字段的值設(shè)定為1,其指示被拼接的經(jīng)編碼的視頻數(shù)據(jù)能被連續(xù)地解碼并顯示。此外,數(shù)據(jù)拼接單元15將第二經(jīng)編碼的視頻數(shù)據(jù)流的起始畫面(即,BLA畫面)的解碼延遲CpbRemovalDelay的值校正為如上面所計(jì)算出的值。
將描述根據(jù)第七實(shí)施方式的視頻解碼這種的操作。第七實(shí)施方式的視頻解碼這種不同于第一實(shí)施方式的視頻解碼這種之處在于畫面解碼/顯示時(shí)間確定單元23的操作部分。因此下面描述所不同的畫面解碼/顯示時(shí)間確定單元23的操作部分。
當(dāng)要被解碼的畫面是BLA畫面時(shí),畫面解碼/顯示時(shí)間確定單元23參考被附加到BLA畫面的BPSEI中的ContinuousHrdFlag字段的值。
當(dāng)ContinuousHrdFlag字段的值是1時(shí),即,當(dāng)被拼接的經(jīng)編碼的視頻數(shù)據(jù)能跨拼接點(diǎn)而被連續(xù)地解碼并顯示時(shí),畫面解碼/顯示時(shí)間確定單元23使用被附加到BLA畫面的BPSEI中的CpbRemovalDelay直接作為BLA畫面的解碼延遲。另一方面,當(dāng)ContinuousHrdFlag字段的值是0時(shí),即,當(dāng)被拼接的經(jīng)編碼的視頻數(shù)據(jù)不能跨拼接點(diǎn)而被連續(xù)地解碼并顯示時(shí),畫面解碼/顯示時(shí)間確定單元23并不根據(jù)CpbRemovalDelay,而是通過(guò)使用BPSEI中所包括的初始解碼延遲信息InitialCpbRemovalDelay的值來(lái)確定BLA畫面的解碼時(shí)間。在此情形中,畫面解碼/顯示時(shí)間確定單元23通過(guò)參考時(shí)間0(其被設(shè)定為遲于緊接在BLA畫面之前的畫面的解碼時(shí)間)根據(jù)InitialCpbRemovalDelay來(lái)計(jì)算BLA畫面的解碼時(shí)間??商孢x地,畫面解碼/顯示時(shí)間確定單元23可在BLA畫面之前的所有經(jīng)編碼的畫面的顯示被完成時(shí)的時(shí)間之后設(shè)定時(shí)間0。
圖7是示出通過(guò)執(zhí)行用于實(shí)現(xiàn)根據(jù)上面的實(shí)施方式或其變形例中的任何一個(gè)的視頻編碼裝置或視頻解碼裝置中的各個(gè)單元的功能的計(jì)算機(jī)程序來(lái)作為視頻編碼裝置或視頻解碼裝置操作的計(jì)算機(jī)的構(gòu)造的示圖。
計(jì)算機(jī)100包括用戶界面單元101、通信接口單元102、存儲(chǔ)單元103、存儲(chǔ)介質(zhì)存取裝置104和處理器105。處理器105(例如,經(jīng)由總線)被連接至用戶界面單元101、通信接口單元102、存儲(chǔ)單元103以及存儲(chǔ)介質(zhì)存取裝置104。
用戶界面單元包括(例如)諸如鍵盤和鼠標(biāo)的輸入裝置和諸如液晶顯示器的顯示裝置??商孢x地,用戶接口單元101可包括諸如觸摸板顯示器(輸入裝置和顯示裝置被集成在其中)的裝置。用戶接口單元101(例如,響應(yīng)于用戶操作)產(chǎn)生用于選擇要被編碼的視頻數(shù)據(jù)、要被編輯的經(jīng)編碼的視頻數(shù)據(jù)或要被解碼的經(jīng)編碼的視頻數(shù)據(jù)的操作信號(hào),并將該操作信號(hào)提供至處理器105。該接口單元101還可顯示從處理器105接收的解碼視頻數(shù)據(jù)。
通信接口單元102可包括將于將計(jì)算機(jī)100連接至視頻數(shù)據(jù)產(chǎn)生裝置(例如,攝像機(jī))的通信接口,以及用于通信接口的控制電路。這種通信接口可以是(例如)通用串行總線(USB)接口。
此外,通信接口單元102可包括用于連接至諸如以太網(wǎng)(注冊(cè)商標(biāo))的符合通信標(biāo)準(zhǔn)的通信網(wǎng)絡(luò),以及用于該通信接口的控制電路。
在后面的情形中,通信接口102從被連接至通信網(wǎng)絡(luò)的另一裝置接收要被編碼的視頻數(shù)據(jù)、要被編輯的經(jīng)編碼的視頻數(shù)據(jù)或要被解碼的經(jīng)編碼的視頻數(shù)據(jù)并將接收的數(shù)據(jù)傳遞至處理器105。此外,通信接口102可從處理器105接收經(jīng)編碼的視頻數(shù)據(jù)、被拼接的經(jīng)編碼的視頻數(shù)據(jù)或解碼視頻數(shù)據(jù)并且可將該數(shù)據(jù)通過(guò)通信網(wǎng)絡(luò)傳輸至另一裝置。
存儲(chǔ)單元103包括(例如)可讀取/可寫入半導(dǎo)體存儲(chǔ)器和只讀半導(dǎo)體存儲(chǔ)器。存儲(chǔ)單元103存儲(chǔ)要在處理器105上執(zhí)行的用于視頻編碼、視頻編輯或視頻解碼的計(jì)算機(jī)程序,并且還存儲(chǔ)作為程序執(zhí)行的結(jié)果或在程序執(zhí)行過(guò)程中產(chǎn)生的數(shù)據(jù)。
存儲(chǔ)介質(zhì)存取裝置104是存取以磁盤、半導(dǎo)體存儲(chǔ)卡或光存儲(chǔ)介質(zhì)為例的存儲(chǔ)介質(zhì)106的裝置。存儲(chǔ)介質(zhì)存取裝置104存取存儲(chǔ)介質(zhì)以讀出(例如)要在處理器105上被執(zhí)行的用于視頻編碼、視頻編輯或視頻解碼的計(jì)算機(jī)程序,并將讀出的程序傳遞至處理器105。
處理器105通過(guò)執(zhí)行根據(jù)上面的實(shí)施方式或其任何變形例中的任何一個(gè)的視頻編碼計(jì)算機(jī)程序來(lái)產(chǎn)生經(jīng)編碼的視頻數(shù)據(jù)。處理器105之后將所產(chǎn)生的經(jīng)編碼的視頻數(shù)據(jù)存儲(chǔ)到存儲(chǔ)單元103中,或者將所產(chǎn)生的數(shù)據(jù)經(jīng)由通信接口單元102傳輸至另一裝置。此外,處理器105通過(guò)執(zhí)行根據(jù)上面的實(shí)施方式或其任何變形例中的任何一個(gè)的視頻編碼計(jì)算機(jī)程序來(lái)將兩個(gè)經(jīng)編碼的視頻數(shù)據(jù)流拼接在一起,來(lái)產(chǎn)生被拼接的經(jīng)編碼的視頻數(shù)據(jù)。處理器105然后將所產(chǎn)生的被拼接的經(jīng)編碼的視頻數(shù)據(jù)存儲(chǔ)在存儲(chǔ)單元103中,或者將所產(chǎn)生的數(shù)據(jù)經(jīng)由通信接口單元102傳輸至另一裝置。此外,處理器105通過(guò)執(zhí)行根據(jù)上面的實(shí)施方式或其任何變形例中的任何一個(gè)的視頻解碼計(jì)算機(jī)程序來(lái)對(duì)經(jīng)編碼的視頻數(shù)據(jù)進(jìn)行解碼。處理器15然后將解碼視頻數(shù)據(jù)存儲(chǔ)到存儲(chǔ)單元103中,將該數(shù)據(jù)呈現(xiàn)給用戶接口單元101用于顯示,或者將該數(shù)據(jù)經(jīng)由通信接口單元102傳輸至另一裝置。
可以以被存儲(chǔ)在半導(dǎo)體存儲(chǔ)器中的形式或者以被存儲(chǔ)在諸如光記錄介質(zhì)的記錄介質(zhì)上的形式來(lái)分布在計(jì)算機(jī)上執(zhí)行的、實(shí)現(xiàn)構(gòu)成根據(jù)上面的實(shí)施方式或其任何變形例中的每一個(gè)的視頻編碼裝置或視頻解碼裝置的各個(gè)單元功能的計(jì)算機(jī)程序。這里所使用的術(shù)語(yǔ)“記錄介質(zhì)”并不是載波。
構(gòu)成根據(jù)上面的實(shí)施方式或其任何變形例中的每一個(gè)的視頻編碼裝置的各個(gè)單元中,合并了與視頻編輯相關(guān)的拼接點(diǎn)標(biāo)識(shí)信息處理單元14和數(shù)據(jù)拼接單元15的裝置可以與合并了與視頻編碼相關(guān)的編碼控制單元12和畫面編碼單元13的裝置分開(kāi)提供。
根據(jù)上面的實(shí)施方式或其任何變形例的視頻編碼裝置和視頻解碼裝置被用在各種應(yīng)用中。例如,該視頻編碼裝置和視頻解碼裝置被合并入攝像機(jī)、視頻傳輸裝置、視頻接收裝置、視頻電話系統(tǒng)、計(jì)算機(jī)或移動(dòng)電話。
發(fā)明構(gòu)思
本發(fā)明提供了以下發(fā)明構(gòu)思:
1.一種用于通過(guò)幀間預(yù)測(cè)性編碼來(lái)對(duì)視頻數(shù)據(jù)進(jìn)行編碼的視頻編碼裝置,包括:
編碼控制單元,其獲得解碼延遲校正信息和顯示延遲校正信息,以便確保即使當(dāng)在所述視頻數(shù)據(jù)中在編碼順序上遲于有可能能夠被拼接到其它經(jīng)編碼的視頻數(shù)據(jù)的尾端的第一畫面的一個(gè)或多個(gè)畫面已被丟棄時(shí),所述經(jīng)編碼的視頻數(shù)據(jù)中的所述第一畫面和后續(xù)畫面也能由視頻解碼裝置連續(xù)地解碼并顯示;以及
畫面編碼單元,其對(duì)所述視頻數(shù)據(jù)中所包含的每個(gè)畫面進(jìn)行編碼并將所述解碼延遲校正信息和所述顯示延遲校正信息附加到經(jīng)編碼的所述視頻數(shù)據(jù)。
2.根據(jù)發(fā)明構(gòu)思1所述的視頻編碼裝置,其中,所述解碼延遲校正信息攜帶了與能被丟棄的畫面的數(shù)目對(duì)應(yīng)的值。
3.根據(jù)發(fā)明構(gòu)思1所述的視頻編碼裝置,其中,所述顯示延遲校正信息攜帶了與在在編碼順序上遲于所述第一畫面的畫面當(dāng)中的、在顯示順序上最早的畫面的顯示時(shí)間與所述第一畫面的顯示時(shí)間之間出現(xiàn)的畫面的數(shù)目對(duì)應(yīng)的值。
4.根據(jù)發(fā)明構(gòu)思1所述的視頻編碼裝置,進(jìn)一步包括:
拼接點(diǎn)標(biāo)識(shí)信息處理單元,其在將所述經(jīng)編碼的視頻數(shù)據(jù)拼接到所述其它經(jīng)編碼的視頻數(shù)據(jù)時(shí)將標(biāo)識(shí)起始的經(jīng)編碼的畫面的信息附加到所述經(jīng)編碼的視頻數(shù)據(jù)中的所述起始的經(jīng)編碼的畫面;以及
數(shù)據(jù)拼接單元,其從所述經(jīng)編碼的視頻數(shù)據(jù)中丟棄在編碼順序上遲于所述起始的經(jīng)編碼的畫面并且參考在編碼順序上早于所述起始的經(jīng)編碼的畫面的畫面的一個(gè)或多個(gè)畫面。
5.根據(jù)發(fā)明構(gòu)思1所述的視頻編碼裝置,進(jìn)一步包括:
數(shù)據(jù)拼接單元,其在通過(guò)將所述經(jīng)編碼的視頻數(shù)據(jù)拼接到所述其它經(jīng)編碼的視頻數(shù)據(jù)來(lái)產(chǎn)生被拼接的經(jīng)編碼的視頻數(shù)據(jù)時(shí),參考指示所述經(jīng)編碼的視頻數(shù)據(jù)和所述其它經(jīng)編碼的視頻數(shù)據(jù)的畫面特征的畫面參數(shù),并由此確定所述被拼接的經(jīng)編碼的視頻數(shù)據(jù)是否能跨所述經(jīng)編碼的視頻數(shù)據(jù)和所述其它經(jīng)編碼的視頻數(shù)據(jù)被拼接于的拼接點(diǎn)而被連續(xù)地解碼并顯示,并在所述被拼接的經(jīng)編碼的視頻數(shù)據(jù)中嵌入指示所述被拼接的經(jīng)編碼的視頻數(shù)據(jù)是否能被連續(xù)地解碼并顯示的信息,其中,當(dāng)所述被拼接的經(jīng)編碼的視頻數(shù)據(jù)能被連續(xù)地解碼并顯示時(shí),所述數(shù)據(jù)拼接單元將用于所述經(jīng)編碼的視頻數(shù)據(jù)中的起始的經(jīng)編碼的畫面的解碼延遲值替換為使得能夠連續(xù)解碼和顯示的值。
6.根據(jù)發(fā)明構(gòu)思1所述的視頻編碼裝置,其中,所述第一畫面是在不參考任何其它畫面的情況下被編碼的畫面。
7.根據(jù)發(fā)明構(gòu)思1所述的視頻編碼裝置,其中,所述畫面編碼單元向所述經(jīng)編碼的視頻數(shù)據(jù)附加額外信息,所述額外信息指示緊接在一直到拼接點(diǎn)畫面的所述經(jīng)編碼的視頻數(shù)據(jù)被解碼之前或之后的、所述視頻解碼裝置中的理想化接收緩沖器的狀態(tài),并且其中,所述拼接點(diǎn)畫面是這樣的畫面:其使得即使當(dāng)另一經(jīng)編碼的視頻數(shù)據(jù)緊接在所述拼接點(diǎn)畫面之后被附加時(shí),所述拼接點(diǎn)畫面和在編碼順序上早于所述拼接點(diǎn)畫面的任何畫面也能被解碼。
8.一種用于通過(guò)幀間預(yù)測(cè)性編碼來(lái)對(duì)經(jīng)編碼的視頻數(shù)據(jù)進(jìn)行解碼的視頻解碼裝置,包括:
畫面解碼/顯示時(shí)間確定單元,其當(dāng)所述經(jīng)編碼的視頻數(shù)據(jù)包含指示所述經(jīng)編碼的視頻數(shù)據(jù)已通過(guò)將第二經(jīng)編碼的視頻數(shù)據(jù)拼接到第一經(jīng)編碼的視頻數(shù)據(jù)的尾端而被產(chǎn)生的信息、指示在所述第一經(jīng)編碼的視頻數(shù)據(jù)和所述第二經(jīng)編碼的視頻數(shù)據(jù)被拼接于的拼接點(diǎn)之后的、所述第二經(jīng)編碼的視頻數(shù)據(jù)中的在編碼順序上遲于起始的經(jīng)編碼的畫面的一個(gè)或多個(gè)經(jīng)編碼的畫面已被丟棄的信息、用于對(duì)跟隨所述起始的經(jīng)編碼的畫面的畫面的解碼延遲進(jìn)行校正的解碼延遲校正信息、以及用于對(duì)所述起始的經(jīng)編碼的畫面的顯示延遲進(jìn)行校正的顯示延遲校正信息時(shí),則基于所述顯示延遲校正信息來(lái)對(duì)所述起始的經(jīng)編碼的畫面的所述顯示延遲進(jìn)行校正,同時(shí)基于所述解碼延遲校正信息來(lái)對(duì)跟隨所述起始的經(jīng)編碼的畫面的畫面的所述解碼延遲進(jìn)行校正。
9.根據(jù)發(fā)明構(gòu)思8所述的視頻解碼裝置,其中,所述解碼延遲校正信息攜帶了與在編碼順序上遲于所述起始的經(jīng)編碼的畫面的被丟棄的經(jīng)編碼的畫面的數(shù)目對(duì)應(yīng)的值。
10.根據(jù)發(fā)明構(gòu)思8所述的視頻解碼裝置,其中,所述顯示延遲校正信息攜帶了與在在編碼順序上遲于所述起始的經(jīng)編碼的畫面的畫面當(dāng)中的、在顯示順序上最早的畫面的顯示時(shí)間與所述起始的經(jīng)編碼的畫面的顯示時(shí)間之間出現(xiàn)的畫面的數(shù)目對(duì)應(yīng)的值。
11.根據(jù)發(fā)明構(gòu)思8所述視頻解碼裝置,其中,所述畫面解碼/顯示時(shí)間確定單元以這樣的方式確定所述起始的經(jīng)編碼的畫面的所述解碼延遲:即,以至于彌補(bǔ)如根據(jù)在所述拼接點(diǎn)之前的經(jīng)編碼的畫面計(jì)算出的、在所述起始的經(jīng)編碼的畫面的解碼時(shí)在接收緩沖器中保持的數(shù)據(jù)量與在所述接收緩沖器中實(shí)際保持的數(shù)據(jù)量之間的任何差別。
12.根據(jù)發(fā)明構(gòu)思8所述的視頻解碼裝置,其中,當(dāng)所述經(jīng)編碼的視頻數(shù)據(jù)包含指示所述經(jīng)編碼的視頻數(shù)據(jù)是否能跨所述拼接點(diǎn)而被連續(xù)地解碼并顯示的信息時(shí),如果所述信息指示所述經(jīng)編碼的視頻數(shù)據(jù)能被連續(xù)地解碼并顯示,則所述畫面解碼/顯示時(shí)間確定單元將所述經(jīng)編碼的視頻數(shù)據(jù)中所包含的解碼延遲信息的值作為用于所述起始的經(jīng)編碼的畫面的解碼延遲值,而如果所述信息指示所述經(jīng)編碼的視頻數(shù)據(jù)不能被連續(xù)地解碼并顯示,則所述畫面解碼/顯示時(shí)間確定單元將所述經(jīng)編碼的視頻數(shù)據(jù)中所包含的初始解碼延遲信息的值作為用于所述起始的經(jīng)編碼的畫面的所述解碼延遲值。
13.一種用于通過(guò)幀間預(yù)測(cè)性編碼來(lái)對(duì)視頻數(shù)據(jù)進(jìn)行編碼的視頻編碼方法,包括:
由至少一個(gè)處理器獲得解碼延遲校正信息和顯示延遲校正信息,以便確保即使當(dāng)在所述視頻數(shù)據(jù)中在編碼順序上遲于有可能能夠被拼接到其它經(jīng)編碼的視頻數(shù)據(jù)的尾端的第一畫面的一個(gè)或多個(gè)畫面已被丟棄時(shí),所述經(jīng)編碼的視頻數(shù)據(jù)中的所述第一畫面和后續(xù)畫面也能由視頻解碼裝置連續(xù)地解碼并顯示;以及
由所述至少一個(gè)處理器對(duì)所述視頻數(shù)據(jù)中所包含的每個(gè)畫面進(jìn)行編碼并將所述解碼延遲校正信息和所述顯示延遲校正信息附加到經(jīng)編碼的所述視頻數(shù)據(jù)。
14.一種用于通過(guò)幀間預(yù)測(cè)性編碼來(lái)對(duì)經(jīng)編碼的視頻數(shù)據(jù)進(jìn)行解碼的視頻解碼方法,包括:
當(dāng)所述經(jīng)編碼的視頻數(shù)據(jù)包含指示所述經(jīng)編碼的視頻數(shù)據(jù)已通過(guò)將第二經(jīng)編碼的視頻數(shù)據(jù)拼接到第一經(jīng)編碼的視頻數(shù)據(jù)的尾端而被產(chǎn)生的信息、指示在所述第一經(jīng)編碼的視頻數(shù)據(jù)和所述第二經(jīng)編碼的視頻數(shù)據(jù)被拼接于的拼接點(diǎn)之后的、所述第二經(jīng)編碼的視頻數(shù)據(jù)中的在編碼順序上遲于起始的經(jīng)編碼的畫面的一個(gè)或多個(gè)經(jīng)編碼的畫面已被丟棄的信息、用于對(duì)跟隨所述起始的經(jīng)編碼的畫面的畫面的解碼延遲進(jìn)行校正的解碼延遲校正信息、以及用于對(duì)所述起始的經(jīng)編碼的畫面的顯示延遲進(jìn)行校正的顯示延遲校正信息時(shí),則由至少一個(gè)處理器基于所述顯示延遲校正信息來(lái)對(duì)所述起始的經(jīng)編碼的畫面的所述顯示延遲進(jìn)行校正,同時(shí)由所述至少一個(gè)處理器基于所述解碼延遲校正信息來(lái)對(duì)跟隨所述起始的經(jīng)編碼的畫面的畫面的所述解碼延遲進(jìn)行校正。