本發(fā)明涉及用于使用調(diào)色板(palette)預(yù)測模式來對至少一個圖像進行處理、例如將這些圖像編碼到位流中或者從位流中解碼這些圖像的方法和裝置。本發(fā)明特別涉及如在hevc畫面內(nèi)容編碼(screencontentcoding,scc)擴展中所介紹的調(diào)色板模式編碼。
背景技術(shù):
本發(fā)明更特別地適用于基于利用所謂的調(diào)色板進行編碼后的或者根據(jù)調(diào)色板構(gòu)建得到的各個索引塊來分別對像素塊進行編碼的編碼模式。
本文獻中的調(diào)色板被定義為具有使索引與像素的值相關(guān)聯(lián)的條目或“元素”的查找表。通常,各條目包括如后面所述的一個或三個元素。各元素涉及針對顏色分量的像素值。例如,如果圖像是單色,則調(diào)色板的各條目包括針對唯一顏色分量的一個元素。
換句話說,通常但并非必需地,像素的值包括與該像素相關(guān)聯(lián)的各顏色分量的值,這樣得到彩色調(diào)色板。然而,像素的值可以由單個像素分量(命名為“元素”)構(gòu)成,這樣得到單色調(diào)色板。
通常將對像素塊進行編碼的該模式稱為調(diào)色板編碼模式。例如,在高效視頻編碼國際標準的畫面內(nèi)容編碼(scc)擴展(參見文獻jctvc-s1005)中,考慮采用該模式。
在對視頻序列中的圖像進行編碼的情況下,首先將該圖像分割成被稱為編碼樹塊(ctb)的大小相等的像素的編碼實體(還稱為“編碼結(jié)構(gòu)”)??梢詫tb分組成諸如條帶(slice)和/或區(qū)塊(tile)等的具有更高分層等級的其它編碼結(jié)構(gòu)。換句話說,將圖像遞歸地分割成分層編碼結(jié)構(gòu)或編碼實體。
編碼樹塊的大小通常是64×64個像素。然后,各編碼樹塊可分解成較小塊的分層樹,其中這些較小塊的大小可以改變,并且這些較小塊是要編碼的實際像素塊。將要編碼的這些較小塊稱為編碼單元(cu)。
特定編碼單元的編碼涉及包括眾所周知的intra(幀內(nèi))編碼模式、眾所周知的inter(幀間)編碼模式和調(diào)色板編碼模式的預(yù)測編碼模式之間的競爭。
利用調(diào)色板編碼模式,可以將針對給定編碼單元的代表塊定義為來自調(diào)色板的索引塊:針對編碼單元中的各像素位置,所述代表塊包含與調(diào)色板中的如下像素值相關(guān)聯(lián)的索引,其中該像素值最接近于編碼單元中位置相同(即,同位置)的像素的值。然而,用于選擇最接近的調(diào)色板條目的該基于調(diào)色板的算法在hevcscc中僅是編碼器:不必知曉所述算法以解析或解碼位流。通常,最接近意味著具有使用諸如分量值的絕對值和或者平方、差等的特定度量距離的最低距離。特別地,在無損編碼的情況下,這意味著調(diào)色板條目應(yīng)被編碼器選擇為等于像素。在下文,使用“與…相對應(yīng)”或者“與…一致”來表示無損編碼時的“等于”、或者其它情況下的“最接近”。
在hevcscc的最近版本中,沒有設(shè)置原始像素塊和相應(yīng)的基于調(diào)色板的代表像素塊之間的殘差。為了避免編碼后圖像中的高質(zhì)量下降,引入了“逃逸編碼”特征來對像素進行編碼,其中這些像素的值與調(diào)色板的條目的像素值不一致。這意味著,在無損編碼中,沒有調(diào)色板條目等于像素值。在這種情況下,使用調(diào)色板中的特定索引來通知“逃逸編碼”像素;并且將逃逸編碼像素的量化值本身直接編碼在位流中,其中該量化依賴于以cu等級所發(fā)送的量化步長。在無損編碼的情況下,量化步長為0,這意味著不進行量化。量化在hevc標準中被定義為變換旁路量化,并且使用截斷二進制代碼來對量化值進行編碼。
因而,調(diào)色板編碼模式使用當前調(diào)色板來構(gòu)建代表當前編碼單元或像素塊的索引塊。調(diào)色板中的條目索引還已知為“等級(level)”。
在使用調(diào)色板模式的情況下,經(jīng)常在對圖像進行編碼的位流中傳輸調(diào)色板以及索引或“等級”塊。由于需要針對各編碼單元傳輸可能包括數(shù)十個條目的調(diào)色板,因此這表示信令的成本高。
在申請人在jct-vc(no.jctvc-q0063標題為“ahg10:palettepredictorstuffing”,17thmeeting:valencia,es,2014年3月27日~4月4日)的貢獻中,提出了使用調(diào)色板預(yù)測結(jié)果(例如,(針對最后處理的編碼單元的)最后使用的調(diào)色板)來預(yù)測針對當前編碼單元的當前調(diào)色板。由于不再針對各編碼單元完全明確地傳輸調(diào)色板,因此該方法的目的在于降低編碼成本。
另外,所提出的另一預(yù)測機制依賴于原樣重復(fù)使用完整的前一調(diào)色板,其中這種重復(fù)使用是利用標志palette_share_flag來表示并且要求解碼器存儲所述調(diào)色板的大小。然而,在預(yù)測結(jié)果的開頭不必原樣存儲該調(diào)色板。
然而,一些編碼特定性可能會破壞圖像的所有編碼單元中的調(diào)色板預(yù)測方案。這是如條帶和區(qū)塊那樣的編碼結(jié)構(gòu)的情況。
在hevc中引入了條帶編碼結(jié)構(gòu)和區(qū)塊編碼結(jié)構(gòu),以在圖像序列(視頻)中的數(shù)據(jù)損失的情況下提供再同步。注意,如hevc標準中所定義的獨立區(qū)塊包括至少一個條帶并且在空間上獨立于其它區(qū)塊。
為了獲得再同步性質(zhì),彼此獨立地對條帶和區(qū)塊進行編碼/解碼。換句話說,這些條帶和區(qū)塊是“自包含”的,這意味著例如在條帶或區(qū)塊的邊界不進行intra預(yù)測,并且ibc(intrablockcopy,幀內(nèi)塊復(fù)制)預(yù)測所用的熵編碼狀態(tài)或調(diào)色板預(yù)測結(jié)果或區(qū)域不與先前處理的條帶或區(qū)塊共享(或者不是從先前處理的條帶或區(qū)塊繼承來的)。
因而,再同步性質(zhì)使得可用于預(yù)測的數(shù)據(jù)不再可用,因此降低了編碼效率。在申請人的貢獻jctvc-q0063中,在開始對新的獨立條帶或區(qū)塊進行編碼的情況下、或者甚至在開始對新的一行ctb(已知為波前(wavefront)編碼)或者新的圖像或幀進行編碼的情況下,調(diào)色板預(yù)測結(jié)果被重置為零。申請人的貢獻jctvc-q0063中的另一方法涉及:將選擇調(diào)色板預(yù)測結(jié)果所來自于的調(diào)色板的集合重置為(在解碼器處)局部確定的默認調(diào)色板。例如,該默認調(diào)色板由均等地分布在顏色空間上的像素值構(gòu)成。
特別是針對在同一個圖像內(nèi)信息冗余性的程度高的scc的情況,該方法明顯不令人滿意。
此外,一些編碼特定性可能會破壞圖像的所有編碼單元中的調(diào)色板預(yù)測方案。這是如條帶和區(qū)塊那樣的編碼結(jié)構(gòu)的情況。結(jié)果,在標題為“hevcscreencontentcodingdrafttext3”,21stmeeting:geneva,ch,2015年2月19日~26日的貢獻jctvc-t1005中,提出了在hevcscc擴展所用的圖片參數(shù)集(pictureparameterset)擴展中傳輸調(diào)色板預(yù)測結(jié)果初始化程序。根據(jù)特定實施例,在該初始化程序的條目是單色的情況下,通知單色上下文和/或條目分量的位深度。
然而,通知顏色格式在參數(shù)值中引入了冗余性或潛在的一些不兼容性。
技術(shù)實現(xiàn)要素:
本發(fā)明是為了克服上述缺陷中的全部或一部分而設(shè)計的。特別地,本發(fā)明旨在使用調(diào)色板模式來提高編碼效率,例如大幅降低使用諸如條帶或區(qū)塊等的編碼結(jié)構(gòu)時的信令成本。
在第一方面中,本發(fā)明提供一種用于從位流中解碼至少一個圖像的方法,所述圖像被分割成包括多個條帶的分層編碼結(jié)構(gòu),所述多個條帶各自在所述圖像中具有相同的分層等級,所述方法包括以下步驟:
使用調(diào)色板編碼模式來對兩個條帶的編碼數(shù)據(jù)進行解碼,所述調(diào)色板編碼模式針對所述兩個條帶的處理后的各像素塊使用包括條目的集合的關(guān)聯(lián)調(diào)色板,所述條目的集合使各個條目索引與相應(yīng)的像素值相關(guān)聯(lián),其中與處理后的各像素塊相關(guān)聯(lián)的調(diào)色板是使用來自所述位流的預(yù)測信息根據(jù)調(diào)色板預(yù)測結(jié)果所預(yù)測的;
從所述位流中獲得與以分層方式位于所述條帶上方的編碼結(jié)構(gòu)相關(guān)聯(lián)的調(diào)色板預(yù)測結(jié)果初始化程序;以及
使用所獲得的調(diào)色板預(yù)測結(jié)果初始化程序來針對所述兩個條帶各自對所述調(diào)色板預(yù)測結(jié)果進行初始化,
其中,初始化后的調(diào)色板之后的各調(diào)色板預(yù)測結(jié)果包括與當前解碼的塊相關(guān)聯(lián)的當前調(diào)色板的所有條目以及用于預(yù)測所述當前調(diào)色板的調(diào)色板預(yù)測結(jié)果中的不用于預(yù)測所述當前調(diào)色板的一個或多個條目。
在第二方面中,本發(fā)明提供一種用于將至少一個圖像編碼在位流中的方法,包括以下步驟:
通過對所述圖像進行分割來獲得分層編碼結(jié)構(gòu);
彼此獨立地對所述圖像的兩個編碼結(jié)構(gòu)的數(shù)據(jù)進行編碼,以獲得在所述圖像中具有相同的分層等級的編碼后的兩個條帶,其中所述編碼使用調(diào)色板編碼模式,所述調(diào)色板編碼模式針對所述兩個條帶的各像素塊使用包括條目的集合的關(guān)聯(lián)調(diào)色板,所述條目的集合使各個條目索引與相應(yīng)的像素值相關(guān)聯(lián),其中所述編碼步驟包括確定預(yù)測信息,所述預(yù)測信息根據(jù)調(diào)色板預(yù)測結(jié)果來預(yù)測與處理后的各像素塊相關(guān)聯(lián)的調(diào)色板;
確定用以針對所述兩個條帶對所述調(diào)色板預(yù)測結(jié)果進行初始化的調(diào)色板預(yù)測結(jié)果初始化程序;以及
在所述位流中,提供包括所述預(yù)測信息的編碼數(shù)據(jù)并且提供所述調(diào)色板預(yù)測結(jié)果初始化程序,其中所述調(diào)色板預(yù)測結(jié)果初始化程序與所述位流中的以分層方式位于所述兩個條帶上方的編碼結(jié)構(gòu)相關(guān)聯(lián),
其中,在所述調(diào)色板編碼模式中,初始化后的調(diào)色板預(yù)測結(jié)果之后的各調(diào)色板預(yù)測結(jié)果包括與當前編碼的塊相關(guān)聯(lián)的當前調(diào)色板的所有條目以及用于預(yù)測所述當前調(diào)色板的調(diào)色板預(yù)測結(jié)果中的不用于預(yù)測所述當前調(diào)色板的條目。
在實施例中,所述調(diào)色板預(yù)測結(jié)果初始化程序是在圖片參數(shù)集即pps中按照圖像等級所定義的,以及所述兩個條帶參考所述圖片參數(shù)集。
在實施例中,所述調(diào)色板預(yù)測結(jié)果初始化程序是在序列參數(shù)集(sequenceparameterset)即sps中按照序列等級所定義的,以及兩個自包含式編碼結(jié)構(gòu)參考所述序列參數(shù)集。
在實施例中,在所述序列參數(shù)集中,在表示所述調(diào)色板編碼模式是否啟用的第一字段之后并且在包括針對所述調(diào)色板預(yù)測結(jié)果的最大大小的第二字段之后,定義所述調(diào)色板預(yù)測結(jié)果初始化程序。
在實施例中,所述調(diào)色板預(yù)測結(jié)果初始化程序是在包括所述兩個條帶的區(qū)塊中按照區(qū)塊等級所定義的,以及所述兩個條帶各自標識該條帶所屬的區(qū)塊。
在實施例中,針對所述兩個條帶的所述初始化步驟是在對各個條帶中的第一個像素塊進行解碼之前進行的。
在實施例中,用于根據(jù)調(diào)色板預(yù)測結(jié)果來預(yù)測調(diào)色板的所述預(yù)測信息包括標志的位圖,其中各標志用于定義所述調(diào)色板預(yù)測結(jié)果中的相應(yīng)條目是否被選擇為用以生成所述調(diào)色板中的條目的條目。
在第二方面的實施例中,確定調(diào)色板預(yù)測結(jié)果初始化程序包括:使用所述調(diào)色板編碼模式來對分散在以分層方式位于所述兩個條帶上方的所述編碼結(jié)構(gòu)所定義的圖像區(qū)域上的像素塊的子集進行編碼;以及使用所述編碼步驟結(jié)束時所獲得的調(diào)色板預(yù)測結(jié)果作為所述調(diào)色板預(yù)測結(jié)果初始化程序。
所述子集的像素塊可以沿著所述圖像區(qū)域的斜線或?qū)蔷€分布。
所述子集的像素塊可以在所述圖像的頂部水平對齊。
所述子集的像素塊可以是不連續(xù)的。
在實施例中,確定調(diào)色板預(yù)測結(jié)果初始化程序包括:遞歸地對像素塊的同一子集進行編碼,其中下一遞歸編碼循環(huán)所使用的第一個調(diào)色板預(yù)測結(jié)果是在先前遞歸編碼循環(huán)結(jié)束時所獲得的調(diào)色板預(yù)測結(jié)果。
在實施例中,所述條帶包括在兩個單獨圖像中。
在實施例中,所述條帶包括在同一圖像中。
在實施例中,所述調(diào)色板的大小是使用用于對所述調(diào)色板預(yù)測結(jié)果進行初始化的所述調(diào)色板預(yù)測結(jié)果初始化程序的大小所設(shè)置的。
在實施例中,所述方法還包括以下步驟:獲得與顏色分量的數(shù)量有關(guān)的信息,其中所述調(diào)色板預(yù)測結(jié)果初始化程序的結(jié)構(gòu)是基于與顏色分量的數(shù)量有關(guān)的所述信息。例如,所述信息可以是用于通知所述圖像是否是單色圖像的標志。
在本發(fā)明的第三方面中,提供一種解碼裝置,用于從位流中解碼至少一個圖像,所述圖像被分割成包括多個條帶的分層編碼結(jié)構(gòu),所述多個條帶各自在所述圖像中具有相同的分層等級:
解碼部件,用于使用調(diào)色板編碼模式來對兩個條帶的編碼數(shù)據(jù)進行解碼,所述調(diào)色板編碼模式針對所述兩個條帶的處理后的各像素塊使用包括條目的集合的關(guān)聯(lián)調(diào)色板,所述條目的集合使各個條目索引與相應(yīng)的像素值相關(guān)聯(lián),其中與處理后的各像素塊相關(guān)聯(lián)的調(diào)色板是使用來自所述位流的預(yù)測信息根據(jù)調(diào)色板預(yù)測結(jié)果所預(yù)測的;
獲得部件,用于從所述位流中獲得與以分層方式位于所述兩個條帶上方的編碼結(jié)構(gòu)相關(guān)聯(lián)的調(diào)色板預(yù)測結(jié)果初始化程序;以及
初始化部件,用于使用所獲得的調(diào)色板預(yù)測結(jié)果初始化程序來針對所述兩個條帶各自對所述調(diào)色板預(yù)測結(jié)果進行初始化,
其中,在所述調(diào)色板編碼模式中,初始化后的調(diào)色板預(yù)測結(jié)果之后的各調(diào)色板預(yù)測結(jié)果包括與當前解碼的塊相關(guān)聯(lián)的當前調(diào)色板的所有條目以及用于預(yù)測所述當前調(diào)色板的調(diào)色板預(yù)測結(jié)果中的不用于預(yù)測所述當前調(diào)色板的一個或多個條目。
在本發(fā)明的第四方面中,提供一種用于將至少一個圖像編碼在位流中的編碼裝置,所述編碼裝置包括:
獲得部件,用于通過對所述圖像進行分割來獲得分層編碼結(jié)構(gòu);
彼此獨立地對所述圖像的兩個編碼結(jié)構(gòu)的數(shù)據(jù)進行編碼,以獲得在所述圖像中具有相同的分層等級的兩個條帶,其中所述編碼使用調(diào)色板編碼模式,所述調(diào)色板編碼模式針對所述兩個條帶的各像素塊使用包括條目的集合的關(guān)聯(lián)調(diào)色板,所述條目的集合使各個條目索引與相應(yīng)的像素值相關(guān)聯(lián),其中所述編碼步驟包括確定預(yù)測信息,所述預(yù)測信息根據(jù)調(diào)色板預(yù)測結(jié)果來預(yù)測與處理后的各像素塊相關(guān)聯(lián)的調(diào)色板;
確定用以針對所述兩個條帶對所述調(diào)色板預(yù)測結(jié)果進行初始化的調(diào)色板預(yù)測結(jié)果初始化程序;以及
在所述位流中,提供包括所述預(yù)測信息的編碼數(shù)據(jù)并且提供所述調(diào)色板預(yù)測結(jié)果初始化程序,其中所述調(diào)色板預(yù)測結(jié)果初始化程序與所述位流中的以分層方式位于所述兩個條帶上方的編碼結(jié)構(gòu)相關(guān)聯(lián),
其中,在所述調(diào)色板編碼模式中,初始化后的調(diào)色板預(yù)測結(jié)果之后的各調(diào)色板預(yù)測結(jié)果包括與當前編碼的塊相關(guān)聯(lián)的當前調(diào)色板的所有條目以及用于預(yù)測所述當前調(diào)色板的調(diào)色板預(yù)測結(jié)果中的不用于預(yù)測所述當前調(diào)色板的條目。
在本發(fā)明的第五方面中,提供一種計算機程序,其中所述計算機程序在被執(zhí)行的情況下,使得進行根據(jù)前述任一陳述所述的方法。
在又一方面中,本發(fā)明提供一種用于從位流中解碼至少一個圖像的方法,所述圖像被分割成分層編碼結(jié)構(gòu),所述方法包括以下步驟:
使用調(diào)色板編碼模式來對所述圖像中具有相同分層等級的兩個自包含式編碼結(jié)構(gòu)(即,獨立于相同分層等級的其它編碼結(jié)構(gòu)而進行編碼的編碼結(jié)構(gòu))的編碼數(shù)據(jù)進行解碼,所述調(diào)色板編碼模式針對所述兩個自包含式編碼結(jié)構(gòu)的處理后的各像素塊使用包括條目的集合的關(guān)聯(lián)調(diào)色板,所述條目的集合使各個條目索引與相應(yīng)的像素值相關(guān)聯(lián),其中與處理后的各像素塊相關(guān)聯(lián)的調(diào)色板是使用來自所述位流的預(yù)測信息根據(jù)調(diào)色板預(yù)測結(jié)果所預(yù)測的;
從所述位流中獲得與以分層方式位于所述兩個自包含式編碼結(jié)構(gòu)上方的編碼結(jié)構(gòu)相關(guān)聯(lián)的調(diào)色板預(yù)測結(jié)果初始化程序;以及
使用所獲得的相同的調(diào)色板預(yù)測結(jié)果初始化程序來針對所述兩個自包含式編碼結(jié)構(gòu)各自對所述調(diào)色板預(yù)測結(jié)果進行初始化。
以對稱方式,本發(fā)明還提供一種用于將至少一個圖像編碼在位流中的方法,所述方法包括以下步驟:
通過對所述圖像進行分割來獲得分層編碼結(jié)構(gòu);
獨立于在所述圖像中具有相同的分層等級的每個其它編碼結(jié)構(gòu)來對所述圖像的兩個編碼結(jié)構(gòu)的數(shù)據(jù)進行編碼,以獲得編碼后的兩個自包含式編碼結(jié)構(gòu),所述編碼使用調(diào)色板編碼模式,所述調(diào)色板編碼模式針對所述兩個自包含式編碼結(jié)構(gòu)的處理后的各像素塊使用包括條目的集合的關(guān)聯(lián)調(diào)色板,所述條目的集合使各個條目索引與相應(yīng)的像素值相關(guān)聯(lián),其中所述編碼步驟包括確定預(yù)測信息,所述預(yù)測信息根據(jù)調(diào)色板預(yù)測結(jié)果來預(yù)測與處理后的各像素塊相關(guān)聯(lián)的調(diào)色板;
確定用以針對所述兩個自包含式編碼結(jié)構(gòu)對所述調(diào)色板預(yù)測結(jié)果進行初始化的一個調(diào)色板預(yù)測結(jié)果初始化程序;以及
在所述位流中,提供包括所述預(yù)測信息的編碼數(shù)據(jù)并且提供所述調(diào)色板預(yù)測結(jié)果初始化程序,其中所述調(diào)色板預(yù)測結(jié)果初始化程序與所述位流中的以分層方式位于所述兩個自包含式編碼結(jié)構(gòu)上方的編碼結(jié)構(gòu)相關(guān)聯(lián)。
相關(guān)地,本發(fā)明一種解碼裝置,用于從位流中解碼至少一個圖像,所述圖像被分割成分層編碼結(jié)構(gòu),所述解碼裝置包括至少一個微處理器,所述至少一個微處理器被配置為執(zhí)行上述解碼方法的步驟。本發(fā)明還提供一種編碼裝置,用于將至少一個圖像編碼在位流中,所述編碼裝置包括至少一個微處理器,所述至少一個微處理器被配置為執(zhí)行上述編碼方法的步驟。
由于本發(fā)明,提高了編碼效率。這主要通過使用按照與需要對調(diào)色板預(yù)測結(jié)果進行初始化的編碼結(jié)構(gòu)其中之一相比嚴格更高的分層等級所定義的調(diào)色板預(yù)測結(jié)果初始化程序來實現(xiàn)。這是因為,多個獨立的編碼結(jié)構(gòu)(例如,條帶)可以以低成本(即,在無需在位流中多次發(fā)送的情況下)使用相同的調(diào)色板預(yù)測結(jié)果初始化程序。
本發(fā)明的實施例的可選特征是在所附權(quán)利要求書中所定義的。這里以下參考方法來說明這些特征中的一些特征,而該一些特征可被變換成專用于根據(jù)本發(fā)明實施例的裝置的系統(tǒng)特征。
在實施例中,所述調(diào)色板預(yù)測結(jié)果初始化程序是在圖片參數(shù)集即pps中按照圖像等級所定義的;并且兩個自包含式編碼結(jié)構(gòu)參考所述圖片參數(shù)集。該規(guī)定與編碼器端的一些優(yōu)化完全兼容,諸如在特定量的幀或時間之后更新調(diào)色板預(yù)測結(jié)果初始化程序、或者針對圖像的各子區(qū)域(例如,區(qū)塊或任意子區(qū)域)使用調(diào)色板預(yù)測結(jié)果初始化程序等。
在變形例中,所述調(diào)色板預(yù)測結(jié)果初始化程序是在序列參數(shù)集即sps中按照序列等級所定義的;并且兩個自包含式編碼結(jié)構(gòu)參考所述序列參數(shù)集。關(guān)于上述的pps方法,該變形例不要求自包含式編碼結(jié)構(gòu)(例如,條帶)等級的附加數(shù)據(jù)。這是因為,向sps(或pps)的參考已存在于自包含式編碼結(jié)構(gòu)(例如,條帶)的通知中。如此編碼效率大大提高。
根據(jù)特定特征,在所述序列參數(shù)集中,在表示所述調(diào)色板編碼模式是否啟用的第一字段之后并且在包括針對所述調(diào)色板預(yù)測結(jié)果的最大大小的第二字段之后,定義所述調(diào)色板預(yù)測結(jié)果初始化程序。由于例如在第一字段表示調(diào)色板編碼模式?jīng)]有啟用的情況下不必進行調(diào)色板預(yù)測結(jié)果初始化程序確定,因此該規(guī)定優(yōu)化了處理成本。
在另一變形例中,兩個自包含式編碼結(jié)構(gòu)是條帶;以及所述調(diào)色板預(yù)測結(jié)果初始化程序是在包括兩個自包含式編碼結(jié)構(gòu)的區(qū)塊中按照區(qū)塊等級所定義的;以及兩個自包含式編碼結(jié)構(gòu)各自識別該自包含式編碼結(jié)構(gòu)所屬的區(qū)塊。與pps中的初始化程序的定義相比,該規(guī)定使得可以限制ppsid的增加。這是因為,不再需要針對所聲明的各新的調(diào)色板預(yù)測結(jié)果初始化程序提供新的ppsid。要注意,可以在pps內(nèi)定義初始化程序的列表,其中各初始化程序與特定區(qū)塊相關(guān)聯(lián)。
關(guān)于解碼,實施例可以規(guī)定:針對兩個自包含式編碼結(jié)構(gòu)中的任意自包含式編碼結(jié)構(gòu)的初始化步驟是在對所考慮的自包含式編碼結(jié)構(gòu)中的第一個像素塊進行解碼之前進行的。這是因為,由于“自包含”性質(zhì),因而第一個塊的編碼/解碼無法繼承來自先前像素塊或編碼結(jié)構(gòu)的(包括調(diào)色板預(yù)測結(jié)果的)數(shù)據(jù)。
在一些實施例中,針對兩個自包含式編碼結(jié)構(gòu)其中之一中的下一像素塊的下一調(diào)色板預(yù)測結(jié)果是根據(jù)用于對同一自包含式編碼結(jié)構(gòu)中的當前像素塊進行編碼的當前調(diào)色板所構(gòu)建的。在這種情況下,對所述調(diào)色板預(yù)測結(jié)果進行初始化而不是擴展所述調(diào)色板預(yù)測結(jié)果是有利的,這是因為在后者情況下,擴展后的調(diào)色板預(yù)測結(jié)果隨后可能最終變得具有重復(fù)值。
注意,在所考慮的編碼結(jié)構(gòu)內(nèi),通常根據(jù)掃描順序(例如,光柵順序)來連續(xù)地考慮像素塊。例如,使用下一調(diào)色板預(yù)測結(jié)果來在與其它編碼模式(intra、inter等)的競爭期間評價調(diào)色板編碼模式。在沒有針對下一像素塊選擇調(diào)色板編碼模式的情況下,可以將“下一調(diào)色板預(yù)測結(jié)果”用于再下一像素塊。
上述規(guī)定表明,調(diào)色板預(yù)測結(jié)果必然隨著對編碼結(jié)構(gòu)(例如,條帶)內(nèi)的像素塊進行編碼而動態(tài)地演變。
在特定實施例中,下一調(diào)色板預(yù)測結(jié)果是僅根據(jù)當前調(diào)色板和用于預(yù)測該當前調(diào)色板的當前調(diào)色板預(yù)測結(jié)果所構(gòu)建的。
特別地,可以通過選擇當前調(diào)色板的所有條目并且選擇當前調(diào)色板預(yù)測結(jié)果中的沒有用于預(yù)測當前調(diào)色板的條目來構(gòu)建下一調(diào)色板預(yù)測結(jié)果。該方法在對像素塊進行編碼時,利用可以添加至當前調(diào)色板的新顏色來遞增地補充自包含式編碼結(jié)構(gòu)中所使用的調(diào)色板預(yù)測結(jié)果。結(jié)果,隨著像素塊的遍歷,調(diào)色板編碼模式變得越來越高效。
在實施例中,用以根據(jù)調(diào)色板預(yù)測結(jié)果來預(yù)測調(diào)色板的預(yù)測信息包括標志的位圖(通常是在解碼器端從位流解碼得到的并且在編碼器端添加到位流中),其中各標志定義調(diào)色板預(yù)測結(jié)果中的相應(yīng)條目是否被選擇為用以生成調(diào)色板中的條目的條目。
在特定實施例中,(通常使用rle即行程長度編碼進行編碼后的)標志的位圖包括數(shù)量與調(diào)色板預(yù)測結(jié)果中的條目數(shù)量相同的位,并且位圖中的位置處的各位定義調(diào)色板預(yù)測結(jié)果中的具有相應(yīng)位置的條目是否被選擇為調(diào)色板的條目。該結(jié)構(gòu)提高了編碼效率??梢赃M一步縮小位圖的大小的變形例可以考慮使位圖在被選擇為調(diào)色板的條目的最后條目處停止。由于如以上所建議的、調(diào)色板預(yù)測結(jié)果中的條目根據(jù)發(fā)生而排序,因此這是特別有利的。在一些實施例中,這樣導致調(diào)色板預(yù)測結(jié)果的最后條目從統(tǒng)計上不經(jīng)常用于調(diào)色板。
在其它特定實施例中,該方法還可以包括:在具有從調(diào)色板預(yù)測結(jié)果所選擇的條目的調(diào)色板的末尾添加附加條目。這些附加條目可以是針對(使用解碼循環(huán)在解碼器和編碼器這兩者處)所解碼的附加像素的條目、以及/或者(如在傳統(tǒng)的調(diào)色板編碼模式中那樣)來自例如由編碼器構(gòu)建并且(在位流中)被發(fā)送至解碼器的預(yù)定調(diào)色板的條目。該規(guī)定用于提高調(diào)色板的編碼效率。
在用以發(fā)送標志的位圖的變形例中,可以使用隱式方法,由此減少要在位流中發(fā)送的附加數(shù)據(jù)或位(位圖):可以經(jīng)由標志(palette_share_flag)來表示要進行調(diào)色板編碼的下一像素塊或cu將重復(fù)使用用于最后一個調(diào)色板編碼像素塊或cu的最后一個調(diào)色板的所有條目。在這種情況下,特定實施例可能涉及:使用調(diào)色板預(yù)測結(jié)果初始化程序大小來對要用于對像素塊進行編碼的調(diào)色板的大小進行初始化。
在一些實施例中,當前調(diào)色板的條目的像素值具有顏色分量,并且使用調(diào)色板預(yù)測結(jié)果來僅對這些顏色分量的子部分進行預(yù)測。實際上,可以預(yù)測三個顏色分量中的一個或兩個顏色分量。該規(guī)定減少了位流中的處理和信令。
關(guān)于編碼,實施例可以規(guī)定,確定單個調(diào)色板預(yù)測結(jié)果的步驟包括:使用所述調(diào)色板編碼模式來對分散在包括以分層方式位于兩個自包含式編碼結(jié)構(gòu)上方的所述編碼結(jié)構(gòu)的圖像區(qū)域上的像素塊的子集進行編碼,并且包括:使用所述編碼步驟結(jié)束時所獲得的調(diào)色板預(yù)測結(jié)果作為所述調(diào)色板預(yù)測結(jié)果初始化程序。
將確定步驟限制于像素的子集,這使得可以在確定初始化程序時具有復(fù)雜度低的處理。這特別適合于低延遲編碼。
要注意,調(diào)色板編碼模式優(yōu)選與其它編碼模式(例如,intra和inter)進行競爭,使得(由于使用另一編碼模式進行編碼因而)不考慮不適用于調(diào)色板編碼的塊。此外,確定步驟的編碼沒有導致生成位流的數(shù)據(jù),而是僅構(gòu)成基于調(diào)色板編碼對像素的子集的分析。
在一些實施例中,所述子集的像素塊沿著所述圖像區(qū)域的斜線或?qū)蔷€分布。這是為了具有盡可能多地代表要使用調(diào)色板預(yù)測結(jié)果初始化程序的整個圖像區(qū)域的像素塊的子集。
在變形例中,所述子集的像素塊在所述圖像區(qū)域的頂部、優(yōu)選在所述圖像的頂部水平對齊。如此獲得的調(diào)色板預(yù)測結(jié)果初始化程序非常適合圖像的開頭的編碼,并且可用于多個連續(xù)圖像。
在特定實施例中,所述子集的像素塊不是連續(xù)的。例如,針對每兩個(或更多個)像素塊,可以選擇一個像素塊。這是為了避免通過對非常相似的連續(xù)像素塊進行處理而可能產(chǎn)生的無用處理。
在其它實施例中,確定單個調(diào)色板預(yù)測結(jié)果包括:遞歸地對像素塊的同一子集進行編碼,其中下一遞歸編碼循環(huán)所使用的第一個調(diào)色板預(yù)測結(jié)果是在先前遞歸編碼循環(huán)結(jié)束時所獲得的調(diào)色板預(yù)測結(jié)果。換句話說,先前遞歸編碼循環(huán)結(jié)束時所獲得的調(diào)色板預(yù)測結(jié)果被用作用于下一編碼循環(huán)的調(diào)色板預(yù)測結(jié)果初始化程序。隨著遞歸循環(huán)的數(shù)量增加,調(diào)色板預(yù)測結(jié)果初始化程序變得與對自包含式編碼單元的像素塊進行編碼越來越相關(guān)。結(jié)果,對更多的像素塊進行調(diào)色板編碼并且對更少的像素塊進行inter或intra編碼,由此提高編碼速率。
在一些實施例中,兩個自包含式編碼結(jié)構(gòu)包括在兩個單獨圖像中。在變形例中,兩個自包含式編碼結(jié)構(gòu)包括在同一圖像中。
在可能與連續(xù)的調(diào)色板編碼像素塊之間的調(diào)色板的重復(fù)使用或共享有關(guān)的一些實施例中,該方法還可以包括定義當前調(diào)色板的大小。例如,可以使用用于對調(diào)色板預(yù)測結(jié)果進行初始化的調(diào)色板預(yù)測結(jié)果初始化程序的大小來設(shè)置調(diào)色板的大小。由于不存在從先前像素塊繼承來的調(diào)色板,因此該操作主要針對自包含式編碼結(jié)構(gòu)中的第一個調(diào)色板編碼像素塊而發(fā)生。在可能與連續(xù)的調(diào)色板編碼像素塊之間的調(diào)色板的共享有關(guān)的一些實施例中,該方法還可以包括:在實際上不存在先前調(diào)色板的情況下,對共享調(diào)色板的大小進行初始化。根據(jù)本發(fā)明的實施例,如果該大小小于針對調(diào)色板所容許的最大大小,則該大小可以使用調(diào)色板預(yù)測結(jié)果初始化程序的大小來進行初始化。
在實施例中,獲得與顏色分量的數(shù)量有關(guān)的信息,其中所述調(diào)色板預(yù)測結(jié)果初始化程序的結(jié)構(gòu)是基于所述信息的。
換句話說,調(diào)色板預(yù)測結(jié)果初始化程序可以包括與顏色分量一樣多的分量,其中調(diào)色板預(yù)測結(jié)果初始化程序的分量的數(shù)量是從所述信息所獲得的。
優(yōu)選地,所述信息是用于通知所述圖像是否是單色圖像的標志。
本發(fā)明的另一方面涉及一種非暫時性計算機可讀介質(zhì),其存儲程序,所述程序在由用于對至少一個圖像進行解碼或編碼的裝置中的微處理器或計算機系統(tǒng)執(zhí)行的情況下,使得所述裝置進行如以上所定義的解碼或編碼方法。
非暫時性計算機可讀介質(zhì)可以具有與以上和以下與方法和裝置相關(guān)地陳述的特征和優(yōu)點類似的特征和優(yōu)點。
本發(fā)明的另一方面涉及一種大致如這里參考附圖中的圖12a或者圖12b或者圖12和(圖14a或圖14b或圖14c或圖14d)進行說明并示出的用于從位流中解碼至少一個圖像的方法,其中所述圖像被分割成分層編碼結(jié)構(gòu)。
本發(fā)明的又一方面涉及一種大致如這里參考附圖中的圖13b或者圖13a和圖13b或者圖13a和(圖14a或圖14b或圖14c或圖14d)進行說明并示出的用于將至少一個圖像編碼在位流中的方法。
本發(fā)明的另一方面涉及一種用于對從位流中解碼圖像所使用的圖片參數(shù)集進行解碼的方法,所述圖像包括具有至少一個顏色分量的像素,所述方法分成多個步驟。所述方法包括:
對所述圖片參數(shù)集中所定義的并且在所述解碼方法的至少兩個步驟中涉及的一個顏色分量參數(shù)進行解碼,其中所述一個顏色分量參數(shù)表示所述圖像是否是單色;以及
在解碼的顏色分量參數(shù)表示所述圖像是單色的情況下,跳過或修改所述解碼方法的至少一個步驟。
本發(fā)明的該方面的目的在于提出不存在曾經(jīng)是錯誤根源的任何冗余性的句法。本發(fā)明的該方面更加高效并且防止了相互矛盾的配置。
在實施例中,跳過或修改至少兩個不同的步驟,其中所述至少兩個不同的步驟中的至少一個步驟包括使用調(diào)色板模式來對已編碼的像素值進行解碼。
在實施例中,一個步驟包括確定針對調(diào)色板預(yù)測結(jié)果初始化程序的至少一個條目或各條目的元素的數(shù)量。如以上所定義的,各元素涉及針對顏色分量的像素值。例如,如果圖像是單色,則調(diào)色板的各條目包括針對唯一顏色分量的一個元素。
在實施例中,調(diào)色板預(yù)測結(jié)果初始化程序的各條目在解碼的顏色分量參數(shù)被設(shè)置為預(yù)定值的情況下是單元素,否則是三元數(shù)組。
在實施例中,這些步驟其中之一與在顏色分量參數(shù)表示圖像是單色的情況下所跳過的殘差自適應(yīng)顏色變換有關(guān)。
在實施例中,參數(shù)是在圖像是單色的情況下取值“1”的標志。
本發(fā)明的另一方面涉及一種用于對從位流中解碼圖像所使用的圖片參數(shù)集進行解碼的方法,其中,所述圖像包括具有至少一個顏色分量的像素,所述圖像是通過使用包括調(diào)色板模式的多個模式中的一個模式來進行編碼的。所述方法包括:
-與殘差自適應(yīng)顏色變換有關(guān)的步驟;以及
-定義步驟,用于定義調(diào)色板預(yù)測結(jié)果初始化程序,其中基于表示所述圖像是否是單色的顏色分量參數(shù)的值來對所述定義步驟進行處理。
顏色分量參數(shù)的值是通過殘差自適應(yīng)顏色變換的執(zhí)行而推斷出的。
本發(fā)明的該其它方面的目的在于提出不存在曾經(jīng)是錯誤根源的任何冗余性的句法。本發(fā)明的該方面更加高效并且防止了相互矛盾的配置。
在實施例中,如果執(zhí)行了殘差自適應(yīng)顏色變換,則推斷出顏色分量參數(shù)的值以表示圖像不是單色。
在實施例中,顏色分量參數(shù)是在執(zhí)行殘差自適應(yīng)顏色變換的情況下值被推斷為“0”的標志。
本發(fā)明的另一方面涉及一種用于對從位流中解碼圖像所使用的圖片參數(shù)集進行解碼的方法,所述圖像包括具有至少一個顏色分量的像素,至少一個圖像是通過使用調(diào)色板模式來進行編碼的,所述方法包括用于利用具有相同數(shù)量的條目的調(diào)色板預(yù)測結(jié)果初始化程序來對調(diào)色板預(yù)測結(jié)果進行初始化的步驟,其中所述調(diào)色板預(yù)測結(jié)果初始化程序和所述調(diào)色板預(yù)測結(jié)果針對各條目具有一個或多個元素。
在從包括具有給定數(shù)量的顏色分量的像素的圖像切換為具有另一數(shù)量的顏色分量的圖像的情況下,利用調(diào)色板預(yù)測結(jié)果初始化程序的調(diào)色板預(yù)測結(jié)果的初始化受到預(yù)定規(guī)則的管理。
在實施例中,預(yù)定規(guī)則包括:針對調(diào)色板預(yù)測結(jié)果的至少一個條目,將這些元素中的至少兩個元素設(shè)置為調(diào)色板預(yù)測結(jié)果初始化程序的相同元素的值。
在實施例中,預(yù)定規(guī)則包括:針對調(diào)色板預(yù)測結(jié)果的至少一個條目,將這些元素至少之一設(shè)置為預(yù)定的默認值。
在實施例中,在從具有一個顏色分量的圖像切換為具有三個顏色分量的圖像的情況下,應(yīng)用該預(yù)定規(guī)則。
根據(jù)本發(fā)明的另一方面,提出一種解碼裝置,所述解碼裝置用于從位流中解碼與圖像有關(guān)的圖片參數(shù)集,所述解碼裝置被配置為實現(xiàn)根據(jù)以上所述的實施例其中之一所述的解碼方法。
根據(jù)本發(fā)明的另一方面,提供一種非暫時性計算機可讀介質(zhì),其存儲有程序,所述程序在由用于對至少一個圖像進行解碼的裝置中的微處理器或計算機系統(tǒng)執(zhí)行的情況下,使得所述裝置進行根據(jù)上述實施例其中之一所述的方法。根據(jù)本發(fā)明的方法的至少一部分可以通過計算機來實現(xiàn)。因此,本發(fā)明可以采用完全硬件實施例、完全軟件實施例(包括固件、常駐軟件、微代碼等)、或者組合在此通常均可稱為“電路”、“模塊”或“系統(tǒng)”的軟件和硬件方面的實施例的形式。此外,本發(fā)明可以采用使計算機可用程序代碼嵌入在介質(zhì)中的任何有形表現(xiàn)介質(zhì)中所嵌入的計算機程序產(chǎn)品的形式。
由于本發(fā)明可以以軟件來實現(xiàn),因此本發(fā)明可以體現(xiàn)為計算機可讀代碼以在任何適當載體介質(zhì)上提供至可編程設(shè)備。有形載體介質(zhì)可以包括諸如軟盤、cd-rom、硬盤驅(qū)動器、磁帶裝置或固態(tài)存儲器裝置等的存儲介質(zhì)。瞬態(tài)載體介質(zhì)可以包括諸如電氣信號、電子信號、光學信號、聲學信號、磁信號或者例如微波或rf信號的電磁信號等的信號。換句話說,載體介質(zhì)可以是暫時性或非暫時性的。
附圖說明
現(xiàn)在將僅通過示例的方式并且參考以下附圖來說明本發(fā)明的實施例,其中:
圖1示出hevc編碼器架構(gòu);
圖2示出hevc解碼器架構(gòu);
圖3示出原因區(qū)域(causalarea)的概念;
圖4示出編碼樹塊向編碼單元的分割和這些編碼單元的掃描順序解碼;
圖5示出hevc的secc擴展的研究中的解碼器側(cè)的調(diào)色板模式的原理以及所述調(diào)色板的預(yù)測;
圖6示出編碼單元以及相應(yīng)的等級塊和關(guān)聯(lián)的調(diào)色板的示例;
圖7示出同一等級塊以及該等級塊的編碼所使用的句法元素的集合;
圖8示出與調(diào)色板編碼模式有關(guān)的句法元素的解碼處理;
圖9示出解碼側(cè)的用以構(gòu)建等級塊的重建處理;
圖10示出包括調(diào)色板預(yù)測結(jié)果的示例性迭代構(gòu)建的預(yù)測方案;
圖11示出視頻編碼中所使用的各種塊結(jié)構(gòu);
圖12a示出從位流解析調(diào)色板預(yù)測結(jié)果初始化程序;
圖12b示出解碼器使用調(diào)色板預(yù)測結(jié)果初始化程序來對位流進行解碼;
圖13a示出調(diào)色板預(yù)測結(jié)果初始化程序的編碼器確定中所使用的塊的各種子集;
圖13b示出編碼器針對用于確定調(diào)色板預(yù)測結(jié)果初始化程序的塊的子集所進行的分析;
圖14a、14b、14c和14d示出用于通知如由編碼器編寫且由解碼器解析的現(xiàn)有sps或ppsscc擴展中的調(diào)色板預(yù)測初始化程序的示例;
圖15示出用于通知jctvc-t1005文獻所提出的如由編碼器編寫且由解碼器解析的ppsscc擴展中的調(diào)色板預(yù)測初始化程序的示例;
圖16示出本發(fā)明的另一方面的實施例;
圖17示出本發(fā)明的另一方面的另一實施例;以及
圖18是本發(fā)明的一個或多個實施例的實現(xiàn)所用的計算裝置的示意框圖。
具體實施方式
圖1示出hevc編碼器架構(gòu)。在視頻編碼器中,將原始序列101分割成像素塊102。然后,向各塊分配編碼模式。存在hevc中通常使用的兩類編碼模式:基于空間預(yù)測的模式或者intra模式103、以及基于時間預(yù)測的模式或基于運動估計104和運動補償105的inter模式。已知為hevcscc的當前設(shè)計中的hevc的擴展添加了附加的編碼模式、特別是與intra和inter編碼模式競爭以對像素塊進行編碼的調(diào)色板編碼模式。以下特別是參考圖5~9來更詳細地說明該調(diào)色板編碼模式。本領(lǐng)域技術(shù)人員還可以在最新的著作即文獻jctvc-s1005(hevc畫面內(nèi)容編碼草案文本2)中獲得與調(diào)色板編碼模式有關(guān)的詳情。要注意,本發(fā)明不限于如hevcscc擴展所述的調(diào)色板編碼模式的實現(xiàn),而且可以應(yīng)用于任何調(diào)色板預(yù)測方案。
通常,通過被稱為intra預(yù)測的處理,根據(jù)intra編碼單元的原因邊界處的編碼像素來預(yù)測該intra編碼單元。
inter編碼模式的時間預(yù)測首先涉及:在運動估計步驟104中,在被稱為參考幀116的先前幀或?qū)韼邪l(fā)現(xiàn)離編碼單元最接近的參考區(qū)域。該參考區(qū)域構(gòu)成預(yù)測結(jié)果塊。接著,在運動補償步驟105中,使用預(yù)測結(jié)果塊來預(yù)測該編碼單元以計算殘差。
在空間預(yù)測和時間預(yù)測這兩種情況下,通過從原始預(yù)測結(jié)果塊中減去編碼單元來計算殘差。
在intra預(yù)測中,對預(yù)測方向進行編碼。在時間預(yù)測中,對至少一個運動矢量進行編碼。然而,為了進一步降低與運動矢量編碼有關(guān)的位率成本,不是直接對運動矢量進行編碼。實際上,假定運動是均勻的,則將運動矢量編碼成該運動矢量與其周圍的運動矢量之間的差,這特別有利。例如在h.264/avc編碼標準中,針對位于當前塊的上方和左方的三個塊之間所計算出的中值矢量,對運動矢量進行編碼。僅將中值矢量和當前塊運動矢量之間所計算出的還被稱為殘差運動矢量的差編碼在位流中。這是在模塊“mv預(yù)測和編碼”117中進行處理的。將各編碼矢量的值存儲在運動矢量字段118中。從運動矢量字段118中提取預(yù)測所使用的相鄰運動矢量。
接著,在模塊106中選擇使率失真性能最優(yōu)的模式。為了進一步減少冗余性,在模塊107中對殘差塊應(yīng)用通常為dct的變換,并且在模塊108中對系數(shù)應(yīng)用量化。然后,在模塊109中對量化后的系數(shù)塊進行熵編碼,并且將該結(jié)果插入位流110中。
然后,在模塊111~116中,編碼器進行編碼幀的解碼,以供將來運動估計所使用。這是編碼器中的解碼循環(huán)。這些步驟使得編碼器和解碼器能夠具有相同的參考幀。為了重建編碼幀,在模塊111中對殘差進行逆量化并且在模塊112中對殘差進行逆變換,從而提供像素域中的“重建”殘差。根據(jù)編碼模式(inter或intra),將該殘差添加至inter預(yù)測結(jié)果114或intra預(yù)測結(jié)果113。
接著,在模塊115中,利用一種或多種后濾波對該第一次重建進行濾波。這些后濾波器集成于解碼循環(huán)中。這意味著,需要在編碼器和解碼器處將這些后濾波器應(yīng)用于重建幀,以在編碼器和解碼器處使用相同的參考幀。該后濾波的目的是去除壓縮偽像(compressionartifact)。
在圖2中示出了hevc解碼器的原理。首先,在模塊202中對視頻流201進行熵解碼。然后,在模塊203中對殘差數(shù)據(jù)進行逆量化并且在模塊204中對殘差數(shù)據(jù)進行逆變換,以獲得像素值。還可以對模式數(shù)據(jù)進行熵解碼,并且根據(jù)模式來進行intra型解碼或inter型解碼。在intra模式的情況下,從位流中解碼得到intra預(yù)測方向。然后,使用該預(yù)測方向來定位參考區(qū)域(205)。如果模式是inter,則從位流中解碼得到運動信息(202)。該運動信息包括參考幀索引和運動矢量殘差。將運動矢量預(yù)測結(jié)果添加至運動矢量殘差以獲得運動矢量(210)。然后,使用運動矢量來定位參考幀中的參考區(qū)域(206)。注意,利用解碼運動矢量來更新運動矢量字段數(shù)據(jù)211以用于下一解碼運動矢量的預(yù)測。然后,利用與編碼器側(cè)所使用的完全相同的后濾波器來對解碼幀的該第一次重建進行后濾波(207)。解碼器的輸出是解壓縮視頻209。
圖3示出通過如hevc那樣的逐塊編碼所得到的原因原理。
在高等級處,圖像分割成按光柵掃描順序進行編碼的編碼單元。因而,在對塊3.1進行編碼的情況下,區(qū)域3.3的所有塊已進行了編碼,并且可被視為可供編碼器使用。同樣,在解碼器處對塊3.1進行解碼的情況下,區(qū)域3.3的所有塊已進行了解碼并且如此進行了重建,并且可被視為在解碼器處可利用。區(qū)域3.3被稱為編碼單元3.1的原因區(qū)域。一旦對編碼單元3.1進行了編碼,則該編碼單元3.1將屬于下一編碼單元的原因區(qū)域。該下一編碼單元以及接下來的所有編碼單元屬于被示出為帶點區(qū)域的區(qū)域3.4,并且無法用于對當前編碼單元3.1進行編碼。值得注意的是,原因區(qū)域由重建塊構(gòu)成。用于對給定編碼單元進行編碼的信息不是圖像的原始塊,其原因是該信息在解碼時不可用。解碼時可用的唯一信息是原因區(qū)域中的像素塊的重建版本、即這些塊的解碼版本。由于該原因,在編碼時,對原因區(qū)域中先前編碼塊進行解碼以提供這些塊的該重建版本。
在對塊3.1進行編碼時,可以使用來自原因區(qū)域中的塊3.2的信息。在hevc擴展草案規(guī)范中,可在位流中傳輸?shù)奈灰剖噶?.5可以表示該塊3.2。
圖4示出將編碼樹塊分割為編碼單元以及用以順次處理這些編碼單元的示例性掃描順序。在hevc標準中,利用編碼樹塊(ctb)來組織塊結(jié)構(gòu)。幀包含多個非重疊的正方形編碼樹塊。編碼樹塊的大小可以在64×64~16×16的范圍內(nèi)。該大小是在序列等級確定的。在編碼效率方面的最高效大小是最大大小即64×64。注意,除圖像邊界外,所有的編碼樹塊具有相同的大小,這意味著這些編碼樹塊是按行排列的。邊界ctb的大小根據(jù)剩余像素量而改變。
各編碼樹塊包含一個或多個正方形的編碼單元(cu)。編碼樹塊基于四叉樹結(jié)構(gòu)而分割成多個編碼單元。編碼樹塊中的各編碼單元的處理(編碼或解碼)順序遵循基于光柵掃描順序的四叉樹結(jié)構(gòu)。圖5示出編碼單元的處理順序的示例。在該圖中,各編碼單元中的數(shù)字給出該編碼樹塊的各相應(yīng)編碼單元的處理順序。
在hevc中,使用多個方法來對不同的句法元素(例如,塊殘差、與預(yù)測結(jié)果塊有關(guān)的信息(運動矢量、intra預(yù)測方向等))進行編碼。hevc使用諸如基于上下文的自適應(yīng)二進制算術(shù)編碼(cabac)、golomb-rice碼或被稱為固定長度編碼的簡單二進制表示等的多種熵編碼。在大多數(shù)情況下,進行二進制編碼處理以表示不同的句法元素。該二進制編碼處理同時也是非常有針對性的,并且依賴于不同的句法元素。
通常還被稱為hevcscc的hevc畫面內(nèi)容編碼擴展是針對新的視頻編碼標準hevc的當前正起草的擴展。該hevcscc是根據(jù)通常還被稱為hevcrext的hevc范圍擴展所得到的。
該擴展的目的是提供用以特別是針對具有8位的位深度的4:4:4顏色格式并且可能地以無損方式對視頻序列進行編碼的附加工具,其中該視頻序列包含諸如圖形用戶界面捕獲、計算機圖形生成內(nèi)容等的內(nèi)容(已知為畫面內(nèi)容)。
彩色圖像通常由三個顏色分量r、g和b構(gòu)成。這些分量通常相關(guān),并且在圖像和視頻壓縮中,在處理圖像之前對顏色分量進行去相關(guān)是很常見的。對顏色分量進行去相關(guān)的最常見格式是yuv顏色格式。通常,通過向r、g和b輸入幀這三個輸入應(yīng)用線性變換,根據(jù)圖像的rgb表示來創(chuàng)建yuv信號。y通常被稱為亮度分量,u和v通常被稱為色度分量。代替術(shù)語“yuv”,通常還使用術(shù)語“ycbcr”。
此外,一些scc的工具還與其它顏色格式兼容。特別地,通過調(diào)整4:4:4情況,已使調(diào)色板模式與4:2:0兼容,其中該4:4:4情況被設(shè)置成通過針對一個分量而不是三個分量進行操作來處理單色數(shù)據(jù)。還可以處理不同的位深度。
除有損壓縮外,hevcscc還能夠提供輸入序列的無損編碼;這是為了具有與輸入101嚴格一致的解碼輸出209。為了實現(xiàn)此,與傳統(tǒng)的hevcrext有損編解碼器相比,已修改或添加了多個工具。
hevcscc所用的附加工具當前正被設(shè)計為除自然序列外,還對“畫面內(nèi)容”視頻序列進行編碼。如以上簡要介紹的,“畫面內(nèi)容”視頻序列是指具有與從任何其它裝置的個人計算機所捕獲到的內(nèi)容相對應(yīng)的非常針對性的內(nèi)容的特定視頻序列,其中這些特定視頻序列例如包含文本、幻燈片演示、圖形用戶界面、表格(例如,屏幕截圖)。這些特定視頻序列與自然視頻序列相比具有相當不同的統(tǒng)計數(shù)據(jù)。在視頻編碼中,包括hevc的傳統(tǒng)視頻編碼工具的性能在處理這種“畫面內(nèi)容”時有時被證明是平庸的。
在hevcscc中當前所討論的用以處理“畫面內(nèi)容”視頻序列的工具包括自適應(yīng)顏色變換、幀內(nèi)塊復(fù)制模式和調(diào)色板模式。這些模式的原型與針對自然視頻序列的傳統(tǒng)方法相比已表現(xiàn)出良好的編碼效率。本申請關(guān)注于調(diào)色板編碼模式。
hevcscc的調(diào)色板編碼模式是表示信息直接對像素數(shù)據(jù)進行編碼的編碼模式。如當前所起草的,調(diào)色板編碼模式不使用殘差數(shù)據(jù),而是在像素與當前所使用的調(diào)色板的任何條目不一致時使用“逃逸編碼”。特別地,在無損編碼的情況下,這意味著調(diào)色板條目應(yīng)被編碼器選擇為等于像素、或者不對逃逸編碼像素進行量化,其中量化值是以cu等級進行傳輸?shù)摹?/p>
通常利用包含n元組顏色的有限集合的表(例如,參見基于yuv顏色空間的圖6中的803)來表示調(diào)色板,其中各顏色由該顏色在給定顏色空間中的分量來定義。例如,在典型的rgb格式中,調(diào)色板包括p個n元組(其中,對于rgb,n=3)元素的列表。更精確地,各元素與采用rgb格式的顏色分量的固定三元數(shù)組相對應(yīng)。當然,這不限于rgb或yuv顏色格式。任何其它的顏色格式可以利用調(diào)色板來表示,并且可以使用數(shù)量更少或更多的顏色分量,這意味著n可以不同于3。
在編碼器側(cè),hevcscc中所考慮的調(diào)色板模式在于:將給定輸入編碼單元的像素值變換成被稱為等級的索引。這些等級標識關(guān)聯(lián)調(diào)色板中的像素值與輸入編碼單元的像素值一致的條目。然而,在例如由于失真將過大(在無損編碼的情況下大于0)、因此利用等級不能表示輸入編碼單元的像素值(即,像素值不一致)的情況下,利用表示“逃逸編碼”的特定等級來表示所述像素。針對利用該特定“逃逸編碼”等級表示的各像素,還傳輸量化像素值。
在變換之后,如此得到的編碼單元包括等級塊和(針對逃逸編碼像素的)量化值塊。然后,該編碼單元與關(guān)聯(lián)調(diào)色板(通常是具有用于表示編碼單元的有限數(shù)量的顏色的三元數(shù)組的表)一起被發(fā)送至解碼器。由于調(diào)色板定義有限數(shù)量的顏色,因此向索引塊的變換通常近似有損編碼時的原始輸入編碼單元,但與無損編碼時的原始輸入編碼單元嚴格相對應(yīng)。
為了在編碼器側(cè)應(yīng)用調(diào)色板模式,按照如下所述進行用以對像素的編碼單元進行變換的示例性方式:
-例如通過使整體失真最小化,來求出最佳地描述要編碼的像素的編碼單元的p個三元數(shù)組;
-然后使這p個三元數(shù)組中的一致顏色與編碼單元的各像素相關(guān)聯(lián):要編碼的值(或等級)(如此構(gòu)成索引塊的一部分)是與所關(guān)聯(lián)的一致顏色的條目相對應(yīng)的索引。如此通過將調(diào)色板的條目與編碼單元的各像素進行比較來從調(diào)色板獲得索引塊,以針對各像素識別出定義一致顏色的條目。如果不存在一致的條目,則表示逃逸編碼的等級以及量化像素值與(量化值的塊中的)像素相關(guān)聯(lián)。
對于各編碼單元,調(diào)色板(即,所發(fā)現(xiàn)的p個三元數(shù)組)、索引塊或等級塊、以及量化像素值的塊被編碼在位流110中,并且發(fā)送至解碼器。
此外,可以在位流的一些參數(shù)集中設(shè)置特定標志,以指定(例如,在序列參數(shù)集或“sps”中)是否啟用調(diào)色板編碼模式。這些參數(shù)集還可被稱為句法結(jié)構(gòu)。
此外,在編碼單元等級,標志可以指定編碼單元是否具有逃逸編碼值,以強制調(diào)色板包括上述的特定“逃逸編碼”等級。
在解碼器處,調(diào)色板編碼模式涉及以相反方式來進行轉(zhuǎn)換。這意味著利用從位流解碼得到的調(diào)色板中的相應(yīng)顏色來替換與編碼單元的各像素相關(guān)聯(lián)的各解碼索引,以重建編碼單元的各像素的相應(yīng)顏色。注意,如果像素與“逃逸編碼”等級相關(guān)聯(lián),則從量化像素值(即,逃逸編碼像素)的塊來解碼相應(yīng)的量化像素值并且對這些量化像素值進行逆量化。這是顏色空間中的索引塊(即,編碼單元預(yù)測結(jié)果)的重建。
圖5還示出解碼器處的調(diào)色板編碼模式的原理。在對條帶、幀或區(qū)塊進行解碼的情況下,解碼處理從第一個編碼單元開始,對來自位流的cu進行循環(huán)。然后,在步驟502中從位流501提取當前編碼單元所用的預(yù)測模式。當前,利用位流中的位于跳過標志和幀內(nèi)塊復(fù)制標志之后的標志來標識調(diào)色板模式(以上參考圖1和2已說明了其它編碼模式)。該標志是使用單個上下文進行編碼得到的cabac。如果該模式不是調(diào)色板模式503,則在步驟520中發(fā)生傳統(tǒng)的解碼。否則,從位流501提取并解碼得到(504)調(diào)色板模式的相關(guān)句法505(即,與調(diào)色板、等級塊和逃逸編碼像素塊有關(guān)的信息)。
接著,在步驟506期間,根據(jù)解碼數(shù)據(jù)來構(gòu)建調(diào)色板509、逃逸編碼像素塊507和等級塊508這三個元素。特別地,hevcscc規(guī)定了根據(jù)調(diào)色板預(yù)測結(jié)果510來預(yù)測調(diào)色板。根據(jù)該等級塊、關(guān)聯(lián)的調(diào)色板和逃逸編碼像素塊,構(gòu)建像素域中的重建編碼單元514。這意味著對于塊等級的各等級,顏色(rgb或yuv)與各像素相關(guān)聯(lián)。
然后,使用調(diào)色板509來更新在對其它調(diào)色板編碼cu進行解碼時所使用的調(diào)色板預(yù)測結(jié)果510。
要注意,使用調(diào)色板預(yù)測結(jié)果510的調(diào)色板509的預(yù)測可能不使用調(diào)色板預(yù)測結(jié)果510的所有條目。可以存儲與調(diào)色板預(yù)測結(jié)果510的所使用條目或者未使用條目有關(guān)的信息、以及與最后使用的調(diào)色板的大小有關(guān)的信息。如以下所述,重復(fù)使用這種信息。
圖6示出編碼器處的調(diào)色板編碼模式的原理。將當前編碼單元601轉(zhuǎn)換成代替3個顏色值(y,u,v)或(r,g,b)而是包含各像素的等級的大小相同的塊602。為了例示,實際對601的像素611進行逃逸編碼,因此該像素611的關(guān)聯(lián)等級612表示調(diào)色板的逃逸編碼等級613(值“3”)。結(jié)果,逃逸編碼像素塊604包含單個像素620的量化像素值?;诰幋a單元整體失真最小化來構(gòu)建與該等級塊602相關(guān)聯(lián)的調(diào)色板603,并且該調(diào)色板603針對每個條目使條目索引或等級與相應(yīng)的像素顏色值相關(guān)聯(lián)。注意,針對單色應(yīng)用,像素值可以僅包含一個分量。
如與圖5相關(guān)地所述,針對各編碼單元對調(diào)色板(和逃逸編碼像素塊)進行編碼并且將該調(diào)色板(和逃逸編碼像素塊)插入位流中。以相同方式,對(與編碼單元相對應(yīng)的)等級塊進行編碼并將該等級塊插入位流中,并且以下參考圖7給出編碼的示例。在該示例中,按水平順序掃描等級塊。
等級塊71與圖6所示的附圖標記602的等級塊完全相同。表72和73描述了用于對等級塊71進行編碼的連續(xù)句法元素。表73應(yīng)被理解為表72的延續(xù)。該表中的句法元素與塊71中的實線所包圍的等級組的編碼相對應(yīng)。
按掃描順序以連續(xù)像素為組來對等級塊進行編碼。使用給出預(yù)測方向的第一句法元素、給出重復(fù)次數(shù)的第二元素和給出像素值(即,等級)的可選的第三元素來對各組進行編碼。該重復(fù)次數(shù)與組中的像素的數(shù)量相對應(yīng)。
這兩個表表示與調(diào)色板編碼模式相關(guān)聯(lián)的當前句法。這些句法元素與等級塊71所用的位流中所插入的編碼信息相對應(yīng)。在這些表中,使用三個主要的句法元素來充分表示調(diào)色板編碼模式的操作,并且如下所述在逐次考慮等級塊71的等級的情況下使用。
被稱為“predmode”(預(yù)測模式)的第一句法元素使得可以區(qū)分兩個編碼模式。在與等于“0”的“predmode”標志相對應(yīng)的第一模式中,對于當前像素使用新的等級。在位流中,緊挨在該標志之后通知該等級。在與等于“1”的“predmode”標志相對應(yīng)的第二模式中,使用“從上復(fù)制(copyup)”模式。更具體地,這意味著當前像素等級與位于緊挨在從針對光柵掃描順序相同的位置起的上方的行處的像素等級相對應(yīng)。在等于“1”的“predmode”標志的情況下,由于通過參考等級塊71中的正上方的像素的等級的值而已知了等級的值,因此不必緊挨在該標志之后通知該等級。
被稱為“l(fā)evel”(等級)的第二句法元素表示僅處于“predmode”的第一模式下的當前像素所用的調(diào)色板的等級值、或者該像素的逃逸編碼所用的等級值。
使用被稱為“run”(行程)的第三句法元素來對“predmode”的兩個模式中的重復(fù)次數(shù)值進行編碼??紤]到從左上角向右下角并且從左向右從上向下逐行掃描等級塊71,因此run句法元素給出了塊71中具有相同編碼的連續(xù)像素的數(shù)量。
該“run”句法元素具有根據(jù)“predmode”標志而有所不同的含義。在predmode是0的情況下,“run”元素是索引塊中具有相同等級值的連續(xù)像素的數(shù)量。例如,如果run=8,則這意味著當前“l(fā)evel”適用于當前像素,并且適用于后面的8個像素,其中這9個像素與光柵掃描順序中的9個相同連續(xù)樣本相對應(yīng)。
在predmode是1的情況下,“run”元素是索引塊中具有與塊71中的連續(xù)像素上方的像素的等級值相對應(yīng)的等級值(即,應(yīng)用了“從上復(fù)制”模式)的這些連續(xù)像素的數(shù)量。例如,如果run=26,則這意味著當前像素以及后面的26個像素(與總共27個像素相對應(yīng))的等級是從上方的行的像素復(fù)制而來的。
表72和73表示通過使用調(diào)色板編碼模式來表示塊71的九個步驟。各步驟從“predmode”標志的編碼開始,在“predmode”標志等于“0”的情況下跟隨“l(fā)evel”句法元素、或者在“predmode”標志等于“1”的情況下跟隨“run”句法元素?!皉un”句法元素始終跟隨在“l(fā)evel”句法元素之后。
在針對當前塊進行解碼的預(yù)測模式是調(diào)色板模式的情況下,解碼器首先對與該塊有關(guān)的句法進行解碼,然后針對編碼單元應(yīng)用重建處理。
圖8示出與調(diào)色板編碼模式有關(guān)的句法元素的解碼處理。首先,從位流801提取調(diào)色板的大小并對調(diào)色板的大小進行解碼(802)。通過將步驟802中解碼得到的該大小值加1來獲得調(diào)色板的準確大小(palette_size)。實際上,通過使用值0具有最小位數(shù)(1位)的一元碼來對該大小進行編碼并且調(diào)色板的大小不能等于0,否則沒有像素值可以用來構(gòu)建塊預(yù)測結(jié)果。
接著,開始進行與調(diào)色板值解碼相對應(yīng)的處理。在步驟804中將與調(diào)色板的索引相對應(yīng)的變量i設(shè)置為等于0,接著在步驟805中進行測試以檢查i是否等于調(diào)色板大小(palette_size)。如果在步驟805中i不同于調(diào)色板大小,則在步驟806中(在調(diào)色板直接編碼在位流中的情況下)從位流801中提取一個調(diào)色板元素并且進行解碼,然后將該調(diào)色板元素添加至具有等于i的關(guān)聯(lián)等級/索引的調(diào)色板。然后,通過步驟807使變量i遞增。如果在步驟805中i等于調(diào)色板大小,則調(diào)色板已經(jīng)完全被解碼。
接著,進行與等級塊71的解碼相對應(yīng)的處理。首先,將與像素計數(shù)器相對應(yīng)的變量j以及變量syntax_i設(shè)置為0(808)。然后,進行檢查以獲知像素計數(shù)器是否與該塊中所包含的像素的數(shù)量相對應(yīng)。如果步驟809中的答案為“是”,則在步驟817中處理結(jié)束,否則從位流801中提取與一個預(yù)測模式相對應(yīng)的標志“predmode”的值并且進行解碼(810)。
將“predmode”的值添加至包含解碼的所有“predmode”值的表的索引syntax_i處。如果該“predmode”的值等于0(步驟811),則從位流801中提取與“l(fā)evel”相對應(yīng)的句法元素并且進行解碼(812)。將該變量“l(fā)evel”添加至包含解碼的所有等級的表的索引syntax_i處。使與像素計數(shù)器相對應(yīng)的變量j遞增1(813)。
接著,在步驟814中對“run”句法元素進行解碼。如果句法元素“predmode”等于1(步驟811),則在步驟814中還對“run”值進行解碼。將該句法元素“run”添加至包含解碼的所有行程的表的索引syntax_i處。
接著,在步驟818中,針對如利用等級表示的逃逸編碼的各像素(即,如果所提取的level等于“逃逸編碼”等級、例如圖6和7的示例中的“3”),則從逃逸編碼像素塊來解析關(guān)聯(lián)的量化像素值并且進行去量化。該去量化的像素值例如被存儲在相應(yīng)表的索引syntax_i處。
注意,可以緊挨在步驟812之后進行步驟818。在變形例中,可以在步驟809和步驟817之間的步驟中從位流中提取整個逃逸編碼像素塊并且進行去量化。
接著,在步驟815中,使值j進行大小為步驟814中進行解碼的行程的遞增。使變量syntax_i遞增1以考慮句法元素的下一集合。如果計數(shù)器j等于塊中的像素的數(shù)量,則結(jié)束用以構(gòu)建等級塊71的句法(817)。在該處理結(jié)束時,解碼器獲知調(diào)色板以及包含與該編碼單元的調(diào)色板編碼模式相關(guān)聯(lián)的所有“predmode”、“l(fā)evel”和“run”句法元素的列表的表,并且還獲知逃逸編碼像素的去量化像素值的表。然后,解碼器可以繼續(xù)進行如通過圖5所述的編碼單元的重建處理。
在圖8的本實施例的微變形例中,針對等級塊71的頂部的第一行像素不設(shè)置“predmode”元素。這是因為,由于這些像素在上方行不具有等級,因此無法執(zhí)行“從上復(fù)制”模式。因此,只要在步驟809中j小于塊寬度,則不設(shè)置“predmode”元素并且跳過步驟810~811,由此直接進行步驟812。注意,該微變形例使編碼等級塊的大小減小。
在可以與圖8的上述實施例或其微變形例相組合的實施例中,可以生成多個等級塊,而不是僅一個等級塊。這意味著針對像素的全部或一部分使用多個等級。例如,可以針對第一顏色分量(例如,y)構(gòu)建第一等級塊,而可以針對至少一個剩余分量(例如,u和v)構(gòu)建另一等級塊。當然,可以考慮針對三個顏色分量的三個等級塊。可以使用特定標志來在位流中通知具有多個等級塊及其與顏色分量的對應(yīng)關(guān)系的選擇。在變形例中,這可以利用圖像的顏色格式來表示。
返回參考調(diào)色板,通常使用三個二進制碼來對上述示例中由三個值構(gòu)成的各調(diào)色板元素進行編碼。二進制碼的長度與各顏色分量的位深度相對應(yīng)。使用一位來對“predmode”元素進行編碼。使用二進制碼長度等于b的二進制碼來對“l(fā)evel”元素進行編碼,其中2b是等于或大于調(diào)色板大小的最小整數(shù)。
圖9示出用以構(gòu)建等級塊911的重建處理。該處理的輸入數(shù)據(jù)是使用以上圖8的處理所獲得的包含“predmode”、“l(fā)evel”和“run”的列表的表。
除“predmode”、“l(fā)evel”和“run”元素以外的輸入數(shù)據(jù)的項是根據(jù)位流中所通知的四叉樹(圖4)而獲知的編碼單元801的大小(與等級塊602/71的大小相同)。
在第一個步驟901中,將表示像素計數(shù)器的變量i設(shè)置為等于0,并且還將用以逐次考慮句法元素的各集合的變量j設(shè)置為等于0。在步驟904中,檢查從“predmode”的表中的索引j處所提取的元素pred_mode[j]是否為0。
如果pred_mode[j]等于0,則針對當前像素i編碼新的等級。結(jié)果,位置i處的像素的值被設(shè)置為等于等級的表中的索引j處的等級;block[i]=level[j]。這是步驟905。在步驟906中使變量i遞增1以考慮下一像素,并且在步驟907中將專用于對當前run中已處理的像素進行計數(shù)的變量k設(shè)置為等于0。
在步驟908中進行檢查,以判斷k是否等于行程的表中的索引j處的“run”元素:k=run[j]?。如果不相等,則將位置i處的像素的等級設(shè)置為等于位置i-1處的像素的等級值:block[i]=block[i-1]。這是步驟909。然后,在步驟910和911中,分別使變量i和變量k遞增1。如果在步驟908中k=run[j],則結(jié)束左方等級值的傳播并且進行(以下所述的)步驟920。
如果在步驟904中pred_mode[j]不同于0,則在步驟912中,“從上復(fù)制”模式從變量k被設(shè)置為等于0開始。接著,步驟913檢查(k-1)是否等于行程的表中的索引j處的“run”元素:k=run[j]+1?。如果不相等,則將位置i處的像素的等級值設(shè)置為等于上方行中的位置i處的像素的等級值:block[i]=block[i-width],其中“width”是如根據(jù)所輸入的編碼單元的大小推導出的等級塊的寬度(與編碼單元相同)。這是步驟914。接著,在步驟915和916中,分別使變量i和變量k遞增1。如果在步驟913中k=run[j]+1,則預(yù)測模式“從上復(fù)制”完成并且處理繼續(xù)進行步驟920。
在步驟920中,進行檢查以判斷變量i是否等于塊71/cu601中的像素量。如果不相等,則在步驟921中使變量j遞增1以考慮句法元素的下一集合,并且處理循環(huán)回上述的步驟904。
如果在步驟920中對所有的像素均進行了處理,則在步驟922中獲得最后的等級塊71:這與表block[]相對應(yīng)。
然后,最后的步驟923涉及:使用利用圖8的處理進行解碼的調(diào)色板603并且使用針對逃逸編碼像素的去量化像素值塊604來將各等級轉(zhuǎn)換成顏色值。該最后的步驟根據(jù)各個塊位置的等級、以及調(diào)色板603中的相應(yīng)條目(在存在的情況下)或者塊604中的相應(yīng)去量化像素值而影響該塊位置處的像素值(y,u,v)或(r,g,b)。
如上所述,如在hevcscc中當前設(shè)計的調(diào)色板編碼模式要求針對各編碼單元發(fā)送調(diào)色板。這表示位流中的數(shù)據(jù)量大、因而編碼成本大。為了降低該成本,所提出的一些機制將當前調(diào)色板提供于使用調(diào)色板預(yù)測結(jié)果要預(yù)測的當前編碼單元。
如在申請人的貢獻jctvc-q0063中所提出的,可以在位流中發(fā)送參考調(diào)色板預(yù)測結(jié)果以供例如條帶的各編碼單元使用;或者可以使用與所處理的編碼單元相鄰的像素來構(gòu)建調(diào)色板預(yù)測結(jié)果;或者可以根據(jù)已存在的兩個或更多個調(diào)色板來構(gòu)建預(yù)測結(jié)果。
因而,預(yù)測處理修改用于從位流形成調(diào)色板的步驟806。
圖10示出包括調(diào)色板預(yù)測結(jié)果的示例性迭代構(gòu)建的預(yù)測方案。在該方案中,構(gòu)建中的調(diào)色板預(yù)測結(jié)果包括來自使用標志的位圖基于(用作預(yù)測結(jié)果的)第二調(diào)色板進行了預(yù)測的第一調(diào)色板的條目,其中這些標志中的各標志用于定義第二調(diào)色板中的相應(yīng)條目是否被選擇為用以預(yù)測第一調(diào)色板中的條目的條目。可以在位流中發(fā)送標志的位圖。
本實施例的特殊之處在于:通過還包括與位圖中的用于定義不選擇用以預(yù)測第一調(diào)色板的條目的標志相對應(yīng)的第二調(diào)色板的條目,來構(gòu)建調(diào)色板預(yù)測結(jié)果。
參考圖10,示出可以是當前圖像中正處理的連續(xù)編碼單元的三個編碼單元cu1~cu3。
附圖標記1000表示用于對cu1進行處理(編碼或解碼)的調(diào)色板??赡芤呀?jīng)使用了本申請中所述的任何機制將該調(diào)色板編碼在位流中(因而被解碼器檢索到)、或者對該調(diào)色板進行了預(yù)測。
使用調(diào)色板1000作為用于構(gòu)建用以處理cu2的調(diào)色板1001的調(diào)色板預(yù)測結(jié)果。調(diào)色板1001的預(yù)測是基于標志的位圖1006。需要重申的是,這些標志根據(jù)用于預(yù)測下一cu的調(diào)色板的相應(yīng)元素的使用與否而分別取值1或0。在變形例中,標志=1可以表示不選擇相應(yīng)元素,而標志=0可以表示選擇用于預(yù)測下一cu的調(diào)色板的元素。
結(jié)果,在本示例中,如位圖1006中所定義的,將調(diào)色板預(yù)測結(jié)果1000的第一個元素、第三個元素、第四個元素和第五個元素復(fù)制到調(diào)色板1001中。第二個元素1002未被重復(fù)使用(在位圖1006中標志=0)。注意,基于上述的機制(例如,在位流中進行明確傳輸),附加調(diào)色板元素1003可能已添加至構(gòu)建中的調(diào)色板1001的末尾。
此外,根據(jù)調(diào)色板1000和1001來構(gòu)建調(diào)色板預(yù)測結(jié)果1005。將調(diào)色板1001的所有元素都復(fù)制到(步驟1004)cu3所用的調(diào)色板預(yù)測結(jié)果1005中。在該示例中,將與位圖中的定義不選擇用以預(yù)測調(diào)色板1001的條目(通常為標志=0,例如元素1002)的標志相對應(yīng)的調(diào)色板預(yù)測結(jié)果1000的條目添加至(步驟1008)調(diào)色板預(yù)測結(jié)果1005。這是因為,由于復(fù)制步驟1004,因此調(diào)色板預(yù)測結(jié)果1000的其它條目已存在于調(diào)色板預(yù)測結(jié)果1005中。由于位圖1006中的標志,因此可以非??焖俚剡M行元素1002的該選擇。
該方法使得僅根據(jù)用于對當前像素塊進行編碼的當前調(diào)色板和用于預(yù)測當前調(diào)色板的當前調(diào)色板預(yù)測結(jié)果來構(gòu)建針對下一像素塊的下一調(diào)色板預(yù)測結(jié)果。
可以設(shè)置用以基于調(diào)色板預(yù)測結(jié)果1005來預(yù)測用以處理cu3的調(diào)色板的位圖。
當然,調(diào)色板預(yù)測結(jié)果1005也可以直接是用以處理cu3的調(diào)色板。然而,調(diào)色板預(yù)測結(jié)果1005由于其包括先前調(diào)色板中所定義的所有元素因而不斷增長,直到定義調(diào)色板的最大大小的極值為止。
優(yōu)選在調(diào)色板預(yù)測結(jié)果1005的末尾進行元素1002的添加。可以直接觀察到如此得到的調(diào)色板預(yù)測結(jié)果與上述情形相比變得豐富。
在調(diào)色板預(yù)測結(jié)果的末尾添加未使用的元素的一個特殊優(yōu)點是這些元素按壽命和使用程度進行了大致排序。這樣使得調(diào)色板預(yù)測結(jié)果中的最后的元素是最沒有用且最有可能被去除的元素。如此,例如可以在使用包括某種元素的各個調(diào)色板對最后的m個(m是待定義的整數(shù))像素塊進行處理時,基于該元素的使用次數(shù)來決定從構(gòu)建中的調(diào)色板預(yù)測結(jié)果中去除該元素。
當然,該處理還可適用于將未使用的元素放置于調(diào)色板預(yù)測結(jié)果的開頭、或者甚至與來自調(diào)色板1001的一部分元素交錯存在。
注意,從先前調(diào)色板中選擇未使用的元素確保了這些元素是唯一的,因此位圖中的標志不會冗余。如此使調(diào)色板預(yù)測結(jié)果效率最大化。
然而,存在當前打破目前的調(diào)色板預(yù)測方案的情形。
這些情形中的一些情形與目的在于差錯恢復(fù)和/或并行處理的hevc編碼工具/結(jié)構(gòu)的使用有關(guān)。這些工具/結(jié)構(gòu)通常不允許圖像內(nèi)的編碼結(jié)構(gòu)之間的任何依賴關(guān)系。
這里,值得注意的是,如圖4所示,圖像通常被遞歸地分割成分層編碼結(jié)構(gòu)、例如由條帶構(gòu)成的區(qū)塊,其中條帶由ctb構(gòu)成,各個ctb被分割成cu。定義分層編碼結(jié)構(gòu)的參數(shù)通常包含在序列參數(shù)集(即,針對序列有效)和/或圖片參數(shù)集(即,可以更新)中。因而,編碼結(jié)構(gòu)必須通過指示這些sps/pps的id來參考這些sps和pss中所存儲的信息,其中該id是使用可變長度方案進行編碼的整數(shù)。
在一些編碼結(jié)構(gòu)之間不存在依賴關(guān)系例如表示:在編碼結(jié)構(gòu)的邊界處不能進行intra預(yù)測,并且在編碼結(jié)構(gòu)之間不能共用熵編碼狀態(tài)、調(diào)色板預(yù)測結(jié)果或ibc預(yù)測所用的區(qū)域。
如以上簡要說明的,這些編碼結(jié)構(gòu)其中之一是將圖像分割成包含完整ctb的不同矩形的區(qū)塊結(jié)構(gòu)。序列是否使用區(qū)塊以及區(qū)塊的形狀通常包含在sps中。
區(qū)塊的行或列可能不是均勻分布的。這是圖11的圖像1100的情況,其中該圖像1100被分割成四個區(qū)塊1102、1103、1104和1105。
已經(jīng)說明的另一編碼結(jié)構(gòu)是條帶結(jié)構(gòu)。條帶是ctb上方的基礎(chǔ)編碼結(jié)構(gòu),這意味著條帶由一個或多個ctb構(gòu)成,并且區(qū)塊由一個或多個條帶構(gòu)成,并且圖像可以由一個或多個區(qū)塊(因而條帶)構(gòu)成。
作為示例,圖11的圖像1110包含條帶1111、1113、1114等。特別地,條帶1114可被視為僅包含一個ctb。
各條帶包括條帶頭部,其中該條帶頭部(按不分先后的順序)包括:與依賴于ctb大小和區(qū)塊結(jié)構(gòu)的開頭的ctb地址(按光柵掃描)有關(guān)的信息、條帶所依賴于的sps和pps的id。
hevc規(guī)定區(qū)塊和條帶是“自包含”的,即彼此獨立地分別對區(qū)塊和條帶進行編碼/解碼。本發(fā)明關(guān)注于這種自包含式編碼結(jié)構(gòu)。
要注意,一些特定情況規(guī)定可以將一組條帶標記為實際完全依賴,這意味著一些編碼信息從一個條帶繼承至下一條帶。在這些情況下,本發(fā)明僅關(guān)注于該組依賴條帶中的第一個條帶。
為了進一步例示條帶結(jié)構(gòu)的“自包含”特征,可以參考圖像1120,其中該圖像1120包含(利用粗線定界的)四個均勻區(qū)塊,各區(qū)塊包含ctb計數(shù)不斷改變的(具有不同的填充圖案的)條帶。
由于非依賴型當前條帶或區(qū)塊不能分別參考另一條帶或區(qū)塊,因此其它條帶或區(qū)塊中的誤差不會影響針對當前條帶或區(qū)塊的解碼。另外,針對當前條帶或區(qū)塊的編碼結(jié)果沒有依賴于其它條帶或區(qū)塊。因此,可以并行地對當前條帶或區(qū)塊進行編碼或解碼。
“自包含”性質(zhì)的一個缺點是:在切換至新的條帶或區(qū)塊時,預(yù)測所使用的數(shù)據(jù)不再不可用,因此降低了編碼效率。對于在一個圖像內(nèi)存在高水平的信息冗余性的scc,更是這種情況。因此,在這些情況下,期望減輕該編碼效率損失中的一些編碼效率損失。
在該上下文中,本發(fā)明提供以下步驟:
從位流中獲得以分層方式位于要解碼的兩個自包含式編碼結(jié)構(gòu)上方的編碼結(jié)構(gòu)相關(guān)聯(lián)的調(diào)色板預(yù)測結(jié)果初始化程序;以及
使用所獲得的同一調(diào)色板預(yù)測結(jié)果初始化程序來對這兩個自包含式編碼結(jié)構(gòu)各自的調(diào)色板預(yù)測結(jié)果進行初始化。
在編碼器端,對稱地,本發(fā)明提供以下步驟:
確定用以對兩個自包含式編碼結(jié)構(gòu)的調(diào)色板預(yù)測結(jié)果進行初始化的一個調(diào)色板預(yù)測結(jié)果初始化程序;以及
在位流中,提供包括用以根據(jù)調(diào)色板預(yù)測結(jié)果預(yù)測與處理后的各像素塊相關(guān)聯(lián)的調(diào)色板的預(yù)測信息的編碼數(shù)據(jù),并且提供調(diào)色板預(yù)測結(jié)果初始化程序,其中該調(diào)色板預(yù)測結(jié)果初始化程序與位流中以分層方式位于兩個自包含式編碼結(jié)構(gòu)上方的編碼結(jié)構(gòu)相關(guān)聯(lián)。
如本發(fā)明所提出的,使用調(diào)色板預(yù)測結(jié)果初始化程序來簡單地對調(diào)色板預(yù)測結(jié)果進行初始化,這在編碼效率和復(fù)雜度這兩方面都提供了相當好的結(jié)果??梢宰⒁獾?,調(diào)色板預(yù)測結(jié)果初始化程序從未被用作用于進行調(diào)色板編碼模式的調(diào)色板本身。
此外,本發(fā)明規(guī)定調(diào)色板預(yù)測結(jié)果初始化程序是“全局性”的,這意味著在調(diào)色板預(yù)測結(jié)果初始化程序由多個獨立編碼結(jié)構(gòu)(區(qū)塊或條帶)使用的情況下,在位流中通知一次調(diào)色板預(yù)測結(jié)果初始化程序。這可以通過與以分層方式位于由于“自包含”性質(zhì)而要求調(diào)色板預(yù)測結(jié)果的初始化的編碼結(jié)構(gòu)上方的編碼結(jié)構(gòu)相關(guān)聯(lián)地通知調(diào)色板預(yù)測結(jié)果初始化程序來實現(xiàn)。
將調(diào)色板預(yù)測結(jié)果初始化程序存儲于條帶等級(即,與要求調(diào)色板預(yù)測結(jié)果初始化程序的編碼結(jié)構(gòu)(條帶)相同的等級)對于本發(fā)明人而言似乎效率不高。這是因為,將圖像分割成條帶正是編碼效率損失的原因。
以下的說明意圖提出針對所述初始化程序的高效的存儲和傳輸機制。
在一個實施例中,調(diào)色板預(yù)測結(jié)果初始化程序是在圖片參數(shù)集即pps中的圖像等級進行定義的(因而在位流的相應(yīng)部分中進行傳輸),其中在這種情況下,兩個自包含式編碼結(jié)構(gòu)參考圖片參數(shù)集。例如,兩個自包含式條帶在各自的頭部內(nèi)包括ppsid。
在變形例中,在序列參數(shù)集即sps中在序列等級定義調(diào)色板預(yù)測結(jié)果初始化程序,其中在這種情況下,兩個自包含式編碼結(jié)構(gòu)參考序列參數(shù)集。
優(yōu)先pps中的調(diào)色板預(yù)測結(jié)果初始化程序的定義。這是因為,將調(diào)色板預(yù)測結(jié)果初始化程序存儲于sps等級,這使得不允許諸如在特定量的幀或時間之后更新初始化程序以及/或者針對圖像的各區(qū)域(例如,區(qū)塊或任意區(qū)域)使用初始化程序等的多個編碼器優(yōu)化。
然而,如上所述,條帶經(jīng)由ppsid參考pps。所發(fā)送的pps越多,id變得越大,因而對這些pps進行編碼所需的位越多。標準化組織不禁止但強烈建議不使多個pps共用同一id:實際上,按不正確順序?qū)ps進行解碼并且使不正確信息關(guān)聯(lián)至條帶將是有可能的。針對該問題的潛在解決方案是環(huán)繞機制:在達到值max時,ppsid被重置為0。盡管這并未完全防止不正確解碼,但由于具有相同id的pps現(xiàn)在可以相距任意持續(xù)時間,因此這大大降低了風險。
現(xiàn)在參考圖12~14來例示本發(fā)明的實施例。
圖12示出解碼器端的示例性處理,并且包括圖12a,其中該圖12a示出從序列的位流1200中檢索調(diào)色板預(yù)測結(jié)果初始化程序。
在步驟1201中,從位流中提取并解碼與高分層等級的編碼結(jié)構(gòu)相關(guān)聯(lián)的句法結(jié)構(gòu)。該句法結(jié)構(gòu)可以是與序列相關(guān)聯(lián)的sps、或者與圖像相關(guān)聯(lián)的pps。
接著,在步驟1202中推導該句法結(jié)構(gòu)的id:該id是pps的ppsid和sps的spsid。
接著,在步驟1203中從所提取的句法結(jié)構(gòu)讀取調(diào)色板預(yù)測結(jié)果初始化程序中的條目的數(shù)量。要注意,在sps中指定調(diào)色板編碼模式要使用的調(diào)色板預(yù)測結(jié)果的最大大小,因而所提取的句法結(jié)構(gòu)所表示的大小受到該限制,這意味著該大小小于或等于該最大大小。
在所提取的句法結(jié)構(gòu)是sps的情況下,調(diào)色板預(yù)測結(jié)果初始化程序優(yōu)選位于用于定義針對序列是否啟用調(diào)色板編碼模式的信息之后、并且還位于調(diào)色板預(yù)測結(jié)果的最大大小之后。該特定位置使得可以在調(diào)色板模式禁用的情況下(例如,在所提取的句法結(jié)構(gòu)適用于自然內(nèi)容的編碼而不適用于畫面內(nèi)容的編碼的情況下)、避免調(diào)色板預(yù)測結(jié)果初始化程序數(shù)據(jù)(該初始化程序的條目數(shù)量)的解析和讀取。
在步驟1204中,該處理基于步驟1203中所讀取的條目的數(shù)量來判斷調(diào)色板預(yù)測結(jié)果初始化程序是否具有條目。
如果調(diào)色板預(yù)測結(jié)果初始化程序包括至少一個條目,則在步驟1205中從位流獲得條目。用于從位流(所提取的句法結(jié)構(gòu))讀取調(diào)色板預(yù)測結(jié)果初始化程序的機制可以與hevcscc中所定義的用以讀取位流中所傳輸?shù)娜魏握{(diào)色板的機制相同。
一旦完全確定了調(diào)色板預(yù)測結(jié)果初始化程序,則在步驟1206中,將該調(diào)色板預(yù)測結(jié)果初始化程序存儲在存儲器中并且與所提取的句法結(jié)構(gòu)的id(即,步驟1202中所獲得的id)相關(guān)聯(lián)。該存儲使得能夠在隨后再次使用id的情況下容易地檢索到調(diào)色板預(yù)測結(jié)果初始化程序。
圖12b以更為簡單的方式示出與圖5相同的解碼處理,但適用于本發(fā)明。
步驟1211~1217與解碼器的傳統(tǒng)步驟相同。步驟1220和1221是本發(fā)明的實施例特有的。
在該解碼處理中,在步驟1211中解析位流1200以獲得與當前編碼結(jié)構(gòu)有關(guān)的信息。該信息例如可以定義當前編碼結(jié)構(gòu)的性質(zhì),例如當前編碼結(jié)構(gòu)是否是幀、條帶、區(qū)塊等;并且該信息還可以指定哪個像素塊(cu或ctb)是當前編碼結(jié)構(gòu)的第一個塊。這是因為,本發(fā)明致力于初始化、即致力于針對所考慮的編碼結(jié)構(gòu)的第一部分通常進行的處理。
在hevc相關(guān)的實施例中,所考慮的像素塊是ctb。這樣使得能夠通過在步驟1212中選擇第一個cu來使針對當前編碼結(jié)構(gòu)的解碼循環(huán)初始化。接著,在使用調(diào)色板編碼模式對當前cu進行編碼的情況下,在步驟1213中,可能地使用調(diào)色板預(yù)測結(jié)果1215來對該cu進行解碼(以獲得當前調(diào)色板)。
在依賴于調(diào)色板共享(即,使用最后使用的調(diào)色板作為要用于下一調(diào)色板編碼像素塊的調(diào)色板)的特定實施例中,最后使用的調(diào)色板已被復(fù)制到針對下一像素塊的調(diào)色板預(yù)測結(jié)果的開頭部分中(該調(diào)色板預(yù)測結(jié)果還可能接收到其它條目)。為了通知為了形成下一調(diào)色板而要復(fù)制的調(diào)色板預(yù)測結(jié)果的第一條目(即,來自于最后使用的調(diào)色板的條目)的數(shù)量、并由此便于從預(yù)測結(jié)果中檢索這些條目,調(diào)色板預(yù)測結(jié)果1215還保持表示為n的最后使用的調(diào)色板大小的信息。實際上,通過僅僅將調(diào)色板預(yù)測結(jié)果的n個第一條目復(fù)制到下一調(diào)色板中,完全建立了調(diào)色板共享模式中的下一調(diào)色板。
在步驟1214中,例如以上參考圖10所述或者通過在調(diào)色板共享的情況下復(fù)制當前調(diào)色板的各條目,在適當情況下更新調(diào)色板預(yù)測結(jié)果。通過步驟1216和1217來獲得針對所有cu的解碼循環(huán)。
根據(jù)本發(fā)明,在開始對新的自包含式編碼結(jié)構(gòu)進行編碼或解碼的情況下,使用調(diào)色板預(yù)測結(jié)果初始化程序來對調(diào)色板預(yù)測結(jié)果1215進行初始化。為了實現(xiàn)此,在解析(或者編碼時編寫)位流1200時,在步驟1220中獲得與高分層等級的編碼結(jié)構(gòu)相關(guān)聯(lián)的句法結(jié)構(gòu)的標識符id。這可以通過在解析信息1211之前或之后但在解碼第一個cu1212之前從位流中提取信息(1220)而發(fā)生。
該標識符id使得能夠在步驟1221中檢索圖12a的步驟1206中先前使用標識符所存儲的調(diào)色板預(yù)測結(jié)果初始化程序。該標識符可以是新的句法元素。在所解析的編碼結(jié)構(gòu)是條帶并且將調(diào)色板預(yù)測結(jié)果初始化程序存儲在pps中的一個實施例中,已經(jīng)存在的針對所述條帶來標識pps的句法元素起到該作用。
在每個條帶的開頭發(fā)生步驟1221并且使調(diào)色板預(yù)測結(jié)果初始化程序與區(qū)塊相關(guān)聯(lián)(即,在區(qū)塊等級定義調(diào)色板預(yù)測結(jié)果初始化程序)的另一實施例中,每個條帶可以(使用id)標識該條帶所屬的區(qū)塊。在本實施例中,步驟1220如此標識當前條帶屬于哪個區(qū)塊,然后針對該關(guān)聯(lián)區(qū)塊的id檢索調(diào)色板預(yù)測結(jié)果初始化程序。
在步驟1221結(jié)束時,已經(jīng)檢索到調(diào)色板預(yù)測結(jié)果初始化程序??梢允褂迷撜{(diào)色板預(yù)測結(jié)果初始化程序以緊挨在對當前編碼結(jié)構(gòu)(例如,條帶)的第一個cu進行解碼之前使調(diào)色板預(yù)測結(jié)果1215初始化。這可以通過根據(jù)初始化程序的條目數(shù)量設(shè)置預(yù)測結(jié)果中的條目數(shù)量來進行。由于可能施加最大大小(來自于sps最大預(yù)測結(jié)果大小或任意大小),因此這兩個大小可能不相等。然后,根據(jù)剛剛設(shè)置的預(yù)測結(jié)果中的條目的數(shù)量,將這些條目從調(diào)色板預(yù)測結(jié)果初始化程序復(fù)制到調(diào)色板預(yù)測結(jié)果。
在另一實施例中,由于不存在已解碼的cu,因此先前調(diào)色板的大小為0。然而,由于調(diào)色板預(yù)測結(jié)果初始化程序提供調(diào)色板,因此可以根據(jù)調(diào)色板預(yù)測結(jié)果初始化程序的大小來推導先前調(diào)色板的所述大小、例如最大調(diào)色板大小(參考圖14a上的palette_max_size)和調(diào)色板初始化程序大小之間的最小值。在例如實現(xiàn)調(diào)色板共享的情況下,即在通過編碼結(jié)構(gòu)的處理使得用于對下一像素塊或cu進行編碼的下一調(diào)色板重復(fù)使用了最后一個調(diào)色板編碼像素塊或cu所使用的最后一個調(diào)色板的所有條目的情況下,該另一實施例進行工作。
上述說明表明:在編碼結(jié)構(gòu)的具有比條帶的分層等級(例如,sps、pps、區(qū)塊等)嚴格更高的分層等級的等級處,定義調(diào)色板預(yù)測結(jié)果初始化程序,然后在條帶的該等級處關(guān)聯(lián)該調(diào)色板預(yù)測結(jié)果初始化程序。
現(xiàn)在轉(zhuǎn)向編碼器端處的用以確定這種調(diào)色板預(yù)測結(jié)果初始化程序的算法。圖13示出初始化程序確定所用的示例性算法,其中該算法具有編碼效率、計算負載控制和低延遲特性的好處(即,這些結(jié)果是在不會對輸出數(shù)據(jù)時的編碼器延遲產(chǎn)生過大影響的情況下針對當前幀所獲得的)。
該算法是通過針對(優(yōu)選分散在與所考慮的自包含式編碼結(jié)構(gòu)(例如條帶)相對應(yīng)的圖像區(qū)域內(nèi)的)ctb的子集進行或多或少的快速編碼來進行工作的。為了實現(xiàn)該快速編碼,可以啟用不同的快捷方式,如(例如在inter中或者在測試調(diào)色板模式時將存在過多的逃逸編碼像素的情況下)提前終止或者修改引起進一步分析的閾值(例如,以研究針對ibc的進一步分區(qū))??梢允褂迷卺槍tb的子集的快速編碼結(jié)束時所獲得的調(diào)色板預(yù)測結(jié)果其中之一作為位流中傳輸?shù)恼{(diào)色板預(yù)測結(jié)果初始化程序。
圖13a顯示初始化程序確定所用的像素塊的這種子集的示例。
理想地,ctb規(guī)則地間隔開以盡可能多地代表區(qū)域(例如,條帶)。優(yōu)選地,由于使用除調(diào)色板編碼模式以外的其它編碼模式可能更容易對針對該子集所考慮的ctb的內(nèi)容進行編碼(例如,利用intra角度預(yù)測更好地對用戶界面的硬邊進行編碼),因此這些ctb不在區(qū)域或圖像的邊緣(左方/上方/下方/右方)上。
此外,針對子集所考慮的ctb優(yōu)選沒有水平或垂直對齊。否則,這些ctb可以屬于同一幀寬結(jié)構(gòu)。
在該圖的左部所示的第一實施例1301中,子集的像素塊沿著區(qū)域的斜線或?qū)蔷€分布。在該示例中,子集由暗色ctb構(gòu)成。該示例遵循上述的所有性質(zhì)。
認為該第一示例性子集1301非常適合必須針對一個以上的條帶僅確定一個調(diào)色板預(yù)測結(jié)果初始化程序的區(qū)域。
在該圖的右部所示的第一實施例1302中,子集的像素塊在圖像區(qū)域的頂部、優(yōu)選在圖像的頂部水平對齊。本實施例更適合更高等級結(jié)構(gòu)(圖像或區(qū)塊)包含一個自包含式編碼結(jié)構(gòu)(例如一個條帶)的情況,并且如此獲得的調(diào)色板預(yù)測結(jié)果初始化程序更適合對所述較高等級結(jié)構(gòu)的開頭進行編碼。
特別地,使調(diào)色板預(yù)測結(jié)果初始化程序適合圖像的另一部分將表示在條帶編碼期間強制重置調(diào)色板預(yù)測結(jié)果的可能性。然后,調(diào)色板預(yù)測結(jié)果初始化程序的好處源自于調(diào)色板預(yù)測結(jié)果初始化程序?qū)⒂糜诙鄠€幀(因而用于多個條帶)這一事實。
因此,構(gòu)成子集1302的ctb相對集中于圖像中的調(diào)色板預(yù)測結(jié)果通常為空的開頭。
在這種情況下,分析遠離圖像開頭的ctb可能得到利用圖12b的更新機制1214將刷新的調(diào)色板預(yù)測結(jié)果元素。
另外,選擇彼此過于靠近的ctb可能會導致拾取僅略微不同且極少發(fā)生的顏色。因而,如1302所示,例如通過定義所考慮的ctb之間的等于或大于1的步長,優(yōu)先選擇不連續(xù)的像素塊。
基于ctb的子集,圖13b以流程圖示出編碼器端處的用于確定調(diào)色板預(yù)測結(jié)果初始化程序的一般步驟。
該處理通過考慮到該處理所應(yīng)用的區(qū)塊、條帶和區(qū)域等的使用確定塊子集,在步驟1311中開始。
特別地,如參考圖11所述,圖像可以被人為地分割成區(qū)域、或者分割成傳統(tǒng)的區(qū)塊或條帶。在這種情況下,算法可以應(yīng)用于各區(qū)域,然后在對編碼結(jié)構(gòu)(例如條帶)進行編碼的情況下,判斷編碼結(jié)構(gòu)屬于哪個較高等級區(qū)域(編碼結(jié)構(gòu)可能不完全屬于所述區(qū)域)。
該方法使得可以獲得定義諸如示例1301和1302等的子集塊所基于的區(qū)域的起始點和結(jié)束點。
在確定子集時可考慮的另一參數(shù)是塊或ctb的容許數(shù)量。例如,子集中的塊的數(shù)量可能不大于預(yù)定數(shù)量(例如,10)或者所考慮的區(qū)域的比率(例如,10%)。
在步驟1311之后,步驟1312規(guī)定對編碼器參數(shù)進行初始化。這可能涉及所有的經(jīng)典確定(量化矩陣、量化步長、容許編碼模式等)。特別地,這還可能涉及設(shè)置快速分析參數(shù),例如針對幀內(nèi)塊復(fù)制的縮小搜索、(包括調(diào)色板編碼模式的)一些編碼模式的去除或加速等。
接著,在步驟1313中,選擇子集的第一塊。
在步驟1314中,對當前塊進行編碼。如前面所述,可以利用步驟1312略微修改編碼處理以提供減少的工作量。這可能還涉及針對該塊設(shè)置特定編碼參數(shù):例如,在塊的邊界上不存在編碼像素,并且?guī)瑑?nèi)預(yù)測方法無法針對這些邊界像素進行工作,因而在針對這些像素的分析期間禁用。
此外,使用ctb的子集可能會在幀內(nèi)塊復(fù)制分析中產(chǎn)生問題??梢栽诓襟E1314中解決所有這些問題。
在步驟1315中,檢索并保存針對當前塊所生成的調(diào)色板預(yù)測結(jié)果以供隨后參考。
接著,在步驟1316中,進行測試以判斷分析是否完成。
該判斷可以基于時間預(yù)算。如果時間預(yù)算得到充分使用,則分析停止。
此外,參考針對來自圖12b的步驟1214的調(diào)色板預(yù)測結(jié)果的元素的可能刷新,在分析期間檢測這種刷新以決定何時停止分析可能是值得關(guān)注的。
例如,在考慮示例性子集1302的情況下,由于實際可能很少使用新的條目,因此高度關(guān)注足夠快速地停止分析。例如,可以在檢測到刷新時立即停止所述分析,或者刷新計數(shù)器在刷新了各新的元素時可能遞減,直到該計數(shù)器達到0并且表示分析結(jié)束為止。
在示例性子集1301的情況下,由于需要針對盡可能多的ctb定義調(diào)色板預(yù)測結(jié)果初始化程序中的顏色,因此該方法不值得關(guān)注。因此,(由于認為ctb將用于多個條帶因而)值得關(guān)注的是保持最頻繁使用。
在任意情況下,如果步驟1316判斷為應(yīng)停止分析,則算法在后面將說明的步驟1319結(jié)束。否則,步驟1317測試是否處理了子集中的最后一個塊。如果處理了子集中的最后一個塊,則發(fā)生步驟1319以結(jié)束算法。否則,在步驟1318中選擇子集中的下一個塊,并且分析處理循環(huán)回至步驟1314。
在特定實施例中,可以多次重復(fù)針對子集的該編碼,以每次獲得針對塊的更好的調(diào)色板預(yù)測結(jié)果,因而更頻繁地使用調(diào)色板編碼模式:該重復(fù)包括對像素塊的相同子集進行遞歸編碼,其中下一遞歸編碼循環(huán)所使用的第一個調(diào)色板預(yù)測結(jié)果是在先前遞歸編碼循環(huán)結(jié)束時所獲得的調(diào)色板預(yù)測結(jié)果。
在該分析結(jié)束1319時,進行多個操作。
主要操作是設(shè)置調(diào)色板預(yù)測結(jié)果初始化程序、將該調(diào)色板預(yù)測結(jié)果初始化程序編碼在位流中并進行發(fā)送。
這要求選擇調(diào)色板預(yù)測結(jié)果其中之一以用作調(diào)色板預(yù)測結(jié)果初始化程序。例如,該調(diào)色板預(yù)測結(jié)果可以是分析的最后一個調(diào)色板預(yù)測結(jié)果。
接著,可以控制所選擇的調(diào)色板預(yù)測結(jié)果初始化程序,以判斷該調(diào)色板預(yù)測結(jié)果初始化程序?qū)嶋H上對編碼是否有好處。
例如,如果在調(diào)色板預(yù)測結(jié)果初始化程序中存在過少(例如,少于四個)條目,則這可以表示在所分析的區(qū)域中大部分是自然內(nèi)容,其中在這種情況下,使用調(diào)色板編碼模式是不值得的。因而,該信息可用于停用常規(guī)編碼中的調(diào)色板編碼模式,直到另一分析獲得更好的結(jié)果為止。
另一情況是所選擇的調(diào)色板預(yù)測結(jié)果與當前用于該區(qū)域的調(diào)色板預(yù)測結(jié)果初始化程序不夠不同(例如,前者包括在后者內(nèi))的情況,其中在這種情況下,代替新確定的調(diào)色板預(yù)測結(jié)果初始化程序,保持當前使用中的調(diào)色板預(yù)測結(jié)果初始化程序。
另一操作是:例如基于頻率標準(例如,針對僅一個塊所發(fā)生的一些顏色)或相似度標準(在調(diào)色板預(yù)測結(jié)果初始化程序中某顏色與另一顏色非常相似),在所選擇的調(diào)色板預(yù)測結(jié)果的條目無用的情況下,濾除這些條目。
另一實施例是再次推導所選擇的調(diào)色板預(yù)測結(jié)果的條目以代表盡可能多的所分析的ctb。例如,更經(jīng)典的分類算法可以采用所發(fā)現(xiàn)的調(diào)色板條目作為起始點,并且使用例如k-means算法來針對與所述條目相關(guān)聯(lián)的各個類確定實際質(zhì)心。
圖14示出用于特別是在圖14a的sps內(nèi)并且在圖14b的pps內(nèi)聲明或定義調(diào)色板預(yù)測結(jié)果初始化程序的兩個實施例。這兩個實施例十分相似;因而以下給出一個組合描述。
這兩個實施例依賴于hevc標準及其scc標準中的pps和sps句法結(jié)構(gòu)的現(xiàn)有擴展部分(參見文獻jctvc-s1005)。在sps和pps中,利用標志sps_scc_extensions_flag和pps_scc_extensions_flag來分別表示相應(yīng)擴展部分(即“sps_scc_extensions”和“pps_scc_extensions”)的存在。
在這兩個實施例中,分別向spsscc擴展和ppsscc擴展添加相關(guān)的調(diào)色板預(yù)測結(jié)果初始化程序信息。
在圖14a和14b中用粗體示出添加至現(xiàn)有擴展部分的句法元素。這些附加句法元素的信息的名稱、位置或類型用于例示的目的。當然,可以使用其它名稱。
如以上參考步驟1204所述,可以停用調(diào)色板編碼模式。結(jié)果,本發(fā)明僅在palette_mode_enabled_flag正確的情況下、或者在sps或pps等級處的等效信息表示調(diào)色板編碼模式啟用的情況下,才解析與調(diào)色板模式有關(guān)的信息。
基于圖14a和14b的示例,可以使用第一個標志palette_predictor_initializer_present_flag。該標志表示是否存在調(diào)色板預(yù)測結(jié)果初始化程序(即,調(diào)色板預(yù)測結(jié)果初始化程序?qū)嶋H是否定義在sps或ppsscc擴展中)。
如果存在調(diào)色板預(yù)測結(jié)果初始化程序,則其大小是已知的并且至少為1。其最大大小是可變的,但可被限制為小于sps或ppsscc擴展中所指示的最大大小(參見palette_max_predictor_size)。
使用相應(yīng)字段size_palette_predictor_initializer_minus1來指定vlc大小-1(vlc即可變長度編碼,例如使用標準指定的exp-golomb代碼)。這是調(diào)色板預(yù)測結(jié)果初始化程序的大小。
接著,定義調(diào)色板預(yù)測結(jié)果初始化程序的條目的值。盡管這里沒有示出,但優(yōu)先使用字節(jié)對齊編碼來對這些值進行編碼:這樣使得能夠更容易地進行scc擴展的解析。在實施例中,利用針對各條目的分量comp的n[comp](參見以下),這些值被編碼為固定長度的元素。
要注意,條目的分量的數(shù)量num_comp是已知的:sps中所包括的諸如chroma_format_idc或separate_colour_plane_flag等的信息使得能夠確定分量的數(shù)量。此外,由于可以根據(jù)sps中所包括的句法元素bit_depth_luma_minus8和bit_depth_chroma_minus8來推導針對各分量的位數(shù)n[comp],因此該位數(shù)也是已知的。
最后,圖14c示出用以提供調(diào)色板預(yù)測結(jié)果初始化程序的列表以供在單獨對分量進行編碼或者使用區(qū)塊的情況下使用的方式。沒有對分量進行聯(lián)合編碼的情況是4:2:0顏色格式,其中可以針對亮度(單個分量)定義調(diào)色板并且可以針對色度(兩個分量)定義另一調(diào)色板。
需要這種列表的另一情況是存在n個區(qū)塊的情況,并且經(jīng)由條帶所屬的區(qū)塊來進行條帶和調(diào)色板預(yù)測結(jié)果初始化程序之間的關(guān)聯(lián)1221。
在各情況下,可以利用屬于sps或pps的信息來確定列表。因而,句法結(jié)構(gòu)針對大小為num_sets的初始化程序的列表的各集合進行循環(huán)。針對各集合,發(fā)送諸如以下等的已存在的不同信息:
palette_predictor_initializer_present_flag[set],以及
size_palette_predictor_initializer_minus1[set]。
然后,所述初始化程序的分量數(shù)量num_comps[set]和分量的列表comp_list[set]使得能夠確定要使用的分量以及針對各集合如何讀取調(diào)色板預(yù)測結(jié)果初始化程序的值。
在區(qū)塊的情況下,這僅僅是分量的常規(guī)列表。在特定顏色格式的情況下,這樣使得能夠針對獨立分量的各集合指定調(diào)色板預(yù)測結(jié)果初始化程序。
在另一實施例中,有利地使本發(fā)明所使用的句法與來自于例如sps的其它信息分離。例如,這樣使得能夠進行利用解碼器的單獨處理以及視頻流傳輸方案中的更容易的設(shè)置方案。在這種情況下,提供所復(fù)制的信息是重要的,例如如果如圖所示在pps中傳輸調(diào)色板預(yù)測結(jié)果初始化程序,則該pps可以從sps復(fù)制信息,同時要求所述信息具有相同含義。在圖14d中示出本實施例。圖14d的一些部分與圖14c的一些部分相同。補充信息包括第一標志monochrome_entries_flag或等效參數(shù),從而使得能夠推導分量的數(shù)量。另一實施例是重復(fù)chroma_format_idc和/或separate_colour_plane_flag、或者其推導信息。該信息應(yīng)與諸如sps等的任何其它等級所發(fā)送的信息一致,使得根據(jù)該信息所推斷出的分量的數(shù)量與參考pps_scc_extensions及其pps的圖像的分量的數(shù)量相對應(yīng)??梢允褂帽景l(fā)明實施例進一步給出針對位流及其與標準規(guī)范的一致性的該要求。
在分量的數(shù)量已知的情況下,可以獲得更多信息。特別地,可以發(fā)送分量的位深度。通常單獨發(fā)送亮度位深度和色度位深度,這是luma_bit_depth_entries_minus8和chroma_bit_depth_entries_minus8的情況。實際上,信號具有8位以上的深度,因而通常通知僅發(fā)送超過8的附加位數(shù)。一個重要考慮是:如在hevc規(guī)范中所發(fā)現(xiàn)的,這些值理想地與參考pps的圖像的實際位深度(例如,bitdepthy和bitdepthc)一致,并且可被視為針對位流的一致性的又一要求。由于發(fā)送使得能夠推導分量的數(shù)量的信息,因而chroma_bit_depth_entries_minus8的解析可以是條件性的。
在已知讀取調(diào)色板預(yù)測結(jié)果初始化程序條目所需的所有信息的情況下,可以發(fā)生如在前面的圖14a~14c中已經(jīng)說明的條目的讀取。這是以monochrome_entries_flag或等效句法信息的值為條件。典型實施例是如圖14d所示,針對各調(diào)色板預(yù)測結(jié)果初始化程序條目,讀取一個或三個分量。
相反,步驟1221中的所檢索到的調(diào)色板預(yù)測結(jié)果初始化程序還包含針對各條目的分量的數(shù)量和所需存儲量,由此清楚地確定如何將所述初始化程序復(fù)制到步驟1215中的實際調(diào)色板預(yù)測結(jié)果。
可以使用用以從sps或ppsscc擴展中提取初始化程序的條目的傳統(tǒng)機制。
已經(jīng)說明了用以在解碼器側(cè)對調(diào)色板預(yù)測結(jié)果進行初始化的多個方式(圖12)、以及如何在編碼器側(cè)找到調(diào)色板預(yù)測結(jié)果初始化程序(圖13)和如何將該調(diào)色板預(yù)測結(jié)果初始化程序嵌入位流中(圖14)。在優(yōu)選實施例中,將調(diào)色板預(yù)測結(jié)果初始化程序存儲在pps中,并且塊結(jié)構(gòu)是條帶。
本發(fā)明人所進行的本發(fā)明的第一次實驗已表現(xiàn)出1.8%的編碼增益。然而,認為根據(jù)編碼參數(shù)并且根據(jù)要編碼的圖像內(nèi)容,可以獲得更好的增益。
圖15示出用于在如jctvc-t1005所述的標準規(guī)范內(nèi)聲明或定義調(diào)色板預(yù)測結(jié)果初始化程序的現(xiàn)有處理。本實施例依賴于hevc標準及其scc擴展(參見文獻jctvc-t1005)中的pps句法結(jié)構(gòu)的現(xiàn)有擴展部分。在pps中,利用標志pps_scc_extensions_flag來表示相應(yīng)擴展部分(即,“pps_scc_extensions”)的存在。
調(diào)色板預(yù)測結(jié)果初始化程序首先包含與“殘差自適應(yīng)顏色變換”工具(從現(xiàn)在起稱為“act”)有關(guān)的信息,其中該act向解碼輸出塊應(yīng)用可恢復(fù)的預(yù)定顏色變換。該工具可以通過將標志residual_adaptive_colour_transform_enabled_flag設(shè)置為0來在pps等級處禁用。
如果該工具沒有被禁用,則之后是附加信息。標志pps_slice_act_qp_offsets_present_flag表示是否存在(與針對使用當前pps的條帶所設(shè)置的量化步長偏移相比的)量化步長偏移,其中在這種情況下,將這些偏移pps_act_y_qp_offset_plus5、pps_act_cb_qp_offset_plus5和pps_act_cr_qp_offset_plus3作為可變長度元素進行發(fā)送。
然后,使用與調(diào)色板模式有關(guān)的第一個標志palette_predictor_initializer_present_flag。該標志表示是否存在調(diào)色板預(yù)測結(jié)果初始化程序(即,如上所述,調(diào)色板預(yù)測結(jié)果初始化程序?qū)嶋H是否定義在ppsscc擴展中)。
如果存在調(diào)色板預(yù)測結(jié)果初始化程序,則發(fā)送與該初始化程序的條目有關(guān)的信息。首先,發(fā)送顏色格式信息。該顏色格式信息通常是三個分量或單色格式。標志monochrome_palette_flag在被設(shè)置為預(yù)定值(例如,1)的情況下,表示該格式僅包括一個顏色分量。如果該標志未被設(shè)置為該值,則格式不是單色。
然后,利用句法元素luma_bit_depth_entry_minus8來在可變數(shù)量的位上發(fā)送第一個(并且潛在地僅)分量的位深度。由于任何分量的位深度均不能低于8,因此僅需發(fā)送具有8的所述位深度的差異(由此節(jié)省一些位)。然后,如果條目不是單色,則經(jīng)由句法元素chroma_bit_depth_entry_minus8來發(fā)送針對色度的位深度。
然后,由于已知發(fā)送調(diào)色板條目,因此調(diào)色板條目的數(shù)量是已知的,并且至少為1。經(jīng)由可變長度句法元素num_palette_predictor_initializer_minus1來發(fā)送調(diào)色板條目的值。該值是調(diào)色板預(yù)測結(jié)果初始化程序的大小。
接著,定義調(diào)色板預(yù)測結(jié)果初始化程序的條目的值。要注意,條目的分量的數(shù)量numcomps是已知的,并且在monochrome_palette_flag是1的情況下為1,否則為3。此外,由于可以根據(jù)sps中所包括的句法元素luma_bit_depth_entry_minus8和chroma_bit_depth_entry_minus8推導出針對各分量的位的數(shù)量,因此該數(shù)量也是已知的。
所提出的句法是冗余的,并且甚至可能是錯誤的根源。通過授權(quán)相互矛盾的配置,當前句法不夠高效。
如以下所提出的,可以關(guān)于調(diào)色板模式的使用來改進pps擴展中的信息。圖16示出這種改進的示例。
根據(jù)實施例,在發(fā)送調(diào)色板或act工具信息之前,發(fā)送如這里被稱為“monochrome_flag”那樣的標志的參數(shù)。換句話說,所提出的“monochrome_flag”是在pps等級定義的。作為變形例,可以在序列等級定義單色標志。如果將monochrome_flag設(shè)置為預(yù)定值(例如,“1”),則在考慮調(diào)色板預(yù)測結(jié)果初始化程序的情況下,針對單色格式直接調(diào)整調(diào)色板條目(換句話說,假定調(diào)色板預(yù)測結(jié)果初始化程序針對各條目僅包括一個元素的情況下,修改用于定義調(diào)色板預(yù)測結(jié)果初始化程序的步驟)。不再需要用于通知顏色格式以修改條目數(shù)量的專用于調(diào)色板預(yù)測結(jié)果初始化程序的參數(shù)。根據(jù)一個方面的本發(fā)明提出使用按照等級較高的圖片(或圖像)等級所定義的參數(shù)。
在優(yōu)選實施例中,在“monochrome_flag”被設(shè)置為“1”的情況下,考慮到act工具變得無用,禁用該工具(換句話說,跳過用于讀取“residual_adaptive_colour_transform_enabled_flag”的值的步驟,從而禁用act工具)。在這種情況下,推斷出標志residual_adaptive_colour_transform_enabled_flag為0。相反,如果monochrome_flag的值為0,則可能啟用或者可能不啟用act工具,因此發(fā)送其相應(yīng)標志。同樣,調(diào)色板條目的分量的數(shù)量numcomps為3。
根據(jù)另一實施例,提出了monochrome_flag一次僅影響一個模式(優(yōu)選為調(diào)色板模式)的更為簡單的句法。這種示例將是已知調(diào)色板模式因另一方式而停用的情況。
在圖17中示出這種實施例的示例。在這種情況下,在讀取圖10所呈現(xiàn)的標志monochrome_palette_flag之前引入條件(例如,一個條件)。如果啟用act工具(如利用其相應(yīng)標志residual_adaptive_colour_transform_enabled_flag的值所示),則推導出像素顏色格式不是單色的:存在三個顏色分量。標志monochrome_palette_flag的值可被直接推斷為“0”。相反,如果禁用act工具,則格式可能是單色或者可能不是單色。
在另一實施例中,提出僅限編碼器的約束,使得不會修改解碼器邏輯。必須滿足以下兩個條件:如果residual_adaptive_colour_transform_enabled_flag為1,則monochrome_palette_flag必須為0。并且,如果monochrome_palette_flag為1,則residual_adaptive_colour_transform_enabled_flag必須為0。
在另一實施例中,提出了使實際像素格式與條目的分量的數(shù)量去相關(guān)。在先前實施例中,調(diào)色板預(yù)測結(jié)果初始化程序被設(shè)置成具有根據(jù)像素格式而具有不同的分量數(shù)量的條目。在本實施例中,必須能夠?qū)⑾嗤恼{(diào)色板預(yù)測結(jié)果初始化程序用于單色數(shù)據(jù)以及rgb或yuv數(shù)據(jù)。結(jié)果,調(diào)色板預(yù)測結(jié)果和調(diào)色板預(yù)測結(jié)果初始化程序兩者可以具有1~3個元素依賴于顏色格式的條目。針對各條目的元素的數(shù)量可能針對調(diào)色板預(yù)測結(jié)果和調(diào)色板預(yù)測結(jié)果初始化程序而不同。在這種情況下,在利用預(yù)測結(jié)果初始化程序?qū)φ{(diào)色板預(yù)測結(jié)果進行初始化的情況下,可以應(yīng)用各種規(guī)則。例如,在從一個分量到三個分量的情況下,利用默認灰度值或者現(xiàn)有的調(diào)色板預(yù)測結(jié)果初始化程序條目來對調(diào)色板預(yù)測結(jié)果條目predictor[i]進行初始化。例如,
-對于rgb,predictor[i][2]、predictor[i][1]和predictor[i][0]被設(shè)置得等于palette_predictor_initializers[i][0];
-對于yuv,predictor[i][0]被設(shè)置得等于palette_predictor_initializers[i][0],并且predictor[i][2]和predictor[i][1]被設(shè)置得等于分量的特定值(即,針對值為0~255的分量為0、128或255)。
其它變形是可以的,即在從三個分量到一個分量的情況下,在針對索引comp的分量對給定顏色面(例如,在考慮yuv的情況下為u)進行編碼的情況下,predictor[i]被設(shè)置為palette_predictor_initializers[i][comp]??梢允褂糜靡詮膒psscc擴展提取初始化程序的條目的傳統(tǒng)機制。已經(jīng)說明了用以定義去除解碼器側(cè)的調(diào)色板模式和其它現(xiàn)有工具之間的冗余性的簡化句法的多個方式。
圖18是用于實現(xiàn)本發(fā)明的一個或多個實施例的計算裝置1800的示意框圖。計算裝置1800可以是諸如微計算機、工作站或輕盈便攜式裝置等的裝置。計算裝置1800包括通信總線,其中該通信總線連接至以下組件:
-諸如微處理器等的表示為cpu的中央處理單元1801;
-表示為ram的隨機存取存儲器1802,用于存儲本發(fā)明實施例的方法的可執(zhí)行代碼以及如下寄存器,其中這些寄存器被配置為記錄實現(xiàn)根據(jù)本發(fā)明實施例的用于對圖像進行編碼或解碼的方法所需的變量和參數(shù),其中ram1802的存儲器容量例如可以利用連接至擴展口的可選ram來擴展;
-表示為rom的只讀存儲器1803,用于存儲實現(xiàn)本發(fā)明實施例所用的計算機程序;
-網(wǎng)絡(luò)接口1804,其通常連接至發(fā)送或接收要處理的數(shù)字數(shù)據(jù)所經(jīng)由的通信網(wǎng)絡(luò)。網(wǎng)絡(luò)接口1804可以是單個網(wǎng)絡(luò)接口、或者包括不同的網(wǎng)絡(luò)接口(例如,有線接口和無線接口或者不同種類的有線接口或無線接口)的集合。在cpu1801中所運行的軟件應(yīng)用程序的控制下,將數(shù)據(jù)包寫入網(wǎng)絡(luò)接口以進行發(fā)送或者從網(wǎng)絡(luò)接口讀取數(shù)據(jù)包以進行接收;
-用戶接口1805,其可用于從用戶接收輸入或向用戶顯示信息;
-表示為hd的硬盤1806,其可被設(shè)置為大容量存儲裝置;
-i/o模塊1807,其可用于相對于諸如視頻源或顯示器等的外部裝置進行數(shù)據(jù)的接收/發(fā)送。
可執(zhí)行代碼可以存儲在只讀存儲器1803中、硬盤1806上或者例如盤等的可移除數(shù)字介質(zhì)上。根據(jù)變形例,程序的可執(zhí)行代碼可以利用通信網(wǎng)絡(luò)經(jīng)由網(wǎng)絡(luò)接口1804來接收,從而在執(zhí)行之前存儲在通信裝置1800的諸如硬盤1806等的存儲部件其中之一內(nèi)。
中央處理單元1801被配置為控制和引導根據(jù)本發(fā)明實施例的一個或多個程序的指令或軟件代碼的一部分的執(zhí)行,其中這些指令存儲在上述存儲部件其中之一內(nèi)。在通電之后,cpu1801例如能夠在從程序rom1803或硬盤(hd)1806加載了來自主ram存儲器1802的與軟件應(yīng)用程序有關(guān)的指令之后,執(zhí)行這些指令。這種軟件應(yīng)用程序在由cpu1801執(zhí)行的情況下,使得進行圖13、14、16和17所示的流程圖的步驟。
圖13、14、16和17所示的算法的任何步驟可以通過諸如pc(“個人計算機”)、dsp(“數(shù)字信號處理器”)或微控制器等的可編程計算機器執(zhí)行一組指令或程序來以軟件方式實現(xiàn);或者還可以通過諸如fpga(“現(xiàn)場可編程門陣列”)或asic(“專用集成電路”)等的機器或?qū)S媒M件來以硬件方式實現(xiàn)。
盡管以上已經(jīng)參考具體實施例說明了本發(fā)明,但本發(fā)明不限于這些具體實施例,并且本領(lǐng)域技術(shù)人員將明白存在于本發(fā)明的范圍內(nèi)的變形。
在參考僅以示例方式給出而并不意圖限制本發(fā)明的范圍的前述例示實施例的情況下,許多其它修改和改變對本領(lǐng)域普通技術(shù)人員是不言自明的,其中所述范圍僅由所附權(quán)利要求書來確定。特別地,在適當情況下,可以互換來自不同實施例的不同特征。
在權(quán)利要求書中,詞語“包括”沒有排除其它要素或步驟,并且不定冠詞“a”或“an”沒有排除多個。在相互不同的從屬權(quán)利要求中陳述不同的特征的僅有事實并不表明不能有利地使用這些特征的組合。