本申請是申請日為2011年10月28日,申請?zhí)枮椤?01180063283.9”,標(biāo)題為“視頻信息編碼方法和解碼方法”的發(fā)明專利申請的分案申請。
本公開涉及視頻編碼技術(shù),并更具體地,涉及用于使用相鄰塊的運動信息來預(yù)測當(dāng)前塊的運動信息的方法。
背景技術(shù):
最近,根據(jù)具有高清晰度(hd)分辨率的廣播服務(wù)在全國和全世界的擴(kuò)展,許多用戶已習(xí)慣于高分辨率和高清晰度視頻,使得許多組織已進(jìn)行開發(fā)下一代視頻裝置的許多嘗試。另外,因為對于hdtv和具有比hdtv高四倍的分辨率的超高清晰度(uhd)的興趣已增長,所以已需要對于更高分辨率和更高清晰度視頻的壓縮技術(shù)。
作為視頻壓縮技術(shù),存在根據(jù)當(dāng)前畫面之前和/或之后的畫面來預(yù)測當(dāng)前畫面中包括的像素值的幀間預(yù)測技術(shù)、使用當(dāng)前畫面中的像素信息來預(yù)測當(dāng)前畫面中包括的像素值的幀內(nèi)預(yù)測技術(shù)、用于防止由于照度改變導(dǎo)致視頻質(zhì)量惡化的加權(quán)預(yù)測技術(shù)、向具有高出現(xiàn)頻率的碼元分配短代碼并向具有低出現(xiàn)頻率的碼元分配長代碼的熵編碼技術(shù)。特別是,當(dāng)在跳躍模式中執(zhí)行當(dāng)前塊的預(yù)測時,僅使用根據(jù)先前編碼的區(qū)域預(yù)測的值來生成預(yù)測塊,并且不從編碼器向解碼器傳送單獨運動信息或殘余信號??赏ㄟ^這些視頻壓縮技術(shù)來有效壓縮視頻數(shù)據(jù)。
其間,作為用于編碼運動信息的方法之一,已使用合并方法。可執(zhí)行編碼單元(其后,稱為“cu”)中的合并或預(yù)測單元(其后,稱為“pu”)中的合并。當(dāng)在cu或pu(其后,為了便于解釋,稱為“塊”)中執(zhí)行合并時,需要傳送關(guān)于是否對于每一塊分區(qū)執(zhí)行合并的信息、以及關(guān)于執(zhí)行與當(dāng)前塊鄰近的相鄰塊(當(dāng)前塊的左相鄰塊、當(dāng)前塊的上相鄰塊、當(dāng)前塊的時間相鄰塊等)中的哪一塊合并的信息。所以,合并的信息量增加。
技術(shù)實現(xiàn)要素:
【技術(shù)問題】
本發(fā)明提供了用于使用合并方法來編碼和解碼視頻信息的方法。
本發(fā)明還提供了用于使用編碼單元的分區(qū)信息來推斷當(dāng)前塊的運動信息的方法和設(shè)備。
本發(fā)明還提供了用于使用相同編碼單元中的另一塊的運動信息來推斷當(dāng)前塊的運動信息的方法和設(shè)備。
本發(fā)明還提供了通過導(dǎo)出當(dāng)前塊的運動信息、不是直接傳送當(dāng)前塊的運動信息,而能夠降低視頻壓縮處理的復(fù)雜度和傳送信息量的方法和設(shè)備。
【技術(shù)方案】
在一個方面中,提供了一種用于編碼視頻信息的方法,該方法包括步驟:對于當(dāng)前塊執(zhí)行預(yù)測;和對于預(yù)測的信息進(jìn)行熵編碼和傳送,其中所述執(zhí)行預(yù)測的步驟包括步驟:從當(dāng)前塊的相鄰塊獲得相鄰塊的運動信息;和基于獲得的運動信息來確定當(dāng)前塊的運動信息,以及其中在所述傳送步驟中,連同預(yù)測的信息一起傳送預(yù)測當(dāng)前塊所需要的信息。
該相鄰塊可以是屬于該當(dāng)前塊所屬的編碼單元的塊,以及該相鄰塊的運動信息可以包括該編碼單元的分區(qū)信息。
在所述確定當(dāng)前塊的運動信息的步驟中,當(dāng)該相鄰塊屬于該當(dāng)前塊所屬的編碼單元時,可從該當(dāng)前塊的合并候選中排除相鄰塊的運動信息、和與相鄰塊的運動信息相同的運動信息。
在所述執(zhí)行預(yù)測的步驟中,當(dāng)前塊的運動信息可以不和與屬于該當(dāng)前塊所屬的編碼單元的另一塊的運動信息相同的運動信息合并。
當(dāng)在當(dāng)前塊的相鄰塊的運動信息中存在不與屬于該當(dāng)前塊所屬的編碼單元的另一塊的運動信息相同的運動信息候選、并且按照合并模式預(yù)測當(dāng)前塊的運動信息時,在確定當(dāng)前塊的運動信息的步驟中,可將當(dāng)前塊的運動信息與該運動信息候選合并。
當(dāng)該當(dāng)前塊是part_nxn并且屬于該當(dāng)前塊所屬的編碼單元的三個塊的運動信息相同時,在執(zhí)行預(yù)測的步驟中,可以不將當(dāng)前塊的運動信息與屬于該當(dāng)前塊所屬的編碼單元的三個塊的運動信息合并。
在另一方面中,提供了一種解碼視頻信息的方法,該方法包括以下步驟:接收比特流;對該比特流中包括的視頻信息進(jìn)行熵解碼;和基于熵解碼后的視頻信息來對于當(dāng)前塊執(zhí)行預(yù)測,其中所述執(zhí)行預(yù)測的步驟包括以下步驟:從當(dāng)前塊的相鄰塊獲得相鄰塊的運動信息;和基于獲得的運動信息來確定當(dāng)前塊的運動信息。
該相鄰塊可以是屬于該當(dāng)前塊所屬的編碼單元的塊,并且該相鄰塊的運動信息可以包括編碼單元的分區(qū)信息。
在所述確定當(dāng)前塊的運動信息的步驟中,當(dāng)該相鄰塊屬于該當(dāng)前塊所屬的編碼單元時,可以從當(dāng)前塊的合并候選中排除相鄰塊的運動信息、和與相鄰塊的運動信息相同的運動信息。
在執(zhí)行預(yù)測的步驟中,當(dāng)前塊的運動信息可以不和與屬于該當(dāng)前塊所屬的編碼單元的另一塊的運動信息相同的運動信息合并。
當(dāng)在當(dāng)前塊的相鄰塊的運動信息中存在不與屬于該當(dāng)前塊所屬的編碼單元的另一塊的運動信息相同的運動信息候選、并且按照合并模式預(yù)測當(dāng)前塊的運動信息時,在確定當(dāng)前塊的運動信息的步驟中,可以將當(dāng)前塊的運動信息與該運動信息候選合并。
當(dāng)該當(dāng)前塊是part_nxn并且屬于該當(dāng)前塊所屬的編碼單元的三個塊的運動信息相同時,在執(zhí)行預(yù)測的步驟中,可以不將當(dāng)前塊的運動信息與屬于該當(dāng)前塊所屬的編碼單元的三個塊的運動信息合并。
在另一方面中,提供了一種視頻解碼設(shè)備,包括:熵解碼器,用于對接收的比特流中包括的視頻信息進(jìn)行熵解碼;和預(yù)測器,用于基于所述熵解碼后的視頻信息來從當(dāng)前塊的相鄰塊獲取相鄰塊的運動信息,并基于所獲取的運動信息來確定當(dāng)前塊的運動信息,以執(zhí)行當(dāng)前塊的預(yù)測,其中當(dāng)該相鄰塊與該當(dāng)前塊屬于相同編碼單元時,該預(yù)測器不使用所述相鄰塊的運動信息作為該當(dāng)前塊的合并候選。
【有利效果】
根據(jù)本發(fā)明,可能改進(jìn)視頻信息的壓縮性能并降低其傳送量。
根據(jù)本發(fā)明,即使在向當(dāng)前塊施加合并的情況下,也可能降低合并信息的傳送量。
根據(jù)本發(fā)明,使用編碼單元或預(yù)測單元的分區(qū)信息來推斷當(dāng)前塊的運動信息,由此使得可能降低視頻壓縮處理的復(fù)雜度以及信息的傳送量。
根據(jù)本發(fā)明,使用相同編碼單元中的另一塊的運動信息來推斷當(dāng)前塊的運動信息,由此使得可能降低視頻壓縮處理的復(fù)雜度以及信息的傳送量。
附圖說明
圖1是示出了根據(jù)本發(fā)明示范實施例的視頻編碼設(shè)備的配置的框圖。
圖2是示出了根據(jù)本發(fā)明示范實施例的視頻解碼設(shè)備的配置的框圖。
圖3是示意性描述根據(jù)本發(fā)明示范實施例的系統(tǒng)中的編碼器和解碼器的與預(yù)測關(guān)聯(lián)的操作的示例的流程圖。
圖4是示意性描述根據(jù)本發(fā)明示范實施例的系統(tǒng)中的編碼器和解碼器的與預(yù)測關(guān)聯(lián)的操作的另一示例的流程圖。
圖5是示意性描述將單一編碼單元(cu)劃分為幾類預(yù)測單元(pu)的示例的圖。
圖6是示意性示出能夠從單一cu劃分的幾類pu的圖。
圖7是示意性描述從cu劃分的兩個pu的合并目標(biāo)的圖。
圖8是示意性示出從確定位置的塊獲得候選運動信息的方法的圖。
圖9是示意性示出向pu施加的合并的概念的圖。
圖10是示意性描述在其中將cu劃分為四個pu的情況下的每一pu的運動信息的圖。
圖11是示意性示出從cu劃分的pu之間的關(guān)系的圖。
圖12是示意性示出當(dāng)將單一cu劃分為兩個pu時、當(dāng)前pu的相鄰塊之中的、可成為當(dāng)前塊的合并候選塊的塊的圖。
圖13到15是示出在其中相鄰塊和當(dāng)前塊是相同cu中的不同塊的情況下、合并當(dāng)前塊的幾個示例的圖。
圖16是示意性示出針對相同cu中的兩塊、使用另一塊的合并信息來確定當(dāng)前塊的合并信息的示例的圖。
圖17到19是示意性示出在將合并候選塊限制為預(yù)定相鄰塊的情況下、使用另一塊的運動信息來確定當(dāng)前塊的運動信息的幾個示例的圖。
圖20是示意性描述根據(jù)本發(fā)明示范實施例的系統(tǒng)中的編碼器的操作的流程圖。
圖21是示意性描述根據(jù)本發(fā)明示范實施例的系統(tǒng)中的解碼器的操作的流程圖。
具體實施方式
其后,將參考附圖來詳細(xì)描述本發(fā)明的示范實施例。在描述本發(fā)明的示范實施例時,將不詳細(xì)描述公知功能或構(gòu)造,因為它們可不必要地使得本發(fā)明的理解模糊。
將理解的是,當(dāng)在本說明書中將元件簡單稱為“連接”或“耦接”到另一元件而非“直接連接”或“直接耦接”到另一元件時,該元件可以“直接連接”或“直接耦接”到另一元件、或者可以在其間插入其他元件的情況下連接或耦接到另一元件。此外,在本發(fā)明中,“包括”特定配置將被理解為,也可在本發(fā)明的技術(shù)思想的范圍或?qū)嵤├邪ǜ郊优渲谩?/p>
說明書中使用的術(shù)語“第一”、“第二”等可被用來描述各種組件,但是這些組件不應(yīng)被解釋為限于這些術(shù)語。這些術(shù)語僅用來區(qū)分一個組件與另一個組件。例如,“第一”組件可被稱為“第二”組件,并且“第二”組件也可被類似地稱為“第一”組件,而不脫離本發(fā)明的范圍。
此外,獨立示出本發(fā)明的實施例中示出的構(gòu)成部分,以便表示不同特性功能。由此,這不意味著,在單獨硬件的構(gòu)成單元或一個軟件中構(gòu)成每一構(gòu)成部分。換言之,為了方便,每一構(gòu)成部分包括每一枚舉的構(gòu)成部分。由此,每一構(gòu)成部分的至少兩個構(gòu)成部分可被組合以形成一個構(gòu)成部分,或者一個構(gòu)成部分可被劃分為多個構(gòu)成部分以執(zhí)行每一功能。如果不脫離本發(fā)明的精髓,其中組合每一構(gòu)成部分的實施例和其中劃分一個構(gòu)成部分的實施例也被包括在本發(fā)明的范圍中。
另外,一些構(gòu)件可以不是執(zhí)行本發(fā)明的必要功能的必要構(gòu)件,而是僅改進(jìn)其性能的選擇性構(gòu)件??赏ㄟ^僅包括用于實現(xiàn)本發(fā)明的精髓的必要構(gòu)成部分而排除在改進(jìn)性能中使用的構(gòu)件,來實現(xiàn)本發(fā)明。僅包括必要構(gòu)件而排除在僅改進(jìn)性能中使用的選擇性構(gòu)件的結(jié)構(gòu)也被包括在本發(fā)明的范圍中。
圖1是示出了根據(jù)本發(fā)明示范實施例的視頻編碼設(shè)備的配置的框圖。
參考圖1,視頻編碼設(shè)備100包括運動預(yù)測器110、運動補償器115、幀內(nèi)預(yù)測器120、減法器125、變換器130、量化器135、熵編碼器140、反量化器145、逆變換器150、加法器155、濾波器單元160、和解碼畫面緩沖器165。
視頻編碼設(shè)備100可按照幀內(nèi)模式或幀間模式來對輸入視頻執(zhí)行編碼,并輸出比特流。在幀內(nèi)模式的情況下,幀內(nèi)預(yù)測器120可執(zhí)行預(yù)測,而在幀間模式的情況下,運動預(yù)測器110、運動補償器115等可執(zhí)行預(yù)測。視頻編碼設(shè)備100可生成用于輸入視頻的輸入塊的預(yù)測塊,并然后編碼輸入塊和預(yù)測塊之間的差。
在幀內(nèi)模式的情況下,幀內(nèi)預(yù)測器120可使用與當(dāng)前塊鄰近的已編碼塊的像素值來執(zhí)行空間預(yù)測,以生成預(yù)測塊。
在幀間模式中,運動預(yù)測器110可在運動預(yù)測處理期間搜索與解碼畫面緩沖器165中存儲的參考畫面中的輸入塊最佳匹配的區(qū)域,以獲得運動向量。運動補償器115可使用該運動向量和解碼畫面緩沖器165中存儲的參考畫面來執(zhí)行運動補償,以生成預(yù)測塊。
減法器125可通過輸入塊和生成的預(yù)測塊之間的差來生成殘余塊。變換器130可對殘余塊執(zhí)行變換以輸出變換系數(shù)。殘余信號意味著原始信號和預(yù)測信號之間的差,其中變換原始信號和預(yù)測信號之間的差的形式的信號,或者其中變換和量化原始信號和預(yù)測信號之間的差的信號。在塊單元中,殘余信號可被稱為殘余塊。
量化器135可根據(jù)量化參數(shù)來對變換系數(shù)進(jìn)行量化,以輸出量化后的系數(shù)。
熵編碼器140可根據(jù)概率分布對與量化器135中計算的值對應(yīng)的碼元、在編碼處理期間計算的編碼參數(shù)值等進(jìn)行熵編碼,以輸出比特流。
當(dāng)應(yīng)用熵編碼時,可通過向具有高生成概率的碼元分配少數(shù)目比特并向具有低生成概率的碼元分配多數(shù)目比特,來改進(jìn)視頻編碼的壓縮性能。
關(guān)于熵編碼,可使用諸如上下文自適應(yīng)可變長度編碼(cavlc)、上下文自適應(yīng)二進(jìn)制算術(shù)編碼(cabac)等的編碼方法。例如,熵編碼器140可使用可變長度編碼/代碼(vlc)表來執(zhí)行熵編碼。熵編碼器140還可通過推導(dǎo)出目標(biāo)碼元的二進(jìn)制化方法和目標(biāo)碼元/二進(jìn)制文件(bin)的概率模型、并使用推導(dǎo)出的二進(jìn)制化方法和概率模型,來執(zhí)行熵編碼。
量化后的系數(shù)可在反量化器145中反量化并在逆變換器150中逆變換。反量化和逆變換后的系數(shù)可被生成為重構(gòu)的殘余塊,并且加法器155可使用預(yù)測塊和重構(gòu)的殘余塊來生成重構(gòu)的塊。
濾波器單元160可對重構(gòu)的塊或重構(gòu)的畫面施加解塊濾波器、樣本自適應(yīng)偏移(sao)、和自適應(yīng)環(huán)路濾波器(alf)中的至少一個。經(jīng)過濾波器單元160的重構(gòu)的塊可被存儲在解碼畫面緩沖器165中。
圖2是示出了根據(jù)本發(fā)明示范實施例的視頻解碼設(shè)備的配置的框圖。
參考圖2,視頻解碼設(shè)備200包括熵解碼器210、反量化器220、逆變換器230、幀內(nèi)預(yù)測器240、運動補償器250、濾波器單元260、解碼畫面緩沖器270、和加法器280。
視頻解碼設(shè)備200可接收從編碼器輸出的比特流,并按照幀內(nèi)模式或幀間模式執(zhí)行解碼以輸出重構(gòu)的畫面,即重構(gòu)畫面。在幀內(nèi)模式的情況下,幀內(nèi)預(yù)測器240可執(zhí)行預(yù)測,而在幀間模式的情況下,運動補償器150可執(zhí)行預(yù)測。視頻解碼設(shè)備200可從接收的比特流中獲得重構(gòu)的殘余塊,生成預(yù)測塊,并然后向預(yù)測塊添加重構(gòu)的殘余塊,以生成重構(gòu)的塊,即重構(gòu)塊。
熵解碼器210可根據(jù)概率分布對輸入比特流進(jìn)行熵解碼,以生成量化系數(shù)類型的碼元??蓪?yīng)于上述熵編碼方法來執(zhí)行熵解碼方法。
量化系數(shù)可在反量化器220中反量化并在逆變換器230中逆變換。量化系數(shù)可被反量化/逆變換以生成重構(gòu)的殘余塊。
在幀內(nèi)模式的情況下,幀內(nèi)預(yù)測器240可使用與當(dāng)前塊鄰近的已解碼塊的像素值,來執(zhí)行空間預(yù)測,以生成預(yù)測塊。在幀間模式的情況下,運動補償器250可使用運動向量和解碼畫面緩沖器270中存儲的參考畫面來執(zhí)行運動補償,以生成預(yù)測塊。
加法器280可基于重構(gòu)的殘余塊和預(yù)測塊來生成重構(gòu)的塊。濾波器單元260可向重構(gòu)的塊施加解塊濾波器、sa0和alf中的至少一個。濾波器單元260輸出重構(gòu)的畫面。重構(gòu)的畫面可被存儲在解碼畫面緩沖器270中,以用于畫面間預(yù)測。
其間,在對當(dāng)前塊執(zhí)行幀間預(yù)測的情況下,可使用諸如合并模式、跳躍模式等的預(yù)測模式。
其中,在合并模式中,當(dāng)前塊的運動信息可和與其鄰近的其他塊的運動信息合并。術(shù)語“合并”意味著在執(zhí)行幀間預(yù)測的情況下,將當(dāng)前塊的相鄰塊的運動信息用作當(dāng)前塊的運動信息。這里,為了便于解釋,可用作當(dāng)前塊的運動信息的相鄰塊的運動信息也可被表示為“運動信息候選”。另外,當(dāng)前塊的相鄰塊之中的具有運動信息候選的塊也可被表示為“(合并)候選塊”。此外,候選塊之中的具有要用作當(dāng)前塊的運動信息的運動信息的候選塊、或者運動信息候選之中的用作當(dāng)前塊的運動信息的運動信息候選可被表示為“合并目標(biāo)”。所以,要注意的是,盡管為了便于解釋可使用將當(dāng)前塊與候選塊之中所選擇的塊合并的表示,但是這意味著,將當(dāng)前塊的運動信息與候選塊的運動信息合并,使得將候選塊的運動信息候選用作當(dāng)前塊的運動信息,如本領(lǐng)域技術(shù)人員理解的那樣。
這里,運動信息可包括運動向量、參考畫面像素、和指示預(yù)測是單向預(yù)測還是雙向預(yù)測以及在單向預(yù)測中按照哪個方向執(zhí)行預(yù)測的幀間預(yù)測模式。即,幀間預(yù)測模式涉及使用參考畫面列表中的哪個參考畫面列表。另外,運動信息還可以包括該塊的分區(qū)信息。
兩個運動信息(例如,第一運動信息和第二運動信息)相同的含義在于,第一運動信息的運動向量、參考畫面、幀間預(yù)測模式與第二運動信息的運動向量、參考畫面、幀間預(yù)測模式相同。
當(dāng)對于當(dāng)前塊執(zhí)行合并時,編碼器可向解碼器傳送關(guān)于合并的信息。作為指示是否合并當(dāng)前塊的信息的關(guān)于合并的信息可包括merge_flag、作為指示當(dāng)前塊與哪一塊合并的信息的merge_idx等。
在執(zhí)行合并的情況下,從相鄰塊的分區(qū)信息或當(dāng)前塊的分區(qū)信息確認(rèn)當(dāng)前塊的合并可能性。可能基于該確認(rèn)結(jié)果,確定是否對當(dāng)前塊執(zhí)行合并、以及當(dāng)對當(dāng)前塊執(zhí)行合并時當(dāng)前塊與哪個相鄰塊合并。
為了向解碼器傳送諸如關(guān)于是否對當(dāng)前塊執(zhí)行合并的信息、當(dāng)前塊與哪個塊合并的信息等的關(guān)于合并的所有信息,需要處理大量信息,并且信息傳遞量大。
與此相關(guān),本說明書公開了一種在其中不需要傳送關(guān)于合并的信息的部分或全部的情況下、省略關(guān)于合并的信息的部分或全部的方法、以及一種通過改變合并目標(biāo)的優(yōu)先級來減少表示/傳送合并信息所需要的比特的方法。
本說明書中使用的術(shù)語可如下定義。
編碼單元(cu)是視頻編碼/解碼(視頻信息編碼/解碼)的基本單元。作為預(yù)測的基本單元的pu(預(yù)測單元)由pu分區(qū)配置。在幀間預(yù)測的情況下,每一pu分區(qū)包括運動信息。
merge_flag指示當(dāng)前塊的運動信息與相鄰塊的運動信息一致。例如,當(dāng)當(dāng)前塊的運動信息與相鄰塊的運動信息一致時,merge_flag具有邏輯值1,而當(dāng)當(dāng)前塊的運動信息與相鄰塊的運動信息不一致時,merge_flag具有邏輯值0。作為選擇,可能設(shè)置merge_flag值,以便當(dāng)當(dāng)前塊的運動信息與相鄰塊的運動信息一致時,具有邏輯值0,而當(dāng)當(dāng)前塊的運動信息與相鄰塊的運動信息不一致時,具有邏輯值1。
當(dāng)存在具有可合并的運動信息的兩個相鄰塊目標(biāo)(左邊塊、上邊塊)時,merge_left_flag指示和當(dāng)前塊具有相同運動信息的塊。例如,當(dāng)當(dāng)前塊的運動信息和左邊塊的運動信息相同時,merge_left_flag具有邏輯值1,而當(dāng)當(dāng)前塊的運動信息和左邊塊的運動信息不相同時(當(dāng)當(dāng)前塊的運動信息和上邊塊的運動信息一致時),merge_left_flag具有邏輯值0。作為選擇,可能設(shè)置merge_left_flag值,以便當(dāng)當(dāng)前塊的運動信息和左邊塊的運動信息相同時,具有邏輯值0,而當(dāng)當(dāng)前塊的運動信息和左邊塊的運動信息不相同時(當(dāng)當(dāng)前塊的運動信息和上邊塊的運動信息一致時),具有邏輯值1。
合并索引(其后,稱為“merge_idx”)指示合并候選列表中與當(dāng)前塊合并的候選的索引。當(dāng)不指示合并索引值時,可以推斷出,合并索引值具有“0”。
合并候選列表指示其中存儲運動信息的列表。這里,合并候選列表中存儲的運動信息可以是與當(dāng)前塊鄰近的相鄰塊的運動信息或者是參考畫面中與當(dāng)前塊并置的塊的運動信息。另外,合并候選列表中存儲的運動信息可以是通過組合在合并候選列表中已經(jīng)存在的運動信息而形成的新運動信息。
在本說明書中,塊意味著如上所述的cu、pu、pu分區(qū)、或宏塊,并包括幾個像素。所以,本領(lǐng)域技術(shù)人員可根據(jù)本說明書中描述的本發(fā)明的內(nèi)容而推斷出需要信息中的塊所表示的目標(biāo)、目標(biāo)處理等。
其后,將參考上述術(shù)語和附圖,來詳細(xì)描述用于省略關(guān)于合并的信息中的部分或全部的傳送的方法、以及用于改變合并目標(biāo)的優(yōu)先級的方法。
關(guān)于合并的信息包括指示是否合并當(dāng)前塊的信息(merge_flag)、當(dāng)作為可與當(dāng)前塊合并的相鄰塊的運動信息而存在左邊塊的運動信息和上邊塊的運動信息時指示當(dāng)前塊與哪個相鄰塊的運動信息合并的信息(merge_left_flag)、指示使用合并候選列表中的運動信息之中的哪個運動信息來合并當(dāng)前塊的信息merge_idx、合并候選列表等。
在關(guān)于合并的信息之中,當(dāng)施加合并時,merge_flag一直是必要信息。在關(guān)于合并的信息之中,merge_left_flag、merge_idx等不總是必要信息而可以是條件必要信息。
例如,僅當(dāng)作為可用于合并當(dāng)前塊的相鄰塊的運動信息而存在兩個不同的運動信息(位于當(dāng)前塊的左邊的塊的運動信息和位于當(dāng)前塊的上邊塊處的塊的運動信息)時,可使用merge_left_flag來指示當(dāng)前塊的運動信息與左邊塊的運動信息還是與上邊塊的運動信息一致。
另外,僅當(dāng)合并候選列表中存在的運動信息的數(shù)目為二或更多時,可使用merge_idx來指示使用哪個運動信息作為當(dāng)前塊的運動信息。
在其中執(zhí)行合并的情況下,如描述的那樣傳遞大量合并信息。另外,與其中對當(dāng)前cu執(zhí)行合并的情況相比,在其中對當(dāng)前pu執(zhí)行合并的情況下,需要更大量的合并信息。
在該情況下,當(dāng)可隱式推斷出合并信息的部分或全部而無需顯式傳遞全部合并信息時,可降低合并信息的傳送量。與此相關(guān),可使用以下兩種方法中的至少一種,來降低傳送信息量。
省略合并信息的部分或全部以降低信息量的方法-當(dāng)不存在將向當(dāng)前塊施加合并的可能性時,可省略合并信息的傳送。
改進(jìn)合并信息的編碼效率的方法-可通過根據(jù)塊的形狀和位置改變merge_left_flag的含義,來改進(jìn)熵編碼的性能。例如,可根據(jù)pu分區(qū)的形狀和pu的位置,來改變merge_left_flag的含義。另外,可通過根據(jù)塊的形狀和位置改變merge_idx的含義,來改進(jìn)熵編碼的性能。例如,可根據(jù)pu分區(qū)的形狀和pu的位置來改變merge_idx的含義。
圖3是示意性描述根據(jù)本發(fā)明示范實施例的系統(tǒng)中的編碼器和解碼器的與預(yù)測關(guān)聯(lián)的操作的示例的流程圖。
參考圖3,編碼器或解碼器首先獲得相鄰塊的運動信息(s310)。編碼器或解碼器可搜索當(dāng)前塊的相鄰塊之中的、具有可用來預(yù)測當(dāng)前塊的運動信息的運動信息的相鄰塊,由此獲得運動信息。另外,可預(yù)先確定當(dāng)前塊可使用其運動信息的相鄰塊的位置,并且僅可使用所確定的相鄰塊的運動信息來預(yù)測當(dāng)前塊的運動信息。
編碼器或解碼器確定被用作當(dāng)前塊的運動信息或可用來預(yù)測當(dāng)前塊的運動信息的、候選的運動信息的數(shù)目,并確定當(dāng)前塊將與運動信息候選合并的可能性(s320)。編碼器或解碼器確定可用來針對當(dāng)前塊的相鄰塊預(yù)測當(dāng)前塊的運動信息的相鄰塊的運動信息的數(shù)目。另外,編碼器或解碼器判斷將對當(dāng)前塊施加合并的可能性。
基于上述操作,編碼器確定當(dāng)前塊的合并,執(zhí)行合并,并編碼需要的合并信息,以將需要的合并信息傳送到解碼器。解碼器確定當(dāng)前塊的合并,并基于從編碼器接收的合并信息來如上所述執(zhí)行合并。
上述運動信息的獲得和確定、使用運動信息的當(dāng)前塊的合并等可在編碼器和解碼器中的特定模塊中執(zhí)行,諸如運動預(yù)測器、運動補償器等。
圖4是示意性描述根據(jù)本發(fā)明示范實施例的系統(tǒng)中的編碼器和解碼器的與預(yù)測關(guān)聯(lián)的操作的另一示例的流程圖。
參考圖4,編碼器或解碼器首先獲得相鄰塊的運動信息(s410)。編碼器或解碼器可搜索當(dāng)前塊的相鄰塊之中的、具有可用來預(yù)測當(dāng)前塊的運動信息的運動信息的相鄰塊,由此獲得運動信息。另外,可預(yù)先確定可用作候選塊的相鄰塊的位置,并且僅可使用所確定的相鄰塊的運動信息作為當(dāng)前塊的運動信息候選。
編碼器或解碼器確定當(dāng)前塊的運動信息的合并可能性(s420)。
基于上述操作,編碼器確定當(dāng)前塊的合并,執(zhí)行合并,并編碼需要的合并信息以將需要的合并信息傳送到解碼器。解碼器確定當(dāng)前塊的合并,并基于從編碼器接收的合并信息來如上所述執(zhí)行合并。
上述運動信息的獲得和確定、使用運動信息的當(dāng)前塊的合并等可在編碼器和解碼器中的特定模塊中執(zhí)行,諸如運動預(yù)測器、運動補償器等。
其間,參考圖3和4的上述合并方法可在塊單元中施加。所以,在確定是否向當(dāng)前塊施加合并之后,根據(jù)該確定執(zhí)行合并。例如,可向當(dāng)前cu或當(dāng)前pu施加合并。單個cu可被劃分為兩個pu或四個pu并然后編碼。作為選擇,可編碼cu本身。
圖5是示意性描述將單一編碼單元(cu)劃分為預(yù)測單元(pu)的示例的圖。
圖5a示意性示出了單一cu510。
圖5b示出了將單一編碼單元(cu)劃分為兩個pu的示例。例如,cu520可被劃分為兩個pu525和530,其每一個具有和cu520的寬度相同的寬度,并具有作為cu520的高度的一半的高度。另外,cu535可被劃分為兩個pu540和545,其每一個具有和cu535的高度相同的高度,并具有作為cu535的寬度的一半的寬度。
圖5c示出了將單一編碼單元(cu)劃分為四個pu的示例。例如,cu550可被劃分為四個pu555、560、565和570,其每一個具有作為cu550的寬度和高度的一半的寬度和高度。
圖6是示意性示出能夠從單一cu劃分的幾類pu的圖。
參考圖6,在其中編碼單一cu塊自身的情況下的pu610由“part_2nx2n”表示。這里,n指示大于0的整數(shù),而作為像素的數(shù)目的2n指示對應(yīng)塊的寬度和/或高度。
當(dāng)將單一cu編碼為兩個pu時,它可根據(jù)pu的形狀被劃分為作為“part_2nxn”的兩個pu620、作為“part_nx2n”的兩個pu630、作為“part_2nxnu”的兩個pu650、作為“part_2nxnd”的兩個pu660、作為“part_nlx2n”的兩個pu670、作為“part_nrx2n”的兩個pu680等。這里,u、d、l和r中的每一個是用來代替n的表達(dá),以便區(qū)分非對稱形狀和對稱形狀。
當(dāng)將單一cu編碼為四個pu時,其可被劃分為作為“part_nxn”的四個pu640。
其間,可考慮根據(jù)其中將cu劃分為pu的如上所述分區(qū)形狀來確定當(dāng)前塊的合并目標(biāo)的方法。
圖7是示意性描述從cu劃分的兩個pu的合并目標(biāo)的圖。作為示例在圖7中示出了其中將當(dāng)前cu700劃分為兩個pu710和720以及將兩個左邊塊740和750與單一上邊塊730表示為當(dāng)前塊700的鄰近塊的情況。
在圖7的示例中,可從相鄰塊獲得的運動信息的數(shù)目可以是二、一或零。
在與其中所有相鄰塊730、740和750是幀內(nèi)預(yù)測塊的情況對應(yīng)的其中可以不獲得運動信息的情況下,可從周圍塊獲得的可用運動信息的數(shù)目是0。在該情況下,可以不施加合并,以便預(yù)測當(dāng)前塊。所以,不需要將合并信息傳送到解碼器。
其中可從相鄰塊獲得的運動信息的數(shù)目是1的情況對應(yīng)于其中左邊塊740和750與上邊塊730中的任一個是幀內(nèi)預(yù)測塊的情況。由于可以不從幀內(nèi)預(yù)測塊獲得運動信息,所以可用運動信息成為一。所以,需要指示是否執(zhí)行合并的merge_flag作為該合并信息。當(dāng)對當(dāng)前塊執(zhí)行合并時,可用作當(dāng)前塊的運動信息的運動信息僅為一,使得不需要單獨指示哪個運動信息成為合并目標(biāo)。所以,不需要使用或傳送諸如merge_idx、merge_left_flag等的其他信息。
作為其中可從相鄰塊獲得的運動信息的數(shù)目是2的情況,可考慮其中獲得左邊塊740和750之一的運動信息以及上邊塊730的運動信息的情況。在該情況下,當(dāng)兩個獲得的運動信息彼此相同時,可執(zhí)行與其中可從相鄰塊獲得的運動信息的數(shù)目為1的情況的處理相同的處理。當(dāng)從相鄰塊獲得的兩個運動信息不同時,可需要諸如merge_left_flag等的信息以及merge_flag作為合并信息。
其間,如圖7中所示,可考慮用于僅從相鄰區(qū)域中所確定的塊獲得要用來合并當(dāng)前塊的運動信息(候選運動信息)、而不是從當(dāng)前塊700的整個左邊區(qū)域740和750與整個上邊區(qū)域730獲得成為合并目標(biāo)的運動信息的方法。
圖8是示意性示出從確定位置的塊獲得候選運動信息的方法的圖。參考圖8,可通過從上邊相鄰區(qū)域中的左上塊e、上邊塊b、和右上塊c以及左邊相鄰區(qū)域中的左邊塊a和左下塊d獲得候選運動信息,來合并當(dāng)前塊x。另外,也可通過從并置塊x’中的預(yù)定塊m以及并置塊x’的相鄰塊h獲得候選運動信息,來合并當(dāng)前塊x。這里,并置塊可以是參考畫面中的塊。
當(dāng)將所確定的位置的相鄰塊用作用于當(dāng)前塊的合并的候選塊時,編碼器可配置要在合并模式中使用的合并候選列表,并基于合并候選列表的運動信息候選來設(shè)置當(dāng)前塊的運動信息。
例如,編碼器可從當(dāng)前塊(pu或cu)的相鄰塊設(shè)置運動信息候選。這里,編碼器可設(shè)置用于使用時間運動信息候選的參考索引,并將按照時間推斷的運動信息設(shè)置為合并運動信息。這里,按照時間推斷的運動信息意味著并置塊的運動信息。
為了配置合并候選列表,判斷是否按照預(yù)定序列使用對應(yīng)塊的運動信息來合并當(dāng)前塊,例如,圖8中的a→b→c→d→e→相對于相鄰塊a、b、c、d和e的并置塊、以及并置候選塊的序列。當(dāng)可使用對應(yīng)塊的運動信息來合并當(dāng)前塊時,在合并候選列表中輸入對應(yīng)塊的運動信息。
當(dāng)在合并候選列表中存在相同運動信息時,在合并候選列表中僅剩余相同運動信息中的一個。
合并候選列表中的運動信息的數(shù)目可被設(shè)置為預(yù)定數(shù)目。例如,合并候選列表中的運動信息的數(shù)目可被設(shè)置為最大5。
當(dāng)當(dāng)前視頻是b視頻或者當(dāng)前片段是b片段時,可設(shè)置雙向合并候選或者可設(shè)置未伸縮的雙向合并候選。
另外,可設(shè)置零(0,0)運動信息作為合并候選。
在合并候選列表中,merge_idx所指示的運動信息可被設(shè)置為當(dāng)前塊的運動信息。
將更詳細(xì)地描述從當(dāng)前塊的相鄰塊設(shè)置運動信息候選的方法。為了設(shè)置運動信息候選,輸入當(dāng)前塊的左上位置、關(guān)于當(dāng)前塊的寬度和高度的信息、以及指示當(dāng)前塊的信息。這里,當(dāng)前塊可以是pu。其后,為了便于解釋,將作為示例描述其中當(dāng)前塊是pu的情況。
當(dāng)前pu的左上位置可給定為(xp,yp)。指示當(dāng)前pu的高度和寬度的變量可由(npsw,npsh)表示。另外,指示當(dāng)前cu中存在的pu分區(qū)之中的當(dāng)前pu的索引可由partidx表示。
當(dāng)將單一cu劃分為兩個pu時,每一pu的partidx可具有值“0”或“1”。例如,左邊pu或上邊pu的partidx的值可被設(shè)置為0,而右邊pu或下邊pu的partidx的值可被設(shè)置為1。當(dāng)將單一cu劃分為四個pu時,每一pu的partidx可具有值“0”、“1”、“2”或“3”。例如,左上pu的partidx的值可被設(shè)置為0,右上pu的partidx的值可被設(shè)置為1,左下pu的partidx的值可被設(shè)置為2,而右下pu的partidx的值可被設(shè)置為3。
在設(shè)置運動信息候選的操作中,可輸出以下四個信息:指示相鄰pu是否可用的變量(availableflagn)、相鄰pu的參考索引(refidxlxn)、指示相鄰pu的預(yù)測列表是否可用的變量(predflaglxn)、以及用于相鄰pu的運動信息(例如,運動向量,mvlxn)。這里,n是指示圖8中的相鄰pua、b、c、d和e中的任一個的值,而變量或索引中的每一個指示關(guān)于由n指示的pu的信息。這里,x可由0或1替換。例如,當(dāng)x為0時,上述四個信息的三個信息是mvl0n、refidxl0n和predflagl0n,這意味著l0運動信息。另外,當(dāng)x為1時,上述四個信息的三個信息是mvl1n、refidxl1n和predflagl1n,這意味著l1運動信息。這里,l0意味著參考視頻列表0,而l1意味著參考視頻列表1。
為了判斷是否可將當(dāng)前塊和當(dāng)前pu的相鄰pu(圖8的空間pua、b、c、d和e)用作合并運動候選,將執(zhí)行具有以下序列的處理。其后,n可由圖8的a、b、c、d和e替換,并且(xn,yn)可被替換為(xp-1,yp+npsh)、(xp-1,yp+npsh-1)、(xp+npsw,yp-1)、(xp+npsw-1,yp-1)和(xp-1,yp-1)。
當(dāng)以下條件中的任一個是“真”時,availableflagn可被設(shè)置為“0”而mvlxn可被設(shè)置為“0,0”。
(1)n為e,并且availableflagd+availableflaga+availableflagc+availableflagb為“4”。
(2)位于[xn,yn]處的pu可以不使用,或者已在幀內(nèi)模式中編碼。
(3)當(dāng)前pu是“part_2nxn”、“part_2nxnu”或“part_2nxnd”,partidx是“1”,而其partidx對應(yīng)于“0”的pu(xp,yp-1)和相鄰pu(xn,yn)在以下條件:(a)到(c)中具有相同運動信息。
(a)mvlx[xp,yp-1]==mvlx[xn,yn]
(b)refidxlx[xp,yp-1]==refidxlx[xn,yn]
(c)predflaglx[xp,yp-1]==predflaglx[xn,yn]
(4)當(dāng)前pu是“part_nx2n”、“part_nlx2n”或“part_nrx2n”,partidx是“1”,而其partidx對應(yīng)于“0”的pu(xp-1,yp)和相鄰pu(xn,yn)在以下條件:(a)到(c)中具有相同運動信息。
(a)mvlx[xp-1,yp]==mvlx[xn,yn]
(b)refidxlx[xp-1,yp]==refidxlx[xn,yn]
(c)predflaglx[xp-1,yp]==predflaglx[xn,yn]
(5)當(dāng)前pu是“part_nxn”,partidx是“3”,其partidx對應(yīng)于2的pu(xp-1,yp)與其partidx對應(yīng)于“0”的pu(xp-1,yp-1)在以下條件:(a)到(c)中具有相同運動信息,
(a)mvlx[xp-1,yp]==mvlx[xp-1,yp-1]
(b)refidxlx[xp-1,yp]==refidxlx[xp-1,yp-1]
(c)predflaglx[xp-1,yp]==predflaglx[xp-1,yp-1]
其partidx對應(yīng)于1的pu(xp,yp-1)與相鄰pu(xp,yp)在以下條件:(a)到(c)中具有相同運動信息。
(a)mvlx[xp,yp-1]==mvlx[xn,yn]
(b)refidxlx[xp,yp-1]==refidxlx[xn,yn]
(c)predflaglx[xp,yp-1]==predflaglx[xn,yn]
(5)當(dāng)前pu是“part_nxn”,partidx是“3”,其partidx對應(yīng)于1的pu(xp,yp-1)和其partidx對應(yīng)于“0”的pu(xp-1,yp-1)在以下條件:(a)到(c)中具有相同運動信息,
(a)mvlx[xp,yp-1]==mvlx[xp-1,yp-1]
(b)refidxlx[xp,yp-1]==refidxlx[xp-1,yp-1]
(c)predflaglx[xp,yp-1]==predflaglx[xp-1,yp-1]
其partidx對應(yīng)于2的pu(xp-1,yp)和相鄰pu(xp,yp)在以下條件:(a)到(c)中具有相同運動信息。
(a)mvlx[xp-1,yp]==mvlx[xn,yn]
(b)refidxlx[xp-1,yp]==refidxlx[xn,yn]
(c)predflaglx[xp-1,yp]==predflaglx[xn,yn]
當(dāng)上述條件(1)到5不為“真”時,availableflagn可被設(shè)置為“1”,并且mvlxn、refidxlxn和predflaglxn中的每一個可被設(shè)置為mvlx[xn,yn]、refidxlx[xn,yn]和predflaglx[xn,yn]。
圖9是示意性示出向pu施加的合并的概念的圖。
參考圖9,可以看出,從單一cu劃分具有參考圖6描述的分區(qū)形式的pu。可以如圖9中示出的那樣合并所述pu中的每一個。例如,在part_2nx2n的情況下,所有塊可按照幀間模式預(yù)測和編碼,或者可通過向其施加合并來編碼。這里,幀間模式意味著其中通過幀間預(yù)測模式中的除了合并模式之外的剩余方法來執(zhí)行幀間預(yù)測的模式。
另外,即使在其中將單一cu劃分為多個pu的剩余情況下,也將合并施加到每一分區(qū),即,從cu劃分的每一塊,如示出的那樣。這里,即使在將cu劃分為pu的情況下,也可按照示出的cu級別執(zhí)行合并。
如上所述,可基于從cu劃分的pu的分區(qū)形式,來確定可用于合并的候選運動信息的數(shù)目、以及是否可使用合并。
更具體地,在其中在相同cu中存在當(dāng)前塊和相鄰塊的情況下,不將當(dāng)前塊的運動信息與相鄰塊的運動信息合并。這里,在相同cu中存在當(dāng)前塊和相鄰塊的含義在于,當(dāng)前塊和相鄰塊是在單一cu中存在的兩個分區(qū)。
當(dāng)在相同cu中存在兩個pu(第一pu(partidx=0)和第二pu(partidx=1))時,第一和第二pu不具有相同運動信息。所以,不在第一和第二pu之間施加合并。即,可允許不將第一pu的運動信息和與第一pu的運動信息相同的運動信息添加到第二pu的合并候選列表。
例如,如圖5b中所示,當(dāng)將單一cu劃分為兩個pu時,這兩個pu具有不同的運動信息。在圖5b的情況下,當(dāng)即使從單一cu劃分兩個pu、這兩個pu也具有相同運動信息時,對單一cu而不是兩個pu執(zhí)行編碼處理可更有效。所以,當(dāng)在單一cu中存在兩個pu時,這兩個pu具有不同運動信息。
當(dāng)將cu劃分為四個分區(qū)時,例如,當(dāng)將cu劃分為四個pu時,在相應(yīng)pu之間不具有相同運動信息的pu之間,不施加合并。
例如,如圖5c中所示,當(dāng)將單一cu劃分為四個pu(第一pu(partidx=0)、第二pu(partidx=1)、第三pu(partidx=2)和第四pu(partidx=3))時,所有四個pu可以不具有相同運動信息。如果在單一cu中存在的四個pu具有相同運動信息,則在cu級別執(zhí)行編碼更有效,無需如上所述將cu劃分為pu。所以,當(dāng)將單一cu劃分為四個pu時,這四個pu中的至少一個具有不同運動信息。即,當(dāng)?shù)谝坏降谌齪u全部具有相同運動信息時,可以允許不將和對應(yīng)運動信息相同的運動信息添加到第四pu的合并候選列表。
圖10是示意性描述在其中將cu劃分為四個pu的情況下的每一pu的運動信息的圖。參考圖10,將單一cu劃分為四個pu1010、1020、1030和1040。
在圖10中,當(dāng)pu1010的運動信息與pu1030的運動信息相同時,pu1040可以不具有與pu1020的運動信息相同的運動信息。如果pu1010的運動信息與pu1030的運動信息相同并且pu1040的運動信息與pu1020的運動信息相同,則更有效的是,對劃分為pu1010和pu1030的塊以及劃分為pu1020和pu1040的塊的pu分區(qū)(而不是四個pu)進(jìn)行編碼。所以,在圖10中,當(dāng)pu1010的運動信息與pu1030的運動信息相同時,pu1040需要具有與pu1020的運動信息不同的運動信息。即,可以允許不將pu1020的運動信息添加到pu1040的合并候選列表。
類似地,在圖10中,當(dāng)pu1010的運動信息與pu1020的運動信息相同時,pu1040可以不具有與pu1030的運動信息相同的運動信息。如果pu1010的運動信息與pu1020的運動信息相同并且pu1040的運動信息與pu1030的運動信息相同,則更有效的是,對劃分為pu1010和pu1020的塊以及劃分為pu1030和pu1040的塊的pu分區(qū)(而不是四個pu)進(jìn)行編碼。所以,在圖10中,當(dāng)pu1010的運動信息與pu1020的運動信息相同時,pu1040需要具有與pu1030的運動信息不同的運動信息。即,可以允許不將pu1030的運動信息添加到pu1040的合并候選列表。
圖11是示意性示出參考圖10描述的從cu劃分的pu之間的關(guān)系的圖。
參考11a,將cu1100劃分為四個pu1到4。然而,如果pu1和pu3具有相同運動信息并且pu2和pu4具有相同運動信息,則考慮到編碼效率,更有效的是,如上所述將cu1100劃分為兩個pu1110和1120。
參考圖11b,將cu1130劃分為四個pu1到4。然而,如果pu1和pu3具有相同運動信息而pu2和pu4具有相同運動信息,則考慮到編碼效率,更有效的是,如上所述將cu1130劃分為兩個pu1140和1150。
此外,參考圖11c,將cu1160劃分為四個pu1到4。然而,如果pu1到4具有相同運動信息,則考慮到編碼效率,更有效的是,對單一cu1160(即,單一pu1170)執(zhí)行編碼。
如上所述,由于從單一cu劃分的pu具有不同運動信息,所以可能確定使用不同運動信息執(zhí)行合并所需的信息量。即,當(dāng)將單一cu劃分為兩個pu時,相應(yīng)pu分區(qū)具有不同運動信息。換言之,兩個pu分區(qū)(其partidx為0的pu分區(qū)和其partidx為1的pu分區(qū))可以不具有相同運動信息。所以,可以允許不將與其partidx為0的pu分區(qū)的運動信息相同的運動信息添加到其partidx為1的pu分區(qū)的合并候選列表。
圖12是示意性示出當(dāng)將單一cu1200劃分為兩個pu1210和1220時、當(dāng)前pu的相鄰塊之中的、可成為當(dāng)前塊的合并候選塊的塊的圖。參考圖12,如上所述,當(dāng)假設(shè)當(dāng)前pu1220是其partidx為1的pu分區(qū)時,可以不使用作為當(dāng)前pu1220的相鄰塊的a1、b1、b0、a0和b2的運動信息之中的、和其partidx為0的左邊pu1210的運動信息具有相同運動信息的塊的運動信息作為當(dāng)前pu1220的運動信息候選。
所以,可以允許不將與其partidx為0的pu分區(qū)的運動信息相同的運動信息添加到其partidx為1的pu分區(qū)的合并候選列表。例如,當(dāng)b1的運動信息與其partidx為0的pu分區(qū)的運動信息相同時,不將b1的運動信息添加到其partidx為0的pu分區(qū)的合并候選列表。
表1示出了根據(jù)本發(fā)明示范實施例的系統(tǒng)中的用于確定合并的信息量的方法的示例。
[表1]
更具體地,表1示出了針對從單一cu劃分的pu是否可具有相同運動信息、基于上述內(nèi)容、確定在其中向當(dāng)前塊施加合并的情況下要傳送的信息的種類和數(shù)量的示例。
在表1的示例中,當(dāng)相鄰塊是在其中存在當(dāng)前塊(例如,pu)的cu中存在的塊時,不使用對應(yīng)相鄰塊作為當(dāng)前塊的合并候選。即,不使用對應(yīng)相鄰塊的運動信息作為當(dāng)前塊的合并候選,使得不使用對應(yīng)相鄰塊的運動信息作為當(dāng)前塊的運動信息。這里,具有當(dāng)前塊的運動信息所合并到的運動信息的候選塊可基于上述當(dāng)前塊的分區(qū)信息來確定。
圖13是示出在其中相鄰塊和當(dāng)前塊是相同cu中的不同塊的情況下、合并當(dāng)前塊的示例的圖。在圖13中,將作為示例來描述其中當(dāng)前塊和相鄰塊是相同cu中的不同pu的情況。
參考圖13,作為其中在相同cu中存在兩個pu的情況1310,存在作為part_2nxn的pu的情況、作為part_nx2n的pu的情況、作為part_2nxnu的pu的情況、作為part_2nxnd的pu的情況、作為part_nlx2n的pu的情況、以及作為part_nrx2n的pu的情況。
成為每一pu的候選塊的相鄰塊可從cu中的pu的分區(qū)信息來確定。例如,在作為part_2nxn的pu的情況下,上邊pu可與上邊相鄰塊合并,而下邊pu可與左邊相鄰塊合并。在作為part_nx2n的pu的情況下,左邊pu可與左邊相鄰塊合并,而右邊pu可與上邊相鄰塊合并。在作為part_2nxnu的pu的情況下,上邊pu可與上邊相鄰塊合并,而下邊pu可與左邊相鄰塊合并。在作為part_2nxnd的pu的情況下,上邊pu可與上邊相鄰塊合并,而下邊pu可與左邊相鄰塊合并。在作為part_nlx2n的pu的情況下,左邊pu可與左邊相鄰塊合并,而右邊pu可與上邊相鄰塊合并。在作為part_nrx2n的pu的情況下,左邊pu可與左邊相鄰塊合并,而右邊pu可與上邊相鄰塊合并。
確定是否對相同cu中的每一pu執(zhí)行合并??赏ㄟ^merge_flag來指示關(guān)于是否對pu執(zhí)行合并的信息。是否對pu執(zhí)行合并可通過編碼器或解碼器中的預(yù)定模塊(例如,運動預(yù)測器)來確定。當(dāng)對pu執(zhí)行合并時,合并的目標(biāo)塊可通過上述cu中的pu的分區(qū)信息來確定。
在圖13的情況下,當(dāng)從cu中的pu的分區(qū)信息來判斷合并的目標(biāo)塊時,由于存在用于合并的pu的單一候選塊,所以即使在其中對pu執(zhí)行合并的情況下,也不需要傳送諸如指示要合并的候選塊的merge_left_flag等的信息。解碼器可基于當(dāng)前cu的分區(qū)信息來指定當(dāng)前塊的合并目標(biāo)。
然而,在圖13中,對于作為part_2nx2n的pu以及作為part_nxn的pu,將關(guān)于合并的信息(例如,關(guān)于合并目標(biāo)的信息)傳送到解碼器。
圖14是示出在其中相鄰塊和當(dāng)前塊是相同cu中的不同塊的情況下、合并當(dāng)前塊的另一示例的圖。在圖14中,將作為示例來描述其中當(dāng)前塊和相鄰塊是相同cu中的不同pu的情況。
在與圖13的示例不同的圖14的示例中,不對作為part_2nx2n的pu以及作為part_nxn的pu施加合并,由此使得可能降低復(fù)雜度和信息的傳送量。
即使在圖14的示例中,在其中在相同cu中存在兩個pu的情況1410中,即,如示出的,作為part_2nxn的pu的情況、作為part_nx2n的pu的情況、作為part_2nxnu的pu的情況、作為part_2nxnd的pu的情況、作為part_nlx2n的pu的情況、以及作為part_nrx2的pu的情況,可能基于cu的分區(qū)信息來確定要用作pu的運動信息的運動信息候選,與圖13類似。
圖15是示出在其中相鄰塊和當(dāng)前塊是相同cu中的不同塊的情況下、合并當(dāng)前塊的另一示例的圖。在圖15中,將作為示例來描述其中當(dāng)前塊和相鄰塊是相同cu中的不同pu、并且在cu單元中執(zhí)行合并的情況。
參考圖15,在cu單元中的合并的情況下,可對于每一pu分區(qū)考慮兩個合并類型(part_2nx2n、part_nxn、part_2nxn、part_nx2n、part_2nxnu、part_2nxnd、part_nlx2n和part_nrx2n)。在圖15的情況下,可按照與圖13和14的示例相同的方案,來確定根據(jù)cu中的pu的分區(qū)的候選塊。
在一般預(yù)測模式的情況下,當(dāng)前cu可被劃分為pu單元(可變塊尺寸)并然后預(yù)測。然而,在cu單元中執(zhí)行合并的情況下,通過merge_flag來確定是否在cu單元中執(zhí)行合并,并且通過對應(yīng)cu的每一pu中的對應(yīng)cu的分區(qū)信息,來確定關(guān)于將對其執(zhí)行合并的相鄰塊。這里,僅在cu單元中傳送單一merge_flag。在其中確定在cu單元中執(zhí)行合并的情況下,對于cu中的所有pu執(zhí)行合并。在其中確定不在cu單元中執(zhí)行合并的情況下,不對于cu中的所有pu執(zhí)行合并,而是執(zhí)行一般編碼方法(除了合并之外的幀間預(yù)測)。
在cu單元中的合并的情況下,不對于對應(yīng)cu和該cu中的pu傳送merge_left_flag。解碼器可基于cu中的pu的分區(qū)信息,來確定要在cu中的每一pu上合并的相鄰塊。
在作為part_2nx2n和part_nxn的pu的情況下,可向解碼器傳送合并信息,并且解碼器可基于接收的合并信息來執(zhí)行合并。
其間,當(dāng)在單一cu中存在四個pu、四個pu之一是當(dāng)前塊、并且四個pu中的一些具有相同運動信息時,需要考慮先前pu(當(dāng)前cu中的另一pu)的合并信息以及當(dāng)前pu的合并信息,以便確定當(dāng)前塊的合并目標(biāo)。
如上所述,當(dāng)將cu劃分為四個pu時,關(guān)于四個pu的所有運動信息可以不相同。所以,當(dāng)四個pu中的一些具有相同運動信息時,需要考慮先前pu分區(qū)的合并信息以及當(dāng)前pu分區(qū)的合并信息,以便確定當(dāng)前塊的合并目標(biāo)。
參考圖10,pu1010、pu1020和pu1030彼此合并,pu1040可以不與pu1010、pu1020和pu1030合并。即,pu1040可以不與相鄰塊合并,并且即使不傳送關(guān)于pu1040的合并信息,也可從解碼器判斷出pu1040可以不與pu1010、pu1020和pu1030合并。另外,可能使用當(dāng)前塊所屬的cu(當(dāng)前cu)的分區(qū)信息(例如,pu的分區(qū)信息)以及相鄰塊的分區(qū)信息,來確定當(dāng)前塊的合并目標(biāo)。
圖16是示意性描述針對相同cu中的兩塊(例如,pu)、使用另一塊的合并信息來確定當(dāng)前塊的合并信息的示例的圖。
在其中在相同cu中存在至少兩個pu的情況下,當(dāng)對第二pu之后的pu的合并信息進(jìn)行編碼時,可以使用同一cu中先前編碼的pu的合并信息。這里,第二塊之后的塊(例如,pu)可以是右邊pu或下邊pu,即,在其中將當(dāng)前pu劃分為諸如part_2nxn或part_n_2n的兩個pu的情況下其partidx為1的pu。在其中當(dāng)前pu是part_nxn的情況下,具有partidx值1、2或3的pu可以是第二pu之后的pu。
例如,如圖16a中所示,在其中將cu1300中的兩個pu1610和1620的一個1610(partidx=0)與左邊塊1630合并的情況下,不向當(dāng)前塊1620(partidx=1)施加合并。pu1610與左邊塊1630合并的意義在于,pu1610的運動信息與左邊塊130的運動信息相同。所以,當(dāng)前塊1620的運動信息與上述左邊塊1630的運動信息不同,并且當(dāng)前塊1620可以不與左邊塊1630合并。
另外,如圖16a所示,在其中cu1600中的兩個pu1610和1620之一1610(partidx=0)與左邊塊1630合并的情況下,可以不將左邊塊1630的運動信息添加到當(dāng)前塊1620(partidx=1)的合并候選列表。pu1610與左邊塊1630合并的含義在于,pu1610的運動信息與左邊塊1630的運動信息相同。所以,當(dāng)前塊1620的運動信息與上述左邊塊1630的運動信息不同,并且當(dāng)前塊1620可以不與左邊塊1630合并。
此外,在圖16b的示例中,在其中cu1640中的兩個pu1650和1660之一1650與左邊塊1670合并的情況下,當(dāng)前塊1660可與其合并的相鄰塊成為左邊塊1680。在該情況下,當(dāng)前塊1660可合并的空間目標(biāo)僅為左邊塊1680。所以,即使存在兩個相鄰塊,編碼器可向解碼器簡單傳遞僅merge_flag,而不通過merge_left_flag來指示合并目標(biāo)。
在該情況下,當(dāng)接收的merge_flag指示合并當(dāng)前塊1660時,解碼器可確認(rèn)相同cu中的另一塊1650的合并信息。當(dāng)確認(rèn)另一塊1650與左邊塊1670合并時,即使不存在指示當(dāng)前塊1660的合并目標(biāo)的信息(例如,merge_left_flag),也可規(guī)定當(dāng)前塊1660的合并目標(biāo)。
其間,如上所述,可將當(dāng)前塊的相鄰塊之中的特定位置的塊預(yù)先確定為當(dāng)前塊的合并候選塊,并且可使用合并候選塊的運動信息來預(yù)測當(dāng)前塊的運動信息。
圖17是示意性示出在將合并候選塊限制為預(yù)定相鄰塊的情況下、使用另一塊的運動信息來確定當(dāng)前塊的運動信息的示例的圖。圖17作為示例示出了其中在當(dāng)前cu1700中存在兩個塊1705和1710的情況。在圖17中,兩個塊1705和1710可以是作為part_nx2n、part_nlx2n或part_nrx2n的塊,并且是pu。
如上所述,用于當(dāng)前塊的空間合并候選可以是位于當(dāng)前塊的上邊部分處的預(yù)定相鄰塊以及位于當(dāng)前塊的左邊的預(yù)定相鄰塊。
例如,在其中合并塊1705的情況下,如圖8中所示,位于塊1705的左上部分處的相鄰塊1715、位于塊1705的上邊部分處的相鄰塊1720、位于塊1705的右上部分處的相鄰塊1725、位于塊1705的左邊的相鄰塊1740、以及位于塊1705的左下部分處的相鄰塊1745可成為塊1705的空間合并候選塊。
如參考圖16描述的,可使用另一塊的合并信息以針對當(dāng)前cu中的塊(例如,pu)之中的第二塊之后的塊,來確定對應(yīng)塊(當(dāng)前塊)的合并信息。
例如,在圖17中,當(dāng)假設(shè)塊1710是當(dāng)前塊時,可使用另一塊1705的合并信息來確定當(dāng)前塊1710的合并信息。在圖17中,位于當(dāng)前塊1710的左上部分處的相鄰塊1720、位于當(dāng)前塊的上邊部分處的相鄰塊1730、位于當(dāng)前塊的右上部分處的相鄰塊1735、位于當(dāng)前塊的左邊的相鄰塊1750、以及位于當(dāng)前塊的左下部分處的相鄰塊1755可成為當(dāng)前塊1710的空間合并候選塊。
這里,與相同cu1700中的另一塊1705合并的塊可以不成為當(dāng)前塊的合并候選塊。所以,當(dāng)圖17中的塊1705與相鄰塊1720合并時,從當(dāng)前塊1710的合并候選塊中排除相鄰塊1720。可通過基于另一塊1705與相鄰塊1720合并的信息,從當(dāng)前塊1710的合并候選塊中排除相鄰塊1720,來生成關(guān)于當(dāng)前塊1710的合并信息(例如,merge_idx)。
圖18是示意性示出在將合并候選塊限制為預(yù)定相鄰塊的情況下、使用另一塊的運動信息來確定當(dāng)前塊的運動信息的另一示例的圖。圖18作為示例示出了其中在當(dāng)前cu1800中存在兩個塊1800和1805的情況。在圖18中,兩個塊1805和1810可以是作為part_2nxn、part_2nxnn或part_2nxnd的塊,并且是pu。
當(dāng)在圖18的示例中合并塊1805時,塊1805的相鄰塊之中的塊1815、1820、1825、1830和1835可以成為塊1805的空間合并候選塊,如參考圖8描述的。
在圖18中,當(dāng)假設(shè)塊1810是當(dāng)前塊時,可使用另一塊1805的合并信息來確定當(dāng)前塊1810的合并信息。在圖18中,位于當(dāng)前塊1810的左上部分處的相鄰塊1830、位于當(dāng)前塊的上邊部分處的相鄰塊1840、位于當(dāng)前塊的右上部分處的相鄰塊1845、位于當(dāng)前塊的左邊的相鄰塊1850、以及位于當(dāng)前塊的左下部分處的相鄰塊1855可成為當(dāng)前塊1810的空間合并候選塊。
這里,與相同cu1800中的另一塊1805合并的塊可以不成為當(dāng)前塊1810的合并候選塊。所以,當(dāng)圖18中的塊1805與相鄰塊1830合并時,從當(dāng)前塊1810的合并候選塊中排除相鄰塊1830。可通過基于另一塊1805與相鄰塊1830合并的信息,從當(dāng)前塊1810的合并候選塊中排除相鄰塊1830,來生成關(guān)于當(dāng)前塊1810的合并信息(例如,merge_idx)。
圖19是示意性示出在將合并候選塊限制為預(yù)定相鄰塊的情況下、使用另一塊的運動信息來確定當(dāng)前塊的運動信息的另一示例的圖。圖19作為示例示出了其中在當(dāng)前cu1900中存在四個塊1905、1910、1915和1920的情況。在圖19中,四個塊1905、1910、1915和1920可以是作為part_nxn的塊,并且可以是pu。
當(dāng)在圖19的示例中合并塊1905時,塊1905的空間相鄰塊之中的塊1925、1930、1935、1950和1955可以成為塊1905的合并候選塊,如參考圖8描述的。當(dāng)合并塊1910時,塊1910的空間相鄰塊之中的塊1930、1940、1945、1970和2000可以成為塊1910的合并候選塊。另外,當(dāng)合并塊1915時,塊1915的空間相鄰塊之中的塊1950、1970、1975、1960和1965可以成為塊1915的合并候選塊。當(dāng)合并塊1920時,塊1920的空間相鄰塊之中的塊1970、1980、1985、1990和1995可以成為塊1920的合并候選塊。其中,在對對應(yīng)塊進(jìn)行解碼的情況下,塊1985和塊1995可以成為塊1920的空間合并候選塊。
也在圖19中,可使用另一塊的合并信息來確定當(dāng)前塊的合并信息。
在圖19中,當(dāng)假設(shè)塊1920是當(dāng)前塊時,在其中如同圖10的情況那樣合并塊1905、塊1910和塊1915的情況下,可使用塊1905、塊1910和塊1915的合并信息來確定當(dāng)前塊1920的合并信息。例如,可以考慮其中塊1905和塊1910與相鄰塊1930合并而塊1915與相鄰塊1970或相鄰塊1975合并的情況。在該情況下,相同cu1900中的三個不同塊1905、1910和1915具有相同運動信息。所以,當(dāng)前塊1920可以不與相鄰塊1970、1980和1990合并,而可與具有與塊1905、1910和1915的運動信息不同的運動信息的相鄰塊1995和相鄰塊1985之一合并。其中,在解碼對應(yīng)塊的情況下,塊1985和塊1995可成為空間合并候選塊。
在該情況下,由于可與當(dāng)前塊1920合并的候選塊的數(shù)目是2,即,相鄰塊1995和相鄰塊1985,所以也可使用merge_left_flag來指示當(dāng)前塊1920的合并候選塊。
圖20是示意性描述根據(jù)本發(fā)明示范實施例的系統(tǒng)中的編碼器的操作的流程圖。
參考圖20,編碼器執(zhí)行當(dāng)前塊的預(yù)測(s2010)。當(dāng)當(dāng)前塊(當(dāng)前pu)的預(yù)測模式不是幀內(nèi)模式時,可向當(dāng)前塊施加合并模式。這里,也可通過在其中存在當(dāng)前塊的cu中存在的另一塊(例如,另一pu)的運動信息,來確定當(dāng)前塊的運動信息,例如是否施加合并、當(dāng)前塊與哪個相鄰塊的運動信息合并等。已參考圖3對其詳細(xì)內(nèi)容進(jìn)行了描述。
在編碼器執(zhí)行當(dāng)前塊的預(yù)測之后,編碼器對關(guān)于預(yù)測結(jié)果的信息進(jìn)行熵編碼(s2020)。例如,編碼器可對當(dāng)前塊的預(yù)測塊、執(zhí)行當(dāng)前塊的預(yù)測所需的信息等進(jìn)行熵編碼。
編碼器可通過比特流將熵編碼后的信息傳送到解碼器(s2030)。
圖21是示意性描述根據(jù)本發(fā)明示范實施例的系統(tǒng)中的解碼器的操作的流程圖。
參考圖21,解碼器對從編碼器接收的視頻信息進(jìn)行熵解碼(s2110)。在其中將視頻信息包括在從編碼器傳送的比特流中的狀態(tài)下,將視頻信息傳送到解碼器。視頻信息包括當(dāng)前塊的預(yù)測塊、殘余塊、預(yù)測的信息等。
解碼器基于熵編碼后的信息對于當(dāng)前塊執(zhí)行預(yù)測(s2120)。當(dāng)當(dāng)前塊處于幀內(nèi)預(yù)測模式時,可從當(dāng)前cu的分區(qū)信息等導(dǎo)出當(dāng)前塊的運動信息。例如,解碼器可導(dǎo)出以下信息的部分或全部,諸如關(guān)于是否可向當(dāng)前塊施加合并的信息、關(guān)于存在多少運動信息候選的信息、關(guān)于當(dāng)前塊與哪個運動信息候選合并的信息等。在該情況下,解碼器還可以使用關(guān)于其中存在當(dāng)前塊的cu中的另一pu的運動信息,來導(dǎo)出當(dāng)前塊的運動信息。已參考圖4對其詳細(xì)內(nèi)容進(jìn)行了描述。
解碼器可基于預(yù)測結(jié)果來生成再現(xiàn)信號以再現(xiàn)視頻(s2130)。
在上述示范系統(tǒng)中,盡管已基于流程圖將這些方法描述為一連串步驟或塊,但是本發(fā)明不限于所述步驟順序,而是可以按照與上述其他步驟不同的順序或同時,生成任何步驟。另外,上述實施例包括各方面的示例。所以,本發(fā)明應(yīng)被解釋為包括屬于以下權(quán)利要求的所有其他替換、修改和變型。
在上述本發(fā)明的描述中,應(yīng)理解的是,當(dāng)將元件稱為“連接”或“耦接”到另一元件時,該元件可“直接連接”或“直接耦接”到另一元件、或者在其間插入其他元件的情況下連接或耦接到另一元件。另一方面,將理解的是,當(dāng)將元件稱為“直接連接”或“直接耦接”到另一元件時,在兩個元件之間不存在其他元件。