本發(fā)明有關(guān)于視頻編碼,且特別地,本發(fā)明有關(guān)于與用于高效視頻編碼(high-efficiencyvideocoding,以下簡稱為hevc)的運動向量預(yù)測子(motionvectorpredictor,以下簡稱為mvp)的簡化推導(dǎo)。
背景技術(shù):
hevc是由視頻編碼聯(lián)合組(jointcollaborativeteamonvideocoding,以下簡稱jct-vc)開發(fā)的一種新的國際編碼標(biāo)準(zhǔn)。hevc是基于分塊運動補償?shù)淖儞Q編碼架構(gòu)(block-basedmotion-compensatedtransformcodingarchitecture)。其用于壓縮的基本單元是一個2n×2n的方塊,被稱為編碼單元(codingunit,以下簡稱cu),且每一個cu皆可被遞歸地分割為4個更小的cu,直到產(chǎn)生預(yù)設(shè)的最小尺寸。每一個cu可包含一個或多個預(yù)測單元(predictionunits,以下簡稱pu)。pu的尺寸可以是2n×2n、2n×n、2n×nu、2n×nd、n×2n、nl×2n、nr×2n、或者n×n,其中2n×n、2n×nu、2n×nd以及n×2n、nl×2n、nr×2n分別對應(yīng)于具有對稱或不對稱pu尺寸劃分(division)的2n×2npu的水平和垂直分割(partition)。
為進一步增強hevc中運動向量編碼的編碼效率,基于運動向量競爭的機制被用于從既定運動向量預(yù)測子(motionvectorpredictor,以下簡稱mvp)候選項集合中選擇一個運動向量預(yù)測子(mvp),所述mvp候選項集合包含空間及時間mvp。對于hm-5.0中的幀間模式來說,先進運動向量預(yù)測(advancedmotionvectorprediction,以下簡稱amvp)機制被用于從包含兩個空間mvp以及一個時間mvp的mvp候選項集合中選擇一個mvp。上述mvp候選項集合是用來編碼一個基本塊(underlyingblock)的運動向量(motionvector,以下簡稱為mv)。圖1是依據(jù)hm-5.0的用于幀間模式的空間mvp候選項集合的示意圖,其中兩個空間mvp為:
1、左側(cè)空間預(yù)測子(來自am+1及am的第一可用mv);以及
2、頂部空間預(yù)測子(來自bn+1、bn及b-1的第一可用mv)。
上述五個空間候選塊被分成左側(cè)預(yù)測子群組和頂部預(yù)測子群組。每一群組中候選塊的第一可用mv被選作推導(dǎo)自該群組的空間mvp。與每一群組中相鄰塊相關(guān)的第一可用mv的搜尋順序如圖1中的箭頭所示。對于頂部候選塊來說,其搜尋順序是從右到左。而對于左側(cè)候選塊來說,其搜尋順序則是從下到上。左側(cè)的相鄰塊包含左下塊(lower-leftblock)am+1以及底部左側(cè)塊(bottom-alignedleftblock)am。頂部相鄰塊則包含三個塊,分別對應(yīng)于左上塊(upper-leftblock)b-1、右側(cè)頂部塊(right-alignedtopblock)bn以及右上塊(upper-rightblock)bn+1。在mvp的推導(dǎo)過程中,有可能出現(xiàn)所有的候選塊都沒有相關(guān)的mv的狀況。在此狀況下,此群組沒有可用的mvp。舉例來說,若am和am+1都沒有相關(guān)的mv,則左側(cè)預(yù)測子并不存在。從而,mvp候選項集合可能包含少于3個的mvp候選項。
在推導(dǎo)出空間預(yù)測子之后,再推導(dǎo)出時間預(yù)測子并將其添加至mvp候選項集合。在所有的空間和時間預(yù)測子都被推導(dǎo)出來之后,則執(zhí)行冗余檢查程序以識別和移除任何重復(fù)的候選項。因此,與冗余檢查程序相關(guān)的檢查操作的最大數(shù)量為3。在冗余檢查/移除程序被執(zhí)行之后,再檢查現(xiàn)存的候選項數(shù)量。若此數(shù)量小于閾值,則執(zhí)行零值的運動向量檢查程序。在hm-5.0中,上述閾值被設(shè)置為amvp_max_num_cands指示的最大值(amvp_max_num_cands=2)。上述零值的運動向量檢查程序是檢查當(dāng)前的候選項集合中是否存在零值的mv。若當(dāng)前的候選項集合中不存在零值的mv,則將零值的mv添加至mvp候選項集合中。在此程序中,需要一個檢查操作。因此,以上所述的兩個檢查程序所需的檢查操作的最大數(shù)量為4。
圖2是依據(jù)hm-5.0的mvp推導(dǎo)的決定流程圖。在步驟210中,包含空間mvp和時間mvp的mvp候選項被提供至冗余檢查程序。冗余檢查程序檢查mvp候選項中是否存在重復(fù)項。若存在重復(fù)的mvp候選項,則移除此重復(fù)的mvp候選項。若不存在重復(fù)的mvp候選項,則將零值的mv添加至mvp候選項集合中。接著在步驟220中,檢查mvp候選項的數(shù)量以決定其是否小于2。若mvp候選項的數(shù)量不小于2,則決定程序結(jié)束。否則,在步驟230中執(zhí)行零值的運動向量檢查程序以決定mvp候選項集合中是否包含零值的mv。若mvp候選項集合中不包含零值的mv,則在步驟240中,將零值的mv添加至mvp候選項集合中。否則,決定程序結(jié)束。上述用于mvp候選項集合的決定程序包含很多檢查操作。因此,需要減少所需檢查操作的數(shù)量以加速系統(tǒng)運行。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明一實施例提供一種先進運動向量預(yù)測子候選項集合的推導(dǎo)方法,用于塊的運動向量的編解碼,該先進運動向量預(yù)測子候選項集合的推導(dǎo)方法包含:依據(jù)當(dāng)前塊的多個頂部相鄰塊的第一可用運動向量決定頂部空間先進運動向量預(yù)測子候選項;依據(jù)該當(dāng)前塊的多個左側(cè)相鄰塊的第一可用運動向量決定左側(cè)空間先進運動向量預(yù)測子候選項;對空間先進運動向量預(yù)測子候選項集合進行最多一次的冗余檢查,若冗余先進運動向量預(yù)測子候選項存在,通過從該空間先進運動向量預(yù)測子候選項集合中移除該冗余先進運動向量預(yù)測子候選項來決定去冗余空間先進運動向量預(yù)測子候選項集合,否則,該去冗余空間先進運動向量預(yù)測子候選項集合與該空間先進運動向量預(yù)測子候選項集合相同,其中該空間先進運動向量預(yù)測子候選項集合最多包含該頂部空間先進運動向量預(yù)測子候選項和該左側(cè)空間先進運動向量預(yù)測子候選項,以及該去冗余空間先進運動向量預(yù)測子候選項集合最多包含該頂部空間先進運動向量預(yù)測子候選項和該左側(cè)空間先進運動向量預(yù)測子候選項;決定去冗余空間-時間先進運動向量預(yù)測子候選項集合,其中該去冗余空間-時間先進運動向量預(yù)測子候選項集合包含該去冗余空間先進運動向量預(yù)測子候選項集合與一個時間先進運動向量預(yù)測子候選項;以及提供該去冗余空間-時間先進運動向量預(yù)測子候選項集合以用于該當(dāng)前塊的該運動向量的編碼或者解碼。
本發(fā)明的另一實施例提供一種先進運動向量預(yù)測子候選項集合的推導(dǎo)裝置,該先進運動向量預(yù)測子候選項集合用于塊的運動向量的編解碼,該裝置包含:依據(jù)當(dāng)前塊的多個頂部相鄰塊的第一可用運動向量決定頂部空間先進運動向量預(yù)測子候選項的模塊;依據(jù)該當(dāng)前塊的多個左側(cè)相鄰塊的第一可用運動向量決定左側(cè)空間先進運動向量預(yù)測子候選項模塊;對空間先進運動向量預(yù)測子候選項集合進行最多一次的冗余檢查的模塊,若冗余先進運動向量預(yù)測子候選項存在,通過從該空間先進運動向量預(yù)測子候選項集合中移除該冗余先進運動向量預(yù)測子候選項來決定去冗余空間先進運動向量預(yù)測子候選項集合,否則,該去冗余空間先進運動向量預(yù)測子候選項集合與該空間先進運動向量預(yù)測子候選項集合相同,其中該空間先進運動向量預(yù)測子候選項集合最多包含該頂部空間先進運動向量預(yù)測子候選項和該左側(cè)空間先進運動向量預(yù)測子候選項,以及該去冗余空間先進運動向量預(yù)測子候選項集合最多包含該頂部空間先進運動向量預(yù)測子候選項和該左側(cè)空間先進運動向量預(yù)測子候選項;決定去冗余空間-時間先進運動向量預(yù)測子候選項集合的模塊,其中該去冗余空間-時間先進運動向量預(yù)測子候選項集合包含該去冗余空間先進運動向量預(yù)測子候選項集合與一個時間先進運動向量預(yù)測子候選項;以及提供該去冗余空間-時間先進運動向量預(yù)測子候選項集合以用于該當(dāng)前塊的該運動向量的編碼或者解碼的模塊。
通過利用本發(fā)明,可減少所需檢查操作的數(shù)量,從而提高系統(tǒng)的運行速度。
附圖說明
圖1是hm-5.0中基于amvp機制用于推導(dǎo)幀間模式下mvp候選項集合的相鄰塊配置范例的示意圖。
圖2是依據(jù)hm-5.0的用以決定mvp候選項集合的推導(dǎo)程序范例的示意圖。
圖3是依據(jù)本發(fā)明一實施例用以決定mvp候選項集合的簡化推導(dǎo)程序范例的示意圖。
圖4是依據(jù)本發(fā)明另一實施例用以決定mvp候選項集合的簡化推導(dǎo)程序范例的示意圖。
圖5是依據(jù)本發(fā)明又一實施例用以決定mvp候選項集合的簡化推導(dǎo)程序范例的示意圖。
具體實施方式
本發(fā)明的實施例簡化了mvp候選項的推導(dǎo)程序。在一個實施例中,mvp冗余候選項檢查僅應(yīng)用至兩個空間mvp候選項。時間mvp候選項被排除在冗余檢查程序之外。在此簡化的檢查程序中,檢查兩個空間mvp候選項的冗余。從而,其最多需要一個比較操作(若一個或兩個mvp候選項不存在,則不需要任何操作)。依據(jù)本發(fā)明的實施例,檢查操作的最大數(shù)量從3減少到1。在對空間mvp執(zhí)行完冗余檢查之后,再將時間mvp包含至mvp候選項集合中。
在推導(dǎo)出空間mvp和時間mvp之后,檢查mvp候選項的數(shù)量以決定其是否小于閾值(例如,2)。若此數(shù)量小于2,則mvp推導(dǎo)程序依據(jù)基于hm-5.0的傳統(tǒng)方法檢查mvp候選項是否包含零值的mv。若零值的mv未包含在mvp候選項集合中,則將零值的mv添加至mvp候選項集合中。在依據(jù)本發(fā)明的另一實施例中,若mvp候選項的數(shù)量小于閾值,mvp推導(dǎo)程序不會檢查mvp候選項中是否包含零值的mv。取而代之的是,mvp推導(dǎo)程序直接將零值的mv添加至mvp候選項集合而無需檢查mvp候選項中是否包含零值的mv。本發(fā)明的一個實施例可被整合至hm-5.0,且由amvp_max_num_cands指示的閾值可被設(shè)置為2(amvp_max_num_cands=2)。因此,一旦現(xiàn)存的空間和時間mvp候選項的數(shù)量小于2,則零值的mv被添加至mvp候選項集合。在一個實施例中,當(dāng)mvp候選項集合中的候選項數(shù)量小于閾值時,零值的mv將會被添加至候選項集合直到其數(shù)量達到2。換句話說,將會有多于一個的零值的mv被添加至mvp候選項集合中。
圖3是依據(jù)本發(fā)明一實施例的mvp推導(dǎo)的決定流程圖。如圖3的步驟310所示,只有空間mvp候選項被提供給此程序以進行重復(fù)mvp候選項檢查和移除。如前文所述,檢查操作的最大數(shù)量從3減少到1。在步驟310中的空間冗余mvp候選項檢查/移除之后,時間mvp被包含進來以形成空間-時間mvp候選項集合。上述程序剩下的部分與圖2中的此部分相同,故此處的剩余步驟使用了相同的參考標(biāo)號。
圖4是依據(jù)本發(fā)明另一實施例的mvp推導(dǎo)的決定流程圖。此處檢查和移除重復(fù)mvp候選項的步驟與圖2中的此部分相同。然而,若mvp候選項的數(shù)量小于閾值(例如,閾值為2),如步驟410所示,mvp推導(dǎo)程序會直接將零值的mv添加至mvp候選項集合而無需檢查mvp候選項集合中是否包含零值的mv。
圖5是依據(jù)本發(fā)明又一實施例的mvp推導(dǎo)的決定流程圖。在圖5中,重復(fù)mvp候選項的檢查和移除僅對空間mvp執(zhí)行,且當(dāng)mvp候選項的數(shù)量小于閾值(例如,閾值為2)時,用于檢查mvp候選項集合中是否包含零值的mv的檢查被省略。
比較簡化系統(tǒng)與傳統(tǒng)的hm-5.0系統(tǒng)的系統(tǒng)性能。上述性能是依據(jù)bd率(bdrate)來衡量的,負值則代表相對于參考系統(tǒng)的性能提升。bd率的比較是通過在維持基本系統(tǒng)大致相同的客觀品質(zhì)(objectivequality)的前提下調(diào)整編碼參數(shù)來進行的。不同系統(tǒng)配置的比較結(jié)果如表1所示,其中ra對應(yīng)于隨機存取(randomaccess),ld對應(yīng)于低延遲(lowdelay),he對應(yīng)于高效率(highefficiency),lc對應(yīng)于低復(fù)雜度(lowcoplexity),而he-10則對應(yīng)于高效率(10比特)。在bd率方面,系統(tǒng)性能受到的影響非常小。同樣,系統(tǒng)運行時間受到的影響也很小。
表1
依據(jù)上文所述簡化mvp方法推導(dǎo)出的mvp候選項集合可被用于幀間編碼塊的mv的編碼和解碼。在編碼器中,當(dāng)前塊的mv被基于mvp候選項集合而預(yù)測地編碼?;緈v的預(yù)測殘差也被編碼,以使在解碼器端可以恢復(fù)此預(yù)測殘差。解碼器可依據(jù)上述簡化mvp推導(dǎo)出mvp候選項集合。之后,mvp候選項集合與恢復(fù)的預(yù)測殘差一并被用于重建當(dāng)前mv。
以上描述是為了使本領(lǐng)域的技術(shù)人員能夠以上下文中的特定實施方式及其需求來實現(xiàn)本發(fā)明。然而,本領(lǐng)域的技術(shù)人員應(yīng)可對其進行各種變型與修飾,而本發(fā)明的基本精神也可以應(yīng)用至其他實施例中。因此,本發(fā)明并非以所述特定實施例為限,而應(yīng)以符合本發(fā)明宗旨及新特征的最廣的范圍為界。在上述詳細描述中,闡述各種特定細節(jié)是為了便于對本發(fā)明有全面的了解,然而,本領(lǐng)域的技術(shù)人員應(yīng)可理解本發(fā)明可以在不限定這些具體細節(jié)中的一部分或者全部的情況下實施。
上述的根據(jù)本發(fā)明的實施例可以不同硬件、軟件代碼、或兩者的結(jié)合來實施。舉例來說,依據(jù)本發(fā)明的一實施例,其可以是用來實施所述方法的、整合至視頻壓縮芯片中的電路,或是整合至視頻壓縮軟件中的程序代碼。依據(jù)本發(fā)明的另一實施例,其也可以是數(shù)字信號處理器(digitalsignalprocessor,dsp)上執(zhí)行的、用來實施所述方法的程序代碼。本發(fā)明亦可包含由計算機處理器、dsp、微處理器、或現(xiàn)場可編程門陣列(fieldprogrammablegatearray,fpga)執(zhí)行的一系列功能。依據(jù)本發(fā)明,通過執(zhí)行定義了本發(fā)明實施例特定方法的機器可讀軟件代碼或固件代碼,這些處理器可被設(shè)置為執(zhí)行特定的任務(wù)。所述軟件代碼或固件代碼可通過不同的編程語言及不同格式/樣式來開發(fā)。所述軟件代碼亦可符合不同的目標(biāo)平臺。然而,執(zhí)行與本發(fā)明相應(yīng)的任務(wù)的、具有不同代碼格式、樣式及語言的軟件代碼,以及其他方式形成的代碼都應(yīng)包含在本發(fā)明的范圍內(nèi)。
在不脫離本發(fā)明的精神及基本特征的前提下,本發(fā)明亦可用其他特定形式來實施。以上所述的實施例僅僅是為了例示本發(fā)明,并非本發(fā)明的限制。本發(fā)明的范圍當(dāng)所附的權(quán)利要求為準(zhǔn),凡依本發(fā)明權(quán)利要求所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。