本發(fā)明涉及用于處理視頻信號的方法和設(shè)備。
背景技術(shù):
近來,在各應(yīng)用領(lǐng)域中對諸如高清晰度(hd)圖像和超高清晰度(uhd)圖像等的高分辨率、高品質(zhì)圖像的需求已經(jīng)增加。由于視頻數(shù)據(jù)具有更高的分辨率和更高的品質(zhì),視頻數(shù)據(jù)在量上大于傳統(tǒng)視頻數(shù)據(jù)。因此,如果視頻數(shù)據(jù)通過現(xiàn)有介質(zhì)(例如有線/無線寬帶電路)進行傳送或者被存儲在現(xiàn)有存儲介質(zhì)中,則傳送成本和存儲成本增大。為了避免較高分辨率、更高品質(zhì)的視頻數(shù)據(jù)遇到的這些問題,可以使用高效的視頻壓縮技術(shù)。
存在各種視頻壓縮技術(shù),包括:根據(jù)當前圖片之前或之后的圖片對包括在當前圖片中的像素值進行預(yù)測的圖片間預(yù)測;使用當前圖片中的像素信息對包括在當前圖片中的像素值進行預(yù)測的圖片內(nèi)預(yù)測;以及向較頻繁的值分配短碼并且向較不頻繁的值分配長碼的熵編碼。使用這樣的視頻壓縮技術(shù),視頻數(shù)據(jù)可以被高效地壓縮以及傳送或存儲。
隨著對高分辨率視頻的需求日益增加,對作為新的視頻服務(wù)的三維(3d)視頻內(nèi)容的需求也正在增加。用于高效地提供hd和3duhd視頻內(nèi)容的視頻壓縮技術(shù)正在討論中。
技術(shù)實現(xiàn)要素:
技術(shù)問題
本發(fā)明的目的是提供一種用于在對視頻信號進行編碼/解碼時基于調(diào)色板模式來預(yù)測或重構(gòu)視頻信號的方法和設(shè)備。
本發(fā)明的目的是提供一種用于在對視頻信號進行編碼/解碼時構(gòu)造要被編碼/解碼的塊的調(diào)色板映射的方法和設(shè)備。
本發(fā)明的目的是提供一種用于在對視頻信號進行編碼/解碼時得到要被編碼/解碼的塊的調(diào)色板索引的方法和設(shè)備。
技術(shù)方案
根據(jù)本發(fā)明的用于對視頻信號進行解碼的方法包括:構(gòu)造與以調(diào)色板模式編碼的當前塊有關(guān)的調(diào)色板映射;基于包括在當前塊中的當前樣本的模式標識符來確定當前樣本的調(diào)色板索引模式;基于調(diào)色板索引模式來得到當前樣本的調(diào)色板索引;以及通過使用當前塊的調(diào)色板映射和調(diào)色板索引來重構(gòu)當前樣本。
在根據(jù)本發(fā)明的視頻信號解碼方法中,模式標識符指定索引模式或復(fù)制模式中的一個。
在根據(jù)本發(fā)明的視頻信號解碼方法中,基于以下中的至少一個來獲取模式標識符:當前樣本在預(yù)定掃描順序中的位置或剩余調(diào)色板索引的數(shù)目。
在根據(jù)本發(fā)明的視頻信號解碼方法中,當剩余調(diào)色板索引的數(shù)目為0時,不從比特流用信號傳送模式標識符并且將模式標識符設(shè)置為復(fù)制模式。
在根據(jù)本發(fā)明的視頻信號解碼方法中,當剩余調(diào)色板索引的數(shù)目大于0并且在掃描順序中當前樣本的位置對應(yīng)于當前塊的最后樣本時,不從比特流用信號傳送模式標識符并且將模式標識符設(shè)置為索引模式。
根據(jù)本發(fā)明的用于對視頻信號進行解碼的設(shè)備包括:預(yù)測單元,用于:構(gòu)造與以調(diào)色板模式編碼的當前塊有關(guān)的調(diào)色板映射;基于包括在當前塊中的當前樣本的模式標識符來確定當前樣本的調(diào)色板索引模式;基于調(diào)色板索引模式來得到當前樣本的調(diào)色板索引;以及通過使用當前塊的調(diào)色板映射和調(diào)色板索引來重構(gòu)當前樣本。
在根據(jù)本發(fā)明的視頻信號解碼設(shè)備中,模式標識符指定索引模式或復(fù)制模式中的一個。
在根據(jù)本發(fā)明的視頻信號解碼設(shè)備中,基于以下中的至少一個來獲取模式標識符:當前樣本在預(yù)定掃描順序中的位置或剩余調(diào)色板索引的數(shù)目。
在根據(jù)本發(fā)明的視頻信號解碼設(shè)備中,當剩余調(diào)色板索引的數(shù)目為0時,不從比特流用信號傳送模式標識符并且將模式標識符設(shè)置為復(fù)制模式。
在根據(jù)本發(fā)明的視頻信號解碼設(shè)備中,當剩余調(diào)色板索引的數(shù)目大于0并且在掃描順序中當前樣本的位置對應(yīng)于當前塊的最后樣本時,不從比特流用信號傳送模式標識符并且將模式標識符設(shè)置為索引模式。
根據(jù)本發(fā)明的用于對視頻信號進行編碼的方法包括:構(gòu)造與以調(diào)色板模式編碼的當前塊有關(guān)的調(diào)色板映射;基于包括在當前塊中的當前樣本的模式標識符來確定當前樣本的調(diào)色板索引模式;基于調(diào)色板索引模式來得到當前樣本的調(diào)色板索引;以及通過使用當前塊的調(diào)色板映射和調(diào)色板索引來重構(gòu)當前樣本。
在根據(jù)本發(fā)明的視頻信號編碼方法中,模式標識符指定索引模式或復(fù)制模式中的一個。
在根據(jù)本發(fā)明的視頻信號編碼方法中,基于以下中的至少一個來確定模式標識符:當前樣本在預(yù)定掃描順序中的位置或剩余調(diào)色板索引的數(shù)目。
在根據(jù)本發(fā)明的視頻信號編碼方法中,當剩余調(diào)色板索引的數(shù)目為0時,不對模式標識符進行編碼并且將模式標識符設(shè)置為復(fù)制模式。
在根據(jù)本發(fā)明的視頻信號編碼方法中,當剩余調(diào)色板索引的數(shù)目大于0并且在掃描順序中當前樣本的位置對應(yīng)于當前塊的最后樣本時,不對模式標識符進行編碼并且將模式標識符設(shè)置為索引模式。
根據(jù)本發(fā)明的用于對視頻信號進行編碼的設(shè)備包括:預(yù)測單元,用于:構(gòu)造與以調(diào)色板模式編碼的當前塊有關(guān)的調(diào)色板映射;基于包括在當前塊中的當前樣本的模式標識符來確定當前樣本的調(diào)色板索引模式;基于調(diào)色板索引模式來得到當前樣本的調(diào)色板索引;以及通過使用當前塊的調(diào)色板映射和調(diào)色板索引來重構(gòu)當前樣本。
在根據(jù)本發(fā)明的視頻信號編碼設(shè)備中,模式標識符指定索引模式或復(fù)制模式中的一個。
在根據(jù)本發(fā)明的視頻信號編碼設(shè)備中,基于以下中的至少一個來獲取模式標識符:當前樣本在預(yù)定掃描順序中的位置或剩余調(diào)色板索引的數(shù)目。
在根據(jù)本發(fā)明的視頻信號編碼設(shè)備中,當剩余調(diào)色板索引的數(shù)目為0時,不對模式標識符進行編碼并且將模式標識符設(shè)置為復(fù)制模式。
有益效果
根據(jù)本發(fā)明,能夠提高對要基于調(diào)色板模式被編碼/解碼的塊的預(yù)測或重構(gòu)的效率。
根據(jù)本發(fā)明,可以通過根據(jù)先前塊的調(diào)色板映射得到要被編碼/解碼的塊的調(diào)色板映射來提高調(diào)色板條目編碼/解碼效率。
根據(jù)本發(fā)明,可以基于索引模式或復(fù)制模式高效地得到要被編碼/解碼的塊的調(diào)色板索引。
根據(jù)本發(fā)明,可以通過基于行程編碼對使用二進制矢量的調(diào)色板索引進行編碼來提高壓縮效率。
根據(jù)本發(fā)明,可以基于逸出模式來重構(gòu)要被編碼/解碼的塊的樣本值,以使得可以高效地對在調(diào)色板條目范圍之外的樣本進行編碼/解碼。
附圖說明
圖1是示出根據(jù)本發(fā)明的實施方式的視頻編碼設(shè)備的框圖。
圖2是示出根據(jù)本發(fā)明的實施方式的視頻解碼設(shè)備的框圖。
圖3示出了根據(jù)本發(fā)明的實施方式的基于調(diào)色板模式重構(gòu)當前塊的方法。
圖4示出了根據(jù)本發(fā)明的實施方式的限制性地用信號傳送重用標記(previous_palette_entry_flag)的方法。
圖5示出了根據(jù)本發(fā)明的實施方式的基于行程編碼用信號傳送二進制矢量形式的重用標記的方法。
圖6示出了根據(jù)本發(fā)明的實施方式的用于基于語法palette_predictor_run來獲取當前塊的預(yù)測的調(diào)色板條目的方法。
圖7示出了根據(jù)本發(fā)明的實施方式的用于基于調(diào)色板預(yù)測最后行程(palette_predictor_last_run)來獲取當前塊的預(yù)測的調(diào)色板條目的方法。
圖8示出了根據(jù)本發(fā)明的實施方式的用于構(gòu)造與當前塊有關(guān)的調(diào)色板映射的方法。
圖9示出了根據(jù)本發(fā)明的實施方式的基于調(diào)色板索引信息和調(diào)色板索引行程得到當前塊的調(diào)色板索引的方法。
圖10示出了根據(jù)本發(fā)明的實施方式的用于基于復(fù)制模式得到調(diào)色板索引的方法。
圖11示出了根據(jù)本發(fā)明的實施方式的在調(diào)色板模式下的掃描順序。
圖12示出了根據(jù)本發(fā)明的實施方式的用于基于逸出存在標記獲取調(diào)色板索引的方法。
圖13示出了根據(jù)本發(fā)明的實施方式的用于基于當前樣本的位置和/或剩余調(diào)色板索引的數(shù)目來獲取模式標識符的方法。
本發(fā)明的最佳實施方式
根據(jù)本發(fā)明的用于對視頻信號進行解碼的方法包括:構(gòu)造與以調(diào)色板模式編碼的當前塊有關(guān)的調(diào)色板映射;基于包括在當前塊中的當前樣本的模式標識符來確定當前樣本的調(diào)色板索引模式;基于調(diào)色板索引模式來得到當前樣本的調(diào)色板索引;以及通過使用當前塊的調(diào)色板映射和調(diào)色板索引來重構(gòu)當前樣本。
在根據(jù)本發(fā)明的視頻信號解碼方法中,模式標識符指定索引模式或復(fù)制模式中的一個。
在根據(jù)本發(fā)明的視頻信號解碼方法中,基于以下中的至少一個來獲取模式標識符:當前樣本在預(yù)定掃描順序中的位置或剩余調(diào)色板索引的數(shù)目。
在根據(jù)本發(fā)明的視頻信號解碼方法中,當剩余調(diào)色板索引的數(shù)目為0時,不從比特流用信號傳送模式標識符并且將模式標識符設(shè)置為復(fù)制模式。
在根據(jù)本發(fā)明的視頻信號解碼方法中,當剩余調(diào)色板索引的數(shù)目大于0并且在掃描順序中當前樣本的位置對應(yīng)于當前塊的最后樣本時,不從比特流用信號傳送模式標識符并且將模式標識符設(shè)置為索引模式。
根據(jù)本發(fā)明的用于對視頻信號進行解碼的設(shè)備包括:預(yù)測單元,用于:構(gòu)造與以調(diào)色板模式編碼的當前塊有關(guān)的調(diào)色板映射;基于包括在當前塊中的當前樣本的模式標識符來確定當前樣本的調(diào)色板索引模式;基于調(diào)色板索引模式來得到當前樣本的調(diào)色板索引;以及通過使用當前塊的調(diào)色板映射和調(diào)色板索引來重構(gòu)當前樣本。
在根據(jù)本發(fā)明的視頻信號解碼設(shè)備中,模式標識符指定索引模式或復(fù)制模式中的一個。
在根據(jù)本發(fā)明的視頻信號解碼設(shè)備中,基于以下中的至少一個來獲取模式標識符:當前樣本在預(yù)定掃描順序中的位置或剩余調(diào)色板索引的數(shù)目。
在根據(jù)本發(fā)明的視頻信號解碼設(shè)備中,當剩余調(diào)色板索引的數(shù)目為0時,不從比特流用信號傳送模式標識符并且將模式標識符設(shè)置為復(fù)制模式。
在根據(jù)本發(fā)明的視頻信號解碼設(shè)備中,當剩余調(diào)色板索引的數(shù)目大于0并且在掃描順序中當前樣本的位置對應(yīng)于當前塊的最后樣本時,不從比特流用信號傳送模式標識符并且將模式標識符設(shè)置為索引模式。
根據(jù)本發(fā)明的用于對視頻信號進行編碼的方法包括:構(gòu)造與以調(diào)色板模式編碼的當前塊有關(guān)的調(diào)色板映射;基于包括在當前塊中的當前樣本的模式標識符來確定當前樣本的調(diào)色板索引模式;基于調(diào)色板索引模式來得到當前樣本的調(diào)色板索引;以及通過使用當前塊的調(diào)色板映射和調(diào)色板索引來重構(gòu)當前樣本。
在根據(jù)本發(fā)明的視頻信號編碼方法中,模式標識符指定索引模式或復(fù)制模式中的一個。
在根據(jù)本發(fā)明的視頻信號編碼方法中,基于以下中的至少一個來確定模式標識符:當前樣本在預(yù)定掃描順序中的位置或剩余調(diào)色板索引的數(shù)目。
在根據(jù)本發(fā)明的視頻信號編碼方法中,當剩余調(diào)色板索引的數(shù)目為0時,不對模式標識符進行編碼并且將模式標識符設(shè)置為復(fù)制模式。
在根據(jù)本發(fā)明的視頻信號編碼方法中,當剩余調(diào)色板索引的數(shù)目大于0并且在掃描順序中當前樣本的位置對應(yīng)于當前塊的最后樣本時,不對模式標識符進行編碼并且將模式標識符設(shè)置為索引模式。
根據(jù)本發(fā)明的用于對視頻信號進行編碼的設(shè)備包括:預(yù)測單元,用于:構(gòu)造與以調(diào)色板模式編碼的當前塊有關(guān)的調(diào)色板映射;基于包括在當前塊中的當前樣本的模式標識符來確定當前樣本的調(diào)色板索引模式;基于調(diào)色板索引模式來得到當前樣本的調(diào)色板索引;以及通過使用當前塊的調(diào)色板映射和調(diào)色板索引來重構(gòu)當前樣本。
在根據(jù)本發(fā)明的視頻信號編碼設(shè)備中,模式標識符指定索引模式或復(fù)制模式中的一個。
在根據(jù)本發(fā)明的視頻信號編碼設(shè)備中,基于以下中的至少一個來獲取模式標識符:當前樣本在預(yù)定掃描順序中的位置或剩余調(diào)色板索引的數(shù)目。
在根據(jù)本發(fā)明的視頻信號編碼設(shè)備中,當剩余調(diào)色板索引的數(shù)目為0時,不對模式標識符進行編碼并且將模式標識符設(shè)置為復(fù)制模式。
具體實施方式
本發(fā)明可以以各種方式被改變和修改,并且可以參考不同的示例性實施方式來說明本發(fā)明,其中一些實施方式將在附圖中描述和示出。然而,這些實施方式不意在限制本發(fā)明,而是被理解為包括屬于本發(fā)明的精神和技術(shù)范圍內(nèi)的所有修改方案、等同方案和替換方案。在整個附圖中,相同附圖標記指代相同元件。
雖然術(shù)語第一、第二等可以用于描述各種元件,但是這些元件不應(yīng)當被這些術(shù)語限制。這些術(shù)語僅用于將一個元件與另一元件區(qū)分開。例如,在不偏離本發(fā)明的教導(dǎo)的情況下,第一元件可以被稱為第二元件,并且同樣地第二元件可以被稱為第一元件。術(shù)語“和/或”包括多個關(guān)聯(lián)列出項的任何組合和所有組合。
將要理解,當元件被稱為“連接至”或“耦接至”另一元件時,該元件可以直接連接至或耦接至另一元件或中間元件。相反,當元件被稱為“直接連接至”或“直接耦接至”另一元件時,不存在中間元件。
本文中所使用的術(shù)語僅用于描述特定實施方式的目的而不意在限制本發(fā)明。如本文中所使用的,除非上下文另外清楚地指出,否則單數(shù)形式“一”、“一個”和“該”意在也包括復(fù)數(shù)形式。還將理解的是,當在本說明書中使用時,術(shù)語“包括”和/或“具有”指定存在所陳述的特征、單體、步驟、操作、元件和/或部件,但是不排除存在或添加一個或更多個其他特征、單體、步驟、操作、元件、部件和/或前述的組。
在下文中,將參照附圖來詳細描述本發(fā)明的示例性實施方式。在整個附圖中,相似附圖標記指代相似元件,并且在本文中將省略對相似元件的冗余描述。
圖1是示出根據(jù)本發(fā)明的實施方式的視頻編碼設(shè)備的框圖。
參照圖1,視頻編碼設(shè)備100包括:圖片劃分單元110、預(yù)測單元120和125、變換單元130、量化單元135、重排單元160、熵編碼單元165、逆量化單元140、逆變換單元145、濾波器單元150以及存儲器155。
圖1所示的元件中的每個元件被獨立地示出以表示視頻編碼設(shè)備中的不同特征功能,但并不意指每個元件由單獨的硬件或一個軟件配置單元構(gòu)成。也就是說,為了方便描述,元件被獨立地布置,其中至少兩個元件可以組合成單個元件,或者單個元件可以被劃分為多個元件以執(zhí)行功能。要注意,在不偏離本發(fā)明的精神的情況下,一些元件被集成為一個組合的元件和/或元件被劃分為多個單獨的元件的實施方式包括在本發(fā)明的范圍內(nèi)。
一些元件對于本發(fā)明的實質(zhì)功能并非是必要的,并且可能是僅用于提高性能的可選構(gòu)成部件??梢酝ㄟ^僅包括除了僅用于提高性能的構(gòu)成部件之外的對于本發(fā)明的實施方式必要的構(gòu)成部件來實施本發(fā)明。僅包括除了僅用于提高性能的光學構(gòu)成部件之外的必要構(gòu)成部件的結(jié)構(gòu)屬于本發(fā)明的范圍。
圖片劃分單元110可以將輸入圖片劃分為至少一個處理單元。此處,所述處理單元可以是預(yù)測單元(pu)、變換單元(tu)或編碼單元(cu)。圖片劃分單元110可以將一個圖片劃分為cu、pu和tu的多個組合,并且通過基于預(yù)定準則(例如成本函數(shù))選擇的cu、pu和tu一個組合來對圖片進行編碼。
例如,一個圖片可以被劃分為多個cu??梢允褂弥T如四叉樹結(jié)構(gòu)等的遞歸樹結(jié)構(gòu)來將圖片劃分為cu。cu(圖片或最大大小的cu可以作為其根節(jié)點)可以被劃分為子編碼單元,其具有與所劃分出的cu一樣多的子節(jié)點。根據(jù)預(yù)定限制不能再被劃分的cu是葉節(jié)點。也就是說,假設(shè)cu僅可以被劃分為四分體,則單個cu可以被劃分為最多四個不同的cu。
在本發(fā)明的實施方式中,cu不僅可以用于指代編碼的單元而且還可以用于指代解碼的單元。
可以將pu劃分為與cu中的大小相同的至少一個正方形或長方形形式。對于從同一cu劃分的pu,pu可以具有與另一pu不同的形狀和/或大小。
當基于cu生成用于幀內(nèi)預(yù)測的pu并且cu不是最小cu時,cu可以在不被劃分為多個pu(n×n)的情況下經(jīng)受幀內(nèi)預(yù)測。
預(yù)測單元120和125可以包括用于執(zhí)行幀間預(yù)測的幀間預(yù)測單元120和用于執(zhí)行幀內(nèi)預(yù)測的幀內(nèi)預(yù)測單元125。預(yù)測單元120和125可以確定對pu執(zhí)行幀間預(yù)測和幀內(nèi)預(yù)測中的哪一個,并且可以確定所確定的預(yù)測方法的具體信息(例如,幀內(nèi)預(yù)測模式、運動矢量和參考圖片)。此處,對其執(zhí)行預(yù)測的處理單元可以不同于對其確定了預(yù)測方法和具體信息的處理單元。例如,可以針對每個pu來確定預(yù)測方法和預(yù)測模式,而可以針對每個tu來執(zhí)行預(yù)測。可以將生成的預(yù)測塊與原始塊之間的殘差值(殘差塊)輸入至變換單元130。此外,用于預(yù)測的預(yù)測模式信息、運動矢量信息等可以與殘差值一起被熵編碼單元165編碼并且被傳送至解碼設(shè)備。當使用特定編碼模式時,原始塊可以被編碼并且被傳送至解碼設(shè)備,而不由預(yù)測單元120和125生成預(yù)測塊。
幀間預(yù)測單元120可以基于關(guān)于在當前圖片的先前圖片和當前圖片的后續(xù)圖片之中的至少一個圖片的信息來預(yù)測pu。在一些情況下,幀間預(yù)測單元120可以基于當前圖片中的部分編碼的區(qū)域的信息來預(yù)測pu。幀間預(yù)測單元120可以包括參考圖片插值單元、運動預(yù)測單元以及運動補償單元。
可以向參考圖片插值單元提供來自存儲器155的參考圖片信息并且參考圖片插值單元可以生成小于或等于參考圖片上的整像素的像素信息。在亮度像素的情況下,可以使用具有可變?yōu)V波器系數(shù)的基于dct的8-抽頭插值濾波器以1/4像素為單位生成小于或等于整像素的像素信息。在色度像素的情況下,可以使用具有可變?yōu)V波器系數(shù)的基于dct的4-抽頭插值濾波器以1/8像素為單位生成小于或等于整像素的像素信息。
運動預(yù)測單元可以基于由參考圖片插值單元插值的參考圖片來執(zhí)行運動預(yù)測??梢允褂酶鞣N方法(例如,基于全搜索的塊匹配算法(fbma)、三步搜索(tss)算法和新三步搜索(nts)算法)來計算運動矢量。在插值像素的基礎(chǔ)上,運動矢量具有以1/2或1/4像素為單元的運動矢量值。運動預(yù)測單元可以使用不同的運動預(yù)測方法來預(yù)測當前pu??梢詫⒏鞣N方法(例如跳過模式、合并模式和先進運動矢量預(yù)測(amvp)模式、塊內(nèi)復(fù)制模式等)用作為運動預(yù)測方法。
幀內(nèi)預(yù)測單元125可以基于關(guān)于與當前塊相鄰的參考像素的信息來生成pu。當參考像素是由于與當前pu相鄰的塊是已經(jīng)被執(zhí)行了幀間預(yù)測的塊而成為已經(jīng)被執(zhí)行了幀間預(yù)測的像素時,可以用關(guān)于已經(jīng)執(zhí)行了幀內(nèi)預(yù)測的塊中的參考像素的信息來取代關(guān)于已經(jīng)執(zhí)行了幀間預(yù)測的塊中的參考像素的信息。也就是說,當參考像素不可用時,可以用關(guān)于可用參考像素中的至少一個參考像素的信息來取代關(guān)于不可用參考像素的信息。
幀內(nèi)預(yù)測的預(yù)測模式包括根據(jù)預(yù)測方向使用參考像素信息的方向預(yù)測模式和在執(zhí)行預(yù)測時不使用關(guān)于方向的信息的非方向預(yù)測模式。用于預(yù)測亮度信息的模式和用于預(yù)測色度信息的模式可以彼此不同。此外,可以使用用于獲得亮度信息的幀內(nèi)預(yù)測模式信息或預(yù)測的亮度信號信息來預(yù)測色度信息。
當pu和tu具有相同大小時,可以基于該pu的左側(cè)像素、左上側(cè)像素和上側(cè)像素對pu執(zhí)行幀內(nèi)預(yù)測。另一方面,當pu和tu具有不同大小時,可以通過使用基于tu確定的參考像素來執(zhí)行幀內(nèi)預(yù)測??梢詢H針對最小cu來執(zhí)行使用n×n劃分的幀內(nèi)預(yù)測。
在幀內(nèi)預(yù)測方法中,可以通過根據(jù)預(yù)測模式對參考像素應(yīng)用自適應(yīng)幀內(nèi)平滑(ais)濾波器來生成預(yù)測塊??梢詫⒖枷袼貞?yīng)用不同類型的ais濾波器。在幀內(nèi)預(yù)測方法中,可以根據(jù)與當前pu相鄰的pu的幀內(nèi)預(yù)測模式來預(yù)測當前pu的幀內(nèi)預(yù)測模式。在使用根據(jù)相鄰pu預(yù)測的模式信息來預(yù)測當前pu的預(yù)測模式中,在當前pu與相鄰pu具有相同的幀內(nèi)預(yù)測模式時,可以使用預(yù)定標記信息來傳送指示當前pu與相鄰pu具有相同的預(yù)測模式的信息。當當前pu與相鄰pu具有不同的預(yù)測模式時,可以通過熵編碼對關(guān)于當前塊的預(yù)測模式的信息進行編碼。
可以生成包括殘差信息的殘差塊。殘差信息是pu的原始塊與由預(yù)測單元120和125生成的pu的預(yù)測塊之間的差。所生成的殘差塊可以被輸入至變換單元130。
變換單元130可以使用變換方法(例如離散余弦變換(dct)、離散正弦變換(dst)或klt)來對殘差塊進行變換。殘差塊包括關(guān)于由預(yù)測單元120和預(yù)測單元125生成的pu與原始塊之間的殘差的信息。可以基于關(guān)于用于生成殘差塊的pu的幀內(nèi)預(yù)測模式的信息在dct、dst和klt之中確定用于對殘差塊進行變換的變換方法。
量化單元135可以對由變換單元130變換到頻域的值進行量化。量化系數(shù)可以取決于圖像的塊或重要性而改變。可以將從量化單元135輸出的值提供至逆量化單元140和重排單元160。
重排單元160可以對量化的系數(shù)進行重新排列。
重排單元160可以通過系數(shù)掃描將二維(2d)的系數(shù)塊改變?yōu)橐痪S(1d)的系數(shù)矢量。例如,重排單元160可以通過使用z字形掃描從dc系數(shù)掃描至高頻域的系數(shù)來將2d系數(shù)塊改變?yōu)?d系數(shù)矢量。替代z字形掃描,可以取決于tu的大小和幀內(nèi)預(yù)測模式來使用沿垂直方向掃描2d系數(shù)塊的垂直掃描和沿水平方向掃描2d系數(shù)塊的水平掃描。也就是說,可以基于tu的大小和幀內(nèi)預(yù)測模式在z字形掃描、垂直掃描和水平掃描中選擇掃描方法。
熵編碼單元165可以基于由重排單元160獲得的值來執(zhí)行熵編碼。針對熵編碼,可以使用各種編碼方法,例如指數(shù)哥倫布(golomb)碼、上下文自適應(yīng)可變長度編碼(cavlc)或上下文自適應(yīng)二進制算術(shù)編碼(cabac)。
熵編碼單元165可以對來自重排單元160以及預(yù)測單元120和125的各種信息進行編碼,例如關(guān)于cu的殘差系數(shù)信息和塊類型信息、預(yù)測模式信息、劃分單元信息、pu信息、傳輸單元信息、運動矢量信息、參考幀信息、塊插值信息和濾波信息。
熵編碼單元165可以對從重排單元160輸入的cu的系數(shù)進行熵編碼。
逆量化單元140和逆變換單元145對由量化單元135量化的值進行逆量化以及對由變換單元130變換的值進行逆變換??梢酝ㄟ^將殘差值加至預(yù)測的pu來生成重構(gòu)塊。殘差值可以由逆量化單元140和逆變換單元145生成。預(yù)測的pu可以由預(yù)測單元120和125的運動矢量預(yù)測單元、運動補償單元以及幀內(nèi)預(yù)測單元來預(yù)測。
濾波器單元150可以包括去塊濾波器、偏移單元以及自適應(yīng)環(huán)路濾波器(alf)中的至少一個。
去塊濾波器可以去除由于重構(gòu)圖片中的塊之間的邊界而生成的塊失真??梢曰诎ㄔ趬K的若干行或列中的像素來確定是否對當前塊應(yīng)用去塊濾波器。當對塊應(yīng)用去塊濾波器時,可以取決于所需的去塊濾波強度來應(yīng)用強濾波器或弱濾波器。當在應(yīng)用去塊濾波器中執(zhí)行水平濾波和垂直濾波時,可以并行地執(zhí)行水平濾波和垂直濾波。
偏移單元可以以像素為單位對經(jīng)去塊濾波的圖像施加相對于原始圖像的偏移。可以在將圖片的像素劃分為預(yù)定數(shù)目的區(qū)域之后確定可以對其施加偏移的區(qū)域??梢钥紤]關(guān)于每個像素的邊緣信息或?qū)λ_定的區(qū)域施加偏移的方法來對所確定的區(qū)域施加偏移。
alf可以基于經(jīng)濾波的重構(gòu)圖像與原始圖像的比較結(jié)果來執(zhí)行濾波??梢詫ㄔ趫D像中的像素劃分為預(yù)定組,可以確定要應(yīng)用于每個組的濾波器以及可以對每個組來執(zhí)行差分濾波。可以由每個編碼單元(cu)傳輸關(guān)于是否應(yīng)用alf的信息,并且要應(yīng)用于每個塊的alf的形狀和濾波器系數(shù)可以變化。此外,可以對塊應(yīng)用具有相同形式(固定形式)的alf,而不管塊的特征如何。
存儲器155可以存儲從濾波器單元150輸出的重構(gòu)塊或重構(gòu)圖片,并且當執(zhí)行幀間預(yù)測時,所存儲的重構(gòu)塊或重構(gòu)圖片可以被提供至預(yù)測單元120和125。
圖2是示出根據(jù)本發(fā)明的示例性實施方式的視頻解碼設(shè)備的框圖。
參照圖2,視頻解碼設(shè)備200可以包括:熵解碼單元210、重排單元215、逆量化單元220、逆變換單元225、預(yù)測單元230和235、濾波器單元240以及存儲器245。
當從視頻編碼設(shè)備輸入視頻比特流時,可以根據(jù)在視頻編碼設(shè)備中執(zhí)行的視頻編碼過程的逆過程對輸入的比特流進行解碼。
熵解碼單元210可以根據(jù)視頻編碼設(shè)備的熵編碼單元的熵編碼過程的逆過程來執(zhí)行熵解碼。例如,與視頻編碼設(shè)備使用的方法相對應(yīng)地,可以使用諸如指數(shù)哥倫布碼、cavlc或cabac等各種方法。
熵解碼單元210可以對與由編碼設(shè)備執(zhí)行的幀內(nèi)預(yù)測和幀間預(yù)測相關(guān)聯(lián)的信息進行解碼。
重排單元215可以基于編碼單元的重排方法來執(zhí)行對由熵解碼單元210熵解碼的比特流的重新排列。重排單元215可以將1d矢量形式的系數(shù)重構(gòu)和重排為2d系數(shù)塊。可以向重排單元215提供關(guān)于由編碼設(shè)備執(zhí)行的系數(shù)掃描的信息,并且重排單元215可以基于由編碼設(shè)備執(zhí)行的掃描順序使用對系數(shù)進行逆掃描的方法來執(zhí)行重排。
逆量化單元220可以基于從編碼設(shè)備提供的量化參數(shù)和經(jīng)重排的塊的系數(shù)來執(zhí)行逆量化。
逆變換單元225可以對由視頻編碼設(shè)備執(zhí)行的量化的結(jié)果執(zhí)行由變換單元執(zhí)行變換的逆變換(也就是說,逆dct、逆dst或逆klt)??梢曰谟梢曨l編碼設(shè)備確定的傳輸單元來執(zhí)行逆變換。視頻解碼設(shè)備的變換單元225可以取決于多個信息要素如預(yù)測方法、當前塊的大小和預(yù)測方向等來選擇性地執(zhí)行變換方案(例如,dct、dst、klt)。
預(yù)測單元230和235可以基于用于生成預(yù)測塊的信息和提供的關(guān)于先前解碼的塊或圖片的信息來生成預(yù)測塊。用于生成預(yù)測塊的信息可以由熵解碼單元210提供,關(guān)于先前解碼的塊或圖片的信息可以由存儲器245提供。
類似于上述視頻編碼設(shè)備的操作,當pu和tu具有相同大小時,基于pu的左側(cè)像素、左上側(cè)像素和上側(cè)像素對pu執(zhí)行幀內(nèi)預(yù)測。另一方面,當pu和tu具有不同大小時,可以使用基于tu確定的參考像素來執(zhí)行幀內(nèi)預(yù)測??梢詢H針對最小cu來利用使用了n×n劃分的幀內(nèi)預(yù)測。
預(yù)測單元230和235可以包括pu確定單元、幀間預(yù)測單元以及幀內(nèi)預(yù)測單元。pu確定單元可以從熵解碼單元210接收各種信息,如pu信息、關(guān)于幀內(nèi)預(yù)測方法的預(yù)測模式信息和關(guān)于幀間預(yù)測方法的運動預(yù)測相關(guān)信息等,pu確定單元可以確定當前cu的pu。pu確定單元可以確定對pu執(zhí)行幀間預(yù)測和幀內(nèi)預(yù)測中的哪一個。幀間預(yù)測單元230可以基于關(guān)于包括當前pu的當前圖片的先前圖片和后續(xù)圖片之中的至少一個圖片的信息對當前pu執(zhí)行幀間預(yù)測。幀間預(yù)測單元230可以使用對由視頻編碼設(shè)備提供的當前pu進行幀間預(yù)測所必要的信息。可以基于包括當前pu的當前圖片中的預(yù)先重構(gòu)的部分區(qū)域的信息來執(zhí)行幀間預(yù)測。
為了執(zhí)行幀間預(yù)測,可以以cu為單位來確定針對包括在cu中的pu的運動預(yù)測方法是跳過模式、合并模式、amvp模式還是幀內(nèi)塊復(fù)制模式。
幀內(nèi)預(yù)測單元235可以基于當前圖片中的像素信息來生成預(yù)測塊。當pu是執(zhí)行幀內(nèi)預(yù)測的pu時,可以基于由視頻編碼設(shè)備提供的關(guān)于該pu的幀內(nèi)預(yù)測模式信息來執(zhí)行幀內(nèi)預(yù)測。幀內(nèi)預(yù)測單元235可以包括ais(自適應(yīng)幀內(nèi)平滑)濾波器、參考像素插值單元以及dc濾波器。ais濾波器對當前塊的參考像素執(zhí)行濾波。ais濾波器可以取決于當前pu的預(yù)測模式來決定是否應(yīng)用濾波器??梢允褂糜梢曨l編碼設(shè)備提供的pu的預(yù)測模式和關(guān)于ais濾波器的信息對當前塊的參考像素執(zhí)行ais濾波。當當前塊的預(yù)測模式是不執(zhí)行ais濾波的模式時,可以不應(yīng)用ais濾波器。
當pu的預(yù)測模式指示基于通過對參考像素進行插值而獲得的像素值來執(zhí)行幀內(nèi)預(yù)測的預(yù)測模式時,參考像素插值單元可以通過對參考像素進行插值以小于整像素(即全像素)的分數(shù)像素為單位生成參考像素。當當前pu的預(yù)測模式指示在不對參考像素進行插值的情況下生成預(yù)測塊的預(yù)測模式時,可以不對參考像素進行插值。當當前塊的預(yù)測模式是dc模式時,dc濾波器可以通過濾波來生成預(yù)測塊。
可以將重構(gòu)塊或重構(gòu)圖片提供至濾波器單元240。濾波器單元240包括去塊濾波器、偏移單元以及alf。
視頻編碼設(shè)備可以提供關(guān)于是否對相應(yīng)塊或圖片應(yīng)用去塊濾波器的信息以及關(guān)于在使用去塊濾波器的情況下應(yīng)用強濾波器和弱濾波器中的哪個濾波器的信息??梢韵蛞曨l解碼設(shè)備的去塊濾波器提供來自視頻編碼設(shè)備的關(guān)于去塊濾波器的信息,并且去塊濾波器可以對相應(yīng)塊執(zhí)行去塊濾波。
偏移單元可以基于關(guān)于在編碼過程中應(yīng)用于圖片的偏移類型和偏移值的信息來對重構(gòu)圖片施加偏移。
可以基于由編碼設(shè)備提供的關(guān)于是否應(yīng)用alf的信息和alf系數(shù)信息等來對cu應(yīng)用alf。alf信息可以包括在特定參數(shù)集中并且在特定參數(shù)集中被提供。
存儲器245可以存儲用作為參考圖片或參考塊的重構(gòu)圖片或重構(gòu)塊,并且存儲器245可以將重構(gòu)圖片提供至輸出單元。
如上所述,在本發(fā)明的實施方式中,為了方便描述,將術(shù)語“碼單元”用作為編碼的單元。然而,術(shù)語“碼單元”還可以用作為解碼的單元。
圖3示出了根據(jù)本發(fā)明的實施方式的基于調(diào)色板模式來重構(gòu)當前塊的方法。
在圖像包括動畫或圖形的情況下,可能發(fā)生的是圖像的全部或一部分包括僅特定像素值。在這種情況下,可以使用在不使用幀間預(yù)測或幀內(nèi)預(yù)測方法的情況下對構(gòu)成該區(qū)域的特定像素值進行編碼的方法,這被稱為調(diào)色板模式。調(diào)色板模式可以應(yīng)用于塊單元(例如,碼單元、預(yù)測單元)。出于這個目的,可以基于塊來用信號傳送指示是否使用調(diào)色板模式的標記信息(palette_mode_flag)。
參照圖3,可以構(gòu)造以調(diào)色板模式編碼的當前塊的調(diào)色板映射(s300)。
調(diào)色板映射可以包括至少一個調(diào)色板條目和標識每個調(diào)色板條目的映射索引。可以根據(jù)先前塊的調(diào)色板映射(在下文中被稱為先前調(diào)色板映射)得到當前塊的調(diào)色板映射。此處,先前塊可以意指在當前塊之前已經(jīng)被編碼或解碼的塊。
當前塊的調(diào)色板條目可以包括預(yù)測的調(diào)色板條目或用信號傳送的調(diào)色板條目中的至少一個。當前塊可以使用先前塊使用的調(diào)色板條目中的所有調(diào)色板條目或一部分調(diào)色板條目。預(yù)測的調(diào)色板條目可以表示先前塊中使用的調(diào)色板條目中的在當前塊中重用的調(diào)色板條目。
具體地,當前塊可以使用與先前塊相同的調(diào)色板映射。對于此,可以用信號傳送指示當前塊是否使用與先前塊相同的調(diào)色板映射的標記(palette_share_flag)。此處,相同的調(diào)色板映射意指調(diào)色板映射的大小(或包括在調(diào)色板映射中的調(diào)色板條目的數(shù)目)相同并且包括在調(diào)色板映射中的調(diào)色板條目相同。當palette_share_flag的值為1時,當前塊使用與先前塊相同的調(diào)色板映射。當palette_share_flag的值為0時,當前塊可以使用以下調(diào)色板映射:包括在所述調(diào)色板映射中的調(diào)色板條目或所述調(diào)色板映射的大小中的至少一個與相鄰塊的不同。
可替選地,可以將palette_share_flag定義為指示當前塊中是否使用了先前塊的所有調(diào)色板條目的標記。在這種情況下,可以通過使用palette_share_flag并且用信號傳送稍后將描述的條目數(shù)目信息(palette_num_signalled_entries)來指定當前塊是否具有與先前塊相同的調(diào)色板映射。例如,如果palette_share_flag的值為1并且palette_num_signalled_entries的值為0,則這指示當前塊具有與先前塊相同的調(diào)色板映射。另一方面,如果palette_share_flag的值為1并且palette_num_signalled_entries的值不為0,則這指示當前塊的調(diào)色板映射包括先前塊的所有調(diào)色板條目。
可替選地,當前塊可以選擇性地使用先前調(diào)色板映射中的一些調(diào)色板條目。出于這個目的,可以使用用于指定調(diào)色板條目是否被重用的標記(previous_palette_entry_flag,在下文中被稱為重用標記)。具體地,向先前調(diào)色板映射的調(diào)色板條目中的每個調(diào)色板條目分配重用標記的值。重用標記(previous_palette_entry_flag[i])指示與先前調(diào)色板映射中的映射索引i對應(yīng)的調(diào)色板條目是否被重用。例如,如果重用標記的值為1,則在當前塊的調(diào)色板映射中重用與先前調(diào)色板映射中的映射索引i對應(yīng)的調(diào)色板條目。否則,不重用與先前調(diào)色板映射中的映射索引i對應(yīng)的調(diào)色板條目??梢酝ㄟ^從先前調(diào)色板映射提取具有等于1的重用標記的調(diào)色板條目并且順序地布置所述調(diào)色板條目來構(gòu)造當前塊的調(diào)色板映射??梢杂眯盘杺魉歪槍γ總€調(diào)色板條目編碼的標記的形式的重用標記,或者可以基于行程編碼用信號傳送二進制矢量的形式的重用標記,這將參照圖4至圖5詳細進行描述。
為了選擇性地使用先前塊的調(diào)色板映射中的一些調(diào)色板條目,可以使用用于指定先前調(diào)色板條目是否被重用的重用標記(predictorpaletteentryreuseflag)和用于指定非零重用標記之間存在的等于0的重用標記的數(shù)目的調(diào)色板預(yù)測行程(palette_predictor_run)值。這將參照圖6和圖7來詳細描述。
另外,當前塊的調(diào)色板映射還可以包括來自比特流的用信號傳送的用信號傳送的調(diào)色板條目。此處,用信號傳送的調(diào)色板條目包括在當前塊使用的調(diào)色板條目中但未包括在先前調(diào)色板映射中的調(diào)色板條目。將通過進一步參照圖8來描述用于構(gòu)造調(diào)色板映射的方法。
參照圖3,可以根據(jù)在當前塊的樣本單元(或像素單元)中的預(yù)定掃描順序來得到調(diào)色板索引(s310)。
可以使用索引模式(indexmode)、復(fù)制模式(copymode)或逸出模式(escapemode)中的至少一個來得到用于當前塊的調(diào)色板索引。此處,逸出模式(escapemode)可以被定義為獨立的模式或者可以理解為索引模式(indexmode)的一個示例。
此處,索引模式(indexmode)可以指基于用于指定在當前塊中使用的調(diào)色板索引的編碼的調(diào)色板索引信息來得到調(diào)色板索引的方法。調(diào)色板索引信息具有0與(調(diào)色板大小-1)之間的值,其中,調(diào)色板大小可以指示當前塊的調(diào)色板映射的大小或構(gòu)成調(diào)色板映射的調(diào)色板條目的數(shù)目。在索引模式下,可以向當前樣本的調(diào)色板索引分配通過比特流用信號傳送的調(diào)色板索引信息的值。將參照圖9來詳細描述基于索引模式得到調(diào)色板索引的方法。
復(fù)制模式(copymode)可以指使用相鄰樣本的調(diào)色板索引得到當前樣本的調(diào)色板索引的方法。例如,在復(fù)制模式下,可以基于相鄰樣本的調(diào)色板索引來預(yù)測當前樣本的調(diào)色板索引,或者可以復(fù)制相鄰樣本的調(diào)色板索引并且將其設(shè)置為當前樣本的調(diào)色板索引。此處,相鄰樣本可以意指與當前樣本的頂側(cè)、底側(cè)、左側(cè)或右側(cè)鄰近的樣本。特別地,相鄰樣本可以位于與當前樣本相同的水平線上或相同的垂直線上。
復(fù)制模式可以包括復(fù)制上方模式(copy_abovemode)或復(fù)制左側(cè)模式(copy_leftmode)中的至少一個,在復(fù)制上方模式下,將由與當前樣本的上端鄰近的樣本使用的調(diào)色板條目用作當前樣本的調(diào)色板條目。在復(fù)制左側(cè)模式下,將由與當前樣本的左側(cè)鄰近的樣本使用的調(diào)色板條目用作當前樣本的調(diào)色板條目。可以根據(jù)當前塊的掃描順序來選擇性地使用復(fù)制上方模式或復(fù)制左側(cè)模式之一。例如,如果當前塊使用水平掃描或水平往返掃描,則可以使用復(fù)制上方模式。如果當前塊使用垂直掃描或垂直往返掃描,則可以使用復(fù)制左側(cè)模式。另外,當前塊的掃描開始位置不限于左上側(cè)樣本,可以將當前塊的其他拐角樣本(例如,左下方樣本、右上方樣本以及右下方樣本)用作為掃描開始位置。因此,根據(jù)當前塊的掃描順序和掃描開始位置,可以使用與上方或左側(cè)鄰近的樣本相同的調(diào)色板條目,或者可以使用與下方或右側(cè)鄰近的樣本相同的調(diào)色板條目。在這種情況下,復(fù)制模式還可以包括復(fù)制右側(cè)模式(copy_rightmode)和/或復(fù)制下方模式(copy_undermode)。
可替選地,不管掃描順序,可以選擇性地使用復(fù)制上方模式或復(fù)制左側(cè)模式之一。出于這個目的,可以用信號傳送指定掃描模式的標記(use_copy_above_flag)??梢栽谄^部、片段頭部或塊的基礎(chǔ)上用信號傳送use_copy_above_flag。如果use_copy_above_flag的值為1,則可以在相應(yīng)的片或塊中使用復(fù)制上方模式,如果use_copy_above_flag的值為0,則可以在該片或塊中使用復(fù)制左側(cè)模式。將參照圖10來詳細描述基于復(fù)制模式得到調(diào)色板索引的方法??梢允褂糜糜谥付ǖ玫疆斍皦K的每個樣本的調(diào)色板索引的方法的模式標識符(palette_run_type_flag)來選擇性地使用諸如上述索引模式和復(fù)制模式的調(diào)色板索引模式中的任一個。在下文中將得到當前塊的每個樣本的調(diào)色板索引的方法稱為調(diào)色板索引模式。例如,如果模式標識符的值為1,則當前塊的當前樣本使用復(fù)制模式,如果模式標識符的值為0,則當前樣本可以使用索引模式或逸出模式。可以基于與當前樣本鄰近的樣本的調(diào)色板索引模式不用信號傳送當前樣本的模式標識符并且可以得到當前樣本的模式標識符為預(yù)定恒定值。例如,如果與當前樣本鄰近的上側(cè)相鄰樣本的調(diào)色板索引模式是逸出模式,則當前樣本可以使用索引模式或逸出模式而不使用復(fù)制模式。在這種情況下,不用信號傳送當前樣本的模式標識符并且可以導(dǎo)出當前樣本的模式標識符為0。
可以基于指示當前塊是否僅使用一個調(diào)色板索引模式的標記(use_one_palette_mode_flag)用信號傳送模式標識符??梢砸詨K(例如,碼單元、預(yù)測單元)為單位用信號傳送use_one_palette_mode_flag。
例如,根據(jù)use_one_palette_mode_flag的值,當當前塊僅使用一個調(diào)色板索引模式時,不通過比特流用信號傳送模式標識符,并且可以將在視頻解碼設(shè)備處預(yù)定義的調(diào)色板索引模式用作為當前塊的索引模式。為此,當前塊的每個樣本的模式標識符的值可以被設(shè)置為1或0。
另一方面,根據(jù)use_one_palette_mode_flag的值,當前塊不限于僅使用一個調(diào)色板索引模式,并且當使用多個調(diào)色板索引模式時,可以通過比特流用信號傳送模式標識符。
可替選地,可以基于指示當前塊中的至少一個樣本是否使用復(fù)制模式的標記(palette_above_present_flag)用信號傳送模式標識符。
例如,根據(jù)palette_above_present_flag的值,如果當前塊中的樣本中的至少一個樣本使用復(fù)制模式,則可以通過比特流用信號傳送模式標識符。另一方面,根據(jù)palette_above_present_flag的值,當當前塊的樣本不使用復(fù)制模式時,不通過比特流用信號傳送模式標識符,并且將在視頻解碼設(shè)備處預(yù)定義的調(diào)色板索引模式用作為當前塊的調(diào)色板索引模式。為此,當前塊的每個樣本的模式標識符的值可以被設(shè)置為0。
可以從比特流用信號傳送本發(fā)明的模式標識符或者可以基于根據(jù)當前樣本的位置和/或索引模式使用的調(diào)色板索引的數(shù)目來得到模式標識符為預(yù)定恒定值,這將參照圖13來描述。
還可以通過考慮逸出存在標記來獲取調(diào)色板索引,這將參照圖12來描述。
作為本發(fā)明的掃描順序,水平掃描、垂直掃描、水平往返掃描、垂直方向往返掃描等可以被使用,這將參照圖11來詳細描述。
參照圖3,可以基于在步驟s310中得到的調(diào)色板索引來重構(gòu)當前塊的樣本(s320)。
具體地,可以基于在步驟s300中配置的當前塊的調(diào)色板映射和在步驟s310中得到的調(diào)色板索引來重構(gòu)當前塊的樣本。從當前塊的調(diào)色板映射中提取與所得到的調(diào)色板索引具有相同值的映射索引的調(diào)色板條目,然后可以使用該調(diào)色板條目來重構(gòu)當前塊的樣本。例如,可以將從調(diào)色板映射中提取的調(diào)色板條目的值設(shè)置為當前塊的樣本的預(yù)測值或重構(gòu)值。
然而,所得到的調(diào)色板索引的值可以等于構(gòu)成當前塊的調(diào)色板映射的調(diào)色板條目的數(shù)目。在這種情況下,可以通過使用在步驟s300中配置的調(diào)色板映射的調(diào)色板條目來重構(gòu)當前塊的樣本。也就是說,由于調(diào)色板映射的映射索引具有0與(調(diào)色板條目的數(shù)目-1)之間的值,因此所得到的調(diào)色板索引的值等于調(diào)色板條目的數(shù)目意味著沒有與在步驟s300中配置的調(diào)色板映射中得到的調(diào)色板索引相對應(yīng)的調(diào)色板條目。以這種方式,當存在具有與當前塊中的調(diào)色板條目的數(shù)目相同的值的調(diào)色板索引的樣本時,可以確定該樣本以逸出模式(escapemode)被編碼。此處,逸出模式可以指基于另外用信號傳送的調(diào)色板逸出值而不是使用在步驟s300中構(gòu)造的調(diào)色板映射的調(diào)色板條目來重構(gòu)樣本值的方法。因此,可以使用另外用信號傳送的調(diào)色板逸出值來重構(gòu)調(diào)色板索引等于調(diào)色板條目的數(shù)目的樣本。
另一方面,可以基于當前塊的調(diào)色板映射中的調(diào)色板條目的數(shù)目(或當前塊的調(diào)色板大小)中的至少一個來自適應(yīng)地使用逸出模式。
具體地,僅當當前塊的調(diào)色板映射中的調(diào)色板條目的數(shù)目大于預(yù)定義的閾值時,可以用信號傳送指示是否使用逸出模式的標記(palette_escape_val_present_flag)。此處,如果逸出存在標記的值為1,則這可以意指包括在以調(diào)色板模式編碼的當前塊中的至少一個樣本使用逸出模式。如果逸出存在標記的值為0,則這可以意指當前塊不使用逸出模式。因此,當與當前塊有關(guān)的存在標記的值為1時,額外地用信號傳送前述調(diào)色板逸出值。
例如,如果當前塊使用的調(diào)色板條目的數(shù)目大于0,則可以允許基于逸出模式來重構(gòu)當前塊中的至少一個樣本。為此,僅當由當前塊使用的調(diào)色板條目的數(shù)目大于0時,可以用信號傳送逸出存在標記。相反,如果當前塊使用的調(diào)色板條目的數(shù)目等于0,則不允許基于逸出模式來重構(gòu)當前塊。在這種情況下,不用信號傳送逸出存在標記,視頻解碼設(shè)備可以利用預(yù)定義的值(例如0)得到逸出存在標記的值。然而,對于編碼效率而言,預(yù)定義的閾值不限于0,并且預(yù)定義的閾值可以具有除0之外的隨機恒定值。
圖4示出了根據(jù)本發(fā)明的實施方式的用信號傳送重用標記(previous_palette_entry_flag)的方法。
參照圖4,可以從比特流獲得與當前塊的調(diào)色板映射有關(guān)的重用數(shù)目信息(num_previous_palette_entry)(s400)。
此處,重用數(shù)目信息可以意指被編碼的用于指示先前調(diào)色板映射的調(diào)色板條目中的被再次用作為當前塊的調(diào)色板條目的調(diào)色板條目的數(shù)目的信息。
可以從比特流獲得指定第i個調(diào)色板條目是否被重用的重用標記(previous_palette_entry_flag[i])(s410)。
依據(jù)先前調(diào)色板映射的大小(或包括在先前調(diào)色板映射中的調(diào)色板條目的數(shù)目)用信號傳送重用標記。此處,i對應(yīng)于標識先前調(diào)色板映射的調(diào)色板條目的映射索引,并且i的值在0到(先前調(diào)色板映射的大小-1)的范圍內(nèi)。
可以檢查在步驟s410中獲得的重用標記的值是否為1(s420)。
作為檢查的結(jié)果,如果重用標記的值為1,則可以更新指示等于1的重用標記的數(shù)目的變量numpredpreviouspalette(s430)。例如,可以將變量numpredpreviouspalette的值增加1。
另一方面,如果重用標記的值為0,則可以從比特流獲得指定是否重用第(i+1)個調(diào)色板條目的重用標記(previous_palette_entry_flag[i+1])(s410)。
可以比較在步驟s430中增加的變量numpredpreviouspalette值與在步驟s400中獲得的重用數(shù)目信息是否相同(s440)。
如果變量numpredpreviouspalette不等于在步驟s400中獲得的數(shù)目信息,則可以從比特流獲得指定是否重用第(i+1)個調(diào)色板條目的重用標記(previous_palette_entry_flag[i+1])(s410)。然而,如果變量numpredpreviouspalette等于在步驟s400中獲得的數(shù)目信息,則可以不將具有大于i的值的映射索引的調(diào)色板條目用作當前塊的調(diào)色板條目。為此,如果變量numpredpreviouspalette等于在步驟s400中獲得的數(shù)目信息,則可以得到等于或大于先前調(diào)色板映射的大小的i的值。例如,可以通過將先前調(diào)色板映射的大小加上1來得到i的值。因此,通過將i的值設(shè)置為等于或大于先前調(diào)色板映射的大小,可以不用信號傳送與第(i+1)個調(diào)色板條目相關(guān)聯(lián)的重用標記。
圖5示出了根據(jù)本發(fā)明的實施方式的基于行程編碼來用信號傳送二進制矢量形式的重用標記的方法。
在本實施方式中,假設(shè)先前塊的調(diào)色板映射使用具有0至7的映射索引的8個調(diào)色板條目。
對于先前塊的具有索引0至7的調(diào)色板條目中的每個調(diào)色板條目,視頻編碼設(shè)備確定該調(diào)色板條目是否被重用為當前塊的調(diào)色板條目。如果該調(diào)色板條目被重用為當前塊的調(diào)色板條目,則可以將調(diào)色板條目的重用標記的值設(shè)置為1,否則,可以將重用標記的值設(shè)置為0。例如,如圖5所示,當先前塊的調(diào)色板條目中的調(diào)色板條目0、1、3和7被重用為當前塊的調(diào)色板條目并且剩余的調(diào)色板條目不被重用,則可以生成由11010001表示的二進制矢量。
然后,對二進制矢量中的1的數(shù)目(即,先前塊中的被再次用作為當前塊的調(diào)色板條目的調(diào)色板條目的數(shù)目)或二進制矢量中的在1前面的0的數(shù)目中的至少一個進行編碼,然后可以將其用信號傳送至視頻解碼設(shè)備。例如,由于二進制矢量中的1的數(shù)目為4,因此4可以被編碼為先前塊中的被重用為當前塊的調(diào)色板條目的調(diào)色板條目的數(shù)目。另外,二進制矢量中的在1前面的0的數(shù)目,也就是說,0、0、1和3可以被順序地編碼。
視頻解碼設(shè)備可以從視頻編碼設(shè)備接收關(guān)于被重用為當前塊的調(diào)色板條目的先前塊中的調(diào)色板條目的數(shù)目的信息(num_previous_palette_entry)或關(guān)于二進制矢量中的在1前面的0的數(shù)目的信息(palette_entry_run)中的至少一個,然后通過使用所接收的信息來構(gòu)造當前塊的調(diào)色板映射。
例如,視頻解碼設(shè)備依次從比特流中提取關(guān)于二進制矢量中的在1前面的0的數(shù)目的信息(palette_entry_run),也就是說,0、0、1和3??梢酝ㄟ^使用所提取的信息來恢復(fù)指示是否重用先前塊的調(diào)色板條目的二進制矢量,也就是說,11010001。當在恢復(fù)二進制矢量的過程中生成1的值時,可以將先前塊中的與值1對應(yīng)的調(diào)色板條目插入在當前塊的調(diào)色板條目中。通過該過程,可以通過選擇性地重用來自先前塊的調(diào)色板映射的一些調(diào)色板條目來構(gòu)造當前塊的調(diào)色板映射。
圖6示出了根據(jù)本發(fā)明的實施方式的用于基于語法palette_predictor_run來獲取當前塊的預(yù)測的調(diào)色板條目的方法。
如圖6所示,假設(shè)先前塊的調(diào)色板映射由具有映射索引0至11的12個調(diào)色板條目組成。
首先,將描述在視頻編碼設(shè)備中對語法palette_predictor_run進行編碼的過程。視頻編碼設(shè)備可以確定包括在先前塊的調(diào)色板映射中的每個調(diào)色板條目0至11是否被再次用作當前塊的調(diào)色板條目。如果調(diào)色板條目被重用為當前塊的調(diào)色板條目,則可以將用于調(diào)色板條目的重用標記(predictorpaletteentryreuseflag)的值設(shè)置為1,否則,可以將所述值設(shè)置為0。
例如,如圖6所示,當先前塊的調(diào)色板條目中的調(diào)色板條目0、1、3和7被重用為當前塊的調(diào)色板條目并且剩余調(diào)色板條目未被重用時,可以生成由110100010000表示的二進制矢量。此處,二進制矢量可以被稱為重用標記(predictorpaletteentryreuseflag)的陣列。
然后,可以對指定二進制矢量中1的數(shù)目(即,先前塊的調(diào)色板條目中的被重用為當前塊的調(diào)色板條目的調(diào)色板條目的數(shù)目)或二進制矢量中在1前面的0的數(shù)目的palette_predictor_run中的至少一個進行編碼以從先前塊的調(diào)色板條目中指定要被重用為當前塊的調(diào)色板條目的調(diào)色板條目。
具體地,可以使用numpreviouszero對palette_predictor_run進行編碼,numpreviouszero是指示二進制矢量中在1前面的0的數(shù)目的變量。如果numpreviouszero的值大于0,則可以將(numpreviouszero+1)的值編碼為palette_predictor_run。否則(例如,如果numpreviouszero的值為0),則可以將numpreviouszero的值(例如0)編碼為palette_predictor_run。
同時,如圖6所示,可能存在調(diào)色板條目7之后的調(diào)色板條目不被重用為當前塊的調(diào)色板條目的情況。視頻編碼設(shè)備需要用信號傳送調(diào)色板條目7之后的不被重用為當前塊的調(diào)色板條目的調(diào)色板條目。出于這個目的,可以將palette_predictor_run的值編碼為1。也就是說,如果palette_predictor_run的值為1,則這意指在當前塊中不再對palette_predictor_run進行編碼。可以基于被編碼的palette_predictor_run的值來控制從先前塊的調(diào)色板映射獲取當前塊的預(yù)測的調(diào)色板條目的過程是否完成。
參照圖6,在先前塊的調(diào)色板條目0和1的情況下,由于指示在1前面的0的數(shù)目的變量numpreviouszero的值為0,因此可以將0編碼為palette_predictor_run的值。在先前塊的調(diào)色板條目3的情況下,由于指示在1前面的0的數(shù)目的變量numpreviouszero的值為1,因此可以將(numpreviouszero+1)的值(即,2)編碼為palette_predictor_run的值。在先前塊的調(diào)色板條目7的情況下,由于指示在1前面的0的數(shù)目的變量numpreviouszero的值為3,因此可以將(numpreviouszero+1)的值(即,4)編碼為palette_predictor_run的值。由于在調(diào)色板條目7之后的調(diào)色板條目不被重用為當前塊的調(diào)色板條目,因此可以將1編碼為palette_predictor_run的值。
可以將當前塊的palette_predictor_run編碼為與先前塊的調(diào)色板條目中的被重用為當前塊的調(diào)色板條目的調(diào)色板條目的數(shù)目一樣多(即,二進制矢量中1的數(shù)目),或者可以編碼為與通過將1加至二進制矢量中的1的數(shù)目所得到的值一樣多。被編碼用于當前塊的palette_predictor_run的數(shù)目可以基于先前調(diào)色板映射的映射索引的最大值(maxindex)是否等于先前塊的被重用于當前塊的調(diào)色板條目的映射索引中的最大值(maxreuseidx)來確定。例如,如果maxreuseidx等于maxindex,則可以將palette_predictor_run編碼為與二進制矢量中的1的數(shù)目一樣多。否則(例如,如果maxreuseidx小于maxindex),則可以將palette_predictor_run編碼為與將1加至二進制矢量中的1的數(shù)目所得到的值一樣多。
視頻解碼設(shè)備可以基于用信號傳送的palette_predictor_run來得到指示先前塊的調(diào)色板條目是否被重用的標記(predictorpaletteentryreuseflag)。例如,如果predictorpaletteentryreuseflag[idx]的值為1,則這可以意指與映射索引idx對應(yīng)的調(diào)色板條目被重用為當前塊的調(diào)色板條目。如果該值為0,則這可以意指與映射索引idx對應(yīng)的調(diào)色板條目沒有被重用為當前塊的調(diào)色板條目??梢詫redictorpaletteentryreuseflag的初始值設(shè)置為0。
具體地,用于具有映射索引(idx-1)的調(diào)色板條目的predictorpaletteentryreuseflag[idx-1]的值為1,并且針對映射索引idx來獲取palette_predictor_run。如果palette_predictor_run的值大于1,則可以針對具有映射索引(idx+palette_predictor_run-1)的調(diào)色板條目將predictorpaletteentryreuseflag[idx+palette_predictor_run-1]的值設(shè)置為1。如果palette_predictor_run的值為0,則可以針對具有映射索引idx的調(diào)色板條目將predictorpaletteentryreuseflag[idx]的值設(shè)置為1。如果palette_predictor_run的值為1,則這指示不再重用先前塊的調(diào)色板條目中的調(diào)色板條目并且先前塊的再次用于當前塊的調(diào)色板條目中的最大映射索引的值將是(idx-1)。
將參照圖6來描述在視頻解碼設(shè)備中基于palette_predictor_run來確定預(yù)測的調(diào)色板條目的過程。
首先,可以從比特流獲取用于先前塊的調(diào)色板映射中的調(diào)色板條目0的palette_predictor_run。由于palette_predictor_run的值為0,因此將用于調(diào)色板條目0的predictorpaletteentryreuseflag[0]的值設(shè)置為1,并且調(diào)色板條目0包括在當前塊的調(diào)色板映射中??梢詮谋忍亓鳙@取用于先前塊的調(diào)色板映射中的調(diào)色板條目1的palette_predictor_run。由于palette_predictor_run的值為0,因此將用于調(diào)色板條目1的predictorpaletteentryreuseflag[1]的值設(shè)置為1,并且調(diào)色板條目1也包括在當前塊的調(diào)色板映射中。可以從比特流獲取用于先前塊的調(diào)色板映射中的調(diào)色板條目2的palette_predictor_run。由于palette_predictor_run的值被設(shè)置為2,因此將用于位于(idx+palette_predictor_run-1)處的調(diào)色板條目(即,調(diào)色板條目3)的predictorpaletteentryreuseflag[3]的值設(shè)置為1并且調(diào)色板條目3包括在當前塊的調(diào)色板映射中??梢詮谋忍亓鳙@取用于先前塊的調(diào)色板映射中的調(diào)色板條目4的palette_predictor_run。由于palette_predictor_run的值為4,因此將用于位于(idx+palette_predictor_run-1)處的調(diào)色板條目(即,調(diào)色板條目7)的predictorpaletteentryreuseflag[7]的值設(shè)置為1并且調(diào)色板條目7包括在當前塊的調(diào)色板映射中。通過上述處理,從先前塊的調(diào)色板映射獲取當前塊的預(yù)測的調(diào)色板條目。如上所述,可以執(zhí)行該處理直到palette_predictor_run達到1為止。
同時,可以基于先前塊的調(diào)色板條目中的再次用于當前塊的調(diào)色板條目的數(shù)目(numpreviouspaletteentry)來限制性地用信號傳送palette_predictor_run。例如,如果numpreviouspaletteentry等于先前塊的調(diào)色板映射的大小,則可以不用信號傳送palette_predictor_run,這是因為先前塊的所有調(diào)色板條目被重用為當前塊的調(diào)色板條目??梢栽趦H當numpreviouspaletteentry小于先前塊的調(diào)色板映射的大小時,用信號傳送palette_predictor_run。
在本實施方式中,描述了基于指示在1前面的0的數(shù)目的變量numpreviouszero對palette_predictor_run進行編碼的方法,但是本發(fā)明不限于此。當先前塊的調(diào)色板條目中的被重用于當前塊的調(diào)色板條目的數(shù)目很多(例如,要重用的調(diào)色板條目的數(shù)目大于先前塊的調(diào)色板映射的一半大小)時,在二進制矢量(即,重用標記陣列)中0的數(shù)目大于1的數(shù)目。在這種情況下,可能有效地是,基于指示在0前面的1的數(shù)目的變量numpreviousones來對palette_predictor_run進行編碼是有效的,而不是基于指示在二進制矢量中在1前面的0的數(shù)目的變量numpreviouszero來對palette_predictor_run進行編碼。
具體地,如果被重用于當前塊的調(diào)色板條目的數(shù)目大于先前塊的調(diào)色板映射(或構(gòu)成先前塊的調(diào)色板映射的調(diào)色板條目的數(shù)目)的一半大小時,palette_predictor_run被定義為被編碼以指定在0前面的1的數(shù)目的信息,或者,其可以被定義為被編碼以指定在1前面的0的數(shù)目的信息。
如果基于指示在0前面的1的數(shù)目的變量numpreviousones對palette_predictor_run進行編碼,則視頻解碼設(shè)備可以基于用信號傳送的palette_predictor_run確定在先前塊的調(diào)色板映射中predictorpaletteentryreuseflag為0值的調(diào)色板條目。因此,可以將位于predictorpaletteentryreuseflag為0值的調(diào)色板條目之間的調(diào)色板條目指定為重用于當前塊的調(diào)色板條目。
圖7示出了根據(jù)本發(fā)明的實施方式的基于調(diào)色板預(yù)測最后行程(palette_predictor_last_run)來獲取當前塊的預(yù)測的調(diào)色板條目的方法。
在本實施方式中,假設(shè)先前塊的調(diào)色板映射由分配有映射索引0至7的8個調(diào)色板條目組成。
首先,將描述在視頻編碼設(shè)備中對調(diào)色板預(yù)測行程(palette_predictor_run)和調(diào)色板預(yù)測最后行程(palette_predictor_last_run)進行編碼的過程。視頻編碼設(shè)備確定包括在先前塊的調(diào)色板映射中的每個調(diào)色板條目是否被重用為當前塊的調(diào)色板條目。根據(jù)該確定,當調(diào)色板條目被重用為當前塊的調(diào)色板條目時,向重用標記(predictorpaletteentryreuseflag)分配1值,否則,向重用標記分配0值。
例如,如圖7所示,當先前塊的調(diào)色板條目中調(diào)色板條目2、3和6被重用為當前塊的調(diào)色板條目并且剩余調(diào)色板條目不被重用時,可以生成由00110010表示的二進制矢量。
視頻編碼設(shè)備可以將被重用于當前塊的調(diào)色板條目中的具有最大映射索引的調(diào)色板條目(例如,調(diào)色板條目6)的位置編碼為palette_predictor_last_run,并且可以將剩余調(diào)色板條目(例如,調(diào)色板條目2和3)的位置編碼為palette_predictor_run。
參照圖7,分別對palette_predictor_run進行編碼以指定調(diào)色板條目2和3的位置,并且可以類似地應(yīng)用圖6中描述的方法。也就是說,由于基于重用標記為1值的調(diào)色板條目2指示在1前面的0的數(shù)目的變量numpreviouszero的值為2,因此可以將(numpreviouszero+1)的值即3編碼為palette_predictor_run的值。并且,由于基于調(diào)色板條目3指示在1前面的0的數(shù)目的變量numpreviouszero的值為0,因此可以將等于numpreviouszero的值即0編碼為palette_predictor_run的值。同時,由于在調(diào)色板條目3之后除了由palette_predictor_last_run指定的調(diào)色板條目6之外不存在重用于當前塊中的調(diào)色板條目,因此可以將palette_predictor_run的值編碼為1。
將要重用與于當前塊的調(diào)色板條目中的最大映射索引定義為maxidx,并且將重用標記為1值的前面緊接調(diào)色板條目的映射索引定義為idxprevious。此時,可以利用(maxidx-idxprevious-1)的值對palette_predictor_last_run的值進行編碼。此處,在前緊接的調(diào)色板條目可以意指調(diào)色板條目位于基于palette_predictor_run指定的調(diào)色板條目的末尾處。
視頻解碼設(shè)備可以基于從比特流用信號傳送的palette_predictor_run和palette_predictor_last_run來確定先前塊的調(diào)色板映射中的被重用為當前塊的調(diào)色板條目的調(diào)色板條目。
具體地,視頻解碼設(shè)備從比特流獲取palette_predictor_run并且確定移位了(palette_predictor_run-1)的值的位置處的調(diào)色板條目??梢詫⒂糜谒_定的調(diào)色板條目的重用標記的值設(shè)置為1,并且所確定的調(diào)色板條目可以被包括在當前塊的調(diào)色板映射中。
同時,當從比特流用信號傳送palette_predictor_last_run時,視頻解碼設(shè)備通過將palette_predictor_last_run的值加至位于基于palette_predictor_run指定的調(diào)色板條目的末尾處的調(diào)色板條目的映射索引(idxprevious)來計算第一值并且通過將1加至第一值來計算第二值??梢詫⒕哂械诙档挠成渌饕恼{(diào)色板條目的重用標記的值設(shè)置為1,并且所述調(diào)色板條目可以包括在當前塊的調(diào)色板映射中。如上所述,基于palette_predictor_last_run指定的調(diào)色板條目可以意指在重用于當前塊的調(diào)色板條目中的具有最大映射索引的調(diào)色板條目。
圖8示出了根據(jù)本發(fā)明的實施方式的構(gòu)造當前塊的調(diào)色板映射的方法。
當前塊可以使用與先前塊的調(diào)色板映射相同的調(diào)色板映射。因此,出于該目的,可以使用以下標記(palette_share_flag),所述標記指示當前塊的調(diào)色板映射的大小(或調(diào)色板條目的數(shù)目)是否等于先前塊的調(diào)色板映射的大小(或調(diào)色板條目的數(shù)目)以及當前塊是否使用與先前塊的調(diào)色板映射相同的調(diào)色板映射。例如,如果palette_share_flag的值為1,則這可以意指當前塊的調(diào)色板映射的大小和調(diào)色板條目與先前塊相同。另一方面,如果palette_share_flag的值為0(即,在當前塊的調(diào)色板映射的大小或調(diào)色板條目中的至少一個與先前塊不同的情況下),則當前塊可以選擇性地使用先前調(diào)色板映射的調(diào)色板條目的一部分或者可以使用先前調(diào)色板映射的調(diào)色板條目以外的附加調(diào)色板條目。
可以使用指示調(diào)色板條目是否被重用的標記(previous_palette_entry_flag[i])以選擇性地使用先前調(diào)色板映射的調(diào)色板條目的全部或一部分。例如,如果previous_palette_entry_flag[i]的值為1,則這可以意指先前調(diào)色板映射中的第i個調(diào)色板條目被被重用為當前塊的調(diào)色板條目。如果previous_palette_entry_flag[i]的值為0,則這可以意指第i個調(diào)色板條目不被重用為當前塊的調(diào)色板條目??梢杂眯盘杺魉团c包括在先前調(diào)色板映射中的調(diào)色板條目的數(shù)目一樣多的previous_palette_entry_flag[i]。
當當前塊另外使用未包括在先前調(diào)色板映射中的調(diào)色板條目(下文中稱為用信號傳送的調(diào)色板條目)時,視頻編碼設(shè)備可以對用信號傳送的調(diào)色板條目的數(shù)目進行編碼并且用信號傳送與用信號傳送的調(diào)色板條目的數(shù)目一樣多的調(diào)色板條目。例如,如果包括在先前調(diào)色板映射中的調(diào)色板條目的數(shù)目等于當前塊的預(yù)測的調(diào)色板條目的數(shù)目,則這可以意指至少一個用信號傳送的調(diào)色板條目被用于當前塊。因此,視頻編碼設(shè)備可以對通過將用信號傳送的調(diào)色板條目的數(shù)目減去1得到的值(palette_num_signalled_entries_minus1,下文中稱為第一用信號傳送的條目數(shù)目信息)進行編碼。如果包括在先前調(diào)色板映射中的調(diào)色板條目的數(shù)目與當前塊的預(yù)測的調(diào)色板條目的數(shù)目不相同,則視頻編碼設(shè)備可以對用信號傳送的調(diào)色板條目的數(shù)目(palette_num_signalled_entries,下文中稱為第二用信號傳送的調(diào)色板條目)進行編碼。
考慮當前塊的預(yù)測的調(diào)色板條目的數(shù)目與包括在先前調(diào)色板中的調(diào)色板條目的數(shù)目是否相同,視頻解碼設(shè)備可以確定用信號傳送的條目的數(shù)目。
參照圖8,當當前塊的預(yù)測的調(diào)色板條目的數(shù)目(palettenumpredictedentries)與包括在先前調(diào)色板中的調(diào)色板條目的數(shù)目(previouspalettesize)不同時,視頻解碼設(shè)備可以獲取第二用信號傳送的條目數(shù)目信息(s800)。在這種情況下,可以導(dǎo)出當前塊的用信號傳送的調(diào)色板條目的數(shù)目是與第二條目數(shù)目信息的值相同的值。
同時,當palettenumpredictedentries與previouspalettesize相同時,可以獲取第一用信號傳送的條目數(shù)目信息(s810)。在這種情況下,可以通過將1加至第一用信號傳送的條目數(shù)目信息來得到當前塊的用信號傳送的調(diào)色板條目的數(shù)目。
可以從比特流獲取與當前塊的用信號傳送的調(diào)色板條目的數(shù)目一樣多的用信號傳送的調(diào)色板條目(s820)??梢酝ㄟ^使用根據(jù)先前調(diào)色板映射預(yù)測的調(diào)色板條目和用信號傳送的調(diào)色板條目來構(gòu)造當前調(diào)色板映射??梢曰谙惹罢{(diào)色板映射的大小(或者,包括在先前調(diào)色板映射中的調(diào)色板條目的數(shù)目)和/或palettenumpredictedentries與previouspalettesize是否相同來得到當前調(diào)色板映射的大小(或者,包括在當前調(diào)色板映射中的調(diào)色板條目的數(shù)目currentpalettesize)如下:
(1)當palette_share_flag的值等于1時
currentpalettesize=previouspalettesize
(2)當palette_share_flag的值等于0時,并且當palettenumpredictedentries與previouspalettesize相同時
currentpalettesize=previouspalettesize+palette_num_signalled_entries_minus1+1
(3)當palette_share_flag的值等于0時,并且當palettenumpredictedentries與previouspalettesize不同時
currentpalettesize=previouspalettesize+palette_num_signalled_entries
圖9示出了根據(jù)本發(fā)明的實施方式的基于調(diào)色板索引信息和調(diào)色板索引行程來得到當前塊的調(diào)色板索引的方法。
首先,將描述在視頻編碼設(shè)備中對調(diào)色板索引信息和調(diào)色板索引行程進行編碼的過程。為了方便說明,如圖9所示,假設(shè)當前塊以索引模式編碼,每個樣本使用在0至3范圍內(nèi)的調(diào)色板索引,并且使用當前塊的左上側(cè)樣本是開始位置的水平往返掃描。
參照圖9,如果根據(jù)水平往返掃描順序以一維形式來布置由當前塊使用的調(diào)色板索引,則可以將所述調(diào)色板索引表示為下面的{0,2,2,2,3,3,3,3,2,0,0,0,0,1,1,1}。一維陣列可以被分組成連續(xù)且等值的調(diào)色板索引。也就是說,一維陣列可以包括:由一個0值組成的第一組、由三個2值組成的第二組、由四個3值組成的第三組、由一個2值組成的第四組、由四個0值組成的第五組以及由三個1值組成的第六組。去除了每個組的調(diào)色板索引的冗余。如下面的表1所示,可以通過指定和對要被編碼的調(diào)色板索引和/或要被編碼的調(diào)色板索引的數(shù)目進行編碼來生成調(diào)色板索引信息和/或關(guān)于要被編碼的調(diào)色板索引的數(shù)目的信息。
【表1】
也就是說,可以通過消除每個組的調(diào)色板索引的冗余來獲得{0,2,3,2,0,1}。在這種情況下,要被編碼的調(diào)色板索引被指定為{0,2,3,2,0,1},并且要被編碼的調(diào)色板索引的數(shù)目可以被指定為6。
另外,針對每個組,視頻編碼設(shè)備可以對同一調(diào)色板索引被重復(fù)的次數(shù)(在下文中被稱為調(diào)色板索引行程)進行編碼。例如,如表1所示,由于第一組由一個0值組成,因此調(diào)色板索引行程被確定為0。在第二組中,由于在具有掃描順序(1)的樣本處使用調(diào)色板索引2并且在具有掃描順序(2)和掃描順序(3)的樣本處連續(xù)使用同一調(diào)色板索引2,因此調(diào)色板索引行程可以被確定為2。視頻編碼設(shè)備可以照原樣對所確定的調(diào)色板索引行程的值進行編碼,或者為了編碼效率,可以將所述值劃分為最高有效位(msb)和精細位。
通過上述過程,可以在視頻編碼設(shè)備處將用于當前塊的調(diào)色板索引編碼為以下中的至少一個:關(guān)于要被編碼的調(diào)色板索引的數(shù)目的信息、關(guān)于要被編碼的調(diào)色板索引的調(diào)色板索引信息或調(diào)色板索引行程。
在編碼過程中,存在這樣的情況,其中,按照掃描順序從當前樣本至最后樣本出現(xiàn)同一調(diào)色板索引(延伸至末尾(run-to-end))??梢詫⒄{(diào)色板索引行程設(shè)置為預(yù)定恒定值以通知視頻解碼設(shè)備已經(jīng)發(fā)生行程結(jié)束。例如,可以通過將調(diào)色板索引行程的值設(shè)置為3來指示按照掃描順序從當前塊的當前樣本至最后樣本的所有樣本具有相同的調(diào)色板索引。
可以取決于當前樣本在掃描順序中位于哪個位置或當前樣本包括在哪一行/列將指示延伸至末尾的調(diào)色板索引行程的值設(shè)置得不同。例如,如果當前樣本屬于第一行,則可以將調(diào)色板索引行程的值設(shè)置為8以指示已經(jīng)發(fā)生延伸至末尾。如果當前樣本位于第三行,則可以將調(diào)色板索引行程的值設(shè)置為8以指示已經(jīng)發(fā)生延伸至末尾??商孢x地,當當前樣本的掃描順序大于當前塊大小(ncbs*ncbs)的中間值時,可以將調(diào)色板索引行程的值設(shè)置為6以指示已經(jīng)發(fā)生延伸至末尾。相反地,如果當前樣本的掃描順序小于當前塊大小(ncbs*ncbs)的中間值,則可以將調(diào)色板索引行程的值設(shè)置為2以指示已經(jīng)發(fā)生延伸至末尾。
視頻解碼設(shè)備可以從比特流獲取調(diào)色板索引信息和調(diào)色板索引行程,并且使用調(diào)色板索引信息和調(diào)色板索引行程來得到當前塊的每個樣本的調(diào)色板索引。
可以獲取和與關(guān)于調(diào)色板索引的數(shù)目的編碼信息對應(yīng)的數(shù)目一樣多的調(diào)色板索引信息??梢皂樞虻孬@得與每個調(diào)色板索引信息對應(yīng)的調(diào)色板索引行程以得到當前塊的調(diào)色板索引。例如,視頻解碼設(shè)備可以從比特流獲得調(diào)色板索引信息{0,2,3,2,0,1}。然后,可以從比特流獲得與調(diào)色板索引信息0對應(yīng)的調(diào)色板索引行程。如果與調(diào)色板索引信息0對應(yīng)的調(diào)色板索引行程的值為0,則視頻解碼設(shè)備可以向當前塊的具有掃描順序(0)的樣本分配調(diào)色板索引0。然后,可以從比特流獲得與調(diào)色板索引信息2對應(yīng)的調(diào)色板索引行程。如果與調(diào)色板索引信息2對應(yīng)的調(diào)色板索引行程的值為2,則視頻解碼設(shè)備可以根據(jù)掃描順序向當前塊的具有掃描順序(1)至(3)的樣本順序地分配調(diào)色板索引2。以這種方式,可以得到當前塊中的所有樣本的調(diào)色板索引。
可以基于模式標識符(palette_run_type_flag)和得到的調(diào)色板索引來限制性地用信號傳送調(diào)色板索引行程。如圖3所示,如果所得到的用于當前樣本的調(diào)色板索引的值等于當前塊的調(diào)色板條目的數(shù)目,則可以推斷當前樣本以逸出模式編碼。在這種情況下,可以不用信號傳送調(diào)色板索引行程,或者可以用信號傳送具有小于或等于1的值的調(diào)色板索引行程。
圖10示出了根據(jù)本發(fā)明的實施方式的基于復(fù)制模式得到調(diào)色板索引的方法。
復(fù)制模式可以是這樣的模式,其中,在當前樣本之前解碼的相鄰樣本的調(diào)色板索引被復(fù)制并被用作當前樣本的調(diào)色板索引。此處,相鄰樣本可以意指與當前樣本鄰近的頂側(cè)或左側(cè)相鄰樣本,或者可以意指不與當前樣本鄰近的頂側(cè)或左側(cè)相鄰樣本。頂側(cè)相鄰樣本可以與當前樣本處于同一列中,并且左側(cè)相鄰樣本可以與當前樣本處于同一行中??梢允褂闷苼碇付ㄔ趶?fù)制模式下使用的相鄰樣本(下文中稱為參考樣本)。此處,偏移可以表示當前樣本與參考樣本之間的位置差(例如,行差或列差)??梢岳卯斍皹颖九c參考樣本之間的位置差對偏移進行編碼,或者偏移可以被編碼為通過從偏移減去恒定值而獲得的值(例如,copy_previous_offest_minus1,copy_previous_offest_minus2)。在這種情況下,視頻解碼設(shè)備可以通過將恒定值加至編碼的偏移來恢復(fù)偏移。
可以順序地生成與當前樣本具有相同偏移的樣本。在這種情況下,對于每個樣本可以不通過行程編碼對偏移進行編碼。例如,可以對指示與當前樣本具有相同偏移的連續(xù)樣本的數(shù)目的值(copy_run,下文中稱為復(fù)制行程)進行編碼。復(fù)制行程的值可以被限制在預(yù)定范圍內(nèi)。例如,如果當前樣本使用copy_abovemode,則復(fù)制行程的值不能大于當前塊的寬度。這是因為,如果復(fù)制行程的值大于當前塊的寬度,則將尚未被解碼的相鄰樣本用作參考樣本。或者,如果當前樣本使用不與當前樣本鄰近的相鄰樣本,則復(fù)制行程的值不能大于偏移*當前塊的寬度(ncbs)。類似地,當復(fù)制行程的值大于偏移*當前塊的寬度(ncbs)時,將尚未被解碼的相鄰樣本用作參考樣本。
同時,可以將本發(fā)明的參考樣本限制為當前塊(例如,編碼塊或預(yù)測塊)中的樣本,或者可以限制為還包括與當前塊鄰近的相鄰塊的預(yù)定區(qū)域中的樣本。
如果參考樣本包括在與當前塊鄰近的相鄰塊中,則可以通過使用偏移和/或塊標識信息來確定參考樣本。此處,塊標識信息意指指定包括參考樣本的相鄰塊的信息,并且塊標識信息可以包括相鄰塊的位置/大小信息、塊劃分信息等。具體地,在由塊標識信息指定的相鄰塊中,可以將在與和當前樣本具有相同位置的樣本偏移一樣多的位置處的樣本確定為參考樣本。
或者,如果參考樣本限制為當前塊中的樣本,則可以可選地根據(jù)當前樣本在當前塊中的位置(例如,當前樣本位于的行和/或列)來使用編碼的偏移。例如,如果當前樣本位于當前塊的第三行并且當前樣本將不與當前樣本鄰近的相鄰樣本用作為參考樣本,則當前樣本可以不使用編碼的偏移。在這種情況下,得到用于當前樣本的偏移為0,并且可以通過復(fù)制位于第一行的參考樣本的調(diào)色板索引來得到當前樣本的調(diào)色板索引。
圖11示出了根據(jù)本發(fā)明的實施方式的在調(diào)色板模式下使用的掃描順序。
參照圖11,在調(diào)色板模式下使用的掃描順序包括:水平掃描、垂直掃描、水平往返掃描、垂直往返掃描。
具體地,水平掃描是從左至右掃描當前塊的每個行的方法,垂直掃描是自上而下掃描當前塊的每個列的方法。
水平往返掃描是從左至右掃描當前塊的奇數(shù)行并且從右至左掃描偶數(shù)行的方法,垂直往返掃描是自上而下掃描當前塊的奇數(shù)列而自下而上掃描偶數(shù)列的方法。
然而,在該實施方式中,假設(shè)當前塊的左上側(cè)樣本被設(shè)置為掃描開始位置,但是本發(fā)明不限于此,可以將當前塊的另一拐角樣本設(shè)置為掃描開始位置。
圖12示出了根據(jù)本發(fā)明的實施方式的用于基于逸出存在標記來獲取調(diào)色板索引的方法。
參照圖12,可以基于構(gòu)成當前調(diào)色板映射的調(diào)色板條目的數(shù)目(currentpalettesize)來獲取逸出存在標記(palette_escape_val_present_flag)(s1200)。例如,當currentpalettesize不為0時,可以獲取逸出存在標記。這意指僅當在當前調(diào)色板映射中存在至少一個調(diào)色板條目時,才確定當前塊中的至少一個樣本是否使用逸出模式。
可以基于palette_escape_val_present_flag和currentpalettesize中的至少一個來獲取每個樣本的調(diào)色板索引模式和/或調(diào)色板索引。
具體地,參照圖12,當palette_escape_val_present_flag的值和currentpalettesize的值不為1時,可以從比特流獲取標識調(diào)色板索引模式的模式標識符(palette_run_type_flag)(s1210)。
可以根據(jù)palette_run_type_flag的值將復(fù)制模式或索引模式確定為當前樣本的調(diào)色板索引模式。另一方面,如果palette_escape_val_present_flag或currentpalettesize中的至少一個不為1,則不用信號傳送palette_run_type_flag,并且可以將當前樣本的調(diào)色板索引模式設(shè)置為逸出模式。
如果根據(jù)在步驟s1210中獲取的palette_run_type_flag當前樣本使用索引模式,則可以從比特流獲取調(diào)色板索引(palette_index_idc)(s1220)。
如圖12所示,僅當palette_escape_val_present_flag的值和currentpalettesize的值不等于1時,可以獲取palette_index_idc。
如果palette_escape_val_present_flag或currentpalettesize中的至少一個為1,則不通過比特流用信號傳送palette_index_idc,并且可以基于currentpalettesize的值得到palette_index_idc。具體地,可以通過加法運算或減法運算來得到palette_index_idc,在加法運算或減法運算中,輸入與屬于當前調(diào)色板映射的調(diào)色板條目的數(shù)目有關(guān)的變量(currentpalettesize)和預(yù)定恒定值。此處,預(yù)定恒定值可以是取決于currentpalettesize而確定的可變值或預(yù)定義的固定恒定值。例如,可以通過將1加至currentpalettesize來得到palette_index_idc。
圖13示出了根據(jù)本發(fā)明的實施方式的用于基于當前樣本的位置和/或剩余調(diào)色板索引的數(shù)目來獲取模式標識符的方法。
參照圖13,可以基于以下中的至少一個來用信號傳送模式標識符(palette_run_type_flag):當前樣本的位置(scanpos)或剩余調(diào)色板索引的數(shù)目(indicesleft)(s1300)。
具體地,當當前樣本的位置不與當前塊的最后樣本在掃描順序中的位置對應(yīng)并且剩余調(diào)色板索引的數(shù)目不為0時,可以從比特流用信號傳送用于當前樣本的模式標識符。
此處,可以通過根據(jù)關(guān)于當前塊的編碼的調(diào)色板索引的索引數(shù)目的信息的數(shù)目與在當前樣本之前使用的調(diào)色板索引的累計數(shù)目之間的差來得到剩余調(diào)色板索引的數(shù)目(indicesleft)。已經(jīng)參照圖9描述了編碼的調(diào)色板索引及其數(shù)目,此處將省略對其的詳細描述。
如圖13所示,除了上述情況之外,還可以考慮以下中的至少一個:根據(jù)掃描順序的當前塊的位置是否小于當前塊的大小(ncbs)或者先前樣本的調(diào)色板索引模式是否是索引模式。
同時,如果剩余調(diào)色板索引的數(shù)目為0,則不從比特流用信號傳送用于當前樣本的模式標識符,并且作為替代可以將模式標識符設(shè)置為復(fù)制模式(s1310)。如果根據(jù)掃描順序當前樣本的位置不與當前塊的最后樣本的位置對應(yīng),則不用信號傳送用于位于當前樣本之后的剩余樣本的模式標識符,并且可以如在當前樣本中將模式標識符設(shè)置為復(fù)制模式。
同時,可能存在剩余調(diào)色板索引的數(shù)目不為0但是根據(jù)掃描順序當前樣本的位置對應(yīng)于當前塊的最后樣本的位置的情況。剩余調(diào)色板索引的數(shù)目不為0的事實意指在當前塊中存在至少一個以索引模式編碼的樣本。然而,由于當前樣本對應(yīng)于當前塊的最后樣本,因此不需要用信號傳送用于當前樣本的模式標識符,并且將作為替代將模式標識符設(shè)置為索引模式。
通過上述過程,可以獲取當前樣本的模式標識符,并且可以基于所獲取的模式標識符來確定當前樣本的調(diào)色板索引模式。如果所確定的調(diào)色板索引模式是索引模式,則基于編碼的調(diào)色板索引信息來得到當前樣本的調(diào)色板索引。如果所確定的模式是復(fù)制模式,則通過復(fù)制相鄰樣本的調(diào)色板索引來得到當前樣本的調(diào)色板索引。
工業(yè)實用性
本發(fā)明可以用于對視頻信號進行編碼/解碼。