技術(shù)領(lǐng)域
本發(fā)明涉及用于產(chǎn)生以高級運(yùn)動矢量預(yù)測(AMVP)模式被編碼的圖像的預(yù)測區(qū)塊的方法,更具體地,涉及用于將以AMVP模式編碼的運(yùn)動信息譯碼以及基于運(yùn)動信息來產(chǎn)生預(yù)測區(qū)塊的方法。
背景技術(shù):
已經(jīng)提出了很多技術(shù)用于在保持視頻質(zhì)量的情況下有效地壓縮視頻信號。特別地,中間預(yù)測編碼(inter-prediction coding)是最有效的視頻壓縮技術(shù)之一,其中,從之前的圖片中提取與當(dāng)前區(qū)塊相似的區(qū)塊,并且將當(dāng)前區(qū)塊與提取的區(qū)塊之間的差異編碼。
然而,在中間預(yù)測編碼方案中應(yīng)當(dāng)利用被編碼的殘差區(qū)塊(residual block)來額外地傳送與每個區(qū)塊有關(guān)的運(yùn)動信息。因此,對運(yùn)動信息的減小數(shù)據(jù)量的有效編碼是另一種視頻壓縮技術(shù)。
在運(yùn)動估算編碼中,利用預(yù)定的估算函數(shù)在參考圖片的預(yù)定搜索范圍內(nèi)搜索與當(dāng)前區(qū)塊最匹配的區(qū)塊。一旦在參考圖片中搜索到最匹配區(qū)塊,則僅傳送當(dāng)前區(qū)塊和最匹配區(qū)塊之間的殘差(residue),由此提高數(shù)據(jù)壓縮率。
為了將經(jīng)由運(yùn)動估算而編碼的當(dāng)前區(qū)塊譯碼,需要與運(yùn)動矢量有關(guān)的信息,所述運(yùn)動矢量表示當(dāng)前區(qū)塊的位置和最匹配區(qū)塊的位置之間的差異。因而,運(yùn)動矢量信息被編碼,并且在編碼期間被插入比特流中。如果簡單地將運(yùn)動矢量信息編碼并且插入,會增大開銷,由此降低視頻數(shù)據(jù)的壓縮率。
因此,利用相鄰的區(qū)塊來預(yù)測當(dāng)前區(qū)塊的運(yùn)動矢量,并且僅將從預(yù)測得出的運(yùn)動矢量預(yù)測者與原始運(yùn)動矢量之間的差異進(jìn)行編碼并傳送,由此以中間預(yù)測編碼方案來壓縮運(yùn)動矢量信息。
在H.264中,當(dāng)前區(qū)塊的運(yùn)動矢量預(yù)測者被確定成中值(mvA,mvB,mvC)。由于相鄰的區(qū)塊可能彼此相似,所以相鄰的區(qū)塊的運(yùn)動矢量的中值被確定成當(dāng)前區(qū)塊的運(yùn)動矢量。
然而,如果相鄰區(qū)塊的一個或更多個運(yùn)動矢量與當(dāng)前區(qū)塊的運(yùn)動矢量不同,則中值不能有效地預(yù)測當(dāng)前區(qū)塊的運(yùn)動矢量。
另外,隨著預(yù)測區(qū)塊在尺寸上更大并且多樣化,參考圖片的數(shù)目增多。因而,殘差區(qū)塊的數(shù)據(jù)量減小,但是要傳送的運(yùn)動信息(運(yùn)動矢量和參考圖片索引)的量增多。
因此,需要更有效地減小要傳送的運(yùn)動信息的量的技術(shù)。另外,需要用于有效地重構(gòu)以上述技術(shù)編碼的運(yùn)動信息的技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
技術(shù)問題
本發(fā)明意圖解決上述問題的目的在于提供一種通過有效地重構(gòu)以AMVP模式被編碼的運(yùn)動信息來產(chǎn)生預(yù)測區(qū)塊的方法。
技術(shù)方案
本發(fā)明的目的可以通過提供一種用于以AMVP模式產(chǎn)生預(yù)測區(qū)塊的方法來實(shí)現(xiàn),包括:重構(gòu)當(dāng)前預(yù)測單元(PU)的參考圖片索引和差分運(yùn)動矢量,搜索用于當(dāng)前PU的有效空間AMVP候選者,搜索用于當(dāng)前PU的有效時間AMVP候選者,利用有效空間AMVP候選者和時間AMVP候選者來產(chǎn)生AMVP候選者列表,將具有預(yù)定值的運(yùn)動矢量作為候選者添加至AMVP候選者列表,當(dāng)有效AMVP候選者的數(shù)目小于預(yù)定數(shù)目時,將AMVP候選者列表中包括的運(yùn)動矢量之中的與當(dāng)前PU的AMVP索引相對應(yīng)的運(yùn)動矢量確定為當(dāng)前PU的運(yùn)動矢量預(yù)測者,利用差分運(yùn)動矢量和運(yùn)動矢量預(yù)測者來重構(gòu)當(dāng)前PU的運(yùn)動矢量,以及在由參考圖片索引指示的參考圖片內(nèi)產(chǎn)生與重構(gòu)的運(yùn)動矢量指示的位置相對應(yīng)的預(yù)測區(qū)塊。
有益效果
在根據(jù)本發(fā)明的以AMVP模式產(chǎn)生預(yù)測區(qū)塊的方法中,重構(gòu)當(dāng)前預(yù)測單元的參考圖片索引和差分運(yùn)動矢量,并且利用當(dāng)前預(yù)測單元的有效空間AMVP候選者和時間AMVP候選者來形成AMVP候選者列表。如果有效AMVP候選者的數(shù)目小于預(yù)定數(shù)目,則將具有預(yù)定值的運(yùn)動矢量添加至AMVP候選者列表。然后,從AMVP候選者列表所包括的運(yùn)動矢量之中將與當(dāng)前預(yù)測單元的AMVP索引相對應(yīng)的運(yùn)動矢量選擇為當(dāng)前預(yù)測單元的運(yùn)動矢量預(yù)測者。利用差分運(yùn)動矢量和運(yùn)動矢量預(yù)測者來重構(gòu)當(dāng)前預(yù)測單元的運(yùn)動矢量,并且在由參考圖片索引指示的參考圖片內(nèi)產(chǎn)生與由重構(gòu)的運(yùn)動矢量指示的位置相對應(yīng)的預(yù)測區(qū)塊。
由于利用空間運(yùn)動矢量候選者和時間運(yùn)動矢量候選者更好地預(yù)測當(dāng)前預(yù)測單元的運(yùn)動信息,所以減小了編碼信息的量。此外,通過將以AMVP模式編碼的運(yùn)動信息更有效地譯碼,可以快速地產(chǎn)生準(zhǔn)確的預(yù)測區(qū)塊。
附圖說明
圖1是說明根據(jù)本發(fā)明的一個實(shí)施例的視頻編碼器的框圖;
圖2是說明根據(jù)本發(fā)明的一個實(shí)施例的中間預(yù)測編碼操作的流程圖;
圖3是說明根據(jù)本發(fā)明的一個實(shí)施例的合并編碼操作的流程圖;
圖4說明根據(jù)本發(fā)明的一個實(shí)施例的合并候選者的位置;
圖5說明根據(jù)本發(fā)明的另一個實(shí)施例的合并候選者的位置;
圖6是根據(jù)本發(fā)明的一個實(shí)施例的AMVP編碼操作的流程圖;
圖7是說明根據(jù)本發(fā)明的一個實(shí)施例的視頻譯碼器的框圖;
圖8是說明根據(jù)本發(fā)明的一個實(shí)施例的中間預(yù)測譯碼操作的流程圖;
圖9是說明根據(jù)本發(fā)明的一個實(shí)施例的合并模式運(yùn)動矢量譯碼操作的流程圖;
圖10是說明根據(jù)本發(fā)明的另一個實(shí)施例的合并模式運(yùn)動矢量譯碼操作的流程圖;
圖11是說明根據(jù)本發(fā)明的一個實(shí)施例的AMVP模式運(yùn)動矢量譯碼操作的流程圖;以及
圖12是說明根據(jù)本發(fā)明的另一個實(shí)施例的AMVP模式運(yùn)動矢量譯碼操作的流程圖。
具體實(shí)施方式
圖1是根據(jù)本發(fā)明的一個實(shí)施例的視頻編碼器的框圖。
參見圖1,根據(jù)本發(fā)明的視頻編碼器100包括:圖片分割器110、轉(zhuǎn)換器120、量化器130、掃描器131、熵編碼器140、內(nèi)預(yù)測器150,中間預(yù)測器160、反相量化器135、反相轉(zhuǎn)換器125,后處理器170、圖片儲存器180、減法器190和加法器195。
圖片分割器110通過分析輸入視頻信號來將圖片的每個最大編碼單元(LCU,largest coding unit)分割成每個具有預(yù)定尺寸的CU、確定預(yù)測模式、以及確定用于每個CU的預(yù)測單元(PU)的尺寸。圖片分割器110根據(jù)預(yù)測模式(或預(yù)測方法)而將要被編碼的PU提供至內(nèi)預(yù)測器150或中間預(yù)測器160。
轉(zhuǎn)換器120將指示輸入PU的原始區(qū)塊與從內(nèi)預(yù)測器150或中間預(yù)測器160產(chǎn)生的預(yù)測區(qū)塊之間的殘差信號的殘差區(qū)塊進(jìn)行轉(zhuǎn)換。殘差區(qū)塊由CU或PU組成。將殘差區(qū)塊劃分成最佳轉(zhuǎn)換單元,然后進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換矩陣可以基于預(yù)測模式(即,中間預(yù)測模式或內(nèi)預(yù)測模式)來不同地確定。因?yàn)閮?nèi)預(yù)測殘差信號包括與內(nèi)預(yù)測模式相對應(yīng)的方向性,所以轉(zhuǎn)換矩陣可以根據(jù)內(nèi)預(yù)測模式而針對內(nèi)預(yù)測殘差信號自適應(yīng)性地確定。轉(zhuǎn)換單元可以通過兩個(水平和垂直)一維轉(zhuǎn)換矩陣來進(jìn)行轉(zhuǎn)換。例如,針對中間預(yù)測來確定預(yù)定的信號轉(zhuǎn)換矩陣。另一方面,在內(nèi)預(yù)測的情況下,如果內(nèi)預(yù)測模式是水平方向的,則殘差區(qū)塊可能是水平方向的,且因而基于離散余弦轉(zhuǎn)換(DCT)的整數(shù)矩陣與基于離散正弦轉(zhuǎn)換(DST)或基于卡洛(Karhunen-Loeve)轉(zhuǎn)換(KLT)的整數(shù)矩陣分別垂直地和水平地應(yīng)用。如果內(nèi)預(yù)測模式是垂直的,則基于DST或基于KLT的整數(shù)矩陣與基于DCT的整數(shù)矩陣分別垂直地和水平地應(yīng)用。在DC模式下,基于DCT的整數(shù)矩陣在兩個方向上都應(yīng)用。另外,在內(nèi)預(yù)測的情況下,可以根據(jù)轉(zhuǎn)換單元的尺寸而自適應(yīng)性地確定轉(zhuǎn)換矩陣。
量化器130確定量化步長以將利用轉(zhuǎn)換矩陣轉(zhuǎn)換的殘差區(qū)塊的系數(shù)量化。針對具有預(yù)定尺寸或更大尺寸的每個CU(在下文中,被稱作為量化單元)來確定量化步長。預(yù)定的尺寸可以是8×8或16×16。轉(zhuǎn)換區(qū)塊的系數(shù)利用確定的量化步長和根據(jù)預(yù)測模式而確定的量化矩陣來進(jìn)行量化。量化器130使用與當(dāng)前量化單元相鄰的量化單元的量化步長作為當(dāng)前量化單元的量化步長預(yù)測者。
量化器130可以利用依次搜索與當(dāng)前量化單元相鄰的左側(cè)、上側(cè)和左上側(cè)量化單元所得的一個或兩個有效量化步長來產(chǎn)生當(dāng)前量化單元的量化步長預(yù)測者。例如,通過以左側(cè)、上側(cè)和左上側(cè)量化單元的順序搜索而檢測出的第一個有效量化步長可以被確定成量化步長預(yù)測者。另外,兩個有效量化步長的平均值可以被確定成量化步長預(yù)測者。如果僅一個量化步長有效,則其可以被確定成量化步長預(yù)測者。一旦確定了量化步長預(yù)測者,則當(dāng)前CU的量化步長和量化步長預(yù)測者之間的差異就被傳送至熵編碼器140。
與當(dāng)前CU相鄰的左側(cè)、上側(cè)和左上側(cè)CU可能都不存在。然而,根據(jù)編碼順序可以在LCU中存在前一個CU。因此,當(dāng)前CU的相鄰量化單元的量化步長和在LCU內(nèi)根據(jù)編碼順序在之前被編碼的量化單元的量化步長可以成為候選者。在這種情況下,1)當(dāng)前CU的左側(cè)量化單元,2)當(dāng)前CU的上側(cè)量化單元,3)當(dāng)前CU的左上側(cè)量化單元,以及4)在之前被編碼的量化單元可以按降序排優(yōu)先級。優(yōu)先級的順序可以改變,并且可以省略左上側(cè)量化單元。
量化的轉(zhuǎn)換區(qū)塊被提供至反相量化器135和掃描器131。
掃描器131通過掃描量化的轉(zhuǎn)換區(qū)塊的系數(shù)來將量化的轉(zhuǎn)換區(qū)塊的系數(shù)轉(zhuǎn)換成一維量化系數(shù)。由于轉(zhuǎn)換區(qū)塊的系數(shù)分布可依賴于量化之后的內(nèi)預(yù)測模式,所以根據(jù)內(nèi)預(yù)測模式來確定掃描方案。另外,系數(shù)掃描方案可以隨著轉(zhuǎn)換單元的尺寸而變化。掃描模式可以根據(jù)方向性的內(nèi)預(yù)測模式而不同。以相反的順序來掃描量化系數(shù)。
在將量化系數(shù)分成多個子組的情況下,將相同的掃描模式應(yīng)用至每個子組的量化系數(shù)。將鋸齒形或?qū)蔷€掃描模式應(yīng)用于子組之間。盡管優(yōu)選沿著正向方向從包括DC的主子組至其余的子組掃描,但是沿著相反方向掃描也是可以的??梢詫⒅虚g子組掃描模式設(shè)定成與內(nèi)子組的掃描模式相同。在這種情況下,中間子組掃描模式根據(jù)內(nèi)預(yù)測模式來確定。此外,視頻編碼器將指示轉(zhuǎn)換單元中的最后一個非零量化系數(shù)的位置的信息傳送至視頻譯碼器。視頻編碼器還可以將指示每個子組中的最后一個非零量化系數(shù)的位置的信息傳送至譯碼器。
反相量化器135對量化系數(shù)解量化。反相轉(zhuǎn)換器125從反相量化的轉(zhuǎn)換的系數(shù)中重構(gòu)空間域殘差區(qū)塊。加法器通過將由反相轉(zhuǎn)換器125重構(gòu)的殘差區(qū)塊與從內(nèi)預(yù)測器150或中間預(yù)測器160接收的預(yù)測區(qū)塊相加來產(chǎn)生重構(gòu)區(qū)塊。
后處理器170執(zhí)行去區(qū)塊化濾波(deblocking filtering)以消除來自重構(gòu)圖片的區(qū)塊化偽影(blocking artifact)、執(zhí)行自適應(yīng)偏移施加以補(bǔ)償與原始圖片基于像素的差異、以及執(zhí)行自適應(yīng)回路濾波以補(bǔ)償與原始圖片基于CU的差異。
去區(qū)塊化濾波優(yōu)選地應(yīng)用于具有預(yù)定尺寸或更大尺寸的PU和轉(zhuǎn)換單元之間的邊界。所述尺寸可以為8×8。去區(qū)塊化濾波過程包括:確定要被濾波的邊界、確定邊界濾波強(qiáng)度以應(yīng)用至邊界、確定是否應(yīng)用去區(qū)塊化濾波器、以及當(dāng)確定出應(yīng)用去區(qū)塊化濾波器時選擇濾波器以應(yīng)用至邊界。
根據(jù)如下來確定是否應(yīng)用去區(qū)塊化濾波器:i)邊界濾波強(qiáng)度是否大于0,和ii)與要濾波的邊界相鄰的兩個區(qū)塊(P區(qū)塊和Q區(qū)塊)之間的邊界處的像素變化是否小于基于量化參數(shù)而確定的第一參考值。
對于去區(qū)塊化濾波,兩個或更多個濾波器是優(yōu)選的。如果區(qū)塊邊界處的兩個像素之間的差的絕對值等于或大于第二參考值,則選擇執(zhí)行較弱濾波的濾波器。第二參考值通過量化參數(shù)和邊界濾波強(qiáng)度來確定。
自適應(yīng)偏移施加意在減小去區(qū)塊化濾波的圖片中的像素和原始像素之間的差異(即,變形)??梢源_定是基于圖片還是基于片段(slice)來執(zhí)行自適應(yīng)偏移施加過程。圖片或片段可以被劃分成多個偏移區(qū),并且可以針對每個偏移區(qū)來確定偏移類型??纱嬖陬A(yù)定數(shù)目(例如,4)的邊緣偏移類型和兩個帶偏移類型。在邊緣偏移類型的情況下,確定每個像素的邊緣類型,并且將與邊緣類型相對應(yīng)的偏移施加至像素。邊緣類型基于與當(dāng)前像素相鄰的兩個像素值的分布來確定。
自適應(yīng)回路濾波可以基于原始圖片與經(jīng)受去區(qū)塊化濾波或自適應(yīng)偏移施加的重構(gòu)圖片之間的比較值來執(zhí)行。自適應(yīng)回路濾波可以應(yīng)用于4×4或8×8區(qū)塊中包括的所有像素上??梢葬槍γ總€CU確定是否應(yīng)用自適應(yīng)回路濾波?;芈窞V波器的尺寸和系數(shù)針對每個CU可以不同。指示是否針對每個CU而使用自適應(yīng)回路濾波器的信息可以被包括在每個片段標(biāo)頭(header)中。在色度信號的情況下,可以基于圖片進(jìn)行確定。不同于亮度,回路濾波器可以是矩形。
可以基于片段來進(jìn)行關(guān)于是否使用自適應(yīng)回路濾波的判斷。因此,指示是否針對當(dāng)前片段使用自適應(yīng)回路濾波的信息被包括在片段標(biāo)頭或圖片標(biāo)頭中。如果信息指示針對當(dāng)前片段使用自適應(yīng)回路濾波,則片段標(biāo)頭或圖片標(biāo)頭還可以包括指示用在自適應(yīng)回路濾波中的亮度成分的水平和/或垂直濾波長度的信息。
片段標(biāo)頭或圖片標(biāo)頭可以包括指示濾波器組的數(shù)目的信息。如果濾波組的數(shù)目為2或更大,則可以用預(yù)測方案來編碼濾波器系數(shù)。因此,片段標(biāo)頭或圖片標(biāo)頭可以包括指示是否用預(yù)測方案來編碼濾波器系數(shù)的信息。如果使用預(yù)測方案,則將預(yù)測的濾波器系數(shù)包括在片段標(biāo)頭或圖片標(biāo)頭中。
此外,色度成分和亮度成分可以被自適應(yīng)地濾波。因此,指示每個色度成分是否被濾波的信息可以被包括在片段標(biāo)頭或圖片標(biāo)頭中。在此情況下,指示色度成分Cr或Cb是否被濾波的信息可以被共同地編碼(即,多路編碼),以由此減小比特數(shù)目。在多數(shù)情況下,色度成分Cr和Cb都未被濾波以由此降低復(fù)雜性。因而,如果色素成分Cr和Cb都未被濾波,則最低索引被指定并且被熵編碼。如果色素成分Cr和Cb都被濾波,則最高索引被指定并且被熵編碼。
圖片儲存器180從后處理器170接收后處理的圖像數(shù)據(jù)、基于圖片來重構(gòu)并儲存圖像。圖片可以是以幀或場的形式的圖像。圖片儲存器180包括用于儲存多個圖片的緩沖器(未示出)。
中間預(yù)測器160利用儲存在圖片儲存器180中的至少一個參考圖片來估算運(yùn)動,并且確定識別參考圖片的參考圖片索引以及運(yùn)動矢量。中間預(yù)測器160根據(jù)確定的參考圖像索引和運(yùn)動矢量來提取并輸出與要從儲存在圖片儲存器180中的多個參考圖片之中的用于運(yùn)動估算的參考圖片而被編碼的PU相對應(yīng)的預(yù)測區(qū)塊。
內(nèi)預(yù)測器150利用包括當(dāng)前PU的圖片的重新配置的像素值來執(zhí)行內(nèi)預(yù)測編碼。內(nèi)預(yù)測器150接收要被預(yù)測編碼的當(dāng)前PU、根據(jù)當(dāng)前區(qū)塊的尺寸來選擇預(yù)定數(shù)目的內(nèi)預(yù)測模式之一、以及在選中的內(nèi)預(yù)測模式下執(zhí)行內(nèi)預(yù)測。內(nèi)預(yù)測器150自適應(yīng)地將參考像素濾波以產(chǎn)生內(nèi)預(yù)測區(qū)塊。如果參考像素不可用,則內(nèi)預(yù)測器150可以利用可用的參考像素來產(chǎn)生參考像素。
熵編碼器140對從量化器130接收的量化系數(shù)、從內(nèi)預(yù)測器150接收的內(nèi)預(yù)測信息、以及從中間預(yù)測器160接收的運(yùn)動信息進(jìn)行熵編碼。
圖2是說明根據(jù)本發(fā)明的一個實(shí)施例的中間預(yù)測編碼操作的流程圖。
中間預(yù)測編碼操作包括:確定當(dāng)前PU的運(yùn)動信息,產(chǎn)生預(yù)測區(qū)塊、產(chǎn)生殘差區(qū)塊、對殘差區(qū)塊編碼、以及對運(yùn)動信息編碼。在下文中,PU和區(qū)塊可交換地使用。
(1)確定當(dāng)前PU的運(yùn)動信息(S110)
當(dāng)前PU的運(yùn)動信息包括運(yùn)動矢量和當(dāng)前PU要參考的參考圖片索引。
為了確定當(dāng)前PU的預(yù)測區(qū)塊,將一個或更多個重構(gòu)參考圖片之一確定成當(dāng)前PU的參考圖片,并且確定指示預(yù)測區(qū)塊在參考圖片中的位置的運(yùn)動信息。
當(dāng)前區(qū)塊的參考圖片索引可以根據(jù)當(dāng)前區(qū)塊的中間預(yù)測模式而不同。例如,如果當(dāng)前區(qū)塊在單向預(yù)測模式中,則參考圖片索引指示列表0(L0)所列的參考圖片之一。另一方面,如果當(dāng)前區(qū)塊在雙向預(yù)測模式中,則運(yùn)動信息可以包括指示L0所列的參考圖片之一和列表1(L1)所列的參考圖片之一的參考圖片索引。另外,如果當(dāng)前區(qū)塊在雙向預(yù)測模式中,則運(yùn)動信息可以包括指示作為L0和L1的組合的列表組合(LC)所包括的參考圖片中的一個或兩個的參考圖片索引。
運(yùn)動矢量指示預(yù)測區(qū)塊在參考圖片索引所指示的圖片中的位置。運(yùn)動矢量可以具有整像素分辨率或1/8或1/16像素分辨率。如果運(yùn)動矢量不具有整像素分辨率,則從整像素產(chǎn)生預(yù)測區(qū)塊。
(2)產(chǎn)生預(yù)測區(qū)塊(S120)
如果運(yùn)動矢量具有整像素分辨率,則通過復(fù)制參考圖片索引所指示的圖片中的由運(yùn)動矢量指示的位置處的相應(yīng)區(qū)塊來產(chǎn)生當(dāng)前PU的預(yù)測區(qū)塊。
另一方面,如果運(yùn)動矢量不具有整像素分辨率,則利用參考圖片索引所指示的圖片中的整像素來產(chǎn)生預(yù)測區(qū)塊的像素。在亮度像素的情況下,可以利用8抽頭內(nèi)插濾波器來產(chǎn)生預(yù)測像素。在色度像素的情況下,可以利用4-抽頭內(nèi)插濾波器來產(chǎn)生預(yù)測像素。
(3)產(chǎn)生殘差區(qū)塊(S130)和對殘差區(qū)塊編碼(S140)
當(dāng)產(chǎn)生了當(dāng)前PU的預(yù)測區(qū)塊時,基于當(dāng)前PU和預(yù)測區(qū)塊之間的差異來產(chǎn)生殘差區(qū)塊。殘差區(qū)塊的尺寸可以與當(dāng)前PU的尺寸不同。例如,如果當(dāng)前PU是2N×2N尺寸,則當(dāng)前PU和殘差區(qū)塊尺寸相同。然而,如果當(dāng)前PU是2N×N或N×2N尺寸,則殘差區(qū)塊可以是2N×2N區(qū)塊。即,在當(dāng)前PU是2N×N區(qū)塊時,可以通過組合兩個2N×N殘差區(qū)塊來配置殘差區(qū)塊。在這種情況下,為了克服兩個2N×N預(yù)測區(qū)塊之間的邊界的不連續(xù)性,通過平滑覆蓋邊界像素來產(chǎn)生2N×2N預(yù)測區(qū)塊,然后利用2N×2N原始區(qū)塊(兩個當(dāng)前區(qū)塊)和2N×2N預(yù)測區(qū)塊之間的差異來產(chǎn)生殘差區(qū)塊。
當(dāng)產(chǎn)生了殘差區(qū)塊時,以轉(zhuǎn)換編碼尺寸為單位來對殘差區(qū)塊編碼。即,以轉(zhuǎn)換編碼尺寸為單位使殘差區(qū)塊經(jīng)受轉(zhuǎn)換編碼、量化、和熵編碼。轉(zhuǎn)換編碼尺寸可以根據(jù)殘差區(qū)塊的尺寸而以四叉樹方案來確定。即,轉(zhuǎn)換編碼使用基于整數(shù)的DCT。
被轉(zhuǎn)換編碼的區(qū)塊使用量化矩陣來量化。量化的矩陣通過上下文自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)或上下文自適應(yīng)可變長度編碼(CAVLC)來進(jìn)行熵編碼。
(4)對運(yùn)動信息編碼(S150)
利用與當(dāng)前PU相鄰的PU的運(yùn)動信息來對當(dāng)前PU的運(yùn)動信息編碼。當(dāng)前PU的運(yùn)動信息經(jīng)受合并編碼或AMVP編碼。因此,確定是通過合并編碼還是AMVP編碼來對當(dāng)前PU的運(yùn)動信息編碼,并且根據(jù)確定的編碼方案來對當(dāng)前PU的運(yùn)動信息編碼。
以下將參照圖3給出合并編碼方案的描述。
參見圖3,獲得空間合并候選者和時間合并候選者(S210和S220)。
為了方便起見,將以首先獲得空間合并候選者然后獲得時間合并候選者作為實(shí)例。然而,本發(fā)明不局限于這種獲得空間合并候選者和時間合并候選者的順序。例如,可以首先獲得時間合并候選者,然后可以獲得空間合并候選者,或者可以并行地獲得空間合并候選者和時間合并候選者。
1)空間合并候選者
空間合并候選者可以以下列實(shí)施例之一來配置??臻g合并候選者配置信息可以被傳送至視頻譯碼器。在此情況下,空間合并候選者配置信息可以指示下列實(shí)施例之一或指示下列實(shí)施例之一中的合并候選者的數(shù)目的信息。
(a)實(shí)施例1(空間合并候選者配置1)
如圖4中所示,多個空間合并候選者可以是與當(dāng)前PU相鄰的左側(cè)PU(區(qū)塊A)、上側(cè)PU(區(qū)塊B)、右上側(cè)PU(區(qū)塊C)和左下側(cè)PU(區(qū)塊D)。在此情況下,所有的有效PU都可以是候選者,或者可以通過以A、B、C和D的順序來掃描區(qū)塊A至D而選擇兩個有效PU作為候選者。如果在當(dāng)前PU的左側(cè)存在多個PU,則可以從多個左側(cè)PU之中將有效的最上側(cè)PU或最大的有效PU確定為與當(dāng)前PU相鄰的左側(cè)PU。類似地,如果在當(dāng)前PU之上存在多個PU,則可以在多個上側(cè)PU之中將有效的最左側(cè)PU或最大的有效PU確定為與當(dāng)前PU相鄰的上側(cè)PU。
(b)實(shí)施例2(空間合并候選者配置2)
如圖5中所示,通過以A、B、C、D和E的順序來掃描區(qū)塊A至E,多個空間合并候選者可以是選自與當(dāng)前PU相鄰的左側(cè)PU(區(qū)塊A)、上側(cè)PU(區(qū)塊B)、右上側(cè)PU(區(qū)塊C)、左下側(cè)PU(區(qū)塊D)和左上側(cè)PU(區(qū)塊E)之中的兩個有效PU。在本文中,左側(cè)PU可以與區(qū)塊E而不與區(qū)塊D相鄰。類似地,上側(cè)PU可以與區(qū)塊E而不與區(qū)塊C相鄰。
(c)實(shí)施例3(空間合并候選者配置3)
如圖5中所示,與當(dāng)前PU相鄰的左側(cè)區(qū)塊(區(qū)塊A)、上側(cè)區(qū)塊(區(qū)塊B)、右上側(cè)區(qū)塊(區(qū)塊C)、左下側(cè)區(qū)塊(區(qū)塊D)和左上側(cè)區(qū)塊(區(qū)塊E)可以以此順序成為候選者,如果它們是有效的。在此情況下,如果區(qū)塊A至D中的一個或更多個無效,則區(qū)塊E可用。
(d)實(shí)施例4(空間合并候選者配置4)
如圖5中所示,多個空間合并候選者可以包括與當(dāng)前PU相鄰的左側(cè)PU(區(qū)塊A)、上側(cè)PU(區(qū)塊B)、以及拐角PU(區(qū)塊C、D和E中的一個)。通過以C、D和E的順序來掃描右上側(cè)PU(區(qū)塊C)、左下側(cè)PU(區(qū)塊D)和左上側(cè)PU(區(qū)塊E),拐角PU是它們之中第一有效的一個。
在以上實(shí)施例中,在當(dāng)前PU之上的空間合并候選者的運(yùn)動信息可以根據(jù)當(dāng)前PU的位置而不同地設(shè)定。例如,如果當(dāng)前PU處于LCU的上邊界,則與當(dāng)前PU相鄰的上側(cè)PU(區(qū)塊B、C或E)的運(yùn)動信息可以是當(dāng)前PU自身的運(yùn)動信息或者是相鄰PU的運(yùn)動信息。上側(cè)PU的運(yùn)動信息可以根據(jù)當(dāng)前PU的尺寸和位置而被確定為其自身的運(yùn)動信息或相鄰PU的運(yùn)動信息(參考圖片索引和運(yùn)動矢量)之一。
2)時間合并候選者
時間合并候選者的參考圖片索引和運(yùn)動矢量在額外的過程中獲得。時間合并候選者的參考圖片索引可以利用與當(dāng)前PU空間相鄰的PU之一的參考圖片索引來獲得。
當(dāng)前PU的時間合并候選者的參考圖片索引可以利用與當(dāng)前PU相鄰的左側(cè)PU(區(qū)塊A)、上側(cè)PU(區(qū)塊B)、右上側(cè)PU(區(qū)塊C)、左下側(cè)PU(區(qū)塊D)和左上側(cè)PU(區(qū)塊E)的參考圖片索引中的全部或一部分來獲得。例如,可以使用與當(dāng)前PU相鄰的左側(cè)PU(區(qū)塊A)、上側(cè)PU(區(qū)塊B)和拐角區(qū)塊(區(qū)塊C、D和E中的一個)的參考圖片索引。另外,通過以A、B、C、D和E的順序來掃描與當(dāng)前PU相鄰的左側(cè)PU(區(qū)塊A)、上側(cè)PU(區(qū)塊B)、右上側(cè)PU(區(qū)塊C)、左下側(cè)PU(區(qū)塊D)和左上側(cè)PU(區(qū)塊E),可以從它們的參考圖片索引之中使用奇數(shù)個(例如,3個)有效PU的參考圖片索引。
以下將描述使用與當(dāng)前PU相鄰的左側(cè)PU、上側(cè)PU和拐角PU的參考圖片索引來獲得當(dāng)前PU的時間合并候選者的參考索引的情況。
獲得與當(dāng)前PU相鄰的左側(cè)PU的參考圖片索引(在下文中,被稱作為左側(cè)參考圖片索引)、上側(cè)PU的參考圖片索引(在下文中,被稱作為上側(cè)參考圖片索引)、和拐角PU的參考圖片索引(在下文中,被稱作為拐角參考圖片索引)。盡管拐角PU C、D和E中僅一個被作為候選者,但是本發(fā)明不局限于此,還可以設(shè)想在可替選的實(shí)施例中,PU C和D被設(shè)定為候選者(因而,四個候選者)、或者PU C、D和E都被設(shè)定為候選者(因而,五個候選者)。
盡管本文使用了三個或更多個有效參考圖片索引,但是也可以使用所有的有效參考圖片索引、或者僅使用預(yù)定位置處的參考圖片索引。在不存在任何有效參考圖片索引的情況下,參考圖片索引0可以被設(shè)定為時間合并候選者的參考圖片索引。
如果使用多個參考圖片索引,則這些參考圖片索引之中的最頻繁使用的參考圖片索引可以被設(shè)定為時間合并候選者的參考圖片索引。當(dāng)多個參考圖片索引被最頻繁地使用時,所述多個參考圖片索引之中的具有最小值的參考圖片索引、或左側(cè)區(qū)塊或上側(cè)區(qū)塊的參考圖片索引可以被設(shè)定為時間合并候選者的參考圖片索引。
然后,將描述用于獲得時間合并候選者的運(yùn)動矢量的操作。
確定包括時間合并候選者區(qū)塊的圖片(在下文中,被稱作為時間合并候選者圖片)。時間合并候選者圖片可以被設(shè)定成具有參考圖片索引0的圖片。在此情況下,如果片段類型是P,則列表0中的第一圖片(即,具有索引0的圖片)被設(shè)定為時間合并候選者圖片。如果片段類型是B,則由片段標(biāo)頭中的指示時間合并候選者列表的標(biāo)志所指示的參考圖片列表中的第一圖片被設(shè)定為時間合并候選者圖片。例如,如果標(biāo)志為1,則時間合并候選者圖片可以選自列表0,而如果標(biāo)志為0,則時間合并候選者圖片可以選自列表1。
隨后,從時間合并候選者圖片獲得時間合并候選者區(qū)塊??梢詫r間合并候選者圖片中的對應(yīng)于當(dāng)前PU的多個區(qū)塊中的一個確定為時間合并候選者區(qū)塊。在此情況下,對應(yīng)于當(dāng)前PU的多個區(qū)塊被排列優(yōu)先級,并且根據(jù)優(yōu)先級來將第一個有效的對應(yīng)區(qū)塊選擇為時間合并候選者區(qū)塊。
例如,可以將時間合并候選者圖片中的與對應(yīng)于當(dāng)前PU的區(qū)塊相鄰的左下拐角區(qū)塊、或者時間合并候選者圖片中的對應(yīng)于當(dāng)前PU的區(qū)塊所包括的左下側(cè)區(qū)塊設(shè)定為第一候選者區(qū)塊。另外,可以將時間合并候選者圖片中的位于對應(yīng)于當(dāng)前PU的區(qū)塊的中心處的包括左上側(cè)像素的區(qū)塊或者包括右下側(cè)像素的區(qū)塊設(shè)定為第二候選者區(qū)塊。
如果第一候選者區(qū)塊有效,則第一候選者區(qū)塊被設(shè)定為時間合并候選者區(qū)塊。另一方面,如果不是第一候選者區(qū)塊有效,而是第二候選者區(qū)塊有效,則第二候選者區(qū)塊被設(shè)定為時間合并候選者區(qū)塊?;蛘呖梢愿鶕?jù)當(dāng)前PU的位置僅使用第二候選者區(qū)塊。當(dāng)前PU可以位于片段中或LCU中。
當(dāng)確定出時間合并候選者預(yù)測區(qū)塊時,時間合并候選者預(yù)測區(qū)塊的運(yùn)動矢量被設(shè)定為時間合并候選者運(yùn)動矢量。
同時,可以根據(jù)當(dāng)前PU的尺寸而自適應(yīng)地去掉時間合并候選者。例如,如果當(dāng)前PU是4×4區(qū)塊,則時間合并候選者可以被去掉以降低復(fù)雜性。
然后,產(chǎn)生合并候選者列表(S230)
以預(yù)定順序利用有效合并候選者來產(chǎn)生合并候選者列表。如果多個合并候選者具有相同的運(yùn)動信息(即,相同的運(yùn)動矢量和相同的參考圖片索引),則從合并候選者列表中刪除排位最后的合并候選者。
例如,預(yù)定順序在實(shí)施例1(空間合并候選者配置1)中可以是A、B、Col、C和D。在這里,Col表示時間合并候選者。
在實(shí)施例2(空間合并候選者配置2)中,可以以兩個有效PU和Col的順序來產(chǎn)生合并候選者列表,通過以區(qū)塊A、B、C、D和E的順序來掃描這些區(qū)塊而確定所述兩個有效PU。
在實(shí)施例3(空間合并候選者配置3)中,預(yù)定順序可以是A、B、Col、C和D。如果區(qū)塊A、B、C和D中的至少一個無效,則可以添加區(qū)塊E。在此情況下,區(qū)塊E可以被添加在最后的排位。另外,可以以(A和D之一)、(C、B和E之一)和Col的順序來產(chǎn)生合并候選者列表。
在實(shí)施例4(空間合并候選者配置4)中,預(yù)定順序可以是A、B、Col、拐角,或者A、B、拐角、Col。
合并候選者的數(shù)目可以基于片段或LCU來確定。在此情況下,以上述實(shí)施例中的預(yù)定順序來產(chǎn)生合并候選者列表。
確定是否要產(chǎn)生合并候選者(S240)。在合并候選者的數(shù)目被設(shè)定成固定值的情況下,如果有效合并候選者的數(shù)目小于固定值,則產(chǎn)生合并候選者(S250)。產(chǎn)生的合并候選者被添加至合并候選者列表。在此情況下,產(chǎn)生的合并候選者被添加至合并候選者列表中的排位最后的合并候選者之下。如果添加多個合并候選者,則以預(yù)定順序來添加所述多個合并候選者。
添加的合并候選者可以是具有運(yùn)動矢量0和參考圖片索引0的候選者(第一添加合并候選者)。另外,添加的合并候選者可以是通過將有效合并候選者的運(yùn)動信息組合而產(chǎn)生的候選者(第二添加合并候選者)。例如,可以通過將時間合并候選者的運(yùn)動信息(參考圖片索引)與有效空間合并候選者的運(yùn)動信息(運(yùn)動矢量)組合而產(chǎn)生候選者,然后將其添加至合并候選者列表??梢砸缘谝惶砑雍喜⒑蜻x者和第二添加合并候選者的順序或者相反的順序來添加合并候選者。
相反,如果合并候選者的數(shù)目可變,并且僅使用有效合并候選者,則可以省略步驟S240和S250。
從產(chǎn)生的合并候選者列表中將合并候選者確定為當(dāng)前PU的合并預(yù)測者(S260)
然后,對合并預(yù)測者的索引(即,合并索引)編碼(S270)。在單個合并候選者的情況下,省略合并索引。另一方面,在兩個或更多個合并候選者的情況下,對合并索引編碼。
合并索引可以通過固定長度編碼或CAVLC來編碼。如果以CAVLC,則用于碼字映射的合并索引可以根據(jù)PU形狀和PU索引來調(diào)整。
合并候選者的數(shù)目可以是變化的。在此情況下,利用根據(jù)有效合并候選者的數(shù)目而確定的表來選擇與合并索引相對應(yīng)的碼字。
合并候選者的數(shù)目可以是固定的。在此情況下,利用與合并候選者的數(shù)目相對應(yīng)的單個表來選擇與合并索引相對應(yīng)的碼字。
將參照圖6描述AMVP編碼方案。
參見圖6,獲得空間AMVP候選者和時間AMVP候選者(S310和S320)。
1)空間AMVP候選者
(a)空間AMVP候選者配置1
如圖5中所示,空間AMVP候選者可以包括:與當(dāng)前PU相鄰的左側(cè)PU(區(qū)塊A)和左下側(cè)PU(區(qū)塊D)中的一個(左側(cè)候選者),以及與當(dāng)前PU相鄰的右側(cè)PU(區(qū)塊B)、右上側(cè)PU(區(qū)塊C)和左上側(cè)PU(區(qū)塊E)中的一個(上側(cè)候選者)。通過以預(yù)定順序來掃描PU而將第一有效PU的運(yùn)動矢量選擇為左側(cè)候選者或上側(cè)候選者。左側(cè)PU可以以A和D的順序或者以D和A的順序來掃描。上側(cè)PU可以以B、C和E的順序或者以C、B和E的順序來掃描。
(b)空間AMVP候選者配置2
如圖4中所示,通過以A、B、C和D的順序來掃描與當(dāng)前PU相鄰的左側(cè)PU(區(qū)塊A)、上側(cè)PU(區(qū)塊B)、右上側(cè)PU(區(qū)塊C)和左下側(cè)PU(區(qū)塊D),空間AMVP候選者可以是選自它們之中的兩個有效PU。在此情況下,所有的有效PU都可以是候選者,或者通過以A、B、C和D的順序來掃描區(qū)塊A、B、C和D所獲得的兩個有效PU可以是候選者。如果在當(dāng)前PU的左側(cè)存在多個PU,則可以將有效的最上側(cè)PU或具有最大面積的有效PU設(shè)定為左側(cè)PU。類似地,如果在當(dāng)前PU之上存在多個PU,則可以將有效的最左側(cè)PU或者具有最大面積的有效PU設(shè)定為上側(cè)PU。
(c)空間AMVP候選者配置3
如圖5中所示,空間AMVP候選者可以包括通過以A、B、C、D和E的順序來掃描與當(dāng)前PU相鄰的左側(cè)PU(區(qū)塊A)、右側(cè)PU(區(qū)塊B)、右上側(cè)PU(區(qū)塊C)、左下側(cè)PU(區(qū)塊D)和左上側(cè)PU(區(qū)塊E)而獲得的兩個有效PU。左側(cè)PU可以與區(qū)塊E而不與區(qū)塊D相鄰。同樣地,上側(cè)PU可以與區(qū)塊E而不與區(qū)塊C相鄰。
(d)空間AMVP候選者配置4
如圖5中所示,空間AMVP候選者可以是選自與當(dāng)前PU相鄰的左側(cè)PU(區(qū)塊A)、上側(cè)PU(區(qū)塊B)、右上側(cè)PU(區(qū)塊C)、左下側(cè)PU(區(qū)塊D)和左上側(cè)PU(區(qū)塊E)中的四個區(qū)塊。在此情況下,當(dāng)區(qū)塊A至D中的一個或更多個無效時,區(qū)塊E可以是可用的。
(e)空間AMVP候選者配置5
如圖5中所示,空間AMVP候選者可以包括與當(dāng)前PU相鄰的左側(cè)PU(區(qū)塊A)、上側(cè)PU(區(qū)塊B)和拐角PU(區(qū)塊C、D和E中的一個)。通過以C、D和E的順序來掃描右上側(cè)PU(區(qū)塊C)、左下側(cè)PU(區(qū)塊D)和左上側(cè)PU(區(qū)塊E),拐角PU是它們之中的第一有效PU。
在以上實(shí)施例中,在當(dāng)前PU之上的AMVP候選者的運(yùn)動信息可以根據(jù)當(dāng)前PU的位置而不同地設(shè)定。例如,如果當(dāng)前PU處于LCU的上邊界,則與當(dāng)前PU相鄰的上側(cè)PU(區(qū)塊B、C或E)的運(yùn)動矢量可以是當(dāng)前PU自身的運(yùn)動矢量或者是相鄰PU的運(yùn)動矢量。上側(cè)PU的運(yùn)動矢量可以根據(jù)當(dāng)前PU的尺寸和位置而被確定為其自身的運(yùn)動矢量或相鄰PU的運(yùn)動矢量。
2)時間AMVP候選者
因?yàn)闀r間AMVP候選者僅需要運(yùn)動信息,所以與合并候選者相比不需要獲得參考圖片索引。將首先描述用于獲得時間AMVP候選者的運(yùn)動矢量的操作。
確定包括時間AMVP候選者區(qū)塊的圖片(在下文中,被稱作為時間AMVP候選者圖片)。時間AMVP候選者圖片可以被設(shè)定成具有參考圖片索引0的圖片。在此情況下,如果片段類型是P,則列表0中的第一圖片(即,具有索引0的圖片)被設(shè)定為時間AMVP候選者圖片。如果片段類型是B,則由片段標(biāo)頭中的指示時間AMVP候選者列表的標(biāo)志所指示的參考圖片列表的第一圖片被設(shè)定為時間AMVP候選者圖片。
然后,從時間AMVP候選者圖片獲得時間AMVP候選者區(qū)塊。這以與用于獲得時間合并候選者區(qū)塊的操作相同的方式來執(zhí)行,因而本文不再贅述。
同時,可以根據(jù)當(dāng)前PU的尺寸而自適應(yīng)地去掉時間AMVP候選者。例如,如果當(dāng)前PU是4×4區(qū)塊,則時間AMVP候選者可以被去掉以降低復(fù)雜性。
然后,產(chǎn)生AMVP候選者列表(S330)。
以預(yù)定順序利用有效AMVP候選者來產(chǎn)生AMVP候選者列表。如果多個AMVP候選者具有相同的運(yùn)動信息(即,參考圖片不必是相同的),則可以從AMVP候選者列表中刪除排位最后的AMVP候選者。
在空間AMVP候選者配置1中,預(yù)定順序是A和D之一(A和D的順序或D和A的順序)、B、C和E之一(B、C和E的順序、或者C、B和E的順序)、Col,或者預(yù)定順序是Col、A和D之一、B、C和E之一。在這里,Col表示時間AMVP候選者。
在空間AMVP候選者配置2中,預(yù)定順序?yàn)锳、B、Col、C、D,或者預(yù)定順序?yàn)镃、D、Col、A、B。
在空間AMVP候選者配置3中,預(yù)定順序?yàn)?A、B、C、D和E以此順序中的兩個有效區(qū)塊)、Col,或者預(yù)定順序?yàn)镃ol、(A、B、C、D和E以此順序中的兩個有效區(qū)塊)。
在空間AMVP候選者配置4中,預(yù)定順序是A、B、Col、C和D。如果區(qū)塊A、B、C和D中的至少一個無效,則可以將區(qū)塊E添加至最后的排位。
在空間AMVP候選者配置5中,預(yù)定順序是A、B、Col和拐角。
確定是否要產(chǎn)生AMVP候選者(S340)。在AMVP候選者的數(shù)目被設(shè)定成固定值的情況下,如果有效AMVP候選者的數(shù)目小于該固定值,則產(chǎn)生AMVP候選者(S350)。固定值可以為2或3。產(chǎn)生的AMVP候選者被添加至AMVP候選者列表中的排位最后的AMVP候選者之下。添加的AMVP候選者可以是具有運(yùn)動矢量0的候選者。
相反,如果AMVP候選者的數(shù)目可變,并且僅使用有效AMVP候選者,則可以省略步驟S340和S350。
從AMVP候選者列表中選擇當(dāng)前PU的運(yùn)動矢量預(yù)測者(S360)。產(chǎn)生指示預(yù)測者的AMVP索引。
然后,產(chǎn)生當(dāng)前PU的運(yùn)動矢量與運(yùn)動矢量預(yù)測者之間的差分運(yùn)動矢量(S370)。
對當(dāng)前PU的參考圖片索引、差分運(yùn)動矢量、和AMVP索引編碼(S380)。在單個AMVP候選者的情況下,可以省略AMVP索引。
AMVP索引可以通過固定長度編碼或CAVLC來編碼。如果采用CAVLC,則可以根據(jù)PU形狀或PU索引來調(diào)整用于碼字映射的AMVP索引。
AMVP候選者的數(shù)目可以是變化的。在此情況下,利用根據(jù)有效AMVP候選者的數(shù)目而確定的表來選擇與AMVP索引相對應(yīng)的碼字。
同時,合并候選者區(qū)塊可以與AMVP候選者區(qū)塊相同。例如,在AMVP候選者配置與合并候選者配置相同的情況下。因而,可以降低編碼器的復(fù)雜性。
圖7是根據(jù)本發(fā)明的一個實(shí)施例的視頻譯碼器的框圖。
參見圖7,本發(fā)明的視頻譯碼器包括:熵譯碼器210、反相量化器/反相轉(zhuǎn)換器220、加法器270、去區(qū)塊化濾波器250、圖片儲存器260、內(nèi)預(yù)測器230、運(yùn)動補(bǔ)償預(yù)測器240和內(nèi)/中間開關(guān)280。
熵譯碼器210通過對從視頻編碼器接收的編碼的比特流譯碼而從該編碼的比特流分離出內(nèi)預(yù)測模式索引、運(yùn)動信息、以及量化系數(shù)序列。熵譯碼器210將譯碼的運(yùn)動信息提供至運(yùn)動補(bǔ)償預(yù)測器240,將內(nèi)預(yù)測模式索引提供至內(nèi)預(yù)測器230和反相量化器/反相轉(zhuǎn)換器220,以及將量化系數(shù)序列提供至反相量化器/反相轉(zhuǎn)換器220。
反相量化器/反相轉(zhuǎn)換器220將量化系數(shù)序列轉(zhuǎn)換成二維陣列的去量化系數(shù)。對于轉(zhuǎn)換,可以基于當(dāng)前區(qū)塊的預(yù)測模式(即,內(nèi)預(yù)測和中間預(yù)測之一)和內(nèi)預(yù)測模式中的至少一種來選擇多個掃描模式之一。從內(nèi)預(yù)測器230或熵譯碼器210接收內(nèi)預(yù)測模式。
反相量化器/反相轉(zhuǎn)換器220利用選自多個量化矩陣的量化矩陣來從二維陣列的去量化系數(shù)中重構(gòu)量化系數(shù)。即使對于具有相同尺寸的區(qū)塊,反相量化器/反相轉(zhuǎn)換器220也基于當(dāng)前區(qū)塊的預(yù)測模式和內(nèi)預(yù)測模式中的至少一種來選擇量化矩陣。然后通過反相轉(zhuǎn)換重構(gòu)的量化系數(shù)來重構(gòu)殘差區(qū)塊。
加法器270將從反相量化器/反相轉(zhuǎn)換器220接收的重構(gòu)殘差區(qū)塊與從內(nèi)預(yù)測器230或運(yùn)動補(bǔ)償預(yù)測器240產(chǎn)生的預(yù)測區(qū)塊相加,由此重構(gòu)圖像區(qū)塊。
去區(qū)塊化濾波器250對加法器270產(chǎn)生的重構(gòu)圖像執(zhí)行去區(qū)塊化濾波。因而,可以減小在量化期間由圖像損失引起的去區(qū)塊化偽影。
圖片儲存器260包括幀存儲器,所述幀存儲器保存由去區(qū)塊化濾波器250去區(qū)塊化濾波的局部譯碼圖像。
內(nèi)預(yù)測器230基于從熵譯碼器210接收的內(nèi)預(yù)測模式索引來確定當(dāng)前區(qū)塊的內(nèi)預(yù)測模式,并且根據(jù)確定的內(nèi)預(yù)測模式來產(chǎn)生預(yù)測區(qū)塊。
運(yùn)動補(bǔ)償預(yù)測器240基于運(yùn)動矢量信息而從儲存在圖片儲存器260中的圖片產(chǎn)生當(dāng)前區(qū)塊的預(yù)測區(qū)塊。如果施加具有分像素精度的運(yùn)動補(bǔ)償,則利用選中的內(nèi)插濾波器來產(chǎn)生預(yù)測區(qū)塊。
內(nèi)/中間開關(guān)280將從內(nèi)預(yù)測器230產(chǎn)生的預(yù)測區(qū)塊和從運(yùn)動補(bǔ)償預(yù)測器240產(chǎn)生的預(yù)測區(qū)塊之一提供至加法器270。
圖8是說明根據(jù)本發(fā)明的一個實(shí)施例的中間預(yù)測譯碼操作的流程圖。
參見圖8,視頻譯碼器可以檢查要譯碼的當(dāng)前PU是否以SKIP模式被編碼(S405)??梢曰贑U的skip_flag來進(jìn)行檢查。
如果當(dāng)前PU以SKIP模式被編碼,則根據(jù)與SKIP模式相對應(yīng)的運(yùn)動信息譯碼過程來對當(dāng)前PU的運(yùn)動信息譯碼(S410)。與SKIP模式相對應(yīng)的運(yùn)動信息譯碼過程與合并模式相對應(yīng)的運(yùn)動信息譯碼過程相同。
復(fù)制當(dāng)前PU的被譯碼的運(yùn)動信息所指示的參考圖片中的相應(yīng)區(qū)塊,由此產(chǎn)生當(dāng)前PU的重構(gòu)區(qū)塊(S415)。
另一方面,如果當(dāng)前PU未以SKIP模式編碼,則確定當(dāng)前PU的運(yùn)動信息是否以合并模式被編碼(S420)。
如果當(dāng)前PU的運(yùn)動信息以合并模式被編碼,則在與合并模式相對應(yīng)的運(yùn)動信息譯碼過程中將當(dāng)前PU的運(yùn)動信息譯碼(S425)。
利用當(dāng)前PU的被譯碼的運(yùn)動信息來產(chǎn)生預(yù)測區(qū)塊(S430)。
如果當(dāng)前PU的運(yùn)動信息以合并模式被編碼,則對殘差區(qū)塊譯碼(S435)。
然后,利用預(yù)測區(qū)塊和殘差區(qū)塊來產(chǎn)生當(dāng)前PU的重構(gòu)區(qū)塊(S440)。
另一方面,如果當(dāng)前PU的運(yùn)動信息未以合并模式編碼,則在與AMVP模式相對應(yīng)的運(yùn)動信息譯碼過程中將當(dāng)前PU的運(yùn)動信息編碼(S445)。
然后,利用當(dāng)前PU的被譯碼的運(yùn)動信息來產(chǎn)生預(yù)測區(qū)塊(S450),并且對殘差區(qū)塊譯碼(S455)。利用預(yù)測區(qū)塊和殘差區(qū)塊來產(chǎn)生重構(gòu)區(qū)塊(S460)。
運(yùn)動信息譯碼過程根據(jù)當(dāng)前PU的運(yùn)動信息的編碼模式而不同。當(dāng)前PU的運(yùn)動信息的編碼模式可以是合并模式和AMVP模式中的一種。在SKIP模式中,執(zhí)行與合并模式中相同的運(yùn)動信息譯碼過程。
首先,將給出在當(dāng)前PU的運(yùn)動信息的編碼模式是合并模式時的運(yùn)動信息譯碼操作的描述。
圖9是說明在合并候選者的數(shù)目可變時的運(yùn)動矢量譯碼操作的流程圖。
參見圖9,確定是否存在任何合并碼字(S510)。
在不存在合并碼字時,搜索有效合并候選者,確定是否存在當(dāng)前PU的單個合并候選者(S520)。之前已經(jīng)參照圖3描述了合并候選者配置和合并候選者搜索順序(即,列出的順序)。
根據(jù)有效合并候選者的搜索,利用合并候選者的運(yùn)動信息來產(chǎn)生當(dāng)前PU的運(yùn)動信息(S530)。即,合并候選者的參考圖片索引和運(yùn)動矢量被設(shè)定為當(dāng)前PU的參考圖片索引和運(yùn)動矢量。
在存在合并碼字時,搜索有效合并候選者,并且合并候選者列表由有效合并候選者組成(S540)。之前已經(jīng)參照圖3描述了用于配置合并候選者和產(chǎn)生合并候選者列表的方法。
選擇與合并候選者的數(shù)目相對應(yīng)的VLC表(S550)。
重構(gòu)與合并碼字相對應(yīng)的合并索引(S560)。
從合并候選者列表選擇與合并索引相對應(yīng)的合并候選者,并且將合并候選者的運(yùn)動信息設(shè)定為當(dāng)前PU的運(yùn)動信息(S570)。
圖10是說明在合并候選者的數(shù)目固定時的運(yùn)動矢量譯碼操作的流程圖。合并候選者的數(shù)目可以基于圖片或片段來固定。
參見圖10,搜索有效合并候選者(S610)。合并候選者包括空間合并候選者和時間合并候選者。之前已經(jīng)參照圖3描述了空間合并候選者的位置、用于獲得空間合并候選者的方法、時間合并候選者的位置、以及用于獲得時間合并候選者的方法。如果當(dāng)前PU小于預(yù)定的尺寸,則可以不使用時間合并候選者。例如,針對4×4PU可以省略合并候選者。
根據(jù)有效合并候選者的搜索,確定是否產(chǎn)生合并候選者(S620)。如果有效合并候選者的數(shù)目小于預(yù)定的值,則產(chǎn)生合并候選者(S630)??梢酝ㄟ^組合有效合并候選者的運(yùn)動信息來產(chǎn)生合并候選者。可以添加具有運(yùn)動矢量0和參考圖片索引0的合并候選者。以預(yù)定順序來添加合并候選者。
利用合并候選者來形成合并列表(S640)。這個步驟可以通過組合步驟S620和S630來執(zhí)行。之前已經(jīng)參照圖3描述了合并候選者配置和合并候選者搜索順序(即,列出的順序)。
重構(gòu)與接收的比特流中的合并碼字相對應(yīng)的合并索引(S650)。由于合并候選者的數(shù)目是固定的,所以與合并碼字相對應(yīng)的合并索引可以從與合并候選者的數(shù)目相對應(yīng)的一個譯碼表中獲得。然而,可以根據(jù)是否使用時間合并候選者來使用不同的譯碼表。
從合并列表中搜索與合并索引相對應(yīng)的候選者(S660)。搜索的合并候選者被確定成合并預(yù)測者。
一旦確定出合并預(yù)測者,就利用合并預(yù)測者的運(yùn)動信息來產(chǎn)生當(dāng)前PU的運(yùn)動信息(S670)。具體地,將合并預(yù)測者的運(yùn)動信息、即合并預(yù)測者的參考圖片索引和運(yùn)動矢量確定成當(dāng)前PU的參考圖片索引和運(yùn)動矢量。
現(xiàn)在將給出在當(dāng)前PU的運(yùn)動信息編碼模式是AMVP時的運(yùn)動信息譯碼操作的描述。
圖11是說明在AMVP候選者的數(shù)目可變時的運(yùn)動矢量譯碼操作的流程圖。
參見圖11,解析當(dāng)前PU的參考圖片索引和差分運(yùn)動矢量(S710)。
確定是否存在AMVP碼字(S720)。
在不存在AMVP碼字時,搜索有效AMVP候選者、確定當(dāng)前PU的AMVP候選者的數(shù)目為1(S730)。之前已經(jīng)參照圖6詳細(xì)地描述了AMVP候選者配置和AMVP候選者搜索順序(即,列出的順序)。
根據(jù)有效AMVP候選者的搜索,將AMVP候選者的運(yùn)動矢量設(shè)定為當(dāng)前PU的運(yùn)動矢量預(yù)測者(S740)。
在不存在AMVP碼字時,通過搜索有效AMVP候選者來產(chǎn)生AMVP候選者列表(S750)。之前已經(jīng)參照圖6詳細(xì)地描述了AMVP候選者配置和AMVP候選者搜索順序(即,列出的順序)。
選擇與AMVP候選者的數(shù)目相對應(yīng)的VLC表(S760)。
重構(gòu)與AMVP碼字相對應(yīng)的AMVP索引(S770)。
從AMVP候選者列表中搜索與AMVP索引相對應(yīng)的AMVP,并且將AMVP候選者的運(yùn)動矢量設(shè)定為當(dāng)前PU的運(yùn)動矢量預(yù)測者(S780)。
將在步驟S740或S780中獲得的運(yùn)動矢量預(yù)測者和在步驟S710中獲得的差分運(yùn)動矢量之和設(shè)定為當(dāng)前區(qū)塊的最終運(yùn)動矢量(S790)。
圖12是說明在AMVP候選者的數(shù)目固定時的運(yùn)動矢量譯碼操作的流程圖。
參見圖12,解析當(dāng)前PU的參考圖片索引和差分運(yùn)動矢量(S810)。
搜索有效AMVP候選者(S820)。AMVP候選者包括空間AMVP候選者和時間AMVP候選者。之前已經(jīng)參照圖6描述了空間AMVP候選者的位置、用于獲得空間AMVP候選者的方法、時間AMVP候選者的位置、以及用于獲得時間AMVP候選者的方法。如果當(dāng)前PU小于預(yù)定尺寸,則可以不使用時間AMVP候選者。例如,可以針對4×4PU省略AMVP候選者。
基于有效AMVP候選者的數(shù)目來確定是否產(chǎn)生AMVP候選者(S830)。如果有效AMVP候選者的數(shù)目小于預(yù)定值,則產(chǎn)生AMVP候選者(S840)。預(yù)定值可以是2或3。
例如,在存在空間上側(cè)AMVP候選者、而不存在空間左側(cè)AMVP候選者的情況下,如果存在除了空間上側(cè)AMVP候選者之外的有效PU,則可以添加有效PU的運(yùn)動矢量。相反,在存在空間左側(cè)AMVP候選者、而不存在空間上側(cè)AMVP候選者的情況下,如果存在除了空間左側(cè)AMVP候選者之外的有效PU,則可以添加有效PU的運(yùn)動矢量?;蛘呖梢蕴砑泳哂羞\(yùn)動矢量0的AMVP候選者。
利用有效AMVP候選者和/或產(chǎn)生的AMVP候選者來產(chǎn)生AMVP候選者列表(S850)。步驟S850可以在步驟S820之后執(zhí)行。在此情況下,步驟S850在步驟S840之后。之前已經(jīng)參照圖6描述了如何產(chǎn)生候選者列表。
恢復(fù)與AMVP碼字相對應(yīng)的AMVP索引(S860)。AMVP索引可以通過固定長度編碼來編碼。
然后,從AMVP候選者列表中搜索與AMVP索引相對應(yīng)的AMVP候選者(S870)。搜索到的AMVP候選者被確定為AMVP預(yù)測者。
將AMVP預(yù)測者的運(yùn)動矢量確定為當(dāng)前PU的運(yùn)動矢量(S880)。
將在步驟S810中獲得的差分運(yùn)動矢量和在步驟S880中獲得的運(yùn)動矢量預(yù)測者之和設(shè)定為當(dāng)前PU的最終運(yùn)動矢量,并且將在步驟S810中獲得的參考圖片索引設(shè)定為當(dāng)前PU的參考圖片索引(S880)。
對于本領(lǐng)域的技術(shù)人員顯然的是,在不脫離本發(fā)明的精神或范圍的情況下可以對本發(fā)明進(jìn)行各種修改和變型。因而,本發(fā)明意在覆蓋本發(fā)明的修改和變型,假如這些修改和變型落入所附權(quán)利要求及其等同物的范圍內(nèi)。