本申請為于2013年9月30日提交、申請?zhí)枮?01310462438.7、發(fā)明名稱為“視頻編碼設(shè)備和解碼設(shè)備、視頻編碼方法和解碼方法”的中國專利申請的分案申請。
這里所討論的實施例涉及一種無需對編碼的視頻數(shù)據(jù)進行解碼即可編輯該視頻數(shù)據(jù)的視頻編碼設(shè)備和視頻編碼方法,并且還涉及一種用于對通過這樣的視頻編碼設(shè)備所編碼的視頻數(shù)據(jù)進行解碼的視頻解碼設(shè)備和視頻解碼方法。
背景技術(shù):
通常,用于表示視頻數(shù)據(jù)的數(shù)據(jù)量是非常大的。因此,處理這樣的視頻數(shù)據(jù)的設(shè)備在將該視頻數(shù)據(jù)發(fā)送到另一個設(shè)備之前、或者在將該視頻數(shù)據(jù)存儲在存儲裝置中之前通過編碼對視頻數(shù)據(jù)進行壓縮。諸如由國際標準化組織/國際電工委員會(iso/iec)所設(shè)計的mpeg-2(運動圖像專家組階段2)、mpeg-4、h.264mpeg-4高級視頻編碼(mpeg-4avc/h.264)的編碼標準是如今被廣泛使用的典型視頻編碼標準。
這樣的編碼標準采用幀間編碼(通過不僅使用信息本身、而且還使用來自它之前和之后的圖像的信息來對圖像進行編碼的編碼方法)和幀內(nèi)編碼(通過僅使用包含在待編碼圖像中的信息來對圖像進行編碼的編碼方法)。幀間編碼方法使用稱為幀內(nèi)編碼圖像(i圖像)、通常根據(jù)過去的圖像來預(yù)測的前向預(yù)測圖像(p圖像)、以及通常根據(jù)過去和未來兩種圖像來預(yù)測的雙向預(yù)測圖像(b圖像)這三種類型的圖像。
通常,通過幀間編碼所編碼圖像或塊的代碼量小于通過幀內(nèi)編碼所編碼圖像或塊的代碼量。這樣,相同視頻序列內(nèi)的圖像與圖像的代碼量視所選擇的編碼模式而變化。同樣,相同圖像內(nèi)的塊與塊的代碼量視所選擇的編碼模式而變化。因此,為了使包含有編碼視頻的數(shù)據(jù)流即使在該代碼量在時間上變化的情況下也能夠以恒定的傳輸率來發(fā)送,將用于緩沖數(shù)據(jù)流的發(fā)送緩沖器設(shè)于發(fā)送端,而將用于緩沖數(shù)據(jù)流的接收緩沖器設(shè)于接收端。
mpeg-2和mpeg-4avc/h.264f分別各自定義了被稱為視頻緩沖檢驗器(vbv)或編碼圖像緩沖器(cpb)的理想的視頻解碼設(shè)備中的接收緩沖器的行為。為方便起見,理想的視頻解碼設(shè)備將會在下文中簡稱為理想解碼器。規(guī)定理想解碼器執(zhí)行花費零時間來解碼的瞬時解碼。例如,日本特開2003-179938號公報公開了一種關(guān)于vbv的視頻編碼控制方法。
為了不引起理想解碼器中的接收緩沖器上溢或下溢,視頻編碼器控制代碼量以確保當理想解碼器解碼給定圖像時解碼給定圖像所需要的所有數(shù)據(jù)在接收緩沖器中是可用的。
當視頻編碼器以恒定的傳輸率來發(fā)送編碼視頻數(shù)據(jù)流時,如果到圖像要被視頻解碼器解碼和顯示的時候尚未完成對解碼圖像所需要的數(shù)據(jù)的傳輸?shù)脑挘瑒t接收緩沖器可能下溢。也就是說,接收緩沖器下溢是指其中解碼圖像所需要的數(shù)據(jù)在視頻解碼器的接收緩沖器中是不可用的情況。如果發(fā)生這種情況,視頻解碼器則不能夠執(zhí)行解碼,并且會發(fā)生跳幀。
鑒于此,視頻解碼器在自它的接收時間起的規(guī)定時間以前顯示延遲了流之后的圖像,以使得在不引起接收緩沖器下溢的情況下能夠進行解碼。如前所述,規(guī)定了理想解碼器在零時間內(nèi)完成解碼。結(jié)果,如果將第i個圖像輸入到視頻編碼器的時間是t(i)、而第i個圖像在理想解碼器處的解碼時間為tr(i)的話,則圖像變?yōu)闇蕚浜糜糜陲@示的最早時間與t(i)相同。由于對于任何圖像來說圖像顯示期{t(i+1)-t(i)}與{tr(i+1)-tr(i)}是相等的,所以將解碼時間tr(i)給定為tr(i)=t(i)+dly,即,自輸入時間t(i)起延遲固定時間dly后的時間。這意味著,視頻編碼器不得不在時間tr(i)以前完成將解碼所需的所有數(shù)據(jù)到接收緩沖器的傳輸。
參考圖1,將給出接收緩沖器如何進行操作的描述。在圖1中,橫坐標表示時間,而縱坐標則表示接收緩沖器的緩沖器占用量。實線曲線100描繪了作為時間的函數(shù)的緩沖器占用量。
接收緩沖器的緩沖器占用量以與規(guī)定的傳輸率同步的速率還原,而用于解碼每個圖像的數(shù)據(jù)在圖像的解碼時間時從緩沖器中恢復(fù)。在時間at(i)時開始將第i個圖像的數(shù)據(jù)輸入到接收緩沖器,而在時間ft(i)時輸入第i個圖像的最后的數(shù)據(jù)。理想解碼器在時間tr(i)時完成對第i個圖像的解碼,從而第i個圖像在時間tr(i)時變?yōu)闇蕚浜糜糜陲@示。但是,如果數(shù)據(jù)流包含b圖像的話,則第i個圖像的實際顯示時間可能由于圖像重新排序(改變編碼順序)的發(fā)生而變得遲于tr(i)。
下面將詳細描述mpeg-4avc/h.264中描述每個圖像的解碼時間和顯示時間的方法。
在mpeg-4avc/h.264中,在補充增強信息(sei)消息中描述與像素的解碼不直接相關(guān)的補充信息。定義了幾十個sei消息類型,且類型是通過payloadtype參數(shù)來標識的。sei被附至每個圖像。
作為sei的一種類型的bpsei(緩沖期sei)被附到獨立圖像,即,無需任何過去的圖像即可解碼的圖像(通常為i圖像)。在bpsei中描述了initialcpbremovaldelay這個參數(shù)。initialcpbremovaldelay參數(shù)表示附bpsei的圖像的第一個位在接收緩沖器中的到達時間與附bpsei的圖像的解碼時間之間的差。該差的分辨率是90khz。第一個圖像的解碼時間tr(0)是編碼視頻數(shù)據(jù)的第一個位到達視頻解碼器時的時間(將該時間指定為0);也就是說,解碼時間自時間at(0)起而被延遲了initialcpbremovaldelay÷90,000[秒]的時間量。
通常,作為一種類型的sei的ptsei(圖片定時sei)被附到每個圖像。ptsei中描述了參數(shù)cpbremovaldelay和dpboutputdelay。參數(shù)cpbremovaldelay表示緊鄰在前的附有bpsei的圖像的解碼時間與附有ptsei的圖像的解碼時間之差。參數(shù)dpboutputdelay表示附有ptsei的圖像的解碼時間與該圖像的顯示時間之差。這些差的分辨率是一場圖像間隔。因此,當圖像為幀時,參數(shù)cpbremovaldelay和dpboutputdelay中的每一個的值是2的倍數(shù)。
第二個和后續(xù)圖像中的每一個的解碼時間tr(i)比第一個圖像的解碼時間tr(0)延遲與tc*cpbremovaldelay(i)[秒]相等的時間量。cpbremovaldelay(i)是附到第i個圖像的cpbremovaldelay。另一方面,tc是圖像間的時間間隔[秒];例如,在29.97赫茲逐行視頻的情況下,tc是1001/60000。
包括附有bpsei的圖像在內(nèi)的圖像中的每一個的顯示時間比tr(i)延遲了等于tc*dpboutputdelay(i)的時間量。dpboutputdelay(i)是附到第i個圖像的dpboutputdelay。即,在時間tr(0)后,每個圖像在tc的整數(shù)倍的時間時進行解碼和顯示。
根據(jù)視頻數(shù)據(jù)的用途,可以對編碼視頻進行編輯。編輯編碼視頻涉及將編碼視頻數(shù)據(jù)劃分成更小的部分以及將它們剪接以生成新的編碼視頻數(shù)據(jù)流。例如,將另一個視頻流(例如,廣告)插入到當前廣播的視頻流(即,剪接)是編輯操作的一個例子。
當編輯幀間預(yù)測編碼視頻時,特別是在幀間編碼圖像的情況下,編碼圖像不能自身正確解碼。因此,當在期望的圖像位置剪接兩個編碼視頻數(shù)據(jù)流時,編碼視頻數(shù)據(jù)編輯機首先解碼待剪接的兩個編碼視頻數(shù)據(jù)流,然后在解碼的逐個圖像基礎(chǔ)上剪接它們,此后對剪接的視頻數(shù)據(jù)進行重新編碼。
然而,由于重新編碼的工作非常費力,尤其是,在諸如剪接的這種實時處理的情況下,所以通常是限制剪接點并且通過消除重新編碼的需求來直接編輯編碼視頻數(shù)據(jù)。當通過無需重新編碼的編輯來剪接兩個編碼視頻數(shù)據(jù)流時,在時間上下游側(cè)的待剪接的編碼視頻數(shù)據(jù)流的第一個圖像必須是i圖像。此外,在時間上下游側(cè)的待剪接的編碼視頻數(shù)據(jù)流的gop結(jié)構(gòu)被限制為所謂的閉合gop結(jié)構(gòu),在該結(jié)構(gòu)中,起始i圖像之后的所有圖像是可解碼的,而不用參考時間上在起始i圖像之前的任何圖像。利用這種布置,能夠通過在期望的剪接點處進行編輯來正確解碼在時間下游側(cè)的剪接的編碼視頻數(shù)據(jù)流的起始i圖像之后的所有圖像。
然而,由于閉合gop結(jié)構(gòu)的編碼效率低于非閉合gop結(jié)構(gòu),所以可以采用非閉合gop結(jié)構(gòu)。在這種情況下,一些在剪接點之后的緊隨起始i圖像的圖像沒有正確地解碼,但因為這些圖像在顯示順序上是起始i圖像之前的圖像,所以如果不顯示它們將不成問題。因此,作為一般的做法,在顯示完時間上在先的編碼視頻數(shù)據(jù)流的最后一個圖像后,視頻解碼器執(zhí)行諸如凍結(jié)顯示的處理,從而掩蓋未能正確解碼的圖像顯示。
在現(xiàn)有技術(shù)中,即使在無需重新編碼的情況下對幀間預(yù)測編碼視頻數(shù)據(jù)進行編輯時,其頭信息也會被編輯,以使剪接在一起的兩個編碼視頻數(shù)據(jù)流之間不發(fā)生矛盾。例如,在mpeg-4avc/h.264中,poc(pictureordercount,圖像順序計數(shù))和framenum被附到宏塊條頭,以保持圖像間的時間關(guān)系和識別參考圖像。poc表示圖像的相對顯示順序。framenum是編碼視頻中每次出現(xiàn)參考圖像時遞增1的值。由于poc值和framenum值需要在剪接的兩個編碼視頻數(shù)據(jù)流之間連續(xù),所以出現(xiàn)了對編輯待剪接在時間上在先的編碼視頻數(shù)據(jù)流的下游側(cè)上的編碼視頻數(shù)據(jù)流中所有的poc值和framenum值的需要。
另一方面,在非專利文獻“jctvc-j1003,"high-efficiencyvideocoding(hevc)textspecificationdraft8",jointcollaborativeteamonvideocodingofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,july2012”中公開的方法中,由于介紹了一種用于識別參考圖像的新方法,所以取消了framenum。此外,由于在下游側(cè)剪接的編碼視頻數(shù)據(jù)的第一個圖像的poc值不需要相對于在上游側(cè)剪接的編碼視頻數(shù)據(jù)流具有連續(xù)性,所以無需對宏塊條頭進行編輯。在以上非專利文獻公開的方法中,除了mpeg-4avc/h.264中定義的idr(即時解碼刷新)圖像之外,還介紹了cra(清除隨機訪問)圖像、bla(斷開鏈接訪問)圖像、tfd(被標記丟棄的)圖像、dlp(可解碼前導(dǎo)圖像)圖像和tp(拖尾圖像)圖像作為新的圖像類型。
這些圖像中的cra圖像和bla圖像均是獨立圖像,即,未參考任何其他圖像的圖像,使得可以對跟隨cra圖像和bla圖像的圖像進行正確解碼。例如,當視頻解碼器以cra圖像開始來開始解碼時,可以對除緊隨cra圖像的tfd圖像之外的任何隨后圖像進行正確解碼。
tfd圖像為緊隨cra圖像或bla圖像出現(xiàn)并且參考在時間順序上和在解碼順序上早于cra圖像或bla圖像出現(xiàn)的圖像的圖像。在符合mpeg-2的非閉合gop結(jié)構(gòu)的情況下,緊隨在gop的頭部的i圖像之后的多個b圖像各自均對應(yīng)于tfd圖像。
由于編碼視頻數(shù)據(jù)的編輯而產(chǎn)生bla圖像。剪接的兩個編碼視頻數(shù)據(jù)流中的在下游側(cè)剪接的編碼視頻數(shù)據(jù)流一般以cra圖像開始,但是如果在剪接的編碼視頻數(shù)據(jù)的中間出現(xiàn)該cra圖像,則cra圖像的圖像類型就從cra圖像被改變成bla圖像。在以上非專利文獻公開的方法中,當出現(xiàn)bla圖像時,允許poc值變得不連續(xù)。此外,未能從剪接的編碼視頻數(shù)據(jù)中的任何點起對緊隨該bla圖像的tfd圖像進行正確解碼,這是因為tfd圖像所參考的圖像從剪接的編碼視頻數(shù)據(jù)中丟失了。因此,視頻編碼器可以從編碼視頻數(shù)據(jù)中將跟隨如下bla圖像的任何tfd圖像刪除:該bla圖像在待在下游側(cè)剪接的編碼視頻數(shù)據(jù)流的頭部。
像tfd圖像一樣,dlp圖像為緊隨cra圖像或bla圖像出現(xiàn)的圖像。不像tfd圖像,dlp圖像并未參考在時間順序和解碼順序二者上先于cra圖像或bla圖像的圖像。因此,即使從cra圖像或bla圖像開始解碼,也可以對dlp圖像進行正確解碼。
tp圖像為在解碼順序上晚于cra圖像或bla圖像和tfd、dlp圖像出現(xiàn)并且在時間順序上跟隨cra圖像或bla圖像的圖像。因此,即使從cra圖像或bla圖像開始解碼,也可以對tp圖像進行正確解碼。
技術(shù)實現(xiàn)要素:
在以上非專利文獻中所討論的方法中,如在mpeg-4avc/h.264中,每個編碼圖像的解碼時間和顯示時間是通過利用參數(shù)initialcpbremovaldelay、cpbremovaldelay和dpboutputdelay來確定的。當剪接兩個編碼視頻數(shù)據(jù)流時,需要校正在剪接點之后的圖像的參數(shù)cpbremovaldelay和dpboutputdelay以便確保橫跨所述剪接點的連續(xù)視頻解碼和顯示。
更具體地,視頻編碼器或視頻解碼器需要基于跟隨在時間上在前的編碼視頻數(shù)據(jù)流中的最新的附有bpsei的圖像的圖像的數(shù)量來校正在剪接于下游側(cè)的編碼視頻數(shù)據(jù)流的頭部的cra圖像的cpbremovaldelay的值。此外,視頻編碼器或視頻解碼器令cpbremovaldelay的值遞增以便確保cpb緩沖器連續(xù)性。另外,當丟棄待剪接于下游側(cè)的編碼視頻數(shù)據(jù)流中的tfd圖像時,視頻編碼器或視頻解碼器不但需要校正待在丟棄的tfd圖像之后解碼的圖像的cpbremovaldelay的值,而且需要校正在剪接點之后的第一個cra圖像的dpboutputdelay的值。
這樣,在以上非專利文獻中所公開的方法中,當執(zhí)行用于剪接兩個編碼視頻數(shù)據(jù)流的編輯操作時仍存在校正ptsei的內(nèi)容的需要。
因此,本發(fā)明的目的是提供一種當剪接兩個幀間預(yù)測的編碼視頻數(shù)據(jù)流時能夠在不對原始的編碼視頻數(shù)據(jù)的頭部中的參數(shù)進行編輯的情況下確保連續(xù)視頻解碼處理和顯示處理的運動視頻編碼設(shè)備和運動視頻解碼設(shè)備。
根據(jù)一個實施例,提供了一種視頻編碼設(shè)備,用于通過將均利用幀間預(yù)測編碼而編碼的第一視頻數(shù)據(jù)和第二視頻數(shù)據(jù)剪接在一起來生成剪接的編碼視頻數(shù)據(jù)。該視頻編碼設(shè)備包括:剪接點識別信息處理單元,其用于獲得解碼延遲和顯示延遲校正信息并且用于將所述校正信息附至所剪接的視頻數(shù)據(jù),所述解碼延遲和顯示延遲校正信息用于確保即使當已從所述第二視頻數(shù)據(jù)中包含的圖像中丟棄在編碼順序上比待剪接至所述第一編碼視頻數(shù)據(jù)的尾端的所述第二視頻數(shù)據(jù)中的起始編碼圖像晚的一個或多個圖像時,所述第二編碼視頻數(shù)據(jù)中包含的所述起始編碼圖像和隨后的圖像也能夠通過視頻解碼設(shè)備連續(xù)地解碼與顯示;以及數(shù)據(jù)剪接單元,其用于從剪接的視頻數(shù)據(jù)中丟棄以下圖像:在編碼順序上晚于所述起始編碼圖像且如果從所述起始編碼圖像開始解碼則不保證被正確解碼的任何圖像。所述校正信息是基于每個丟棄的圖像與在解碼順序上緊鄰在所述丟棄的圖像前的圖像之間的解碼間隔來計算的。
根據(jù)另一個實施例,提供了一種用于對通過幀間預(yù)測編碼而編碼的視頻數(shù)據(jù)進行解碼的視頻解碼設(shè)備。該視頻解碼設(shè)備包括:圖像解碼/顯示時間確定單元,其利用表明已經(jīng)通過將第二編碼視頻數(shù)據(jù)剪接至第一編碼視頻數(shù)據(jù)的尾端而生成了所述編碼視頻數(shù)據(jù)的信息、以及表明已經(jīng)丟棄了以下一個或多個編碼圖像的信息,并基于校正信息對跟隨所述起始編碼圖像的圖像的解碼延遲進行校正,以及還基于所述校正信息對所述起始編碼圖像和跟隨所述起始編碼圖像的圖像的顯示延遲進行校正,其中,所述一個或多個編碼圖像在編碼順序上比在剪接所述第一編碼視頻數(shù)據(jù)和所述第二編碼視頻數(shù)據(jù)的剪接點下游處剪接的所述第二編碼視頻數(shù)據(jù)中的起始編碼圖像晚。所述校正信息攜帶有基于以下兩者之間的解碼間隔而計算的值:在解碼順序上晚于所述起始編碼圖像并已從所述第二編碼視頻數(shù)據(jù)中丟棄的每個圖像;以及在解碼順序上緊鄰在所述丟棄的圖像前的圖像。
附圖說明
圖1是示出接收緩沖器的緩沖器占用量和顯示時間之間的關(guān)系的圖。
圖2是示出視頻數(shù)據(jù)中包含的各個圖像的顯示順序和解碼順序與各個圖像的解碼延遲和顯示延遲值之間的關(guān)系的圖。
圖3是用于說明當剪接兩個編碼視頻數(shù)據(jù)流時在剪接點之后的圖像的解碼延遲和顯示延遲值的圖。
圖4是用于說明根據(jù)第一實施例的編碼視頻中的一個圖像的數(shù)據(jù)結(jié)構(gòu)的圖。
圖5是根據(jù)第一實施例的視頻編碼設(shè)備的簡化框圖。
圖6是根據(jù)第一實施例的視頻編碼處理的操作流程圖。
圖7是根據(jù)第一實施例的視頻編輯處理的操作流程圖。
圖8是根據(jù)第一實施例的視頻解碼設(shè)備的簡化框圖。
圖9是根據(jù)第一實施例的視頻解碼處理的操作流程圖。
圖10是用于說明根據(jù)第二實施例的當剪接兩個編碼視頻數(shù)據(jù)流時在剪接點之后的圖像的解碼延遲和顯示延遲值的圖。
圖11是用于說明根據(jù)第二實施例的編碼視頻中的一個圖像的數(shù)據(jù)結(jié)構(gòu)的圖。
圖12是示出通過執(zhí)行用于實現(xiàn)根據(jù)實施例或它們的修改示例中的任一個的視頻編碼設(shè)備或視頻解碼設(shè)備中的各個單元的功能的計算機程序而用作視頻編碼設(shè)備或視頻解碼設(shè)備的計算機的配置的圖。
具體實施例
下面將參考附圖來描述根據(jù)各個實施例的視頻編碼設(shè)備和視頻解碼設(shè)備。當在不對兩個編碼視頻數(shù)據(jù)流進行解碼的情況下剪接它們時,視頻編碼設(shè)備計算用于校正表示在剪接點之后出現(xiàn)的每個圖像的解碼時間和顯示時間的參數(shù)的值,并將這些值添加到在剪接點之后出現(xiàn)的每個圖像的頭信息中。這樣,當剪接兩個編碼視頻數(shù)據(jù)流時,視頻編碼設(shè)備則不再需要編輯原始編碼視頻數(shù)據(jù)的頭中的參數(shù)。
在本實施例中,圖像為幀。然而,圖像可以不局限于幀,也可以是場。幀是指視頻數(shù)據(jù)中的一個完整的靜態(tài)影像,而場則是指通過僅從一幀中的奇數(shù)行或偶數(shù)行提取數(shù)據(jù)而獲得的靜態(tài)影像。編碼視頻數(shù)據(jù)可以是彩色的視頻數(shù)據(jù)或單色視頻數(shù)據(jù)。
首先,參考圖2,將通過以一個圖像編碼結(jié)構(gòu)為例來描述根據(jù)第一實施例的圖像解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay的值。
在圖2中,作為圖像編碼結(jié)構(gòu)的一個例子的圖像編碼結(jié)構(gòu)201包含多個圖像。圖像編碼結(jié)構(gòu)201中的每個框表示一個圖像。與每個圖像對應(yīng)的每個框中所攜帶的兩個字符之中,左邊的字母字符表示施加到那個圖像上的編碼模式。字符i、p和b分別是i圖像、p圖像和b圖像的意思。每個框中所攜帶的兩個字符之中,右邊的數(shù)字表示輸入到視頻編碼設(shè)備的順序。輸入順序與其中從視頻解碼設(shè)備輸出圖像的順序相符。圖像編碼結(jié)構(gòu)201上面所示的每個箭頭表示待通過前向幀預(yù)測而被編碼圖像所參考的參考圖像。例如,圖像p4參考的是早于圖像p4出現(xiàn)的圖像i0。另一方面,圖像編碼結(jié)構(gòu)201下面所示的每個箭頭表示待通過后向幀預(yù)測而被編碼圖像所參考的參考圖像。例如,圖像b2參考的是晚于圖像b2出現(xiàn)的圖像p4。
呈現(xiàn)在圖像編碼結(jié)構(gòu)201下面的圖像序列是圖像編碼結(jié)構(gòu)201中所包含的圖像的解碼順序202。解碼順序202中的每個框表示一個圖像,而且如在圖像編碼結(jié)構(gòu)201的情況下,框中所攜帶的字符表示編碼模式和輸入到視頻編碼設(shè)備的順序。解碼順序202與視頻編碼設(shè)備所執(zhí)行的編碼的順序相符。圖像解碼順序202上面所示的每個箭頭和圖像解碼順序202下面所示的每個箭頭分別表示通過前向幀預(yù)測而被編碼圖像所參考的參考圖像和通過后向幀預(yù)測而被編碼圖像所參考的參考圖像。
在解碼順序202中,bpsei被附到其下攜帶有標識“bpsei”的每個圖像。在所示出的示例中,bpsei被附到每個i圖像。也就是說,對于每個i圖像,定義了表示i圖像的第一個位在接收緩沖器中的到達時間和i圖像的解碼時間之差的initialcpbremovaldelay參數(shù)。
呈現(xiàn)于解碼順序202下面的框陣列203表示附到每個圖像的ptsei中所攜帶的cpbremovaldelay和dpboutputdelay的值??蜿嚵?03的上排中的每個框攜帶有用于位于那個框正上方的解碼順序202中的對應(yīng)圖像的cpbremovaldelay的值。同樣地,框陣列203的下排中的每個框攜帶有用于位于那個框正上方的解碼順序202中的對應(yīng)圖像的dpboutputdelay的值。cpbremovaldelay對應(yīng)于當從附有bpsei的、圖像之中的編碼順序上的最新圖像起算時編碼的順序。例如,圖像p8是當從圖像i0起算時的編碼順序上的第五個圖像。在本實施例中,因為每個圖像是一幀,而且圖像間時間間隔tc是以場為單位來表達的值,所以將圖像p8的cpbremovaldelay值給定為10(=5*2)。
另一方面,dpboutputdelay指定視頻解碼設(shè)備中所需要的顯示延遲,以按照正確的順序來順序地輸出圖像。例如,圖像p4的dpboutputdelay值是10。這是正確顯示在視頻編碼設(shè)備的輸入順序和編碼順序之間的差異最大的圖像b1所需要的延遲。也就是說,由于圖像b1是在圖像p4被解碼之后延遲了兩個圖像而被解碼,所以圖像p4的顯示時間不得不自圖像b1變?yōu)闇蕚浜糜糜陲@示的最早時間(即,圖像b1被解碼時的時間)起被進一步延遲三個圖像時間。由于圖像p4的解碼時間和顯示時間之間的差等于五個圖像時間,并且由于tc是以場為單位來表達的,所以dpboutputdelay值被給定為10。
接下來,參考圖3,將給出當剪接兩個編碼視頻數(shù)據(jù)流時、在剪接點下游剪接的編碼視頻數(shù)據(jù)流中的每個圖像的解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay可能采用以消除在這兩個編碼視頻數(shù)據(jù)流的剪接點之前和之后的解碼延遲和顯示延遲中的任何不一致的值的說明。
在剪接點上游剪接的第一編碼視頻數(shù)據(jù)流301中的每個框表示一個圖像,而該框中所攜帶的字符則表示編碼模式和輸入到視頻編碼設(shè)備的順序,如在圖2的情況下。在所示的示例中,第一編碼視頻數(shù)據(jù)流301的編碼結(jié)構(gòu)與圖2中所示的編碼結(jié)構(gòu)201是相同的。
在所示出的示例中,第二編碼視頻數(shù)據(jù)流302緊隨第一編碼視頻數(shù)據(jù)流的最后的圖像b15而被剪接。同樣在第二編碼視頻數(shù)據(jù)流302中,每個框表示一個圖像,而每個框中所攜帶的字符則表示編碼模式和輸入到視頻編碼設(shè)備的順序。第二編碼視頻數(shù)據(jù)流302上面所示的箭頭表示當圖像b70、b69和b71通過前向幀預(yù)測被編碼時分別參考的參考圖像。另一方面,第二編碼視頻數(shù)據(jù)流302下面所示的箭頭表示當圖像b70、b69和b71通過后向幀預(yù)測被編碼時分別參考的參考圖像。除了圖像b70、b69和b71之外,第二編碼視頻數(shù)據(jù)流302的編碼結(jié)構(gòu)與圖2中所示的編碼結(jié)構(gòu)201是相同的。圖像b70、b69和b71的編碼順序與在圖2中所示的編碼結(jié)構(gòu)201中包含的雙向預(yù)測圖像的編碼順序是相同的。然而,用于圖像b70、b69和b71的參考圖像不同于用于包含在編碼結(jié)構(gòu)201中的雙向預(yù)測圖像的參考圖像。圖像b70和b71各自僅參考在顯示時間上較晚的圖像,即,圖像172。另一方面,圖像b69僅參考在顯示時間上較早的圖像,即,圖像i68。這種情況出現(xiàn)在例如當圖像b69和b70之間存在場景變化時。由于圖像在橫跨場景變化邊界而突然變化,為了更好的預(yù)測效率,位于場景變化邊界附近的任何雙向預(yù)測圖像僅參考位于場景變化邊界同側(cè)的圖像。在這里所給的示例中,b69為tfd圖像,而b70和b71則為dlp圖像。在所示出的示例中,第二編碼視頻數(shù)據(jù)流302中的圖像i72和隨后的圖像剪接,以便跟隨第一編碼視頻數(shù)據(jù)流中的圖像b15。非專利文獻(jctvc-j1003,"high-efficiencyvideocoding(hevc)textspecificationdraft8",jointcollaborativeteamonvideocodingofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,july2012)所公開的方法規(guī)定了如下條件:tfd圖像的顯示時間早于dlp圖像的顯示時間、而dlp圖像不被tp圖像所參考。
呈現(xiàn)在第二編碼視頻數(shù)據(jù)流302下面的框陣列303表示附到第二編碼視頻數(shù)據(jù)流302的每個圖像的ptset中所攜帶的解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay的值??蜿嚵?03的上排中的每個框攜帶有用于位于那個框正上方的第二編碼視頻數(shù)據(jù)流302中的對應(yīng)圖像的解碼延遲cpbremovaldelay的值。同樣地,框陣列303的下排中的每個框攜帶有用于位于那個框正上方的第二編碼視頻數(shù)據(jù)流302中的對應(yīng)圖像的顯示延遲dpboutputdelay的值。
在框陣列303之下示出通過剪接第一及第二編碼視頻數(shù)據(jù)流301和302而生成的剪接的編碼視頻數(shù)據(jù)304。在所示出的示例中,第二編碼視頻數(shù)據(jù)流302中的圖像b67和在編碼順序上位于圖像b67之前的圖像并不被包含在剪接的編碼視頻數(shù)據(jù)304中。此外,圖像b69是參考在編碼順序上位于圖像i72之前的編碼圖像i68的tfd圖像。結(jié)果,當數(shù)據(jù)剪接于圖像i72時,圖像b69將會變得無法被正確地再現(xiàn)。因此,當剪接數(shù)據(jù)時丟棄圖像b69。然而,可以不丟棄圖像b69并可以將其保留在剪接的編碼視頻數(shù)據(jù)中。另一方面,圖像b70和b71分別是未參考在編碼順序上位于圖像i72之前的圖像的dlp圖像,并因此可以被正確地再現(xiàn)。然而,因為圖像b70和b71都不是被圖像p76或它后面的圖像所參考的圖像,所以如果圖像b70和b71與tfd圖像b69同時被丟棄的話,將不會影響圖像p76和它后面的圖像的再現(xiàn)。
框陣列305表示剪接的編碼視頻數(shù)據(jù)304中的圖像i72、b70、b71、p76、b74、b73和b75應(yīng)該具有的解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay的值??蜿嚵?05的上排中的每個框攜帶用于位于那個框正上方的剪接的編碼視頻數(shù)據(jù)304中的對應(yīng)圖像的解碼延遲cpbremovaldelay的值。同樣地,框陣列305的下排中的每個框攜帶用于位于那個框正上方的剪接的編碼視頻數(shù)據(jù)304中的對應(yīng)圖像的顯示延遲dpboutputdelay的值。
需要使得剪接之后的圖像i72的解碼延遲cpbremovaldelay與相對于圖像i12(圖像i12為具有緊隨的bpsei的圖像)的編碼圖像間隔相匹配。在所示出的示例中,由于圖像i72是自圖像i12起算的編碼順序上的第八個圖像,所以將解碼延遲cpbremovaldelay給定為16(=8*2)。圖像i72的顯示延遲dpboutputdelay也需要被校正以使得可以正確顯示將要晚于圖像i72進行解碼的圖像b73。圖像i72的顯示延遲dpboutputdelay在丟棄圖像b69之前和之后是不同的。丟棄圖像b69之后的顯示延遲dpboutputdelay的值減少了與由在解碼順序上晚于i72的丟棄的圖像的解碼時間和在解碼順序上緊隨丟棄的圖像的圖像的解碼時間之間的差定義的解碼間隔相等的值。在所示出的示例中,圖像b69是丟棄的圖像,而b69的解碼間隔(即,b69的解碼時間和在解碼順序上緊在先的圖像b70的解碼時間之間的差)為2;因此,將圖像i72的顯示延遲dpboutputdelay的值給定為2。同樣地,圖像b70的顯示延遲dpboutputdelay也減少了與在解碼順序上跟隨b70的丟棄的圖像的解碼間隔相等的值,即,減少了2,所以將其給定為2。
圖像b71、p76、b74、b73和b75中每一個的解碼延遲cpbremovaldelay的值在丟棄圖像b69之前和之后也是不同的。圖像b71、p76、b74、b73和b75中每一個的解碼延遲cpbremovaldelay的值在丟棄圖像b69之后從解碼延遲cpbremovaldelay的原始值減少了與在解碼順序上先于圖像i72的丟棄的圖像的解碼間隔相等的值。在所示出的示例中,通過從各個圖像的解碼延遲cpbremovaldelay的原始值減去tfd圖像b69的解碼間隔2,分別將圖像b71、p76、b74、b73和b75中每一個的解碼延遲cpbremovaldelay的值給定為4、6、8、10和12。對于dlp圖像b70來說,另一方面,因為不存在解碼順序上先于b70的丟棄的圖像,所以cpbremovaldelay的值在丟棄圖像b69之后保持不變。圖像p76、b74、b73和b75的顯示延遲dpboutputdelay的值也保持不變。此外,對于比將變成剪接的編碼視頻數(shù)據(jù)中的第一個cra圖像的圖像晚輸入的任何圖像來說,解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay都不需要被校正。
如前所述,當將兩個編碼視頻數(shù)據(jù)流剪接在一起時,對在剪接于剪接點下游的編碼視頻數(shù)據(jù)流中包含的一些圖像來說,在解碼時出現(xiàn)了校正解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay的需要。在本實施例中,替代了對在剪接前的原始編碼視頻數(shù)據(jù)中包含的受影響的圖像的解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay的值進行校正,當視頻解碼設(shè)備對剪接的編碼視頻數(shù)據(jù)進行解碼時,視頻編碼設(shè)備在編碼視頻數(shù)據(jù)的頭中添加以下參數(shù),該參數(shù)可以用于將解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay的值改變?yōu)檫m當?shù)闹怠?/p>
接下來,參考圖4,將描述根據(jù)第一實施例的編碼視頻數(shù)據(jù)的結(jié)構(gòu),該結(jié)構(gòu)包含以下參數(shù),這些參數(shù)可以用于將解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay的值改變?yōu)檫m當?shù)闹怠?/p>
如圖4所示,一個圖像的數(shù)據(jù)結(jié)構(gòu)400包含六種網(wǎng)絡(luò)抽象層(nal)單元410至415的。這些nal單元410至415符合mpeg-4avc/h.264和非專利文獻(jctvc-j1003,"high-efficiencyvideocoding(hevc)textspecificationdraft8",jointcollaborativeteamonvideocodingofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,july2012)所公開的方法中定義的nal單元。頭nuh420被附到每個nal單元。頭nuh420包含表示nal單元的類型的nalunittype字段。當nalunittype是1或2時,表示該圖像是tp圖像。當nalunittype是7時,表示該圖像是緊隨其后可能出現(xiàn)tfd圖像和dlp圖像的獨立bla圖像。當nalunittype是8時,表示該圖像是緊隨其后可能出現(xiàn)dlp圖像的獨立bla圖像。當nalunittype是9時,表示該圖像是緊隨其后既不出現(xiàn)tfd圖像也不出現(xiàn)dlp圖像的獨立bla圖像。當nalunittype是12時,表示該圖像是獨立cra圖像。當nalunittype是13時,表示該圖像是dlp圖像。當nalunittype是14時,表示該圖像是tfd圖像。
每個圖像的nalunittype值不必局限于上述的特定值,也可以設(shè)置為一些其它合適的值。
下面將說明nal單元。
nal單元410是定界符(delim)nal單元并表示圖像邊界。
nal單元411是攜帶有由編碼視頻的整個序列所共有的參數(shù)集的序列參數(shù)集(sps)nal單元。nal單元411附到獨立圖像。
nal單元412是攜帶有由多個編碼圖像所共有的參數(shù)集的圖像參數(shù)集(pps)nal單元。ppsnal單元412附到獨立圖像,有時也可以附到其他類型的圖像。
nal單元413是只附到獨立圖像的bpseinal單元。在本實施例中,將視頻解碼設(shè)備用來校正出現(xiàn)在剪接點之后的每個圖像的解碼延遲和顯示延遲的參數(shù)添加到該nal單元413。
nal單元414是附到每一個圖像的ptseinal單元。
nal單元415是作為編碼圖像的實質(zhì)的宏塊條(slice)nal單元。
根據(jù)本實施例的bpseinal單元413包含若干個(n+1個)initialcpbremovaldelay/initialcpbremovaldelay字段對(其中n是一個不小于0的整數(shù))。這些字段的定義可以與較早引用的非專利文獻(jctvc-j1003,"high-efficiencyvideocoding(hevc)textspecificationdraft8",jointcollaborativeteamonvideocodingofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,july2012)所公開的方法或mpeg-4avc/h.264中所給出的定義相同。
這是因為多于一個initialcpbremovaldelay/initialcpbremovaldelayoffset字段對被用于描述適合于其中以(n+1)個不同的比特率來發(fā)送編碼的比特流的情況的initialcpbremovaldelay和initialcpbremovaldelayoffset參數(shù)。initialcpbremovaldelayoffset參數(shù)定義了視頻編碼設(shè)備中的第一個圖像的編碼完成時間和將編碼圖像數(shù)據(jù)傳輸?shù)揭曨l解碼設(shè)備的開始時間之間的差。
ptseinal單元414包含解碼延遲cpbremovaldelay字段、顯示延遲dpboutputdelay字段以及numremovedtfds字段。numremovedtfds字段是用于解碼延遲和顯示延遲的校正的校正信息的一個例子。numremovedtfds字段攜帶有在附ptsei的圖像和解碼順序上的下一個附bpsei的圖像之間的間隔期間丟棄的圖像的解碼間隔之和。圖像的解碼間隔被定義為通過從附到圖像的ptsei中所攜帶的cpbremovaldelay字段值中減去附到解碼順序上在前緊鄰的圖像的ptset中所攜帶的cpbremovaldelay字段值而獲得的值。當上述解碼順序上在前緊鄰的圖像為bla圖像時,附到該bla圖像的ptset中所攜帶的cpbremovaldelay字段值當作0來對待。當生成編碼的比特流時,numremovedtfds字段值被設(shè)為0。
圖5是根據(jù)第一實施例的視頻編碼設(shè)備的簡化框圖。視頻編碼設(shè)備1包括控制單元11、編碼控制單元12、圖像編碼單元13、剪接點識別信息處理單元14和數(shù)據(jù)剪接單元15。構(gòu)成視頻編碼設(shè)備1的這些單元各自在視頻編碼設(shè)備1上作為單獨的電路實現(xiàn)?;蛘?,構(gòu)成視頻編碼設(shè)備1的這些單元也可以在視頻編碼設(shè)備1上以單個的集成電路的形式實現(xiàn),在單個的集成電路上集成了實現(xiàn)上述各個單元的功能的電路。另外,構(gòu)成視頻編碼設(shè)備1的這些單元可以是通過在視頻編碼設(shè)備1中包含的處理器上執(zhí)行計算機程序而實現(xiàn)的功能模塊。
當對視頻數(shù)據(jù)進行編碼時或者當編輯編碼視頻數(shù)據(jù)時,控制單元11控制視頻編碼設(shè)備1的每個指定單元的操作。例如,基于諸如場景變化位置等的視頻數(shù)據(jù)的性質(zhì)以及編碼視頻數(shù)據(jù)所需要的再現(xiàn)圖像質(zhì)量、壓縮比等,控制單元11確定施加到待編碼視頻數(shù)據(jù)上的gop結(jié)構(gòu)等。然后,控制單元11用信號發(fā)出gop結(jié)構(gòu)等到編碼控制單元12。
首先,將描述用于對視頻數(shù)據(jù)進行編碼視頻編碼處理。視頻編碼處理是利用編碼控制單元12和圖像編碼單元13來進行的。
編碼控制單元12根據(jù)從控制單元11用信號發(fā)出的gop結(jié)構(gòu)對每個圖像確定編碼順序、編碼模式(例如,幀內(nèi)編碼、前向預(yù)測或雙向預(yù)測)等。然后,編碼控制單元12基于每個圖像的編碼模式、gop結(jié)構(gòu)內(nèi)的位置等確定cra圖像插入間隔、在編碼時待重新排序的圖像的數(shù)量以及最大顯示延遲。在圖2所示的示例中,cra圖像插入間隔為12,待重新排序的圖像的數(shù)量為2,而最大顯示延遲為5。編碼控制單元12基于這些值生成每個圖像的頭信息。
例如,如果圖像類型是未參考任何其它圖像而進行編碼的i圖像(cra圖像),并且如果該圖像不是編碼視頻數(shù)據(jù)的起始圖像的話,則編碼控制單元12將該圖像的每個宏塊條的nuh420中的nalunittype設(shè)置成12。將編碼視頻數(shù)據(jù)的起始圖像的每個宏塊條的nuh420中的nalunittype設(shè)置為10(idr圖像)。此外,當待重新排序的圖像的數(shù)量不小于1時,對于緊隨cra圖像并參考在解碼順序和顯示順序上都比該cra圖像要早的圖像的圖像,編碼控制單元12將nalunittype設(shè)置為14(tfd圖像)。另一方面,對于緊隨該cra圖像并且不參考在顯示時間上先于該cra圖像、且在解碼順序和顯示順序上都早于cra圖像的任何圖像的圖像,編碼控制單元12將nalunittype設(shè)為13(dlp圖像)。對于其他圖像,編碼控制單元12將nalunittype設(shè)為1或2(tp圖像)。
編碼控制單元12將已在待編碼圖像的每個宏塊條的頭nuh420中設(shè)置的nalunittype值通知給圖像編碼單元13。此外,編碼控制單元12從圖像預(yù)測結(jié)構(gòu)中獲得每個圖像的ptsei中的解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay的值,如圖2所示,并相應(yīng)地通知圖像編碼單元13。
當圖像的每個宏塊條的nuh420中的nalunittype是10或12時,編碼控制單元12將bpsei附至圖像。
對于每一個圖像,編碼控制單元12用信號將圖像的編碼模式和頭信息發(fā)至圖像編碼單元13,并發(fā)出對圖像進行編碼的指令。
圖像編碼單元13響應(yīng)于來自編碼控制單元12的指令,用指定的編碼方式、通過采用能夠進行幀間預(yù)測編碼的視頻編碼方法之一來對圖像進行編碼。圖像編碼單元13所采用的視頻編碼方法例如可以是mpeg-4avc/h.264或mpeg-2。圖像編碼單元13將包含每個編碼圖像的編碼視頻數(shù)據(jù)存儲于存儲單元(未示出)中。
接著,將描述當剪接兩個編碼視頻數(shù)據(jù)流時所執(zhí)行的編輯處理。編輯處理是利用剪接點識別信息處理單元14和數(shù)據(jù)剪接單元15來進行的。
剪接點識別信息處理單元14例如通過用戶接口單元(未示出)從存儲單元(未示出)中讀出所選擇的兩個編碼視頻數(shù)據(jù)流。然后,根據(jù)外部施加的控制信號(未示出),剪接點識別信息處理單元14識別要在編碼視頻數(shù)據(jù)流中的另一個視頻數(shù)據(jù)流的時間上下游剪接的第二編碼視頻數(shù)據(jù)流中的剪接點開始圖像。外部控制信號例如指定從第二編碼視頻數(shù)據(jù)流的一開始算起的編碼圖像的數(shù)量,而剪接點識別信息處理單元14例如識別編碼圖像的這個數(shù)量以內(nèi)的最新的cra圖像來作為剪接點圖像。
對于由此識別的剪接點cra圖像來說,如果待重新排序的圖像的數(shù)量不小于1,則剪接點識別信息處理單元14將該圖像的每個宏塊條的nalunittype的值從12改為7(7表示該圖像是其后潛在可能跟著tfd圖像的bla圖像)。該nalunittype值表示,這兩個編碼視頻數(shù)據(jù)流已在那個剪接點處剪接在一起,而且已經(jīng)丟棄了在編碼順序和解碼順序都晚于剪接點bla圖像的一個或多個編碼圖像。此外,剪接點識別信息處理單元14將第二編碼視頻數(shù)據(jù)流中的剪接點cra圖像及其隨后的圖像提供給數(shù)據(jù)剪接單元15,并發(fā)出丟棄緊隨剪接點cra圖像后的tfd圖像的指令。另一方面,如果待重新排序的圖像的數(shù)量為0,則剪接點識別信息處理單元14將剪接點cra圖像的每一宏塊條的nalunittype的值從12改為9(9表示該圖像是緊隨其后既沒有tfd圖像也沒有dlp圖像出現(xiàn)的bla圖像)。
接著,剪接點識別信息處理單元14計算待丟棄的tfd圖像的解碼間隔,而緊鄰在待丟棄的tfd圖像之前的非tfd圖像的numremovedtfds字段的值則遞增與跟隨該非tfd圖像的丟棄的tfd圖像的解碼間隔相等的值。當每個圖像的解碼間隔相等時,非tfd圖像的numremovedtfds字段的值最終將以場為單位來表示在解碼順序上跟隨該非tfd圖像的、丟棄的圖像的數(shù)量。然后,剪接點識別信息處理單元14對附至在解碼順序上先于第二編碼視頻數(shù)據(jù)流中待丟棄的tfd圖像的任何圖像的ptsei的numremovedtfds字段的值進行校正。
數(shù)據(jù)剪接單元15從剪接點識別信息處理單元14接收第二編碼視頻數(shù)據(jù)流,并將它剪接到在時間上剪接于剪接點的上游的第一編碼視頻數(shù)據(jù)流的尾端。這時,數(shù)據(jù)剪接單元15丟棄緊隨第二編碼視頻數(shù)據(jù)流中的起始圖像且不能確保被正確解碼的任何tfd圖像。在這種情況下,數(shù)據(jù)剪接單元15還可以通過把dlp圖像當作tfd圖像而丟棄dlp圖像。然后,數(shù)據(jù)剪接單元15將通過將第一和第二編碼視頻數(shù)據(jù)流剪接在一起而創(chuàng)建的剪接的編碼視頻數(shù)據(jù)存儲在存儲單元(未示出)中。
圖6是示出根據(jù)第一實施例的視頻編碼設(shè)備所執(zhí)行的視頻編碼處理的操作流程圖。視頻編碼設(shè)備1按照圖6的操作流程圖來對整個視頻序列進行編碼。
在開始整個序列的編碼處理之前,例如由控制單元11來確定諸如gop結(jié)構(gòu)的圖像預(yù)測結(jié)構(gòu)(步驟s101)。將確定的圖像預(yù)測結(jié)構(gòu)用信號發(fā)至編碼控制單元12。
然后,基于圖像預(yù)測結(jié)構(gòu)、目標圖像自視頻數(shù)據(jù)的開始處起的位置等,編碼控制單元12確定用于對目標圖像進行編碼的編碼模式,并生成待編碼的目標圖像的頭信息(步驟s102)。
在步驟s102之后,編碼控制單元12將目標圖像的數(shù)據(jù)連同該圖像的編碼模式的類型和頭信息一起提供給圖像編碼單元13。然后,圖像編碼單元13按照該編碼模式和頭信息來對目標圖像進行編碼,并將該頭信息附至編碼圖像的數(shù)據(jù)(步驟s103)。
在此之后,控制單元11確定在視頻序列中是否剩余任何待解碼圖像(步驟s104)。如果剩余任何待解碼圖像(步驟s104中的是),則控制單元11從步驟s102開始向前執(zhí)行處理,以對下一個目標圖像進行編碼。另一方面,如果不再剩余任何待解碼圖像(步驟s104中的否),則控制單元11終止編碼過程。
圖7是示出根據(jù)第一實施例的視頻編碼設(shè)備所執(zhí)行的視頻編輯處理的操作流程圖。在所示出的示例中,dlp圖像未被丟棄,而只有tfd圖像被丟棄了。
剪接點識別信息處理單元14對在tfd和dlp圖像之中未被丟棄的圖像的列表l[]進行初始化,并將變量m初始化為2,變量m表示通過將未被丟棄的圖像的數(shù)量加2而獲得的值(步驟s201)。如果不存在在解碼順序上跟隨最后的dlp圖像的tfd圖像的話,則可以將變量m設(shè)置成表示tfd和dlp圖像之中未被丟棄的圖像的數(shù)量。
接著,剪接點識別信息處理單元14從存儲單元(未示出)中順序地讀出待剪接于剪接點的上游的第一編碼視頻數(shù)據(jù)流中的一直到剪接點的編碼圖像(步驟s202)。
此外,識別信息處理單元14從存儲單元(未示出)中順序地讀出待剪接于剪接點的下游的第二編碼視頻數(shù)據(jù)流中的剪接點之后的編碼圖像(步驟s203)。接著,對于從第二編碼視頻數(shù)據(jù)流中讀出的起始cra圖像,剪接點識別信息處理單元14將每個宏塊條nuh中的nalunittype的值改為表示bla圖像的值(步驟s204)。
接著,剪接點識別信息處理單元14確定解碼順序上的下一個圖像的nalunittype的值是否為14,即,該下一個圖像是否為tfd圖像(步驟s205)。如果該圖像是tfd圖像(步驟s205中的是),則剪接點識別信息處理單元14向剪接單元15發(fā)出丟棄該tfd圖像的指令,并將tfd圖像的解碼間隔(即,tfd圖像和在解碼順序上緊鄰在它前面的圖像之間的ptseicpbremovaldelay值的差)添加至列表l[]中的第0個到第m個條目中的每一個(步驟s206)。之后,剪接點識別信息處理單元14返回到步驟s205以評估下一個圖像的nalunittype。
另一方面,如果該圖像不是tfd圖像(步驟s205中的否),則剪接點識別信息處理單元14確定解碼順序上的下一個圖像的nalunittype的值是否是13,即,下一個圖像是否是dlp圖像(步驟s207)。如果下一個圖像是dlp圖像(步驟s207中的是),則剪接點識別信息處理單元14令變量m遞增1(步驟s208)。之后,剪接點識別信息處理單元14返回到步驟s205以重復(fù)上述處理。另一方面,如果解碼順序上的下一個圖像不是dlp圖像(步驟s207中的否),則該下一個圖像既不是tfd圖像也不是dlp圖像,而是tp圖像。不存在在解碼順序上跟著tp圖像的tfd圖像。因此,基于列表l[],剪接點識別信息處理單元14對附至bla和dlp圖像中的每一個的ptsei的numremovedtfds字段進行更新(步驟s209)。更具體地,對于當從bla圖像起算時在解碼順序上一直到第m個圖像的非tfd圖像,剪接點識別信息處理單元14將附至第k個圖像的ptsei的numremovedtfds字段的值更新為l[k]。之后,剪接點識別信息處理單元14將bla圖像及其隨后的圖像提供給數(shù)據(jù)剪接單元15。
剪接單元15剪接第二編碼視頻數(shù)據(jù)流中的bla圖像及其隨后的圖像以便跟隨剪接點的上游的第一編碼視頻數(shù)據(jù)流的最后一個圖像。此時,剪接單元15丟棄由剪接點識別信息處理單元14指定要去除的tfd圖像。
接著,將給出對根據(jù)第一實施例的用于對由視頻編碼設(shè)備1編碼或編輯的編碼視頻數(shù)據(jù)進行解碼的視頻解碼設(shè)備的說明
圖8是根據(jù)第一實施例的視頻解碼設(shè)備的簡化框圖。視頻解碼設(shè)備2包括控制單元21、頭信息分析單元22、圖像解碼/顯示時間確定單元23、圖像解碼單元24和幀存儲器25。構(gòu)成視頻解碼設(shè)備2的這些單元各自在視頻解碼設(shè)備2上作為單獨的電路實現(xiàn)?;蛘撸瑯?gòu)成視頻解碼設(shè)備2的這些單元也可以在視頻解碼設(shè)備2上以單個的集成電路的形式實現(xiàn),在該單個的集成電路上集成了實現(xiàn)上述各個單元的功能的電路。此外,構(gòu)成視頻解碼設(shè)備2的這些單元可以是通過在視頻解碼設(shè)備2中包含的處理器上執(zhí)行計算機程序而實現(xiàn)的功能模塊。
控制單元21控制當解碼編碼視頻數(shù)據(jù)時視頻解碼設(shè)備2的每個指定單元的操作。
頭信息分析部22分析編碼視頻數(shù)據(jù)的頭信息,并將對確定圖像解碼和顯示時間來說所必需的參數(shù)(例如,每個圖像的nalunittype以及ptsei中所攜帶的cpbremovaldelay、dpboutputdelay和numremovedtfds)傳遞給圖像解碼/顯示時間確定單元23。
接收到來自頭信息分析部22的參數(shù)的圖像解碼/顯示時間確定單元23檢查待解碼圖像的宏塊條nuh。當nuh中所攜帶的nalunittype的值為7或8或9時,圖像解碼/顯示時間確定單元23確定該待解碼圖像為bla圖像。
當待解碼圖像為bla圖像時,圖像解碼/顯示時間確定單元23使用以下述方式計算出的值而非附至bla圖像的ptsei中所攜帶的cpbremovaldelay的值,來作為bla圖像的解碼延遲cpbremovaldelay。
圖像解碼/顯示時間確定單元23計算從緊隨bla圖像前的最新的附有bpsei的圖像的圖像起算一直到bla圖像的圖像解碼間隔的總和a。然后,圖像解碼/顯示時間確定單元23將bla圖像的解碼延遲cpbremovaldelay設(shè)成等于a。當每個圖像的解碼間隔相等時,圖像解碼/顯示時間確定單元23可以將bla圖像的解碼延遲cpbremovaldelay設(shè)成等于以場為單位從緊隨bla圖像前的最新的附有bpsei圖像的圖像起算一直到bla圖像的圖像的數(shù)量。
此外,圖像解碼/顯示時間確定單元23檢查附至bla圖像的ptsei的numremovedtfds字段。如果numremovedtfds的值不為零,則圖像解碼/顯示時間確定單元23確定緊隨bla圖像的tfd圖像已被丟棄,并通過從bla圖像的顯示延遲cpbremovaldelay的值中減去numremovedtfds的值來校正bla圖像的顯示延遲cpbremovaldelay。
圖像解碼/顯示時間確定單元23還對在解碼順序上跟著bla圖像的每個圖像上執(zhí)行下面的處理,直到下一個附有bpsei的圖像出現(xiàn)為止。
對于每個指定圖像,圖像解碼/顯示時間確定單元23通過從cpbremovaldelay的原始值中減去附至bla圖像的ptsei中所攜帶的numremovedtfds的值與附至指定圖像的ptsei中所攜帶的numremovedtfds的值之差(即,出現(xiàn)在指定圖像后的丟棄的圖像的解碼間隔的總和)來校正解碼延遲cpbremovaldelay。另外,對于每個指定圖像,圖像解碼/顯示時間確定單元23通過從dpboutputdelay的原始值中減去附至指定圖像的ptsei中所攜帶的numremovedtfds的值來校正顯示延遲dpboutputdelay。
此外,對于每個tp圖像,圖像解碼/顯示時間確定單元23通過從該圖像的解碼延遲cpbremovaldelay的原始值中減去在bla圖像所附的ptsei中攜帶的numremovedtfds的值來校正解碼延遲cpbremovaldelay。
對于除以上圖像之外的任何其他圖像,圖像解碼/顯示時間確定單元23通過直接取用在該圖像所附的ptsei中攜帶的解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay的值來確定圖像的解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay。
圖像解碼/顯示時間確定單元23基于以上解碼延遲cpbremovaldelay來確定每個圖像的解碼時間,并且在確定的解碼時間向圖像解碼單元24發(fā)出解碼指令。此外,圖像解碼/顯示時間確定單元23基于以上顯示延遲dpboutputdelay來確定每個圖像的顯示時間,并且在確定的顯示時間向幀存儲器25發(fā)出顯示指令。
在接收到針對待解碼圖像的解碼指令時,圖像解碼單元24通過使用存儲在幀存儲器25中的參考圖像來對圖像進行解碼。然后,圖像解碼單元24將解碼圖像存儲在幀存儲器25中。圖像解碼單元24通過使用與視頻編碼設(shè)備1中的圖像編碼單元所使用的編碼方法相同的編碼方法來執(zhí)行解碼。
幀存儲器25存儲解碼圖像。此外,幀存儲器25將解碼圖像輸出至圖像解碼單元24以向待隨后解碼的圖像呈現(xiàn)參考圖像。幀存儲器25還根據(jù)從圖像解碼/顯示時間確定單元23接收的顯示指令將解碼圖像輸出至顯示單元(未示出)。
圖9是示出根據(jù)第一實施例的通過視頻解碼設(shè)備執(zhí)行的視頻解碼處理的操作流程圖。視頻解碼設(shè)備2根據(jù)圖9的操作流程圖對整個視頻序列進行解碼。
在開始整個序列的解碼處理之前,控制單元21將變量“flag”初始化為0(步驟s301)。變量“flag”為表示圖像是否為cpbremovaldelay和dpboutputdelay需要校正的非bla圖像的變量。如果flag為1,則cpbremovaldelay和dpboutputdelay需要校正,而如果flag為0,則cpbremovaldelay或dpboutputdelay都不需要校正。
接下來,頭信息分析單元22對待解碼的圖像的頭信息進行分析,并將確定圖像的解碼時間和顯示時間所需要的參數(shù)傳送至圖像解碼/顯示時間確定單元23(步驟s302)。圖像解碼/顯示時間確定單元23確定變量“flag”是否為1(步驟s303)。如果變量“flag”為1(在步驟s303中為是),則圖像解碼/顯示時間確定單元23通過使用待解碼圖像的numremovedtfds和最新bla圖像的numremovedtfds來校正待解碼圖像(在該情況下為非bla圖像)的解碼延遲cpbremovaldelay(步驟s304)。圖像解碼/顯示時間確定單元23還通過使用待解碼圖像的numremovedtfds來校正待解碼圖像的顯示延遲dpboutputdelay。
在步驟s304之后,或在步驟s303中確定了變量“flag”為0(在步驟s303中為否)之后,圖像解碼/顯示時間確定單元23繼續(xù)確定待解碼圖像是否為附有bpsei的圖像(步驟s305)。
如果待解碼圖像為附有bpsei的圖像(在步驟s305中為是),則圖像解碼/顯示時間確定單元23確定待解碼圖像是否為bla圖像(步驟s306)。如果待解碼圖像不是bla圖像(在步驟s306中為否),則圖像解碼/顯示時間確定單元23將變量“flag”重設(shè)為0(步驟s307)。
如果待解碼圖像為bla圖像(在步驟s306中為是),則圖像解碼/顯示時間確定單元23校正圖像的解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay,并將變量“flag”設(shè)定為1(步驟s308)。在該情況下,圖像解碼/顯示時間確定單元23通過取用從緊隨最新的附有bpsei的圖像的圖像起算一直到bla圖像的圖像解碼間隔之和,確定bla圖像的解碼延遲cpbremovaldelay。此外,圖像解碼/顯示時間確定單元23通過從dpboutputdelay的原始值中減去numremovedtfds的值來確定圖像的顯示延遲dpboutputdelay。
在步驟s307或s308之后,或在步驟s305中確定了待解碼圖像不是附有bpsei的圖像(在步驟s305中為否)之后,控制單元21繼續(xù)確定在編碼視頻數(shù)據(jù)中是否剩余任何待解碼圖像(步驟s309)。如果剩余任何待解碼圖像(在步驟s309中為是),則控制單元21將處理返回到步驟s302。然后,以解碼順序上下一個待解碼圖像作為目標圖像,并且重復(fù)從步驟s302開始的處理。另一方面,如果不再剩余任何待解碼圖像(在步驟s309中為否),則控制單元21終止視頻解碼處理。
將參考附圖10通過示例來說明到目前為止所描述的推導(dǎo)numremovedtfds的方法及校正cpbremovaldelay和dpboutputdelay的方法。
待在剪接點的上游剪接的第一編碼視頻數(shù)據(jù)流1001中的每個框表示一個圖像,并且每個框中攜帶的字符表示輸入至視頻編碼設(shè)備的順序和編碼模式,如圖2所示。
在示出的示例中,緊隨第一編碼視頻數(shù)據(jù)流的最后一個圖像b11來剪接第二編碼視頻數(shù)據(jù)流1002。在第二編碼視頻數(shù)據(jù)流1002中,同樣,每個框表示一個圖像,并且每個框中攜帶的字符表示輸入至視頻編碼設(shè)備的順序和編碼模式。在第二編碼視頻數(shù)據(jù)流1002上方示出的箭頭表示在通過前向幀預(yù)測對圖像b4至b7進行編碼時圖像b4至b7分別參考的參考圖像。另一方面,在第二編碼視頻數(shù)據(jù)流1002下方示出的箭頭表示在通過后向幀預(yù)測對圖像b4至b7進行編碼時圖像b4至b7分別參考的參考圖像。
如在第二編碼視頻數(shù)據(jù)流1002中指定的,在第二編碼視頻數(shù)據(jù)流1002中,圖像b4、b2、b1、b3和b5為tfd圖像。圖像b6和b7為dlp圖像。
在第二編碼視頻數(shù)據(jù)流1002下方呈現(xiàn)的框陣列1003表示在第二編碼視頻數(shù)據(jù)流1002的每個圖像所附的ptsei中攜帶的解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay的值??蜿嚵?003的上面一行中的每個框攜帶第二編碼視頻數(shù)據(jù)流1002中位于該框正上方的對應(yīng)圖像的解碼延遲cpbremovaldelay的值。類似地,框陣列1003的下面一行中的每個框攜帶第二編碼視頻數(shù)據(jù)流1002中位于該框正上方的對應(yīng)圖像的顯示延遲dpboutputdelay的值。
在框陣列1003下方示出了通過剪接第一編碼視頻數(shù)據(jù)流1001和第二編碼視頻數(shù)據(jù)流1002生成的剪接的編碼視頻數(shù)據(jù)1004。在示出的示例中,第二編碼視頻數(shù)據(jù)流1002中的tfd圖像b4、b2、b1、b3、和b5被丟棄,因此未被包含在剪接的編碼視頻數(shù)據(jù)1004中。
在框陣列1004下方示出了剪接的編碼視頻數(shù)據(jù)1004的numremovedtfds1005。bla圖像i8的numremovedtfds字段攜帶在解碼順序上跟隨i8的丟棄的tfd圖像(b4、b2、b1、b3、和b5)的解碼間隔之和,即,在示出的示例中為表示在i8之后以場為單位被丟棄了的圖像的數(shù)量的值“10”。類似地,dlp圖像b6的numremovedtfds字段攜帶在解碼順序上跟隨b6的丟棄的tfd圖像(b5)的解碼間隔之和,即,在示出的示例中為表示在b6之后以場為單位被丟棄了的圖像的數(shù)量的值“2”。對于圖像b7及其隨后圖像,numremovedtfds的值保持為0,這是因為不存在在解碼順序上跟隨的丟棄的tfd圖像。
在剪接的編碼視頻數(shù)據(jù)1004的numremovedtfds1005下方呈現(xiàn)的框陣列1006表示剪接的編碼視頻數(shù)據(jù)1004的基于numremovedtfds值被校正了的解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay的值??蜿嚵?006的上面一行中的每個框攜帶位于該框正上方的圖像的解碼延遲cpbremovaldelay的校正值,并且框陣列1006的下面一行中的每個框攜帶位于該框正上方的圖像的顯示延遲dpboutputdelay的校正值。
對于bla圖像i8,通過從顯示延遲dpboutputdelay的原始值“20”中減去numremovedtfds值“10”給出顯示延遲dpboutputdelay的校正值為“10”。這樣,用通過參考圖像b9的顯示時間獲取的在圖像i8的解碼時間與顯示時間之差不僅可以表達圖像i8的顯示延遲dpboutputdelay的原始值還可以表達其校正值,其中,在跟隨i8的圖像中,圖像b9的待重新排序的圖像數(shù)量最大。
對于dlp圖像b6,通過從解碼延遲cpbremovaldelay的原始值“10”中減去圖像i8的numremovedtfds值(=10)與圖像b6的numremovedtfds值(=2)之差“8”來給出解碼延遲cpbremovaldelay的校正值為“2”。此外,通過從顯示延遲dpboutputdelay的原始值“6”減去圖像b6的numremovedtfds值(=2)來給出圖像b6的顯示延遲dpboutputdelay的校正值為“4”。對于圖像b7及其隨后圖像,由于numremovedtfds值為0,所以通過從解碼延遲cpbremovaldelay的原始值中減去圖像i8的numremovedtfds值來獲得解碼延遲cpbremovaldelay的校正值。對于圖像b7及其隨后圖像,顯示延遲dpboutputdelay保持不變。
如以上所描述了的,在使兩個或更多個編碼視頻數(shù)據(jù)流剪接在一起而不一起對它們解碼時,根據(jù)本實施例的視頻編碼設(shè)備僅需要將基于在剪接時丟棄的圖像的數(shù)量確定的解碼延遲和顯示延遲校正參數(shù)存儲在編碼視頻數(shù)據(jù)內(nèi),而不需要校正在編碼時確定的解碼延遲和顯示延遲參數(shù)。然后,由于可以使用在剪接編碼視頻數(shù)據(jù)流時添加的解碼延遲和顯示延遲校正參數(shù)來校正每個圖像的解碼延遲和顯示延遲,根據(jù)本實施例的視頻解碼設(shè)備可以以校正時序?qū)γ總€圖像進行解碼和顯示。
接下來,將描述第二實施例。第二實施例與第一實施例的區(qū)別在于編碼視頻數(shù)據(jù)的結(jié)構(gòu)。
參考圖11,將對根據(jù)第二實施例的編碼視頻數(shù)據(jù)的結(jié)構(gòu)進行描述。與根據(jù)圖4中示出的第一實施例的編碼圖像結(jié)構(gòu)一樣,一個圖像的數(shù)據(jù)結(jié)構(gòu)包含六種nal單元1110至1115。這些單元中的bpsei1113和ptsei1114與圖4中描述的bpsei413和ptsei414不同。另一方面,delim1110、sps1111、pps1112、slice1115、和nuh1120分別與圖4中示出的delim410、sps411、pps412、slice415、和nuh420相同。
bpsei1113包含numentries字段,該字段攜帶通過將1與變量m相加計算出的數(shù)量,其中,m表示通過將2與在剪接時在位于bla圖像與下一cra圖像之間的tfd和dlp圖像中未被丟棄的圖像的數(shù)量相加獲得的值。bpsei1113還包含與numentries一樣多的altcpbremovaldelayoffset字段和altdpboutputdelayoffset字段。numentrie字段、altcpbremovaldelayoffset字段和altdpboutputdelayoffset字段一起組成用于對解碼延遲和顯示延遲進行校正所使用的校正信息的另一個示例。另一方面,不像ptsei440,ptsei1140不包含numremovedtfds字段。
當numentries字段的值為0時,視頻解碼設(shè)備不需要對針對附有bpsei的圖像及其隨后圖像(先于下一個有bpsei的圖像)中的任何圖像的cpbremovaldelay和dpboutputdelay的值進行校正。另一方面,當numentries字段的值不為0時,視頻解碼設(shè)備通過從解碼延遲cpbremovaldelay的原始值中減去altcpbremovaldelayoffset[k]的值來對從附有bpsei的圖像起算的在解碼順序上的第k個圖像的解碼延遲cpbremovaldelay進行校正。同樣地,視頻解碼設(shè)備通過從顯示延遲dpboutputdelay的原始值中減去altcpbremovaldelayoffset[k]的值對顯示延遲dpboutputdelay進行校正。
如以上所述,與第一實施例的區(qū)別在于攜帶cpbremovaldelay和dpboutputdelay字段的校正值的sei的類型。因此,第二實施例的視頻編碼設(shè)備與第一實施例的視頻編碼設(shè)備的區(qū)別在于剪接點識別信息處理單元14的操作。因此,以下對剪接點識別信息處理單元14的操作進行描述。
剪接點識別信息處理單元14將通過使1與根據(jù)圖7中示出的視頻編輯處理的操作流程圖計算的變量m相加獲得的值存儲在numentries字段中。此外,剪接點識別信息處理單元14將l[0]-l[k]的值存儲在第k個altcpbremovaldelayoffset字段中(k=[0,m-1])。剪接點識別信息處理單元14還將l[k]的值存儲在第k個altdpboutputdelayoffset中。
接下來,將對根據(jù)第二實施例的視頻解碼設(shè)備的操作進行描述。根據(jù)第二實施例的視頻解碼設(shè)備的配置與根據(jù)第一實施例的視頻解碼設(shè)備的配置基本上相同。然而,根據(jù)第二實施例的視頻解碼設(shè)備與第一實施例的視頻解碼設(shè)備的區(qū)別在于圖像解碼/顯示時間確定單元23的操作。因此,下面對圖像解碼/顯示時間確定單元23的操作進行描述。
只有在緊鄰待解碼圖像前的附有bpsei的圖像的bpsei中的numentries的值不為零時,圖像解碼/顯示時間確定單元23才以以下方式對圖像的ptsei中的解碼延遲cpbremovaldelay和顯示延遲dpboutputdelay的值進行校正。
如從緊鄰其前的附有bpsei的圖像(在該情況下為bla圖像)起算的圖像的解碼順序表示為k(k=0、1、2、…)。當k等于或大于numentries時,圖像解碼/顯示時間確定單元23通過從第k個圖像的解碼延遲cpbremovaldelay的原始值中減去altcpbremovaldelayoffset[numentries-1]的值來對解碼延遲cpbremovaldelay的值進行校正。另一方面,當k小于numentries時,圖像解碼/顯示時間確定單元23通過從解碼延遲cpbremovaldelay的原始值中減去altcpbremovaldelayoffset[k]的值來對第k個圖像的cpbremovaldelay的值進行校正,并通過從顯示延遲dpboutputdelay的原始值中減去altdpboutputdelayoffset的值來對dpboutputdelay的值進行校正。
圖12是示出通過執(zhí)行用于實現(xiàn)根據(jù)以上實施例或它們的修改示例中的任一個的視頻編碼設(shè)備或視頻解碼設(shè)備中的各個單元的功能的計算機程序而用作視頻編碼設(shè)備或視頻解碼設(shè)備的計算機的配置的圖。
計算機100包括用戶接口單元101、通信接口單元102、存儲單元103、存儲介質(zhì)訪問裝置104、和處理器105。處理器105例如通過總線連接至用戶接口單元101、通信接口單元102、存儲單元103、和存儲介質(zhì)訪問裝置104。
用戶接口單元101例如包括輸入裝置如鍵盤和鼠標、以及顯示裝置如液晶顯示器??商娲兀脩艚涌趩卧?01可以包括集成有輸入裝置和顯示裝置的裝置,如觸摸面板顯示器。用戶接口單元101例如響應(yīng)于用戶操作來生成用于選擇待編碼的視頻數(shù)據(jù)、待編輯的編碼視頻數(shù)據(jù)、或待解碼的編碼視頻數(shù)據(jù)的操作信號,并且將操作信號提供給處理器105。接口單元101還可以顯示從處理器105接收的解碼視頻數(shù)據(jù)。
通信接口單元102可以包括用于將計算機100連接至視頻數(shù)據(jù)生成設(shè)備例如攝像機的通信接口、以及用于通信接口的控制電路。這樣的通信接口可以例如為通用串行總線(usb)接口。
此外,通信接口單元102可以包括用于連接至符合通信標準如以太網(wǎng)(注冊商標)的通信網(wǎng)絡(luò)的通信接口、以及用于通信接口的控制電路。
在后者的情況下,通信接口102從連接至通信網(wǎng)絡(luò)的另一個設(shè)備接收待編碼視頻數(shù)據(jù)、待編輯的編碼視頻數(shù)據(jù)、或待解碼的編碼視頻數(shù)據(jù),并且將接收的數(shù)據(jù)傳送至處理器105。此外,通信接口102可以從處理器105接收編碼視頻數(shù)據(jù)、剪接的編碼視頻數(shù)據(jù)、或解碼視頻數(shù)據(jù),并且可以通過通信網(wǎng)絡(luò)將數(shù)據(jù)傳輸給另一個設(shè)備。
存儲單元103例如包括可讀/可寫半導(dǎo)體存儲器和只讀半導(dǎo)體存儲器。存儲單元103存儲用于待在處理器105上執(zhí)行視頻編碼或視頻解碼的計算機程序,并且還存儲由于執(zhí)行程序或在執(zhí)行程序中生成的數(shù)據(jù)。
存儲介質(zhì)訪問裝置104為訪問存儲介質(zhì)106(如磁盤、半導(dǎo)體存儲卡、或光學(xué)存儲介質(zhì))的裝置。存儲介質(zhì)訪問裝置104訪問存儲介質(zhì)106以例如讀出用于待在處理器105上執(zhí)行視頻編碼或視頻解碼的計算機程序,并將讀出的計算機程序傳送至處理器105。
處理器105通過執(zhí)行根據(jù)以上實施例或其修改示例中任一個的視頻編碼計算機程序來生成編碼視頻數(shù)據(jù)。然后處理器105將這樣生成的編碼視頻數(shù)據(jù)存儲在存儲單元103中,或通過通信接口單元102將生成的數(shù)據(jù)傳輸給另一個設(shè)備。此外,處理器105通過將兩個編碼視頻數(shù)據(jù)流剪接在一起來生成剪接的編碼視頻數(shù)據(jù)。然后處理器105將生成的剪接的編碼視頻數(shù)據(jù)存儲在存儲單元103中,或通過通信接口單元102將生成的數(shù)據(jù)傳輸給另一個設(shè)備。而且,處理器105通過執(zhí)行根據(jù)以上實施例或其修改示例中任一個的視頻解碼計算機程序來對編碼視頻數(shù)據(jù)進行解碼。然后處理器105將解碼視頻數(shù)據(jù)存儲在存儲單元103中,將數(shù)據(jù)呈現(xiàn)給用戶接口單元101用于顯示,或通過通信接口單元102將數(shù)據(jù)傳輸給另一個設(shè)備。
在計算機上執(zhí)行以實現(xiàn)組成根據(jù)以上實施例或其修改示例中每一個的視頻編碼設(shè)備或視頻解碼設(shè)備的各種單元的功能的計算機程序可以以存儲在半導(dǎo)體存儲器中的格式或以記錄在記錄介質(zhì)如光學(xué)記錄介質(zhì)上的格式來分布。此處使用的術(shù)語“記錄介質(zhì)”并非載波。
根據(jù)以上實施例或其修改示例的視頻編碼設(shè)備和視頻解碼設(shè)備被用在各種應(yīng)用中。例如,將視頻編碼設(shè)備和視頻解碼設(shè)備合并在攝像機、視頻傳輸設(shè)備、視頻接收設(shè)備、視頻電話系統(tǒng)、計算機、或移動電話中。
本文中列舉的所有示例和條件語言意在用于教導(dǎo)目的以幫助讀者理解由本發(fā)明人貢獻以促進現(xiàn)有技術(shù)的本發(fā)明和思想,并且應(yīng)當被理解為不限制這樣具體列舉的示例和條件,也不限制說明書中與示出本發(fā)明的優(yōu)勢和劣勢相關(guān)的這樣的示例的組織。盡管已詳細描述了本發(fā)明的實施例,然而應(yīng)當理解的是,可以在不偏離本發(fā)明的精神和范圍的情況下對本文進行各種變化、置換和替換。