本發(fā)明主張申請于2014年7月18日,序列號為PCT/CN2014/082538的PCT專利申請的優(yōu)先權(quán)。將此PCT專利申請以參考的方式并入本文中。
【技術(shù)領(lǐng)域】
本發(fā)明涉及視頻編碼。特別地,本發(fā)明涉及從用于運(yùn)動向量預(yù)測的單向運(yùn)動向量導(dǎo)出雙向運(yùn)動向量。
背景技術(shù):
運(yùn)動估計(jì)是利用視頻序列中的時(shí)間冗余的一種有效的幀間編碼技術(shù)。運(yùn)動補(bǔ)償幀間編碼已經(jīng)被廣泛地使用于各種國際視頻編碼標(biāo)準(zhǔn)中。在各種編碼標(biāo)準(zhǔn)中采用的運(yùn)動估計(jì)通常是基于塊的技術(shù),其中,運(yùn)動信息(例如:編碼模式以及運(yùn)動向量)被確定以用于每個(gè)宏區(qū)塊或類似塊配置。對于運(yùn)動補(bǔ)償預(yù)測(motion compensation prediction,MCP)編碼來說,當(dāng)前塊是通過參考塊來預(yù)測。當(dāng)前塊與參考塊之間的位移(displacement)被稱為運(yùn)動向量(motion vector,MV)。運(yùn)動向量被標(biāo)識到解碼器。當(dāng)使用兩個(gè)參考塊(即,雙向預(yù)測)時(shí),兩個(gè)運(yùn)動向量被標(biāo)識。幀間預(yù)測或幀內(nèi)預(yù)測殘差通常通過轉(zhuǎn)換、量化、以及熵編碼被進(jìn)一步處理以產(chǎn)生壓縮后的視頻比特流。
為了減少用于編碼運(yùn)動向量的數(shù)據(jù)量,運(yùn)動向量預(yù)測子(motion vector predictor,MVP)已經(jīng)被廣泛地用于高級編碼(例如:高效視頻編碼(High Efficiency Video Coding,HEVC))標(biāo)準(zhǔn)中。MVP是由空間或時(shí)間相鄰已編碼塊導(dǎo)出。例如,在HEVC中的高級運(yùn)動向量預(yù)測(advanced motion vector prediction,AMVP)和合并模式中使用多個(gè)MVP。期望進(jìn)一步提高M(jìn)VP的編碼效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種基于給定第一方向的運(yùn)動向量(given motion vector)來導(dǎo)出第二方向的時(shí)間導(dǎo)出運(yùn)動向量(temporal derived motion vector)的運(yùn)動向量預(yù)測的方法以及裝置。根據(jù)本發(fā)明,用于當(dāng)前塊的給定運(yùn)動向量被確定,其中,給定運(yùn)動向量是沿第一方向從所述當(dāng)前塊指出。識別與第一參考幀中第一參考塊相關(guān)聯(lián)的參考運(yùn)動向量。接著,基于參考運(yùn)動向量以及給定運(yùn)動向量來導(dǎo)出時(shí)間導(dǎo)出運(yùn)動向量。時(shí)間導(dǎo)出運(yùn)動向量從當(dāng)前塊沿第二方向指向第二參考幀的第二參考塊,其中,第二方向不同于第一方向。接著,時(shí)間導(dǎo)出運(yùn)動向量被用作為用于當(dāng)前塊的運(yùn)動向量的編碼或解碼的一個(gè)預(yù)測子。
通過將當(dāng)前塊的對應(yīng)中心、左上、或其他位置移位(shifting)給定運(yùn)動向量來定位第一參考幀中的第一參考塊。用于當(dāng)前塊的給定運(yùn)動向量可基于當(dāng)前塊的空間或時(shí)間相鄰塊的運(yùn)動向量來確定。時(shí)間導(dǎo)出運(yùn)動向量可根據(jù)給定運(yùn)動向量以及參考運(yùn)動向量的和來確定。
如果給定運(yùn)動向量指向不同于第一參考幀的另一參考幀,則給定運(yùn)動向量被縮放(scaled)以指向第一參考幀。類似地,如果參考運(yùn)動向量指向不同于第二參考幀的另一參考幀,則參考運(yùn)動向量可被縮放以指向第二參考幀。此外,如果時(shí)間導(dǎo)出運(yùn)動向量指向不同于第二參考幀的另一參考幀,則時(shí)間導(dǎo)出運(yùn)動向量可被縮放以指向第二參考幀。
在一個(gè)實(shí)施例中,校驗(yàn)一個(gè)或多個(gè)編碼參數(shù)以確定參考運(yùn)動向量是否有效。只有當(dāng)參考運(yùn)動向量有效時(shí),參考運(yùn)動向量被用于導(dǎo)出時(shí)間導(dǎo)出運(yùn)動向量。例如,如果第二參考塊為跳過模式(skip mode)或合并模式或第二參考塊的已編碼塊旗標(biāo)(coded block flag,cbf)為零,則參考運(yùn)動向量是無效的。
在一個(gè)實(shí)施例中,時(shí)間導(dǎo)出運(yùn)動向量被用于合并模式中。產(chǎn)生一個(gè)或多個(gè)時(shí)間導(dǎo)出運(yùn)動向量以添加到合并候選列表,且使用初始合并候選列表(original merge candidate list)中的一個(gè)運(yùn)動向量作為一個(gè)給定運(yùn)動向量來導(dǎo)出每個(gè)時(shí)間導(dǎo)出運(yùn)動向量。冗余校驗(yàn)可被應(yīng)用于時(shí)間導(dǎo)出運(yùn)動向量,且任何冗余的時(shí)間導(dǎo)出運(yùn)動向量不會被添加到合并候選列表。時(shí)間導(dǎo)出運(yùn)動向量可被放置于合并候選列表的預(yù)定義的位置。例如,時(shí)間導(dǎo)出運(yùn)動向量可被放置于合并候選列表中所有空間以及時(shí)間合并候選之后,且被允許添加到合并候選列表的所述一個(gè)或多個(gè)時(shí)間導(dǎo)出運(yùn)動向量的數(shù)量取決于合并候選列表的最大尺寸。
在另一實(shí)施例中,時(shí)間導(dǎo)出運(yùn)動向量被用于AMVP模式。例如,產(chǎn)生一個(gè)或多個(gè)時(shí)間導(dǎo)出運(yùn)動向量以添加到AMVP合并候選列表,且使用初始AMVP候選列表中的一個(gè)運(yùn)動向量作為一個(gè)給定運(yùn)動向量來導(dǎo)出每個(gè)時(shí)間導(dǎo)出運(yùn)動向量。
通過使用一個(gè)或多個(gè)語法元素來指示是否將時(shí)間導(dǎo)出運(yùn)動向量用于運(yùn)動向量預(yù)測,可自適應(yīng)地應(yīng)用用于運(yùn)動向量預(yù)測的時(shí)間導(dǎo)出運(yùn)動向量。語法元素可被顯式地標(biāo)識于序列等級、視頻等級、圖片等級、或條帶等級。是否將時(shí)間導(dǎo)出運(yùn)動向量用于運(yùn)動向量預(yù)測還可于解碼器側(cè)被隱式地確定。例如,此決定可根據(jù)模式選擇、當(dāng)前塊的相鄰已編碼塊的運(yùn)動參數(shù)、或第一參考塊的運(yùn)動參數(shù)、或第二參考塊的運(yùn)動參數(shù)、或第一參考塊的運(yùn)動參數(shù)以及第二參考塊的運(yùn)動參數(shù)來做出。
【附圖說明】
圖1所示為時(shí)間導(dǎo)出雙向(temporal-derived bi-direction,TDB)運(yùn)動向量預(yù)測子(motion vector predictor,MVP)的示例,其中,MV0表示當(dāng)前塊在一個(gè)方向上的給定運(yùn)動向量,MV01表示參考運(yùn)動向量,且MV1表示TDB MVP。
圖2所示為根據(jù)本發(fā)明實(shí)施例的結(jié)合TDB MVP的視頻編碼系統(tǒng)的示范性流程圖。
【具體實(shí)施方式】
下文的描述是實(shí)施本發(fā)明的最佳預(yù)期模式。這種描述是為了說明本發(fā)明的一般原理,而不應(yīng)被理解成對本發(fā)明的限制。本發(fā)明的范圍可通過參考所附權(quán)利要求做最好的確定。
為了提高與運(yùn)動向量預(yù)測(motion vector prediction,MVP)相關(guān)聯(lián)的編碼效率,本發(fā)明基于給定運(yùn)動向量導(dǎo)出附加的時(shí)間運(yùn)動向量(也被稱作“時(shí)間導(dǎo)出運(yùn)動向量”)以形成用于當(dāng)前塊的雙向運(yùn)動向量預(yù)測子(motion vector predictor,MVP)。于本公開中,根據(jù)相關(guān)的上下文,術(shù)語MVP可指代運(yùn)動向量預(yù)測或運(yùn)動向量預(yù)測子。圖1所示為時(shí)間導(dǎo)出雙向(temporal-derived bi-direction,TDB)運(yùn)動向量預(yù)測子(motion vector predictor,MVP)的示例。運(yùn)動向量MV0表示當(dāng)前幀120的當(dāng)前塊122在一個(gè)方向上的運(yùn)動向量。如圖1所示,運(yùn)動向量MV0指向參考幀110中的參考塊112。參考塊112的運(yùn)動向量MV01指向?qū)?yīng)于另一方向的另一參考幀130中的另一參考塊132。運(yùn)動向量MV01與運(yùn)動向量MV0一起被用于導(dǎo)出用于當(dāng)前塊其它方向的新的運(yùn)動向量。兩個(gè)MV(即,MV0以及MV1)形成了用于當(dāng)前塊的雙向運(yùn)動向量預(yù)測子。
通過將當(dāng)前塊122的對應(yīng)中心、左上、或其他位置移位(shifting)MV0,可定位參考幀中參考塊112的位置。
對于運(yùn)動向量預(yù)測中的應(yīng)用,運(yùn)動向量MV0可對應(yīng)于先前已編碼塊的MV。因此,根據(jù)本發(fā)明,運(yùn)動向量MV0可從當(dāng)前塊122的空間或時(shí)間相鄰塊導(dǎo)出。此外,在基于MVP的編碼中,差分編碼可減少用于編碼運(yùn)動向量所需的數(shù)據(jù),其中,當(dāng)前MV以及MVP之間的差(difference)被編碼。因此,運(yùn)動向量MV0可通過差分編碼被標(biāo)識。
在一個(gè)實(shí)施例中,已導(dǎo)出的MV1可通過將MV0以及MV01相加來獲得,即:MV1=MV0+MV01。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,如果運(yùn)動向量MV0指向不同于第一目標(biāo)參考幀(例如,參考幀110)的參考幀,運(yùn)動向量MV0可據(jù)此被縮放。在本領(lǐng)域中,各種運(yùn)動向量縮放技術(shù)是公知的。例如,時(shí)間運(yùn)動向量縮放可根據(jù)圖片順序計(jì)數(shù)(picture order count,POC)來執(zhí)行。類似地,根據(jù)本發(fā)明的一個(gè)實(shí)施例,如果運(yùn)動向量MV1指向不同于第二目標(biāo)參考幀(例如,參考幀130)的參考幀,則運(yùn)動向量MV1可據(jù)此被縮放。此外,根據(jù)本發(fā)明的一個(gè)實(shí)施例,如果運(yùn)動向量MV01指向不同于第二目標(biāo)參考幀(例如,參考幀130)的參考幀,則運(yùn)動向量MV01可據(jù)此被縮放。例如,第一和第二目標(biāo)參考幀是與當(dāng)前塊122相關(guān)聯(lián)的預(yù)定參考幀(122)。
也可校驗(yàn)?zāi)承┚幋a參數(shù)或條件以確定參考運(yùn)動向量(即,MV01)是否為有效的。如果運(yùn)動向量MV01是無效的,則可跳過TDB MVP,或應(yīng)用其它備選程序。例如,可校驗(yàn)對應(yīng)于參考塊132是否被編碼于跳過模式或合并模式,或參考塊132的已編碼塊旗標(biāo)是否為零的條件,以確定運(yùn)動向量MV01是否有效。如果任何以上條件為真,則運(yùn)動向量MV01是無效的。
TDB運(yùn)動向量預(yù)測子可被應(yīng)用于不同的MVP場景。例如,TDB MVP可被用作HEVC中合并模式的候選。此外,來自每個(gè)空間候選的運(yùn)動向量可被用作給定的MV(即,MV0)。TDB MVP可被添加到合并候選列表以作為附加的候選(被稱為TDB合并候選)。類似地,來自每個(gè)時(shí)間合并候選的運(yùn)動向量也可被用作給定的MV(即,MV0)。TDB MVP被添加到合并候選列表以作為TDB候選。
在另一實(shí)施例中,可使用冗余校驗(yàn)程序來校驗(yàn)TDB合并候選是否與合并候選列表中已經(jīng)存在的任何候選相同。如果是,則TDB合并候選是冗余的,且不需要被添加。
當(dāng)合并候選列表被使用時(shí),合并候選列表中的合并候選根據(jù)特定順序被放置于列表中。每個(gè)合并候選可通過索引來識別。如果產(chǎn)生TDB合并候選以用于合并候選列表(即,于添加任何TDB合并候選之前的初始合并候選列表)中的每個(gè)MV,則多個(gè)TDB合并候選可被產(chǎn)生以用于初始合并候選列表中的多個(gè)MV。在一個(gè)實(shí)施例中,TDB合并候選或候選被放置于列表中的預(yù)定位置。在另一實(shí)施例中,TDB合并候選或候選可被放置于空間以及時(shí)間合并候選之后??杀惶砑拥胶喜⒑蜻x列表的TDB合并候選的數(shù)量可由合并候選列表的最大尺以及現(xiàn)存的合并候選的數(shù)量來確定。
在另一實(shí)施例中,用于合并候選的TDB MVP的使用是被自適應(yīng)地應(yīng)用。例如,語法元素可被用于指示單向或雙向合并候選是否被用于導(dǎo)出對應(yīng)的合并候選。
在又一實(shí)施例中,是否添加TDB合并候選可取決于與兩個(gè)參考幀(即,圖1中的參考幀110以及130)相關(guān)聯(lián)的參考列表。例如,如果兩個(gè)參考列表是相同的,則TDB合并候選將不會被添加。否則,TDB合并候選將被添加。
于另一示例中,TDB MVP可被用作HEVC中AMVP模式的候選。在此情況下,運(yùn)動向量MV0可從AMVP候選列表中的MV導(dǎo)出。TDB MVP程序可被用于導(dǎo)出運(yùn)動向量MV1,且TDB MVP被添加到其它方向的AMVP候選列表。備選地,TDB MVP可被用作其它方向的MV,而不需標(biāo)識MVD。
當(dāng)TDB MVP被用作為合并或AMVP模式中的候選時(shí),一個(gè)或多個(gè)語法元素被用于標(biāo)識雙向運(yùn)動向量預(yù)測子是否被使用。此外,語法元素可被顯式地傳送于序列、視頻、圖片或條帶等級,例如:序列參數(shù)集(sequence parameter set,SPS)、視頻參數(shù)集(video parameter set,VPS)、圖片參數(shù)集(picture parameter set,PPS)或條帶標(biāo)頭(slice header)。備選地,關(guān)于雙向運(yùn)動向量預(yù)測子是否被用于合并或AMVP候選列表的信息可于解碼器側(cè)被隱式地導(dǎo)出。于解碼器側(cè),可根據(jù)模式選擇或當(dāng)前塊122的相鄰已編碼塊的運(yùn)動參數(shù),或根據(jù)參考塊112和/或參考塊132的運(yùn)動參數(shù)隱式地導(dǎo)出此信息。
圖2所示為根據(jù)本發(fā)明實(shí)施例的結(jié)合TDB MVP的視頻編碼系統(tǒng)的示范性流程圖。如步驟210所述,確定用于當(dāng)前塊的給定運(yùn)動向量,其中,給定運(yùn)動向量是沿第一方向從當(dāng)前塊指出。于步驟220中,識別與第一參考幀中第一參考塊相關(guān)聯(lián)的參考運(yùn)動向量。于步驟230中,基于參考運(yùn)動向量以及給定運(yùn)動向量,導(dǎo)出時(shí)間導(dǎo)出運(yùn)動向量,其中,時(shí)間導(dǎo)出運(yùn)動向量是從當(dāng)前塊沿不同于第一方向的第二方向指向第二參考幀的第二參考塊。接著,于步驟240中,使用時(shí)間導(dǎo)出運(yùn)動向量來作為一個(gè)預(yù)測子以編碼或解碼當(dāng)前塊的當(dāng)前運(yùn)動向量。
圖2所示的示范性流程圖是用于示例的目的。本領(lǐng)域技術(shù)人員可在不背離本發(fā)明精神實(shí)質(zhì)的情況下,重新排列每個(gè)步驟、合并步驟、或分割步驟來實(shí)施本發(fā)明。
以上描述可使本領(lǐng)域的普通技術(shù)人員如特定應(yīng)用及其要求的上下文提供的來實(shí)踐本發(fā)明。對本領(lǐng)域技術(shù)人員來說,對所描述的實(shí)施例的各種修改是顯而易見的,且本文定義的一般原理可被應(yīng)用于其它實(shí)施例。因此,本發(fā)明并非意在限定于以上所示及所描述的特定實(shí)施例,而是要符合與此公開揭露的原理和新穎特征相一致的最寬范圍。在以上詳細(xì)描述中,各種具體細(xì)節(jié)被示出以便提供本發(fā)明的徹底理解。然而,本領(lǐng)域技術(shù)人員應(yīng)知曉本發(fā)明是可被實(shí)踐的。
如上所述,本發(fā)明的實(shí)施例可以由各種硬件,軟件代碼,或兩者的組合來實(shí)現(xiàn)。例如,本發(fā)明的實(shí)施例可以是被集成到視頻壓縮芯片的一個(gè)或多個(gè)電子電路,或被集成于視頻壓縮軟件的程序代碼以執(zhí)行本文所描述的處理過程。本發(fā)明的實(shí)施例還可以是執(zhí)行于數(shù)字信號處理器上的程序代碼,以執(zhí)行本文所描述的處理過程。本發(fā)明還可包含由計(jì)算機(jī)處理器,數(shù)字信號處理器,微處理器,或現(xiàn)場可編程門陣列執(zhí)行的多個(gè)功能。根據(jù)本發(fā)明,通過執(zhí)行定義本發(fā)明所體現(xiàn)的特定方法的機(jī)器可讀軟件代碼或固件代碼,這些處理器可被配置為執(zhí)行特定任務(wù)。軟件代碼或固件代碼可被開發(fā)為不同的編程語言以及不同的格式或風(fēng)格。軟件代碼還可被編譯以用于不同的目標(biāo)平臺。然而,根據(jù)本發(fā)明的不同的軟件代碼的代碼格式、風(fēng)格及語言,以及用于配置代碼以執(zhí)行任務(wù)的其他方式,均不會背離本發(fā)明的精神以及范圍。
在不脫離其精神或本質(zhì)特征的情況下,本發(fā)明可以其它特定形式來體現(xiàn)。所描述的示例在所考慮的所有的方面都只是說明性的而不是限制性的。因此,本發(fā)明的范圍是由其所附的權(quán)利要求來指示的,而不是由上文的描述來指示的。在權(quán)利要求的等效范圍及含義內(nèi)的所有改變均包含于本發(fā)明范圍之內(nèi)。