視頻數(shù)據(jù)處理系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及視頻數(shù)據(jù)處理。更具體而言,本發(fā)明涉及對(duì)視頻圖像數(shù)據(jù)進(jìn)行編碼的方法和裝置。
【背景技術(shù)】
[0002]在現(xiàn)有技術(shù)中,已知可以根據(jù)預(yù)定的視頻編碼格式(例如由運(yùn)動(dòng)圖像專家組定義的格式(一般統(tǒng)稱為MPEG格式))對(duì)視頻圖像數(shù)據(jù)(例如RGB或YUV值)進(jìn)行編碼。諸如MPEG之類的視頻編碼格式能夠在圖像質(zhì)量不會(huì)受到顯著可見(jiàn)損失的情況下使得視頻圖像數(shù)據(jù)的文件大小大幅減小。
[0003]現(xiàn)有技術(shù)中已知,通常,在對(duì)視頻數(shù)據(jù)進(jìn)行編碼時(shí),各個(gè)視頻幀被劃分為該幀的多個(gè)像素塊(例如,在MPEG編碼的情況下,為16X 16個(gè)像素塊),并且各塊分別編碼。
[0004]在例如MPEG、H.264等視頻編碼標(biāo)準(zhǔn)中,通常相對(duì)于來(lái)自當(dāng)前幀(例如當(dāng)前幀中的先前編碼像素塊)或先前幀(例如先前幀中相應(yīng)的編碼像素塊)的先前編碼數(shù)據(jù)(例如,基準(zhǔn)塊),對(duì)視頻像素?cái)?shù)據(jù)中的各個(gè)像素塊(在MPEG編碼的情況下為16X16個(gè)像素塊)進(jìn)行編碼。因此,每個(gè)數(shù)據(jù)塊包括指向先前編碼數(shù)據(jù)的向量值(所謂的“運(yùn)動(dòng)向量”)以及描述當(dāng)前數(shù)據(jù)塊與該先前編碼數(shù)據(jù)之間的差異的數(shù)據(jù)(“殘余數(shù)據(jù)”)。(由此,使得能夠從該運(yùn)動(dòng)向量所指向的編碼視頻數(shù)據(jù)以及描述(當(dāng)前)幀區(qū)域與當(dāng)前視頻幀的區(qū)域之間差異的差異數(shù)據(jù),來(lái)構(gòu)建該(當(dāng)前)幀區(qū)域的視頻數(shù)據(jù)。)
[0005]數(shù)據(jù)塊隨后例如可以通過(guò)(例如使用近似離散余弦變換(DCT))將殘余數(shù)據(jù)變換為隨后被量化的一組系數(shù)來(lái)進(jìn)行編碼。量化步驟通常涉及將各個(gè)系數(shù)值除以整數(shù)值,然后將結(jié)果限制為值的有限集合中的一個(gè)值。
[0006]通過(guò)量化參數(shù)(QP)對(duì)量化的程度進(jìn)行調(diào)整,并因此而調(diào)整在對(duì)數(shù)據(jù)進(jìn)行壓縮時(shí)所實(shí)現(xiàn)的壓縮量。量化參數(shù)通常是用于表示在量化步驟期間使用的縮放矩陣(scalingmatrix)的索引。編碼器可以基于例如期望比特率和待編碼數(shù)據(jù)的復(fù)雜程度來(lái)選擇和設(shè)置量化參數(shù)。
[0007]為了使解碼器能夠從編碼數(shù)據(jù)(盡可能精確地)重建原始的視頻圖像數(shù)據(jù),必須向解碼器指示出用于對(duì)在編碼過(guò)程期間代表原始視頻圖像數(shù)據(jù)的參數(shù)進(jìn)行量化的QP值。在許多系統(tǒng)中,通過(guò)將表示用于對(duì)所涉及的數(shù)據(jù)塊進(jìn)行編碼的QP值的信息包含在編碼數(shù)據(jù)塊中,來(lái)實(shí)現(xiàn)這一目的。
[0008]QP值可以被編碼為絕對(duì)值。然而,通常給定塊的QP值被依從(dependently)編碼,亦即,該塊的QP值被定義為針對(duì)前續(xù)(preceding)塊(通常按光柵掃描順序)的相對(duì)值,通常是針對(duì)前續(xù)塊表示的QP值的相對(duì)值。這樣做的有利之處在于,如果待編碼的差異相對(duì)較小,則可以實(shí)現(xiàn)數(shù)據(jù)大小的減少,亦即,存儲(chǔ)QP值所需存儲(chǔ)器減少。
[0009]在現(xiàn)有技術(shù)中,還已知可以將包括多個(gè)子任務(wù)的數(shù)據(jù)處理任務(wù)并行處理。例如,已知的是,可以通過(guò)將單獨(dú)組的未編碼像素塊在若干個(gè)編碼單元之間進(jìn)行分配,而將一個(gè)典型的編碼處理在這些編碼單元之間進(jìn)行劃分。如果這些組可以由多個(gè)編碼單元并行地進(jìn)行編碼,則編碼處理的并行化就意味著,借助彼此并行工作的多個(gè)編碼單元,可以極大地減少執(zhí)行編碼處理所需的時(shí)間。
[0010]然而,由于編碼在本質(zhì)上是順序進(jìn)行的,亦即,塊序列中的每一個(gè)塊要求前續(xù)塊(特別是前續(xù)塊的QP值)被編碼從而依賴于此才能對(duì)自身進(jìn)行編碼,數(shù)據(jù)塊的量化參數(shù)(QP)值相對(duì)于先前數(shù)據(jù)塊(通常是光柵掃描順序)的這些值進(jìn)行編碼的這種視頻編碼格式并不容易適用于這種并行處理。
[0011]因而,希望提供一種改進(jìn)技術(shù)對(duì)視頻圖像數(shù)據(jù)進(jìn)行編碼,能夠同時(shí)實(shí)現(xiàn)依從QP編碼的數(shù)據(jù)大小減少的上述優(yōu)點(diǎn)和數(shù)據(jù)處理并行化的上述優(yōu)點(diǎn)。
【發(fā)明內(nèi)容】
[0012]根據(jù)本發(fā)明的第一方面,提供了一種視頻圖像數(shù)據(jù)編碼方法,該方法包括以下步驟:將視頻圖像數(shù)據(jù)的未編碼塊的序列編碼為視頻編碼格式的編碼數(shù)據(jù)塊序列,其中
[0013]在對(duì)未編碼數(shù)據(jù)塊進(jìn)行編碼時(shí),所述視頻編碼格式使用編碼參數(shù);
[0014]該方法包括針對(duì)所述未編碼數(shù)據(jù)塊的序列的至少一對(duì)第一組未編碼數(shù)據(jù)塊和第二組未編碼數(shù)據(jù)塊,所述第一組未編碼數(shù)據(jù)塊和所述第二組未編碼數(shù)據(jù)塊包括所述視頻圖像數(shù)據(jù)的比特流順序的連續(xù)(contiguous)數(shù)據(jù)塊,所述第二組的第一塊在比特流順序上緊跟在所述第一組的最末塊之后;
[0015]分別對(duì)所述第一組未編碼數(shù)據(jù)塊和第二組未編碼數(shù)據(jù)塊進(jìn)行編碼,以生成第一組編碼數(shù)據(jù)塊和第二組編碼數(shù)據(jù)塊;
[0016]其中,對(duì)所述第一組未編碼數(shù)據(jù)塊和第二組未編碼數(shù)據(jù)塊進(jìn)行編碼的步驟包括:
[0017]在完成對(duì)所述第一組中的所有數(shù)據(jù)塊的編碼之前,確定要用于對(duì)所述第二組中的未編碼數(shù)據(jù)塊進(jìn)行編碼的編碼參數(shù)值;
[0018]使用所確定的編碼參數(shù)值對(duì)所述第二組中的所述未編碼數(shù)據(jù)塊進(jìn)行編碼;以及
[0019]確保所述第一組中的編碼數(shù)據(jù)塊指示如下的編碼參數(shù)值,該編碼參數(shù)值使得解碼器在使用所述第一組中的編碼數(shù)據(jù)塊的所指示的編碼參數(shù)值來(lái)確定用于對(duì)所述第二組中的數(shù)據(jù)塊進(jìn)行解碼的編碼參數(shù)值時(shí),導(dǎo)出針對(duì)所述第二組中的編碼數(shù)據(jù)塊的所確定的編碼參數(shù)值。
[0020]根據(jù)本發(fā)明的第二方面,提供了一種視頻圖像數(shù)據(jù)編碼裝置,其中,對(duì)視頻圖像數(shù)據(jù)的編碼包括將視頻圖像數(shù)據(jù)的未編碼塊的序列編碼為視頻編碼格式的編碼數(shù)據(jù)塊序列,其中
[0021]在對(duì)未編碼數(shù)據(jù)塊進(jìn)行編碼時(shí),所述視頻編碼格式使用編碼參數(shù);
[0022]該視頻圖像數(shù)據(jù)編碼裝置包括處理電路,該處理電路被構(gòu)造成:針對(duì)所述未編碼數(shù)據(jù)塊的序列的至少一對(duì)第一組未編碼數(shù)據(jù)塊和第二組未編碼數(shù)據(jù)塊,所述第一組未編碼數(shù)據(jù)塊和所述第二組未編碼數(shù)據(jù)塊包括所述視頻圖像數(shù)據(jù)的比特流順序的連續(xù)數(shù)據(jù)塊,所述第二組的第一塊在比特流順序上緊跟在所述第一組的最末塊之后;
[0023]分別對(duì)所述第一組未編碼數(shù)據(jù)塊和第二組未編碼數(shù)據(jù)塊進(jìn)行編碼,以生成第一組編碼數(shù)據(jù)塊和第二組編碼數(shù)據(jù)塊;
[0024]其中,對(duì)所述第一組未編碼數(shù)據(jù)塊和第二組未編碼數(shù)據(jù)塊進(jìn)行編碼的步驟包括:
[0025]在完成對(duì)所述第一組中的所有數(shù)據(jù)塊的編碼之前,確定要用于對(duì)所述第二組中的未編碼數(shù)據(jù)塊進(jìn)行編碼的編碼參數(shù)值;
[0026]使用所確定的編碼參數(shù)值對(duì)所述第二組中的所述未編碼數(shù)據(jù)塊進(jìn)行編碼;以及
[0027]確保所述第一組中的編碼數(shù)據(jù)塊指示如下的編碼參數(shù)值,該編碼參數(shù)值使得解碼器在使用所述第一組中的編碼數(shù)據(jù)塊的所指示的編碼參數(shù)值來(lái)確定用于對(duì)所述第二組中的數(shù)據(jù)塊進(jìn)行解碼的編碼參數(shù)值時(shí),導(dǎo)出針對(duì)所述第二組中的編碼數(shù)據(jù)塊的所確定的編碼參數(shù)值。
[0028]本發(fā)明涉及有利于依從編碼和數(shù)據(jù)處理并行化的對(duì)視頻圖像數(shù)據(jù)進(jìn)行編碼的方法和裝置。
[0029]待編碼視頻圖像數(shù)據(jù)包括未編碼數(shù)據(jù)塊序列。
[0030]所使用的視頻編碼格式是如下格式,其中使用編碼參數(shù)(例如,優(yōu)選地,量化參數(shù),QP)對(duì)未編碼數(shù)據(jù)塊進(jìn)行編碼,并且其中,編碼數(shù)據(jù)塊可以(向解碼器)指示在對(duì)未編碼數(shù)據(jù)塊執(zhí)行編碼處理中使用的編碼參數(shù)值。此外,解碼器參照編碼數(shù)據(jù)塊序列中前續(xù)編碼數(shù)據(jù)塊的編碼參數(shù)值,確定針對(duì)至少一個(gè)數(shù)據(jù)塊的編碼參數(shù)值。
[0031]換言之,本發(fā)明涉及在對(duì)未編碼數(shù)據(jù)塊進(jìn)行編碼時(shí)使用編碼參數(shù)的視頻編碼格式,并且其中,可以通過(guò)將參照編碼數(shù)據(jù)塊序列中前續(xù)編碼數(shù)據(jù)塊的編碼參數(shù)值而限定的相對(duì)編碼參數(shù)值包含在編碼數(shù)據(jù)塊中,向解碼器(優(yōu)選地)指示在對(duì)數(shù)據(jù)塊進(jìn)行編碼時(shí)使用的編碼參數(shù)值。
[0032]如上所述,雖然數(shù)據(jù)塊的依從編碼(S卩,參照前一塊確定給定塊的編碼參數(shù)值)有利于編碼效率,但是對(duì)于編碼處理的并行化卻是一個(gè)巨大阻礙,因?yàn)橐缽男栽诒举|(zhì)上是順序的。
[0033]然而,申請(qǐng)人認(rèn)識(shí)到,雖然編碼數(shù)據(jù)塊必須被構(gòu)造成,使得解碼器能夠基于正確塊序列順序中前續(xù)塊的編碼參數(shù)值而正確地導(dǎo)出編碼數(shù)據(jù)塊的編碼參數(shù)值,但編碼處理本身不一定要限制為按照該相同的序列順序?qū)?shù)據(jù)塊進(jìn)行編碼。
[0034]另外,申請(qǐng)人認(rèn)識(shí)到,可以通過(guò)對(duì)依從編碼的順序本質(zhì)進(jìn)行分解來(lái)實(shí)現(xiàn)編碼處理的并行化。
[0035]在本發(fā)明中,對(duì)來(lái)自待編碼的未編碼數(shù)據(jù)塊序列的成對(duì)多組塊進(jìn)行編碼,以生產(chǎn)第一組編碼數(shù)據(jù)塊和第二組編碼數(shù)據(jù)塊。該第一組編碼數(shù)據(jù)塊和該第二組編碼數(shù)據(jù)塊包括視頻數(shù)據(jù)的比特流順序的連續(xù)數(shù)據(jù)塊。第二組在比特流順序上跟在第一組之后(并且優(yōu)選地在比特流順序上緊跟在第一組之后),并且,解碼器參照第一組中數(shù)據(jù)塊的編碼參數(shù)值來(lái)確定第二組中數(shù)據(jù)塊的編碼參數(shù)值。
[0036]第一組塊和第二組塊的編碼參數(shù)值之間的依從性在先前意味著,在開始對(duì)第二組未編碼數(shù)據(jù)塊的編碼處理之前,必須對(duì)第一組未編碼數(shù)據(jù)塊進(jìn)行編碼。然而,在本發(fā)明中,在完成對(duì)第一組中的所有數(shù)據(jù)塊的編碼之前,確定在對(duì)第二組中的數(shù)據(jù)塊進(jìn)行編碼要使用的編碼參數(shù)值。
[0037]因此,本發(fā)明在不參照第一組中最末數(shù)據(jù)塊的編碼參數(shù)值的情況下,(例如在編碼參數(shù)值確定操作中)確定例如第二組中的第一數(shù)據(jù)塊的編碼參數(shù)值。
[0038]然后,這使得能夠在完成對(duì)第一組未編碼數(shù)據(jù)塊的編碼之前,對(duì)第二組未編碼數(shù)據(jù)塊進(jìn)行編碼,由此有利于并行地對(duì)各組未編碼數(shù)據(jù)塊進(jìn)行編碼。
[0039]因此,由于打破了第一組塊和第二組塊之間的編碼依從性,能夠?qū)崿F(xiàn)編碼處理的并行化。
[0040]然而,雖然第一組塊和第二組塊之間的編碼依從性被打破以便于并行編碼,但申請(qǐng)人認(rèn)識(shí)到,例如MPEG的視頻編碼格式仍要求參照前續(xù)塊定義依從編碼數(shù)據(jù)塊的編碼參數(shù)值。
[0041]這是因?yàn)?,相?yīng)的解碼器仍基于按照數(shù)據(jù)塊原始序列順序(而不是對(duì)數(shù)據(jù)塊進(jìn)行編碼的順序)的前續(xù)數(shù)據(jù)塊的編碼參數(shù)值,獲取給定(已依從編碼)數(shù)據(jù)塊的編碼參數(shù)值。例如,優(yōu)選地,在本發(fā)明的編碼處理使用所確定的編碼參數(shù)值(絕對(duì)值形式)對(duì)第二組數(shù)據(jù)塊中的第一數(shù)據(jù)塊進(jìn)行編碼時(shí),所得到的編碼數(shù)據(jù)塊將包括相對(duì)編碼參數(shù)值,該相對(duì)編碼參數(shù)值與第一組中的最末數(shù)據(jù)塊的編碼參數(shù)值一起,用來(lái)確定用于第二組塊中第一數(shù)據(jù)塊的編碼參數(shù)值。
[0042]因此,本發(fā)明的一個(gè)重要特征是將“打破(broken)”的第一組數(shù)據(jù)塊與第二組數(shù)據(jù)塊之間的編碼參數(shù)依從性基本上“修復(fù)(repaired)”以用于解碼處理。換言之,“恢復(fù)”例如第二組中的第一數(shù)據(jù)塊對(duì)第一組中最末數(shù)據(jù)塊(特別是第二組中第一數(shù)據(jù)塊的編碼參數(shù)值對(duì)第一組中最末數(shù)據(jù)塊的編碼參數(shù)值)的依從性,使得解碼器能夠正確地重建編碼數(shù)據(jù)。
[0043]然而,由于是在對(duì)第一組中最末數(shù)據(jù)塊的編碼結(jié)束之前確定第二組中數(shù)據(jù)塊的編碼參數(shù)值,因此當(dāng)例如對(duì)第一組中的最末數(shù)據(jù)塊進(jìn)行編碼時(shí),系統(tǒng)不一定會(huì)對(duì)該數(shù)據(jù)塊進(jìn)行編碼以包含如下的編碼參數(shù)值,該編碼參數(shù)值將使得解碼器在對(duì)第二組中的數(shù)據(jù)塊進(jìn)行解碼時(shí)針對(duì)第二組中的編碼數(shù)據(jù)塊使用所確定的編碼參數(shù)值。
[0044]為了克服這一問(wèn)題,本發(fā)明確保第一組數(shù)據(jù)塊中的編碼數(shù)據(jù)塊指示如下的編碼參數(shù)值,該編碼參數(shù)值將使得解碼器在對(duì)第二組中的數(shù)據(jù)塊進(jìn)行解碼時(shí),使用針對(duì)第二組中編碼數(shù)據(jù)塊的所確定的編碼參數(shù)值。下面更詳細(xì)地描述實(shí)現(xiàn)這一目的的多種技術(shù)。
[0045]要進(jìn)行編碼的未編碼數(shù)據(jù)塊序列可以是任何適當(dāng)?shù)暮推谕倪@種序列,例如其代表待編碼的一些或全部視頻幀。在一個(gè)優(yōu)選實(shí)施方式中,未編碼數(shù)據(jù)塊序列是代表待編碼的整個(gè)幀的塊序列。
[0046]為了確定編碼參數(shù)值的目的,這些塊被排序?yàn)榇幋a視頻圖像數(shù)據(jù)的比特流順序(即,按照這些塊在所使用的視頻編碼標(biāo)準(zhǔn)(格式)定義的比特流中出現(xiàn)的順序)。(視頻編碼標(biāo)準(zhǔn)將定義如何參照編碼比特流中較早塊的編碼參數(shù)值來(lái)導(dǎo)出編碼參數(shù)值。)其可以是解碼器對(duì)編碼塊進(jìn)行處理的順序(并且在一個(gè)優(yōu)選實(shí)施方式中,數(shù)據(jù)塊在數(shù)據(jù)塊序列中的順序是解碼器對(duì)這些塊進(jìn)行處理的順序),雖然這不是必須的,例如,解碼器可以使用不同的解碼順序。因此,典型情況是,并且在一個(gè)優(yōu)選實(shí)施方式中,該順序是光柵(raster)掃描順序。然而,可以根據(jù)需要使用其他的序列順序。
[0047]在結(jié)束第一組中最末數(shù)據(jù)塊的編碼之前被確定了編碼參數(shù)值的第二組數(shù)據(jù)塊中的數(shù)據(jù)塊優(yōu)選地是第二組中的第一數(shù)據(jù)塊。
[0048]在本發(fā)明中所考慮的數(shù)據(jù)塊可以分別代表被處理視頻圖像(幀)的任何適當(dāng)和期望的部分。(例如依賴于所使用的視頻編碼格式)它們優(yōu)選地分別對(duì)應(yīng)于被處理幀的給定區(qū)域(范圍)。
[0049]因而,每個(gè)塊優(yōu)選地代表被處理幀的適當(dāng)(優(yōu)選地,不同)區(qū)域(范圍),例如該幀中的多個(gè)像素和/或采樣點(diǎn)。因此,各個(gè)數(shù)據(jù)塊優(yōu)選地是像素塊(其中,特別地,每個(gè)像素塊包括代表適當(dāng)像素顏色值(例如,RGBA或YUV顏色值)的數(shù)據(jù))。適當(dāng)?shù)臄?shù)據(jù)塊大小例如可以是每幀8 X8、16 X 16或32 X 32個(gè)像素。在一個(gè)特別優(yōu)選實(shí)施方式中,數(shù)據(jù)塊是包括例如一幀的多個(gè)16 X 16采樣(像素)的所謂“宏塊(macroblock)”。
[0050]正在編碼的未編碼數(shù)據(jù)塊序列可以被簡(jiǎn)單劃分為單對(duì)兩組未編碼數(shù)據(jù)塊,隨后可以按照本發(fā)明的方式對(duì)該對(duì)未編碼數(shù)據(jù)塊組進(jìn)行處理。另選地,可以從整個(gè)未編碼數(shù)據(jù)塊序列中的一些但非全部未編碼數(shù)據(jù)塊,合成將按照本發(fā)明的方式處理的兩組未編碼數(shù)據(jù)塊。
[0051]然而,在一個(gè)特別優(yōu)選實(shí)施方式中,將整個(gè)未編碼數(shù)據(jù)塊序列