技術領域
本發(fā)明涉及視頻譯碼及壓縮,以及用信號發(fā)送與位流中的經(jīng)壓縮視頻相關聯(lián)的數(shù)據(jù)。
背景技術:
數(shù)字視頻能力可并入到多種多樣的裝置中,包含數(shù)字電視、數(shù)字直播系統(tǒng)、無線廣播系統(tǒng)、個人數(shù)字助理(PDA)、膝上型或桌上型計算機、平板計算機、電子圖書閱讀器、數(shù)碼相機、數(shù)字記錄裝置、數(shù)字媒體播放器、視頻游戲裝置、視頻游戲控制臺、蜂窩式或衛(wèi)星無線電電話(所謂的“智能電話”)、視頻電話會議裝置、視頻串流裝置及其類似者。數(shù)字視頻裝置實施視頻壓縮技術,例如描述于以下各者中的那些技術:由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高級視頻譯碼(AVC)定義的標準、高效率視頻譯碼(HEVC)標準,及此些標準的擴展。視頻裝置可通過實施此類視頻壓縮技術來更有效率地發(fā)射、接收、編碼、解碼及/或存儲數(shù)字視頻信息。
視頻壓縮技術執(zhí)行空間(圖片內(nèi))預測及/或時間(圖片間)預測來減少或去除視頻序列中固有的冗余。對于基于塊的視頻譯碼,可將視頻切片(即,視頻幀或視頻幀的一部分)分割成視頻塊,視頻塊也可被稱作樹塊、譯碼單元(CU)及/或譯碼節(jié)點。使用關于同一圖片中的相鄰塊中的參考樣本的空間預測來編碼圖片的經(jīng)幀內(nèi)譯碼(I)切片中的視頻塊。圖片的經(jīng)幀間編碼(P或B)切片中的視頻塊可使用相對于同一圖片中的相鄰塊中的參考樣本的空間預測或相對于其它參考圖片中的參考樣本的時間預測。圖片可被稱作幀,且參考圖片可被稱作參考幀。
空間或時間預測產(chǎn)生待譯碼塊的預測性塊。殘余數(shù)據(jù)表示待譯碼原始塊與預測性塊的間的像素差。經(jīng)幀間譯碼塊是根據(jù)指向形成預測塊的參考樣本塊的運動向量及指示經(jīng)譯碼塊與預測塊之間的差的殘余數(shù)據(jù)編碼的。根據(jù)幀內(nèi)譯碼模式及殘差數(shù)據(jù)來編碼經(jīng)幀內(nèi)譯碼塊。為了進一步壓縮,可將殘余數(shù)據(jù)從像素域變換到變換域,從而產(chǎn)生殘余變換系數(shù),可接著量化所述殘余變換系數(shù)??蓲呙枰婚_始按二維陣列排列的經(jīng)量化變換系數(shù),以便產(chǎn)生變換系數(shù)的一維向量,且可應用熵譯碼以實現(xiàn)更多壓縮。
技術實現(xiàn)要素:
本發(fā)明的諸多方面是針對用于在多層上下文中應用在高效率視頻譯碼(HEVC)標準中定義的補充增強層(SEI)消息的技術。舉例來說,本發(fā)明的技術可包含例如使用對HEVC標準的擴展(例如對HEVC的多視圖視頻譯碼擴展(MV-HEVC)或對HEVC的可縮放視頻譯碼(SVC)擴展(SHVC))對HEVC中闡述的待應用于多層視頻譯碼中的多種SEI消息語法的改變及/或約束。在一些情況下,所述技術可改善此類多層編解碼器的計算效率及/或容錯性。
在一實例中,一種譯碼視頻數(shù)據(jù)的方法包含:獲得存取單元及視頻數(shù)據(jù)的多層位流的第一層的一或多個視頻譯碼層(VCL)網(wǎng)絡抽象層(NAL)單元;以及僅譯碼與所述第一層的所述VCL NAL單元在一起的含有適用于所述第一層的所述VCL NAL單元的SEI消息的一或多個非VCL NAL單元,使得在所述存取單元內(nèi),所述位流在所述第一層的所述VCL NAL單元與含有適用于所述第一層的所述VCL NAL單元的所述SEI消息的所述非VCL NAL單元之間不含有所述多層位流的任何其它層的任何經(jīng)譯碼圖片。
在另一實例中,一種用于譯碼視頻數(shù)據(jù)的裝置包含:存儲器,其經(jīng)配置以存儲視頻數(shù)據(jù)的多層位流的至少一部分;以及一或多個處理器,其經(jīng)配置以獲得存取單元及視頻數(shù)據(jù)的所述多層位流的第一層的一或多個視頻譯碼層(VCL)網(wǎng)絡抽象層(NAL)單元,且僅譯碼與所述第一層的所述VCL NAL單元在一起的含有適用于所述第一層的所述VCL NAL單元的SEI消息的一或多個非VCL NAL單元,使得在所述存取單元內(nèi),所述位流在所述第一層的所述VCL NAL單元與含有適用于所述第一層的所述VCL NAL單元的所述SEI消息的所述非VCL NAL單元之間不含有所述多層位流的任何其它層的任何經(jīng)譯碼圖片。
在另一實例中,一種用于譯碼視頻數(shù)據(jù)的設備包含:用于獲得存取單元及視頻數(shù)據(jù)的多層位流的第一層的一或多個視頻譯碼層(VCL)網(wǎng)絡抽象層(NAL)單元的裝置;以及用于僅譯碼與所述第一層的所述VCL NAL單元在一起的含有適用于所述第一層的所述VCL NAL單元的SEI消息的一或多個非VCL NAL單元,使得在所述存取單元內(nèi),所述位流在所述第一層的所述VCL NAL單元與含有適用于所述第一層的所述VCL NAL單元的所述SEI消息的所述非VCL NAL單元之間不含有所述多層位流的任何其它層的任何經(jīng)譯碼圖片的裝置。
在另一實例中,一種非暫時性計算機可讀媒體上存儲有指令,所述指令在執(zhí)行時致使一或多個處理器獲得存取單元及視頻數(shù)據(jù)的多層位流的第一層的一或多個視頻譯碼層(VCL)網(wǎng)絡抽象層(NAL)單元,且僅譯碼與所述第一層的所述VCL NAL單元在一起的含有適用于所述第一層的所述VCL NAL單元的SEI消息的一或多個非VCL NAL單元,使得在所述存取單元內(nèi),所述位流在所述第一層的所述VCL NAL單元與含有適用于所述第一層的所述VCL NAL單元的所述SEI消息的所述非VCL NAL單元之間不含有所述多層位流的任何其它層的任何經(jīng)譯碼圖片。
在另一實例中,一種譯碼視頻數(shù)據(jù)的方法包含:譯碼多層位流的一層的一或多個非視頻譯碼層(VCL)網(wǎng)絡抽象層(NAL)單元,其中所述一或多個非VCL NAL單元含有經(jīng)解碼圖片哈希SEI消息;以及基于含有所述經(jīng)解碼圖片哈希SEI消息的所述一或多個非VCL NAL單元的層識別符確定所述經(jīng)解碼圖片哈希SEI消息所適用于的所述多層位流的一組層。
在另一實例中,一種用于譯碼視頻數(shù)據(jù)的裝置包含:存儲器,其經(jīng)配置以存儲多層位流的至少一部分;以及一或多個處理器,其經(jīng)配置以譯碼多層位流的一層的一或多個非視頻譯碼層(VCL)網(wǎng)絡抽象層(NAL)單元,其中所述一或多個非VCL NAL單元含有經(jīng)解碼圖片哈希SEI消息,且基于含有所述經(jīng)解碼圖片哈希SEI消息的所述一或多個非VCL NAL單元的層識別符確定所述經(jīng)解碼圖片哈希SEI消息所適用于的所述多層位流的一組層。
在另一實例中,一種譯碼視頻數(shù)據(jù)的設備包含:用于譯碼多層位流的一層的一或多個非視頻譯碼層(VCL)網(wǎng)絡抽象層(NAL)單元的裝置,其中所述一或多個非VCL NAL單元含有經(jīng)解碼圖片哈希SEI消息;以及用于基于含有所述經(jīng)解碼圖片哈希SEI消息的所述一或多個非VCL NAL單元的層識別符確定所述經(jīng)解碼圖片哈希SEI消息所適用于的所述多層位流的一組層的裝置。
在另一實例中,一種非暫時性計算機可讀媒體上存儲有指令,所述指令在執(zhí)行時致使一或多個處理器:譯碼多層位流的一層的一或多個非視頻譯碼層(VCL)網(wǎng)絡抽象層(NAL)單元,其中所述一或多個非VCL NAL單元含有經(jīng)解碼圖片哈希SEI消息;以及基于含有所述經(jīng)解碼圖片哈希SEI消息的所述一或多個非VCL NAL單元的層識別符確定所述經(jīng)解碼圖片哈希SEI消息所適用于的所述多層位流的一組層。
在另一實例中,一種譯碼視頻數(shù)據(jù)的方法包含:譯碼視頻數(shù)據(jù)的多層位流的一層的一或多個非視頻譯碼層(VCL)網(wǎng)絡抽象層(NAL)單元,其中所述一或多個非VCL NAL單元含有具有SEI有效負載類型的SEI消息;以及基于所述SEI有效負載類型確定所述SEI消息所適用于的所述多層位流的一或多個語法值。
在另一實例中,一種用于譯碼視頻數(shù)據(jù)的裝置包含:存儲器,其經(jīng)配置以存儲多層位流的一層;以及一或多個處理器,其經(jīng)配置以譯碼視頻數(shù)據(jù)的多層位流的一層的一或多個非視頻譯碼層(VCL)網(wǎng)絡抽象層(NAL)單元,其中所述一或多個非VCL NAL單元含有具有SEI有效負載類型的SEI消息;以及基于所述SEI有效負載類型確定所述SEI消息所適用于的所述多層位流的一或多個語法值。
在另一實例中,一種用于譯碼視頻數(shù)據(jù)的設備包含:用于譯碼視頻數(shù)據(jù)的多層位流的一層的一或多個非視頻譯碼層(VCL)網(wǎng)絡抽象層(NAL)單元的裝置,其中所述一或多個非VCL NAL單元含有具有SEI有效負載類型的SEI消息;以及用于基于所述SEI有效負載類型確定所述SEI消息所適用于的所述多層位流的一或多個語法值的裝置。
在另一實例中,一種非暫時性計算機可讀媒體上存儲有指令,所述指令在執(zhí)行時致使一或多個處理器:譯碼視頻數(shù)據(jù)的多層位流的一層的一或多個非視頻譯碼層(VCL)網(wǎng)絡抽象層(NAL)單元,其中所述一或多個非VCL NAL單元含有具有SEI有效負載類型的SEI消息;以及基于所述SEI有效負載類型確定所述SEI消息所適用于的所述多層位流的一或多個語法值。
在附圖及下文描述中陳述本發(fā)明的一或多個實例的細節(jié)。其它特征、目標及優(yōu)點將從所述描述、圖式及權利要求書而顯而易見。
附圖說明
圖1是說明可利用本發(fā)明中所描述的技術的實例視頻編碼及解碼系統(tǒng)的框圖。
圖2是說明可實施本發(fā)明中描述的技術的實例視頻編碼器的框圖。
圖3是說明可實施本發(fā)明中描述的技術的實例視頻解碼器的框圖。
圖4是說明其中可實施本發(fā)明的一或多個方面的囊封單元的一個實例的框圖。
圖5是說明其中可實施本發(fā)明的一或多個方面的一個實例網(wǎng)絡的框圖。
圖6是說明根據(jù)本發(fā)明中描述的技術的各種方面的經(jīng)配置以譯碼SEI消息的視頻處理裝置的實例操作的流程圖。
圖7是說明根據(jù)本發(fā)明中描述的技術的各種方面的經(jīng)配置以譯碼SEI消息的視頻處理裝置的另一實例操作的流程圖。
圖8是說明根據(jù)本發(fā)明中描述的技術的各種方面的經(jīng)配置以譯碼SEI消息的視頻處理裝置的另一實例操作的流程圖。
具體實施方式
本發(fā)明包含用于在多層上下文中應用在高效率視頻譯碼(HEVC)標準中定義的補充增強層(SEI)消息的技術。在一些情況下,可利用如下文提到的對HEVC標準的多層擴展(例如對HEVC的多視圖視頻譯碼擴展(MV-HEVC)或對HEVC的可縮放視頻譯碼(SVC)擴展(SHVC))來執(zhí)行所述技術。然而,本發(fā)明的技術不限于任何特定的視頻譯碼標準,且還可或替代地與HEVC的其它擴展、其它多視圖譯碼標準及/或其它多層視頻標準一起使用。另外,如下文所描述,本發(fā)明的技術可獨立地或組合地應用。
視頻數(shù)據(jù)的“層”可大體是指具有至少一個共同特性(例如視圖、幀率、分辨率等等)的圖片的序列。舉例來說,層可包含與多視圖視頻數(shù)據(jù)的特定視圖(例如,視角)相關聯(lián)的視頻數(shù)據(jù)。作為另一實例,層可包含與可縮放視頻數(shù)據(jù)的特定層相關聯(lián)的視頻數(shù)據(jù)。因此,本發(fā)明可互換地參考視頻數(shù)據(jù)的層及視圖。即,視頻數(shù)據(jù)的視圖可稱為視頻數(shù)據(jù)的層,且反之亦然,且多個視圖或多個可縮放層可以類似方式稱為多個層(例如在多層譯碼系統(tǒng)中)。另外,多層編解碼器(也稱為多層視頻譯碼器或多層編碼器-解碼器)可指多視圖編解碼器或可伸縮編解碼器(例如,經(jīng)配置以使用MV-HEVC、SHVC或另一多層譯碼技術來對視頻數(shù)據(jù)進行編碼及/或解碼的編解碼器)。
多層位流可包含基礎層及一或多個非基礎層(例如,在SHVC中)或多個視圖(例如,在MV-HEVC中)。在可縮放位流中,基礎層可通常具有等于零的層識別符。非基礎層可具有大于零的層識別符,且可提供不包含于基礎層中的額外視頻數(shù)據(jù)。例如,多視圖視頻數(shù)據(jù)的非基礎層可包含視頻數(shù)據(jù)的額外視圖??煽s放視頻數(shù)據(jù)的非基礎層可包含可縮放視頻數(shù)據(jù)的額外層。非基礎層可以可互換地稱為增強層。
多層位流的存取單元(有時簡稱為AU)大體為包含共同時間個例的所有層分量(例如,所有網(wǎng)絡抽象層(NAL)單元)的數(shù)據(jù)單元。存取單元的層分量通常既定一起輸出(即,大體上同時輸出),其中輸出圖片通常涉及自經(jīng)解碼圖片緩沖器(DPB)傳送圖片(例如,將圖片從DPB存儲到外部存儲器,將圖片從DPB發(fā)送到顯示器,等等)。
含有視頻數(shù)據(jù)的經(jīng)編碼表示的位流可包含一系列網(wǎng)絡抽象層(NAL)單元。NAL單元可為含有NAL單元中的數(shù)據(jù)類型的指示及含有所述數(shù)據(jù)的呈按需要穿插有模擬阻止位的原始字節(jié)序列有效負載(RBSP)的形式的字節(jié)的語法結構。NAL單元可包含視頻譯碼層(VCL)NAL單元及非VCL NAL單元。VCL NAL單元可包含圖片的經(jīng)譯碼切片。非VCL NAL單元可囊封視頻參數(shù)集(VPS)、序列參數(shù)集(SPS)、圖片參數(shù)集(PPS)、一或多個輔助增強信息(SEI)消息,或其它類型的數(shù)據(jù)。
位流的各NAL單元可與所述位流的不同層相關聯(lián)。在SHVC中,如上文所指出,不同于基礎層的層可稱為“增強層”,且可包含改善視頻數(shù)據(jù)的回放質(zhì)量的數(shù)據(jù)。在多視圖譯碼及3維視頻(3DV)譯碼(例如MV-HEVC)中,各層可包含與不同視圖相關聯(lián)的數(shù)據(jù)。位流的每一層與不同層識別符相關聯(lián)。
此外,NAL單元可包含時間識別符。位流的每一操作點具有一組層識別符及一時間識別符。如果NAL單元指定所述組層識別符中的一層識別符用于操作點且NAL單元的時間識別符小于或等于操作點的時間識別符,則所述NAL單元與所述操作點相關聯(lián)。
在H.264/AVC及HEVC兩者中皆支持的SEI機制使得視頻編碼器能夠在位流中包含視頻解碼器或其它裝置正確解碼輸出圖片的樣本值所不需要,但可用于各種其它目的(例如圖片輸出定時、顯示,以及丟失檢測及隱藏)的元數(shù)據(jù)。囊封一或多個SEI消息的NAL單元在本文中稱為SEI NAL單元。SEI消息的一種類型為可縮放嵌套SEI消息。可縮放嵌套SEI消息為含有一或多個額外SEI消息的SEI消息??煽s放嵌套SEI消息可用以指示SEI消息是否適用于多層位流的特定層或時間子層。不含于可縮放嵌套SEI消息中的SEI消息在本文中稱為非嵌套SEI消息。
某些類型的SEI消息含有僅適用于特定操作點的信息。位流的操作點與一組層識別符及一時間識別符相關聯(lián)。操作點表示可包含與操作點相關聯(lián)的每一NAL單元。操作點表示可具有與原始位流不同的幀率及/或位率。這是因為操作點表示可能不包含原始位流的一些圖片及/或一些數(shù)據(jù)。
緩沖周期SEI消息、圖片時序SEI消息及解碼單元SEI消息可能僅適用于特定操作點。因此,為了使用此類SEI消息中的信息,視頻處理器可確定哪些操作點適用于SEI消息。其它類型的SEI消息僅適用于特定層。因此,為了使用此類SEI消息中的信息,視頻處理器可確定哪些層適用于SEI消息。
HEVC SEI消息在多層譯碼上下文中的一般使用可存在若干挑戰(zhàn)。舉例來說,如下文更詳細地描述,將HEVC中指定的SEI消息應用于多個層可增大復雜度、產(chǎn)生語法不一致,及/或產(chǎn)生引起多層視頻編解碼器故障的其它錯誤。
在一些實例中,本發(fā)明的技術可提供解決與HEVC SEI消息的一般使用相關的多種問題的解決方案。舉例來說,所述技術可包含對某些語法元素應用約束,使得視頻編碼器或視頻解碼器基于多層位流的特性來自動地譯碼(或自動地確定,而不譯碼)某些語法元素的值。
圖1是說明可利用本發(fā)明中描述的技術的實例視頻編碼及解碼系統(tǒng)10的框圖。如圖1中所示,系統(tǒng)10包含源裝置12,其產(chǎn)生稍后由目的地裝置14解碼的經(jīng)編碼視頻數(shù)據(jù)。源裝置12及目的地裝置14可包括多種多樣的裝置中的任一者,包含桌上型計算機、筆記型(即,膝上型)計算機、平板計算機、機頂盒、電話手持機(例如所謂的“智能”電話)、所謂的“智能”平板電腦、電視機、相機、顯示裝置、數(shù)字媒體播放器、視頻游戲控制臺、視頻流式傳輸裝置或類似者。在一些情況下,可裝備源器件12及目的地器件14以用于無線通信。
目的地裝置14可經(jīng)由鏈路16接收待解碼的經(jīng)編碼視頻數(shù)據(jù)。鏈路16可包括能夠將經(jīng)編碼視頻數(shù)據(jù)從源裝置12移動到目的地裝置14的任何類型的媒體或裝置。在一個實例中,鏈接16可包括使得源裝置12能夠實時地將經(jīng)編碼視頻數(shù)據(jù)直接發(fā)射到目的地裝置14的通信媒體??筛鶕?jù)通信標準(例如,無線通信協(xié)議)調(diào)制經(jīng)編碼的視頻數(shù)據(jù),并將其發(fā)射到目的地裝置14。通信媒體可包括任何無線或有線通信媒體,例如射頻(RF)頻譜或一或多個物理傳輸線。通信媒體可形成分組網(wǎng)絡(例如,局域網(wǎng)。廣域網(wǎng)或全球網(wǎng)絡,例如因特網(wǎng))的部分。通信媒體可包含路由器、交換器、基站或任何其它可用于促進從源裝置12到目的地裝置14的通信的設備。
或者,可將經(jīng)編碼數(shù)據(jù)從輸出接口22輸出到存儲裝置32。類似地,可通過輸入接口從存儲裝置32存取經(jīng)編碼數(shù)據(jù)。存儲裝置32可包含多種分布式或本地存取的數(shù)據(jù)存儲媒體中的任一者,例如硬盤驅動器、藍光光盤、DVD、CD-ROM、快閃存儲器、易失性或非易失性存儲器或用于存儲經(jīng)編碼視頻數(shù)據(jù)的任何其它合適的數(shù)字存儲媒體。在另一實例中,存儲裝置32可對應于可保持由源裝置12產(chǎn)生的經(jīng)編碼視頻的文件服務器或另一中間存儲裝置。目的地裝置14可從存儲裝置32經(jīng)由流式傳輸或下載來存取所存儲的視頻數(shù)據(jù)。文件服務器可為能夠存儲經(jīng)編碼視頻數(shù)據(jù)并將所述經(jīng)編碼視頻數(shù)據(jù)傳輸?shù)侥康牡匮b置14的任何類型的服務器。實例文件服務器包含網(wǎng)絡服務器(例如,用于網(wǎng)站)、FTP服務器、網(wǎng)絡附接式存儲(NAS)裝置或本地磁盤驅動器。目的地裝置14可通過任何標準數(shù)據(jù)連接(包含因特網(wǎng)連接)來存取經(jīng)編碼視頻數(shù)據(jù)。此可包含無線通道(例如,Wi-Fi連接)、有線連接(例如,DSL、電纜調(diào)制解調(diào)器等),或適合于存取存儲在文件服務器上的經(jīng)編碼視頻數(shù)據(jù)的兩者的組合。經(jīng)編碼視頻數(shù)據(jù)從存儲裝置32的傳輸可為流式傳輸、下載傳輸或兩者的組合。
本發(fā)明的技術未必限于無線應用或設定。所述技術可應用于視頻譯碼以支持多種多媒體應用中的任一者,例如空中電視廣播、有線電視發(fā)射、衛(wèi)星電視發(fā)射、流式視頻發(fā)射(例如,經(jīng)由因特網(wǎng))、編碼數(shù)字視頻以用于存儲在數(shù)據(jù)存儲媒體上、解碼存儲在數(shù)據(jù)存儲媒體上的數(shù)字視頻或其它應用。在一些實例中,系統(tǒng)10可經(jīng)配置以支持單向或雙向視頻傳輸,以支持例如視頻流式傳輸、視頻回放、視頻廣播及/或視頻電話等應用。
在圖1的實例中,源裝置12包括視頻源18、視頻編碼器20、囊封單元21,及輸出接口22。在一些狀況下,輸出接口22可包含調(diào)制器/解調(diào)器(調(diào)制解調(diào)器)及/或發(fā)射器。在源裝置12中,視頻源18可包含例如視頻俘獲裝置(例如攝像機)、包含先前俘獲的視頻的視頻存檔、用于從視頻內(nèi)容提供者接收視頻的視頻饋入接口及/或用于產(chǎn)生計算機圖形數(shù)據(jù)作為源視頻的計算機圖形系統(tǒng),或此類源的組合等源。作為一個實例,如果視頻源18為攝像機,那么源裝置12及目的地裝置14可形成所謂的相機電話或視頻電話。然而,本發(fā)明中所描述的技術一般來說可適用于視頻譯碼,且可應用于無線及/或有線應用。
可由視頻編碼器20來編碼所俘獲視頻、經(jīng)預先俘獲的視頻或計算機產(chǎn)生的視頻。囊封單元21可形成多媒體內(nèi)容的一或多個表示,其中所述表示中的每一者可包含一或多個層。在一些實例中,視頻編碼器20可以不同方式編碼每一層,例如以不同幀率、不同位率、不同分辨率或其它此類差異。因此,囊封單元21可形成具有各種特性(例如,位率、幀率、分辨率,等等)的各種表示。
所述表示中的每一者可對應于可由目的地裝置14檢索的相應位流。囊封單元21可提供用于包含于每一表示中的視圖的一定范圍視圖識別符(view_ids)的指示,例如,在用于多媒體內(nèi)容的媒體呈現(xiàn)描述(MPD)數(shù)據(jù)結構內(nèi)。舉例來說,囊封單元21可提供用于一表示的視圖的最大視圖識別符及最小視圖識別符的指示。MPD可進一步提供用于多媒體內(nèi)容的多個表示中的每一者的以輸出為目標的視圖的最大數(shù)目的指示。在一些實例中,MPD或其數(shù)據(jù)可存儲于用于表示的清單(manifest)中。
經(jīng)編碼視頻數(shù)據(jù)可經(jīng)由源裝置12的輸出接口22直接傳輸?shù)侥康牡匮b置14。經(jīng)編碼視頻數(shù)據(jù)也可(或替代地)存儲到存儲裝置32上以供稍后由目的地裝置14或其它裝置存取以用于解碼及/或回放。
目的地裝置14包含輸入接口28、解囊封單元29、視頻解碼器30,及顯示裝置31。在一些情況下,輸入接口28可包含接收器及/或調(diào)制解調(diào)器。目的地裝置14的輸入接口28經(jīng)由鏈接16接收經(jīng)編碼視頻數(shù)據(jù)。經(jīng)由鏈路16傳達或提供于存儲裝置32上的經(jīng)編碼視頻數(shù)據(jù)可包含由視頻編碼器20產(chǎn)生以供視頻解碼器(例如視頻解碼器30)用于解碼視頻數(shù)據(jù)的多種語法元素。此類語法元素可與在通信媒體上發(fā)射、存儲于存儲媒體上或存儲于文件服務器上的經(jīng)編碼視頻數(shù)據(jù)包含在一起。
目的地裝置14的解囊封單元29可表示從位流(或位流的子集,在多層譯碼的上下文中稱為操作點)解封裝SEI消息的單元。解囊封單元29可以與囊封單元21執(zhí)行操作的次序相反的次序執(zhí)行操作以從經(jīng)囊封經(jīng)編碼位流(例如SEI消息)解囊封數(shù)據(jù)。
顯示器裝置31可與目的地裝置14整合在一起或在目的地裝置14的外部。在一些實例中,目的地裝置14可包含整合式顯示器裝置且還可經(jīng)配置以與外部顯示器裝置介接。在其它實例中,目的地裝置14可為顯示裝置。一般來說,顯示裝置31將經(jīng)解碼視頻數(shù)據(jù)顯示給用戶,并且可包括多種顯示裝置中的任一者,例如液晶顯示器(LCD)、等離子顯示器、有機發(fā)光二極管(OLED)顯示器或另一類型的顯示裝置。
視頻編碼器20及視頻解碼器30各自可實施為多種合適的編碼器及解碼器電路中的任一者,例如一或多個微處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、離散邏輯、軟件、硬件固件或其任何組合。當部分地用軟件實施所述技術時,裝置可將用于軟件的指令存儲在合適的非暫時性計算機可讀媒體中且在硬件中使用一或多個處理器執(zhí)行所述指令以執(zhí)行本發(fā)明的技術。視頻編碼器20及視頻解碼器30中的每一者可包含在一或多個編碼器或解碼器中,所述編碼器或解碼器中的任一者可集成為相應裝置中的組合式編碼器/解碼器(編解碼器)的一部分。
盡管圖1中未展示,但在一些方面中,視頻編碼器20及視頻解碼器30可各自與音頻編碼器及解碼器集成,且可包含適當多路復用器-多路分用器單元或其它硬件及軟件以處置共同數(shù)據(jù)流或單獨數(shù)據(jù)流中的音頻及視頻兩者的編碼。在一些實例中,如果適用的話,那么MUX-DEMUX單元可符合ITU H.223多路復用器協(xié)議,或例如用戶數(shù)據(jù)報協(xié)議(UDP)等其它協(xié)議。
本發(fā)明可總體上參考視頻編碼器20向另一裝置(例如,視頻解碼器30)“用信號發(fā)送”某些信息。術語“用信號發(fā)送”通??芍赣糜诮獯a壓縮視頻數(shù)據(jù)的語法元素及/或其它數(shù)據(jù)的傳達。此傳達可實時或幾乎實時發(fā)生?;蛘?,此傳達可經(jīng)過一段時間后發(fā)生,例如可在編碼時以經(jīng)編碼位流將語法元素存儲到計算機可讀存儲媒體時發(fā)生,解碼裝置接著可在所述語法元素存儲到此媒體之后的任何時間檢索所述語法元素。
在一些實例中,視頻編碼器20及視頻解碼器30根據(jù)視頻壓縮標準(例如ISO/IEC MPEG-4Visual及ITU-T H.264(也稱為ISO/IEC MPEG-4AVC),包含其可縮放視頻譯碼(SVC)擴展、多視圖視頻譯碼(MVC)擴展及基于MVC的3DV擴展)操作。在其它實例中,視頻編碼器20及視頻解碼器30可根據(jù)由ITU-T視頻譯碼專家組(VCEG)及ISO/IEC動畫專家組(MPEG)的視頻譯碼聯(lián)合合作小組(JCT-VC)開發(fā)的高效率視頻譯碼(HEVC)操作。HEVC標準的草案描述于以下文檔中:ITU-T H.265高效率視頻譯碼(2014年4月),王(Wang)等人“高效率視頻譯碼(HEVC)缺陷報告3(High Efficiency Video Coding(HEVC)defect report 3)”,ITU-T SG16WP3的視頻譯碼聯(lián)合合作小組(JCT-VC)及ISO/IECJTC1/SC29/WG11,文檔JCTVC-P1003_v1,第16次會議,圣何塞,2014年1月;王等人,“高效率視頻譯碼(HEVC)缺陷報告3(High Efficiency Video Coding(HEVC)defect report 3)”,ITU-T SG16 WP3的視頻譯碼聯(lián)合合作小組(JCT-VC)及ISO/IEC JTC1/SC29/WG11,文檔JCTVC-P1003_v1,第16次會議,圣何塞,2014年1月,其提供HEVC版本1的第三份缺陷報告。
此外,正在致力于產(chǎn)生可縮放視頻譯碼、多視圖譯碼及HEVC的3DV擴展。HEVC的可縮放視頻譯碼擴展可被稱為SHEVC。SHVC的最近工作草案(WD)(在下文中稱為SHVC WD5或當前SHVC WD)描述于陳(Chen)等人的“高效率視頻譯碼(HEVC)可縮放擴展草案5(High Efficiency Video Coding(HEVC)scalable extension draft 5)”(ITU-T SG16 WP3的視頻譯碼聯(lián)合合作小組(JCT-VC)及ISO/IEC JTC1/SC29/WG11,文檔JCTVC-P1008_v4,第16次會議,圣何塞,2014年1月)中。MV-HEVC的最近工作草案(WD)(在下文中稱為MV-HEVC WD7或當前MV-HEVC WD)描述于泰科(Tech)等人的“MV-HEVC草案文本7(MV-HEVC Draft Text 7)”(ITU-T SG16 WP3的視頻譯碼聯(lián)合合作小組(JCT-VC)及ISO/IEC JTC1/SC29/WG11,文檔JCTVC-G1004_v7,第16次會議,圣何塞,2014年1月)中。
在HEVC及其它視頻譯碼規(guī)范中,視頻序列通常包含一系列圖片。圖片也可被稱作“幀”。圖片可包含三個樣本陣列,標示為SL、SCb和SCr。SL是明度樣本的二維陣列(即,塊)。SCb是Cb色度樣本的二維陣列。SCr是Cr色度樣本的二維陣列。色度樣本在本文中還可被稱為“色度”樣本。在其它情況下,圖片可為單色的且可僅包含亮度樣本陣列。
為了產(chǎn)生圖片的經(jīng)編碼的表示,視頻編碼器20可產(chǎn)生一組譯碼樹單元(CTU)。CTU中的每一者可包括亮度樣本的譯碼樹塊、色度樣本的兩個對應的譯碼樹塊,以及用以對譯碼樹塊的樣本進行譯碼的語法結構。在單色圖片或具有三個單獨顏色平面的圖片中,CTU可包括單個譯碼樹塊及用于對所述譯碼樹塊的樣本進行譯碼的語法結構。譯碼樹塊可為樣本的NxN塊。CTU也可被稱為“樹塊”或“最大譯碼單元(LCU)”。HEVC的CTU可廣泛地類似于例如H.264/AVC等其它標準的宏塊。然而,CTU未必限于特定大小,并且可包含一或多個譯碼單元(CU)。切片可包含按光柵掃描次序連續(xù)排序的整數(shù)數(shù)目的CTU。
為了產(chǎn)生經(jīng)譯碼CTU,視頻編碼器20可在CTU的譯碼樹塊上以遞歸方式執(zhí)行四叉樹分割,以將譯碼樹塊劃分為譯碼塊,因此命名為“譯碼樹單元”。譯碼塊可為樣本的NxN塊。CU可包括具有明度樣本陣列、Cb樣本陣列和Cr樣本陣列的圖片的明度樣本的譯碼塊和色度樣本的兩個對應的譯碼塊,以及用以對譯碼塊的樣本進行譯碼的語法結構。在單色圖片或具有三個單獨顏色平面的圖片中,CU可包括單個譯碼塊及用以對譯碼塊的樣本進行譯碼的語法結構。
視頻編碼器20可將CU的譯碼塊分割為一或多個預測塊。預測塊是對其應用相同預測的樣本的矩形(即,正方形或非正方形)塊。CU的預測單元(PU)可包括明度樣本的預測塊、色度樣本的兩個對應預測塊及用以預測預測塊的語法結構。在單色圖片或具有三個單獨顏色平面的圖片中,PU可包括單個預測塊及用以預測預測塊的語法結構。視頻編碼器20可產(chǎn)生用于CU的每個PU的明度預測塊、Cb預測塊以及Cr預測塊的預測性明度塊、Cb塊以及Cr塊。
視頻編碼器20可使用幀內(nèi)預測或幀間預測來產(chǎn)生PU的預測塊。如果視頻編碼器20使用幀內(nèi)預測產(chǎn)生PU的預測性塊,則視頻編碼器20可基于與PU相關聯(lián)的圖片的經(jīng)解碼的樣本來產(chǎn)生PU的預測性塊。如果視頻編碼器20使用幀間預測產(chǎn)生PU的預測性塊,則視頻編碼器20可基于除與PU相關的圖片以外的一或多個圖片的經(jīng)解碼樣本產(chǎn)生PU的預測性塊。
在視頻編碼器20產(chǎn)生CU的一或多個PU的預測性亮度、Cb及Cr塊之后,視頻編碼器20可產(chǎn)生CU的亮度殘余塊。CU的亮度殘余塊中的每一樣本指示CU的預測性亮度塊中的一者中的亮度樣本與CU的原始亮度譯碼塊中的對應樣本之間的差異。另外,視頻編碼器20可產(chǎn)生CU的Cb殘余塊。CU的Cb殘余塊中的每一樣本可指示CU的預測性Cb塊中的一者中的Cb樣本與CU的原始Cb譯碼塊中對應的樣本之間的差異。視頻編碼器20還可產(chǎn)生CU的Cr殘余塊。CU的Cr殘余塊中的每一樣本可指示CU的預測性Cr塊中的一者中的Cr樣本與CU的原始Cr譯碼塊中的對應樣本之間的差異。
此外,視頻編碼器20可使用四叉樹分割將CU的明度、Cb及Cr殘余塊分解成一或多個明度、Cb及Cr變換塊。變換塊是應用相同變換的樣本的矩形(例如,正方形或非正方形)塊。CU的變換單元(TU)可包括亮度樣本的變換塊、色度樣本的兩個對應變換塊及用以對變換塊樣本進行變換的語法結構。因此,CU的每個TU可與亮度變換塊、Cb變換塊及Cr變換塊相關聯(lián)。與TU相關聯(lián)的明度變換塊可為CU的亮度殘余塊的子塊。Cb變換塊可為CU的Cb殘余塊的子塊。Cr變換塊可為CU的Cr殘余塊的子塊。在單色圖片或具有三個單獨顏色平面的圖片中,TU可包括單個變換塊及用以對變換塊的樣本進行變換的語法結構。
視頻編碼器20可將一或多個變換應用到TU的亮度變換塊以產(chǎn)生TU的亮度系數(shù)塊。系數(shù)塊可為變換系數(shù)的二維陣列。變換系數(shù)可為標量。視頻編碼器20可將一或多個變換應用至TU的Cb變換塊以產(chǎn)生TU的Cb系數(shù)塊。視頻編碼器20可將一或多個變換應用至TU的Cr變換塊以產(chǎn)生TU的Cr系數(shù)塊。
在產(chǎn)生系數(shù)塊(例如,明度系數(shù)塊、Cb系數(shù)塊或Cr系數(shù)塊)之后,視頻編碼器20可量化系數(shù)塊。量化總體上是指對變換系數(shù)進行量化以可能減少用以表示變換系數(shù)的數(shù)據(jù)的量從而提供進一步壓縮的過程。在視頻編碼器20量化系數(shù)塊之后,視頻編碼器20可對指示經(jīng)量化變換系數(shù)的語法元素進行熵編碼。舉例來說,視頻編碼器20可對指示經(jīng)量化變換系數(shù)的語法元素執(zhí)行上下文自適應二進制算術譯碼(CABAC)。
視頻編碼器20可輸出包含形成經(jīng)譯碼圖片及相關聯(lián)數(shù)據(jù)的表示的位元序列的位流。位流可包括一連串網(wǎng)絡抽象層(NAL)單元。NAL單元是含有NAL單元中的數(shù)據(jù)類型的指示及含有所述數(shù)據(jù)的呈按需要穿插有模擬阻止位的原始字節(jié)序列有效負載(RBSP)的形式的字節(jié)的語法結構。NAL單元中的每一者包含NAL單元標頭且囊封RBSP。NAL單元標頭可包含指示NAL單元類型碼的語法元素。由NAL單元的NAL單元標頭指定的所述NAL單元類型代碼指示NAL單元的類型。RBSP可為含有包封在NAL單元內(nèi)的整數(shù)數(shù)目個字節(jié)的語法結構。在一些情況下,RBSP包含零個位元。
不同類型的NAL單元可包封不同類型的RBSP。舉例來說,第一類型的NAL單元可包封用于圖片參數(shù)集(PPS)的RBSP,第二類型的NAL單元可包封用于經(jīng)譯碼切片的RBSP,第三類型的NAL單元可包封用于SEI的RBSP等等。封裝視頻譯碼數(shù)據(jù)的RBSP(與參數(shù)集及SEI訊息的RBSP相對)的NAL單元可被稱為視頻編碼層(VCL)NAL單元。
視頻解碼器30可接收由視頻編碼器20產(chǎn)生的位流。另外,視頻解碼器30可剖析位流以獲得來自位流的語法元素。視頻解碼器30可至少部分地基于從位流獲得的語法元素重構視頻數(shù)據(jù)的圖片。重構視頻數(shù)據(jù)的過程通??膳c由視頻編碼器20執(zhí)行的過程互逆。此外,視頻解碼器30可反量化與當前CU的TU相關聯(lián)的系數(shù)塊。視頻解碼器30可對系數(shù)塊執(zhí)行反變換以重構與當前CU的TU相關聯(lián)的變換塊。通過將用于當前CU的PU的預測性塊的樣本增加到當前CU的TU的變換塊的對應的樣本上,視頻解碼器30可重構當前CU的譯碼塊。通過重構用于圖片的每一CU的譯碼塊,視頻解碼器30可重構圖片。
在多視圖譯碼中,可存在來自不同視角的同一場景的多個視圖。如上文所指出,存取單元包含對應于相同時間個例的一組圖片。因此,視頻數(shù)據(jù)可經(jīng)概念化為隨時間出現(xiàn)的一系列存取單元。“視圖分量”可為單個存取單元中的視圖的經(jīng)譯碼表示。在本發(fā)明中,“視圖”可指與相同視圖識別符相關聯(lián)的一連串視圖分量。視圖分量的實例類型包含紋理視圖分量及深度視圖分量。
多視圖譯碼支持視圖間預測。視圖間預測類似于用于HEVC中的幀間預測且可使用相同的語法元素。然而,當視頻譯碼器對當前視頻單元(例如PU)執(zhí)行視圖間預測時,視頻編碼器20可使用與當前視頻單元在同一存取單元中但在不同視圖中的圖片作為參考圖片。相比之下,常規(guī)的幀間預測僅使用不同存取單元中的圖片作為參考圖片。
在多視圖譯碼中,如果視頻解碼器(例如,視頻解碼器30)可對視圖中的圖片進行解碼而無需參考任何其它視圖中的圖片,那么所述視圖可被稱為“基礎視圖”。當對非基礎視圖中的一者中的圖片進行譯碼時,視頻譯碼器(例如,視頻編碼器20或視頻解碼器30)可在圖片與視頻譯碼器當前正譯碼的圖片處于不同視圖中但在同一時間實例(即,存取單元)內(nèi)的情況下將所述圖片添加到參考圖片列表中。如同其它幀間預測參考圖片,視頻編解碼器可在參考圖片列表的任何位置處插入視圖間預測參考圖片。
在H.264/AVC及HEVC兩者中皆支持的SEI機制使得視頻編碼器(例如,視頻編碼器20)能夠在位流中包含正確解碼輸出圖片的樣本值所不需要,但可用于各種其它目的(例如圖片輸出定時、顯示,以及丟失檢測及隱藏)的元數(shù)據(jù)。視頻編碼器20可使用SEI消息來在位流中包含正確解碼圖片的樣本值所不需要的元數(shù)據(jù)。然而,視頻解碼器30或其它裝置可使用包含于SEI消息中的元數(shù)據(jù)用于各種其它目的。舉例來說,視頻解碼器30或另一裝置可使用SEI消息中的元數(shù)據(jù)用于圖片輸出定時、圖片顯示、丟失檢測及錯誤隱藏。
視頻編碼器20可在存取單元中包含一或多個SEI NAL單元。換句話說,任何數(shù)目個SEI NAL單元可與一存取單元相關聯(lián)。此外,每一SEI NAL單元可含有一或多個SEI消息。即,視頻編碼器可在一存取單元中包含任何數(shù)目個SEI NAL單元,且每一SEI NAL單元可含有一或多個SEI消息。SEI NAL單元可包含NAL單元標頭及有效負載。SEI NAL單元的NAL單元標頭至少包含第一語法元素及第二語法元素。第一語法元素指定SEI NAL單元的層識別符。第二語法元素指定SEI NAL單元的時間識別符。
嵌套SEI消息是指含于可縮放嵌套SEI消息中的SEI消息。非嵌套SEI消息是指不含于可縮放嵌套SEI消息中的SEI消息。SEI NAL單元的有效負載可包括嵌套SEI消息或非嵌套SEI消息。
HEVC標準描述用于各種類型SEI消息的語法及語義。然而,HEVC標準不描述SEI消息的處置的因為SEI消息并不影響正常的解碼過程。在HEVC標準中具有SEI消息的一個原因是使得補充數(shù)據(jù)能夠在使用HEVC的不同系統(tǒng)中相同地解譯。使用HEVC的規(guī)范及系統(tǒng)可能需要視頻編碼器產(chǎn)生某些SEI消息或可界定特定類型的所接收SEI消息的特定處置。
下文表1列出在HEVC中指定的SEI消息且簡要描述其目的:
表1-SEI消息的概述
在多層上下文中使用HEVC SEI消息的一個潛在問題是準許含有適用于層識別符(例如,如由位流的nuh_layer_id語法元素識別)等于第一層(layerIdA,出于實例目的)的層的SEI消息的SEI NAL單元在含有所述層的圖片的存取單元(AU)內(nèi)跟在層識別符(nuh_layer_id)大于第一層(layerIdA)的圖片的VCL NAL單元之后。舉例來說,SEI消息可能在位流中與使用所述SEI消息的圖片分離。
在出于說明目的的實例中,存取單元可包含多層位流的第一層的第一圖片及多層位流的第二層的第二圖片。在一些情況下,適用于第一層的第一圖片的SEI消息可能同與第二層相關聯(lián)的NAL單元包含在一起。如果準許SEI NAL單元與視頻數(shù)據(jù)的其它層包含在一起,那么視頻編碼器20及/或視頻解碼器30可能必須從其它層提取SEI NAL單元且在譯碼所述存取單元之前存儲所述消息。
根據(jù)本發(fā)明的第一方面,不允許含有適用于層識別符(nuh_layer_id)等于第一層(layerIdA)的層的SEI消息的SEI NAL單元在所述存取單元內(nèi)跟在層識別符(nuh_layer_id)大于第一層(layerIdA)的圖片的任何VCL NAL單元以及其相關聯(lián)非VCL NAL單元之后。舉例來說,根據(jù)本發(fā)明的方面,SEI NAL單元的放置可受約束,使得SEI NAL單元與多層位流中的SEI NAL單元所適用的層(或多層)在一起。
在以上實例中,視頻編碼器20及/或視頻解碼器30可僅譯碼與第一層的VCL NAL單元在一起的含有適用于第一層的VCL NAL單元的SEI消息的一或多個非VCL NAL單元(例如,連續(xù)地譯碼SEI NAL單元及VCL NAL單元),使得所述位流在第一層的VCL NAL單元與含有適用于第一層的VCL NAL單元的SEI消息的非VCL NAL單元之間不含有多層位流的任何其它層的任何經(jīng)譯碼圖片。在一些情況下,使SEI NAL單元在多層位流中與SEI NAL單元所適用于的層中的圖片在一起可有益于例如在一起存儲及發(fā)射相關聯(lián)NAL單元時最小化存儲或發(fā)射開銷。舉例來說,通過將非VCL與非VCL NAL單元所適用于的VCL NAL單元在位流中保持在一起,視頻編碼器20及/或視頻解碼器30可能不必在譯碼VCL NAL單元之前從存儲器定位且提取非VCL NAL單元。
在多層上下文中使用HEVC SEI消息的第二潛在問題為經(jīng)解碼圖片哈希SEI消息所適用于的多層位流的一組層未在HEVC標準中清楚地指定。經(jīng)解碼圖片哈希SEI消息提供從經(jīng)解碼圖片的樣本值導出的檢查和。經(jīng)解碼圖片哈希消息可用于檢測圖片是否被正確地接收及解碼。
根據(jù)本發(fā)明的第二方面,經(jīng)解碼圖片哈希SEI消息的所述組適用層可指定為層識別符(nuh_layer_id)等于含有SEI消息的SEI NAL單元的層識別符(nuh_layer_id)的層,且不準許經(jīng)解碼圖片哈希SEI消息嵌套。舉例來說,根據(jù)本發(fā)明的方面,視頻編碼器20及/或視頻解碼器30可僅譯碼SEI NAL單元中作為非嵌套SEI消息的一個經(jīng)解碼圖片哈希SEI消息,且經(jīng)解碼圖片哈希SEI消息僅適用于具有含有SEI消息的SEI NAL單元的相同層識別符(nuh_layer_id)的層。
在以上實例中,視頻編碼器20及/或視頻解碼器30可譯碼含有經(jīng)解碼圖片哈希SEI消息的一或多個非VCL NAL單元(例如,SEI NAL單元),且基于含有所述經(jīng)解碼圖片哈希SEI消息的一或多個非VCL NAL單元的層識別符來確定經(jīng)解碼圖片哈希SEI消息所適用于的多層位流的一組層。視頻編碼器20及/或視頻解碼器30可譯碼指示SEI NAL單元的層識別符的一或多個語法元素(例如nuh_layer_id語法元素),使得確定所述組層是基于所述語法元素。在一些情況下,所述技術可在多層譯碼中增大容錯性及/或減小與經(jīng)解碼圖片哈希SEI消息相關聯(lián)的存儲開銷。
在多層上下文中使用HEVC SEI消息的第三潛在問題是作用中參數(shù)集SEI消息的所述組適用層未在HEVC標準中清楚地指定。作用中參數(shù)集SEI消息指示VPS對于與SEI消息相關聯(lián)的存取單元的VCL NAL單元在作用中。SEI消息還可提供關于哪一SPS對于與SEI消息相關聯(lián)的存取單元的VCL NAL單元在作用中的信息,及與參數(shù)集相關的其它信息。舉例來說,SEI消息可包含是否支持全隨機可存取性(例如,在支持時,在通過完全舍棄在解碼次序上較早的所有存取單元而從當前經(jīng)譯碼視頻序列的起點隨機存取時,解碼位流的其余圖片所需的所有參數(shù)集存在于其余位流中,且可正確地解碼其余位流中的所有經(jīng)譯碼圖片),或在當前經(jīng)譯碼視頻序列內(nèi)是否不存在更新在解碼次序上在先的另一相同類型參數(shù)集的參數(shù)集(例如,更新參數(shù)集是指使用相同參數(shù)集識別符,但一些其它參數(shù)改變)的指示。
根據(jù)本發(fā)明的第三方面,作用中參數(shù)集SEI消息經(jīng)定義以適用于位流中的所有層。此外,作用中參數(shù)集SEI消息受約束為不嵌套。在此實例中,視頻編碼器20及/或視頻解碼器30可譯碼多層位流的含有作用中參數(shù)集SEI消息的一或多個非VCL NAL單元,且基于含有作用中參數(shù)集SEI消息的一或多個非VCL NAL單元而確定作用中參數(shù)集SEI消息適用于多層位流的所有層。舉例來說,視頻編碼器20及/或視頻解碼器30可借助于譯碼作用中參數(shù)集SEI消息而自動地得出作用中參數(shù)集SEI消息適用于多層位流的所有層。在一些情況下,所述技術可在多層譯碼中減小與作用中參數(shù)集SEI消息相關聯(lián)的復雜度。
在多層上下文中使用HEVC SEI消息的第四潛在問題為在frame_field_info_present_flag語法元素對于嵌套或非嵌套的圖片定時信息SEI消息等于1時,所述組適用層未針對在語法元素pic_struct、source_scan_type及duplicate_flag中攜載的幀-場信息清楚地指定。舉例來說,等于1的frame_field_info_present_flag語法元素指定圖片定時SEI消息對于每一圖片存在且包含pic_struct、source_scan_type及duplicate_flag語法元素。一般來說,pic_struct語法元素指示圖片應顯示為幀還是一或多個場,source_scan_type語法元素指示掃描類型(例如,漸進式、交錯式或未知),duplicate_flag語法元素指示當前圖片被指示為按輸出次序的先前圖片的重復。
根據(jù)本發(fā)明的第四方面,在frame_field_info_present_flag語法元素對于嵌套或非嵌套的圖片定時信息SEI消息等于1時,視頻編碼器20及/或視頻解碼器30可自動地確定語法元素pic_struct、source_scan_type及duplicate_flag中攜載的幀-場信息適用于在圖片定時SEI消息所適用于的所有操作點中的層。以此方式,在一些情況下,在多層譯碼中使用frame_field_info_present_flag語法元素時,所述技術可減小復雜度及/或改善容錯性。
在多層上下文中使用HEVC SEI消息的第五潛在問題為準許作用中參數(shù)集SEI消息在HEVC中嵌套。然而,如上文所指出,作用中參數(shù)集SEI消息適用于所有層。因此,對待應用于多層位流的特定層(例如,使用嵌套SEI消息)的作用中參數(shù)集SEI消息提供靈活性可能不必要地增大視頻編碼器20及/或視頻解碼器30的復雜度。舉例來說,在接收到且解碼可縮放嵌套SEI消息之后,視頻解碼器30可能必須即刻執(zhí)行額外操作(例如,相對于非嵌套SEI消息)以確定可縮放嵌套SEI消息的適用層。
根據(jù)本發(fā)明的第五方面,不允許作用中參數(shù)集SEI消息在可縮放嵌套SEI消息中嵌套。舉例來說,視頻編碼器20及/或視頻解碼器30可受約束為譯碼僅在非嵌套SEI消息而不在可縮放嵌套SEI消息中的多層位流的作用中參數(shù)集SEI消息。所述技術可減小與譯碼及使用作用中參數(shù)集SEI消息相關聯(lián)的計算復雜度。舉例來說,返回到以上實例,視頻解碼器30可譯碼及使用作用中參數(shù)集SEI消息而不執(zhí)行與可縮放嵌套SEI消息相關聯(lián)的額外操作。
在多層上下文中使用HEVC SEI消息的第六潛在問題為bitstream_subset_flag語法元素等于1且有效負載類型(payloadType)等于2、3、6、9、15、16、17、19、22、23、45、47、128、131、132或134的嵌套SEI消息(例如,payloadType不等于0、1、4、5、130及133中的任一者的SEI消息中的一者)的語義不明顯。在HEVC中,bitstream_subset_flag指示含于可縮放嵌套SEI消息中的SEI消息適用于多層位流的特定層或子層。舉例來說,等于零的bitstream_subset_flag指定含于可縮放嵌套SEI消息中的SEI消息適用于特定層或子層。等于1的bitstream_subset_flag指定含于可縮放嵌套SEI消息中的SEI消息適用于由子位流提取過程產(chǎn)生的一或多個子位流。因此,HEVC并不清楚地指定在從多層位流提取特定層集合(例如,子位流)時處置特定SEI消息(具有以上識別的有效負載類型)的方式,這可能在多層譯碼期間造成錯誤及/或低效率。
在payloadType等于2、3、6、9、15、16、17、19、22、23、45、47、128、129、131、132或134時,SEI消息為以下各者中的一者:全屏幕掃描矩形SEI消息,其包含與按照不同于輸出圖片的圖片縱橫比的圖片縱橫比進行顯示相關聯(lián)的數(shù)據(jù);填充符有效負載SEI消息,其包含用于調(diào)整位率以滿足特定約束的數(shù)據(jù);恢復點SEI消息,其包含用于清潔隨機存取或逐漸解碼刷新的信息;場景信息SEI消息,其包含與場景改變及轉變相關聯(lián)的信息;圖片快照SEI消息,且包含將相關聯(lián)經(jīng)解碼圖片標記為視頻內(nèi)容的靜態(tài)圖像快照的指示;漸進式改進區(qū)段開始SEI消息,其包含與表示圖片質(zhì)量的漸進式改進而非移動場景的一段連續(xù)圖片的開始相關聯(lián)的信息;漸進式改進區(qū)段結束SEI消息,其包含與所述段連續(xù)圖片的結束相關聯(lián)的信息;膠片顆粒特性SEI消息,其包含與合成膠片顆粒效果相關聯(lián)的信息;后濾波提示SEI消息,其包含與所提議后濾波器系數(shù)相關聯(lián)的信息或用于后濾波器設計的相關信息;色調(diào)映射信息SEI消息,其包含與重新映射到除編碼中使用或采用的顏色空間外的另一顏色空間相關聯(lián)的信息;幀封裝布置SEI消息,其包含與將立體視頻填充到位流中相關聯(lián)的信息;顯示器定向SEI消息,其包含指定在顯示輸出圖片時待應用于輸出圖片的翻轉及/或旋轉的信息;圖片結構信息SEI消息,其包含描述位流的時間及幀間預測結構的信息;時間子層零索引SEI消息,其指示時間子層零索引;經(jīng)解碼圖片具有SEI消息或區(qū)刷新信息SEI消息,其分別指示與當前SEI消息相關聯(lián)的切片段是否屬于當前圖片中的刷新區(qū)。
在payloadType等于0、1、4、5、130及133時,SEI消息分別為以下各者中的一者:緩沖周期SEI消息、圖片定時SEI消息、用戶登記SEI消息、用戶未登記SEI消息、解碼單元信息SEI消息,或可縮放嵌套SEI消息。
根據(jù)本發(fā)明的第六方面,在可縮放嵌套SEI消息含有payloadType等于2、3、6、9、15、16、17、19、22、23、45、47、128、131、132或134的SEI消息(例如,payloadType不等于0、1、4、5、130及133中的任一者的SEI消息中的一者)時,可縮放嵌套SEI消息的語法元素bitstream_subset_flag的值需要等于0。舉例來說,根據(jù)本發(fā)明的方面,視頻編碼器20及/或視頻解碼器30可基于包含于一組預定SEI消息中的SEI消息的有效負載類型而自動地確定及/或譯碼語法元素bitstream_subset_flag。所述組預定SEI消息可為適用于單個層的SEI消息。以此方式,視頻編碼器20及/或視頻解碼器30受約束而不將包含于以上識別組中的SEI消息應用于多層位流中的一個以上層,由此潛在地在多層譯碼期間減少錯誤及/或低效率。
在多層上下文中使用HEVC SEI消息的第七潛在問題為不清楚層識別符值(nuh_layer_id)對于含有非嵌套緩沖周期、圖片定時或解碼單元信息SEI消息的SEI NAL單元應為何值。緩沖周期SEI消息提供用于在解碼次序上處于相關聯(lián)存取單元的位置的HRD的初始化的初始經(jīng)譯碼圖片緩沖器(CPB)移除延遲及初始CPB移除延遲偏移信息。圖片定時SEI消息提供用于HRD操作的圖片輸出時間及圖片/子圖片移除時間,以及圖片結構相關信息。解碼單元信息SEI消息提供用于解碼單元的CPB移除延遲信息。所述消息可用于極低延遲緩沖操作中。因此,以上指出的SEI消息提供HRD所需的信息,且所述SEI消息適用于層集合(例如,也稱為子位流的一組自含式層)。如果此類SEI消息不嵌套且層識別符不為零,那么不清楚所述消息適用于哪些層集合,這可能在多層譯碼期間造成錯誤。
根據(jù)本發(fā)明的第七方面,用于含有非嵌套緩沖周期、圖片定時或解碼單元信息SEI消息的SEI NAL單元的層識別符(nuh_layer_id)的值需要等于0。舉例來說,根據(jù)本發(fā)明的方面,視頻編碼器20及/或視頻解碼器30可基于含有含非嵌套緩沖周期SEI消息、圖片定時SEI消息或解碼單元信息SEI消息的SEI消息的一或多個非VCL NAL單元而自動地確定層的層識別符為零值(及/或譯碼層識別符語法元素的零值)。以此方式,所述技術可在多層譯碼期間潛在地減少錯誤及/或低效率。
在多層上下文中使用HEVC SEI消息的第八潛在問題為不清楚層識別符語法元素(nuh_layer_id)對于payloadType等于2、3、6、9、15、16、17、19、22、23、45、47、128、131、132或134的非嵌套SEI消息(即,payloadType不等于0、1、129、130及133中的任一者的SEI消息中的一者)應為何值。舉例來說,HEVC未清楚地指定對于多層位流的特定層(具有特定層識別符)處置特定SEI消息(具有以上識別的有效負載類型)的方式,這可能在多層譯碼期間造成錯誤及/或低效率。
根據(jù)本發(fā)明的第八方面,在非嵌套SEI消息具有的payloadType等于2、3、6、9、15、16、17、19、22、23、45、47、128、131、132或134(即,payloadType不等于0、1、129、130及133中的任一者的SEI消息中的一者)時,用于含有非嵌套SEI消息的SEI NAL單元的層識別符(nuh_layer_id)的值需要等于與SEI NAL單元相關聯(lián)的VCL NAL單元的層識別符(nuh_layer_id)。即,舉例來說,視頻編碼器20及/或視頻解碼器30可基于包含于第一組有效負載類型(例如,以上識別的有效負載類型)中的SEI有效負載類型自動地確定用于含有所述SEI消息的非VCL NAL單元的層識別符語法元素等于與所述SEI消息相關聯(lián)的VCL NAL單元的層識別符語法元素。
在多層上下文中使用HEVC SEI消息的第九潛在問題為在存取單元的兩個VCL NAL單元之間存在相同類型的前綴SEI消息的情況下,前綴SEI消息需要在HEVC中存在且先于存取單元的第一VCL NAL單元。舉例來說,前綴SEI消息通常包含于SEI消息所適用于的VCL NAL單元之前的位流中。在HEVC中,對前綴SEI消息的放置的限制是基于存取單元,這可能存在存取單元具有多個層分量(例如,存取單元具有來自多個層的圖片)的問題。即,一些前綴SEI消息可能在具有多個層分量的存取單元中不位于適當位置(例如,在SEI消息所適用于的VCL NAL單元之前)。
根據(jù)本發(fā)明的第九方面,視頻編碼器20及/或視頻解碼器30可基于前綴SEI消息所適用于的圖片控制譯碼前綴SEI消息的方式(例如,與以上指出的基于存取單元的技術相比)。舉例來說,根據(jù)本發(fā)明的方面,在存在相同類型的前綴SEI消息且其適用于在圖片的兩個VCL NAL單元之間存在的層(例如,層A)的情況下,適用于含有所述圖片的層(例如,層A)的前綴SEI消息需要存在且先于圖片的第一VCL NAL單元。
舉例來說,對于至少包含第一圖片及第二圖片的存取單元,視頻編碼器20及/或視頻解碼器30可受約束以譯碼含有適用于第一圖片的VCL NAL單元的第一前綴SEI消息的一或多個非VCL NAL單元以及含有適用于在位流中在第一圖片之后的第二圖片的VCL NAL單元的第二前綴SEI消息的一或多個非VCL NAL單元。以此方式,視頻編碼器20及/或視頻解碼器30受約束而不譯碼在存取單元的其它位置中的前綴SEI消息,這可增大效率且減小多層譯碼的存儲開銷。
在多層上下文中使用HEVC SEI消息的第十潛在問題為在HEVC中,在存取單元的兩個VCL NAL單元之間存在相同類型的后綴SEI消息時,后綴SEI消息需要存在且在存取單元的最末VCL NAL單元之后(跟隨)。舉例來說,后綴SEI消息通常包含于SEI消息所適用于的VCL NAL單元之后的位流中。在HEVC中,對后綴SEI消息的放置的限制是基于存取單元,這可能存在存取單元具有多個層分量(例如,具有多層位流的存取單元)的問題。即,一些后綴SEI消息在具有多個層分量的存取單元中可能不位于適當位置(例如,在SEI消息所適用于的VCL NAL單元之后)。
根據(jù)本發(fā)明的第十方面,視頻編碼器20及/或視頻解碼器30可基于后綴SEI消息所適用于的圖片來控制譯碼后綴SEI消息的方式(例如,與以上指出的基于存取單元的技術相比)。舉例來說,根據(jù)本發(fā)明的方面,在存在相同類型的后綴SEI消息且其適用于在圖片的兩個VCL NAL單元之間存在的層(例如,層A)時,適用于含有所述圖片的層(例如,層A)的后綴SEI消息需要存在且在圖片的最末VCL NAL單元之后(跟隨)。
舉例來說,對于至少包含第一圖片及第二圖片的存取單元,視頻編碼器20及/或視頻解碼器30可受約束以譯碼含有適用于第一圖片的VCL NAL單元的第一后綴SEI消息的一或多個非VCL NAL單元以及含有適用于在位流中在第一圖片之后的第二圖片的VCL NAL單元的第二前綴SEI消息的一或多個非VCL NAL單元。以此方式,視頻編碼器20及/或視頻解碼器30受約束而不譯碼在存取單元的其它位置中的后綴SEI消息,這可增大效率且減小多層譯碼的存儲開銷。
在多層上下文中使用HEVC SEI消息的第十一潛在問題為在HEVC中,每存取單元指定準許SEI消息重復的次數(shù)。舉例來說,在一些情況下,在譯碼圖片時,可重復SEI消息。在出于說明目的的實例中,對于具有八個切片(每一切片與其自身的VCL NAL單元相關聯(lián))的圖片,視頻編碼器20及/或視頻解碼器30可針對每一VCL NAL單元重復特定SEI消息。然而,對于SEI消息可重復的次數(shù)的基于存取單元的限制在多層視頻譯碼中可能存在問題,因為具有多個層分量的存取單元可能潛在地比具有單層分量(例如,單個圖片)的存取單元具有多得多的切片。在此實例中,錯誤性能(及/或受SEI消息影響的其它功能)可能會受到不利影響。
根據(jù)本發(fā)明的第十一方面,視頻編碼器20及/或視頻解碼器30可每圖片地指定SEI消息可重復的次數(shù)。在此上下文中,圖片可定義為含有經(jīng)譯碼圖片的VCL NAL單元及與所述VCL NAL單元相關聯(lián)的非VCL NAL單元。因此,根據(jù)本發(fā)明的方面,視頻編碼器20及/或視頻解碼器30可基于含有圖片的VCL NAL單元及圖片的相關聯(lián)非VCL NAL單元的圖片單元而確定SEI消息的最大重復參數(shù)(例如,SEI消息可重復的最大次數(shù))。在一些情況下,所述技術可增大多層譯碼中的容錯性。
在多層上下文中使用HEVC SEI消息的第十二潛在問題為在default_op_flag語法元素等于1,bitstream_subset_flag語法元素等于1,但不存在由用于包含且僅包含層識別符值(nuh_layer_id)處于0到當前SEI NAL單元的nuh_layer_id(包含0及nuh_layer_id)范圍內(nèi)的層的位流的VPS指定的層集合的情況下,可能會產(chǎn)生沖突。舉例來說,等于1的default_op_flag語法元素指定maxTemporalId[0]等于當前SEI NAL單元的nuh_temporal_id_plus1減1,且nestingLayerIdList[0]含有處于0到當前SEI NAL單元的nuh_layer_id(包含0及nuh_layer_id)范圍(以所述值的遞增次序)內(nèi)的所有整數(shù)值。如上文所指出,bitstream_subset_flag語法元素等于1指定含于可縮放嵌套SEI消息中的SEI消息適用于由子位流提取過程產(chǎn)生的一或多個子位流。換句話說,在指示多層位流的默認層集合,但VPS不指定對應于所述默認層集合的特定層集合的情況下,可能會產(chǎn)生沖突。
根據(jù)本發(fā)明的第十二方面,在bitstream_subset_flag語法元素等于1且由VPS指定的層集合皆不包含且僅包含nuh_layer_id值處于0到當前SEI NAL單元的nuh_layer_id(包含0及nuh_layer_id)范圍內(nèi)的層時,default_op_flag語法元素的值需要等于零。舉例來說,視頻編碼器20及/或視頻解碼器30可譯碼多層位流的bitstream_subset_flag語法元素,且基于bitstream_subset_flag等于1且由多層位流的VPS指定的層集合皆不包含處于零到含有SEI消息的非VCL NAL單元的層識別符(包含零及所述識別符)范圍內(nèi)的層識別符,確定多層位流的default_op_flag語法元素的值為零值。在使用default_op_flag語法元素用于多層譯碼時,所述技術可改善容錯性。
在多層上下文中使用HEVC SEI消息的第十三潛在問題為,在nesting_op_flag語法元素等于零且all_layers_flag語法元素等于1時,可變maxTemporalId[0]的值未在HEVC中指定。等于零的nesting_op_flag語法元素指定列表nestingLayerIdList[0]由all_layers_flag語法元素指定,且當存在時,對于處于0到nesting_num_layers_minus1(包含0及nesting_num_layers_minus1)的范圍內(nèi)的所有i值為nesting_layer_id[i],且可變maxTemporalId[0]由nesting_no_op_max_temporal_id_plus1指定。換句話說,在嵌套SEI消息與多層位流的時間子層一起使用時,HEVC不指定適用的子層(例如,如使用maxTemporalId[0]變量識別),這可能會造成不必要的復雜化。
根據(jù)本發(fā)明的第十三方面,在nesting_op_flag語法元素等于零且all_layers_flag語法元素等于1時,視頻編碼器20及視頻解碼器30可自動地譯碼maxTemporalId[0]語法元素以具有值六,其為TemporalId語法元素的最大可能值。即,根據(jù)本發(fā)明的方面,視頻編碼器20及/或視頻解碼器30可經(jīng)配置以將SEI消息應用于包含于視頻數(shù)據(jù)層中的所有子層,而不管所包含的子層的數(shù)目。以此方式,所述技術可減小與多層譯碼相關聯(lián)的復雜度。
在多層上下文中使用HEVC SEI消息的第十四潛在問題為,在嵌套SEI消息具有的payloadType等于2、3、6、9、15、16、17、19、22、23、45、47、128、131、132或134(例如,payloadType不等于0、1、4、5、130及133中的任一者的SEI消息中的一者)且SEI消息適用于一組層時,所述組層可與小于位流中TemporalId的最大值的maxTemporalId[i]的值相關聯(lián)。然而,這些SEI消息的語義在描述時不考慮子層,且因此在以上情境發(fā)生時與可縮放嵌套SEI消息的語義不一致。此不一致可能會不必要地增大多層譯碼的復雜度。
根據(jù)本發(fā)明的第十四方面,在嵌套SEI消息具有的payloadType等于2、3、6、9、15、16、17、19、22、23、45、47、128、131、132或134(例如,payloadType不等于0、1、4、5、130及133中的任一者的SEI消息中的一者)時,含有可縮放嵌套SEI消息的SEI NAL單元需要具有等于零的TemporalId語法元素及對于所有i皆等于六(其為TemporalId語法元素的最大可能值)的maxTemporalId[i]語法元素。舉例來說,視頻編碼器20及/或視頻解碼器30可經(jīng)配置以基于具有一組預定有效負載類型(例如,以上識別的類型)中的有效負載類型的SEI消息而自動地確定TemporalId語法元素的值等于零且maxTemporalId[i]語法元素對于所有i等于六。以此方式,所述技術可減小與多層譯碼相關聯(lián)的復雜度。
在多層上下文中使用HEVC SEI消息的第十五潛在問題為,在bitstream_subset_flag語法元素等于1且nesting_op_flag語法元素等于零時,HEVC標準準許nestingLayeridList[0]語法元素對應于并非由用于多層位流的VPS指定的層集合。
根據(jù)本發(fā)明的第十五方面,在bitstream_subset_flag語法元素等于1且nesting_op_flag語法元素等于零時,視頻編碼器20及/或視頻解碼器30可經(jīng)配置以譯碼nestingLayeridList[0]語法元素以包含且僅包含由VPS指定的層集合中的一者的nuh_layer_id值。舉例來說,視頻編碼器20及/或視頻解碼器30可經(jīng)配置以譯碼多層位流的bitstream_subset_flag語法元素及多層位流的nesting_op_flag語法元素,且基于bitstream_subset_flag語法元素具有值一且nesting_op_flag語法元素具有值零,確定多層位流的nestingLayeridList[0]僅包含在多層位流的VPS中指定的層集合的層識別符值。以此方式,所述技術可減小與多層譯碼相關聯(lián)的復雜度。
上文所描述的技術可獨立地應用或組合應用。在下文闡述根據(jù)本發(fā)明的詳細實例。下文中,相對于以上指出的用于上文所描述的技術中的一些的SHVC標準的文本改變使用下劃線指示以識別所插入材料,且使用雙方括號([[移除:]])來指示刪除的材料:
如下在條款3中改變以下定義:
3.X存取單元:一組NAL單元,其根據(jù)指定的分類規(guī)則彼此相關聯(lián),在解碼次序上連續(xù),且含有與相同輸出時間相關聯(lián)的所有經(jīng)譯碼圖片的VCL NAL單元及其相關聯(lián)非VCL NAL單元。
注釋-相同存取單元中的圖片與相同圖片次序計數(shù)相關聯(lián)。
向條款3添加以下定義:
3.X基礎位流分區(qū):自身也是相符位流的位流分區(qū)。
3.X位流分區(qū):位序列,呈NAL單元流或字節(jié)流形式,其為根據(jù)分割的位流子集
3.X輸出層:輸出層集合的層,其是在TargetOptLayerSetIdx等于輸出層集合的索引時輸出。
3.X輸出層集合:由指定層集合中的一者的層組成的一組層,其中所述組層中的一或多個層指示為輸出層。
3.X輸出操作點:通過以另一位流、目標最高TemporalId及目標層識別符列表作為輸入的子位流提取過程操作而從另一位流產(chǎn)生的位流,且其與一組目標輸出層相關聯(lián)。
3.X圖片單元:一組NAL單元,其根據(jù)指定的分類規(guī)則彼此相關聯(lián),在解碼次序上連續(xù),且含有經(jīng)譯碼圖片的VCL NAL單元及其相關聯(lián)非VCL NAL單元。
3.X目標輸出層:待輸出的層,其為具有索引olsIdx的輸出層集合中的輸出層中的一者,使得TargetOptLayerSetIdx等于olsIdx。
3.X目標輸出層集合:與變量TargetOptLayerSetIdx相關聯(lián)的輸出層集合,其指定在使用中的輸出操作點的層識別符列表及一組目標輸出層。
[[移除:3.X操作點:通過以另一位流、目標最高TemporalId及目標層識別符列表作為輸入的子位流提取過程操作而從另一位流產(chǎn)生的位流,且其與一組目標輸出層相關聯(lián)。注釋14-如果操作點的目標最高TemporalId等于與目標層識別列表相關聯(lián)的層集合中的TemporalId的最大值,那么操作點與層集合相同。否則,其為層集合的子集。]]
C.1總論
此附錄指定假想?yún)⒖冀獯a器(HRD)及其檢查位流及解碼器一致性的用途。
...
可能需要多個測試來檢查稱為受測試位流的位流的一致性。對于每一測試,以所列次序應用以下步驟:
1.通過選擇由TargetOutputLayerSetIdx識別的目標輸出層集合及選擇目標最高TemporalId值HighestTid而選擇表示為TargetOp的受測試輸出操作點。TargetOutputLayerSetIdx的值將在0到NumOutputLayerSets-1(包含0及NumOutputLayerSets-1)的范圍內(nèi)。HighestTid的值應處于0到vps_max_sub_layers_minus1(包含0及vps_max_sub_layers_minus1)的范圍內(nèi)。接著如由方程式8-1所指定而導出變量TargetDecLayerSetIdx、TargetOptLayerIdList及TargetDecLayerIdList。受測試輸出操作點具有等于TargetOptLayerIdList的OptLayerIdList、等于TargetDecLayerIdList的OpLayerIdList及等于HighestTid的OpTid。
...
對于每一受測試輸出操作點,在測試位流特定CPB操作時,待執(zhí)行的位流一致性測試的數(shù)目等于n0*n1*(n2*2+n3)*n4,其中n0、n1、n2、n3及n4的值如下指定:
...
子條款D.3.1修改如下:
以下為位流一致性要求:在payloadType等于17(漸進式改進區(qū)段結束)或22(后濾波器提示)的前綴SEI消息存在于存取單元中時,具有相同payloadType值的后綴SEI消息不應存在于相同存取單元中。
[[移除:假設SEI NAL單元或SEI消息的prevVclNalUnitInAu為在相同存取單元中在解碼次序上在先的VCL NAL單元(如果存在),且假設SEI NAL單元或SEI消息的nextVclNalUnitInAu為在相同存取單元中在解碼次序上的下一VCL NAL單元(如果存在)。]]
以下為位流一致性的要求:關于在SEI NAL單元中含有SEI消息,適用以下限制:
-含有作用中參數(shù)集SEI消息的SEI NAL單元將含有僅一個作用中參數(shù)集SEI消息且將不含有任何其它SEI消息。
[[移除:當含有作用中參數(shù)集SEI消息的SEI NAL單元存在于存取單元中時,其將為跟隨所述SEI NAL單元的prevVclNalUnitInAu且在所述SEI NAL單元的nextVclNalUnitInAu前面的第一SEI NAL單元。]]
-當SEI NAL單元含有非嵌套緩沖周期SEI消息、非嵌套圖片定時SEI消息或非嵌套解碼單元信息SEI消息時,所述SEI NAL單元將不含有具有不等于0(緩沖周期)、1(圖片定時)或130(解碼單元信息)的payloadType的任何其它SEI消息。
-當SEI NAL單元含有嵌套緩沖周期SEI消息、嵌套圖片定時SEI消息或嵌套解碼單元信息SEI消息時,所述SEI NAL單元將不含有具有不等于0(緩沖周期)、1(圖片定時)、130(解碼單元信息)或133(可縮放嵌套)的payloadType的任何其它SEI消息。
假設SEI NAL單元或SEI消息的prevVclNalUnitInAu為在相同存取單元中在解碼次序上在先的VCL NAL單元(如果存在),且假設SEI NAL單元或SEI消息的nextVclNalUnitInAu為在相同存取單元中在解碼次序上的下一VCL NAL單元(如果存在)。這是以下限制適用的位流一致性的要求:
這是以下限制在SEI消息的次序上適用的位流一致性的要求:
-當含有作用中參數(shù)集SEI消息的SEI NAL單元存在于存取單元中時,其將為跟隨所述SEI NAL單元的prevVclNalUnitInAu且在所述SEI NAL單元的nextVclNalUnitInAu前面的第一SEI NAL單元。
-當非嵌套緩沖周期SEI消息存在于存取單元中時,其將不跟隨跟隨所述緩沖周期SEI消息的prevVclNalUnitInAu且在所述緩沖周期SEI消息的nextVclNalUnitInAu前面的任何其它SEI消息,作用中參數(shù)集SEI消息除外。
-當非嵌套圖片定時SEI消息存在于存取單元中時,其將不跟隨跟隨所述圖片定時SEI消息的prevVclNalUnitInAu且在所述圖片定時SEI消息的nextVclNalUnitInAu前面的任何其它SEI消息,作用中參數(shù)集SEI消息或非嵌套緩沖周期SEI消息除外。
-當非嵌套解碼單元信息SEI消息存在于存取單元中時,其將不跟隨同一存取單元中跟隨所述解碼單元信息SEI消息的prevVclNalUnitInAu且在所述解碼單元信息SEI消息的nextVclNalUnitInAu前面的任何其它SEI消息,作用中參數(shù)集SEI消息、非嵌套緩沖周期SEI消息或非嵌套圖片定時SEI消息除外。
-當嵌套緩沖周期SEI消息、嵌套圖片定時SEI消息或嵌套解碼單元信息SEI消息包含于存取單元中的可縮放嵌套SEI消息中時,所述可縮放嵌套SEI消息將不跟隨跟隨所述可縮放嵌套SEI消息的prevVclNalUnitInAu且在所述可縮放嵌套SEI消息的nextVclNalUnitInAu前面的任何其它SEI消息,作用中參數(shù)集SEI消息、非嵌套緩沖周期SEI消息、非嵌套圖片定時SEI消息、非嵌套解碼單元信息SEI消息或者含有緩沖周期SEI消息、圖片定時SEI消息或解碼單元信息SEI消息的另一可縮放嵌套SEI消息除外。
-當對于存取單元內(nèi)的嵌套或非嵌套SEI消息來說payloadType等于0(緩沖周期)、1(圖片定時)或130(解碼單元信息)時,含有所述SEI消息的SEI NAL單元將在具有大于highestAppLayerId的nuh_layer_id的任何圖片單元的所有NAL單元前面,其中highestAppLayerId是在所述SEI消息適用于的所有操作點中的所有層的nuh_layer_id的最大值。
-當對于存取單元內(nèi)的嵌套或非嵌套SEI消息來說payloadType等于2、3、6、9、15、16、17、19、22、23、45、47、128、131、132或134(即,具有不等于0、1、4、5、130和133中的任一者的payloadType的SEI消息中的一者)時,含有SEI消息的SEI NAL單元將在具有大于highestAppLayerId的nuh_layer_id的任何圖片單元的全部NAL單元前面,其中highestAppLayerId是所述SEI消息適用的所有層的nuh_layer_id的最大值。
[[移除:對于非嵌套SEI消息,取決于payloadType的值t]]以下適用于SEI消息的適用的操作點或層:
-對于非嵌套SEI消息,當[[移除:如果]]payloadType等于0(緩沖周期)、1(圖片定時)或130(解碼單元信息)時,所述非嵌套SEI消息適用于具有等于位流中的所有VCL NAL單元當中的nuh_temporal_id_plus1的最大值的OpTid且具有含有位流中的所有VCL單元中的nuh_layer_id的所有值的OpLayerIdList的操作點。
-對于非嵌套SEI消息,[[移除:否則,]]當payloadType等于2、3、6、9、15、16、17、19、22、23、45、47、128、131、132或134(即,具有不等于0、1、4、5[[移除:或]]130和133中的任一者的payloadType[[移除:且被允許為嵌套SEI消息]]的SEI消息中的一者)時,所述非嵌套SEI消息適用于VCL NAL單元具有等于含有所述SEI消息的SEI NAL單元的nuh_layer_id的nuh_layer_id的層。
-無法嵌套的作用中參數(shù)集SEI消息適用于位流中的所有層。
-當對于嵌套或非嵌套的圖片定時信息SEI消息來說frame_field_info_present_flag等于1時,語法元素pic_struct、source_scan_type和duplicate_flag中攜帶的幀字段信息適用于所述圖片定時SEI消息適用于的所有操作點中的所有層。
這是以下限制在SEI消息的嵌套上適用的位流一致性的要求:
-具有等于129(作用中參數(shù)集)、132(經(jīng)解碼圖片哈希)和133(可縮放嵌套[[移除:)SEI消息]]的payloadType的SEI消息將不嵌套于可縮放嵌套SEI消息中。
-當可縮放嵌套SEI消息含有緩沖周期SEI消息、圖片定時SEI消息或解碼單元信息SEI消息時,所述可縮放嵌套SEI消息將不含有具有不等于0(緩沖周期)、1(圖片定時)或130(解碼單元信息)的payloadType的任何其它SEI消息。
-當可縮放嵌套SEI消息含有緩沖周期SEI消息、圖片定時SEI消息或解碼單元信息SEI消息時,所述可縮放嵌套SEI消息的bitstream_subset_flag的值將等于1。
-當可縮放嵌套SEI消息含有具有等于2、3、6、9、15、16、17、19、22、23、45、47、128、131、132或134的payloadType的SEI消息(即,具有不等于0、1、4、5、130和133中的任一者的payloadType的SEI消息中的一者)時,所述可縮放嵌套SEI消息的bitstream_subset_flag的值將等于0。
這是以下限制在SEI NAL單元的nuh_layer_id和TemporalId的值上適用的位流一致性的要求:
-當非嵌套SEI消息具有等于2、3、6、9、15、16、17、19、22、23、45、47、128、131、132或134的payloadType(即,具有不等于0、1、4、5、129[[移除:或]]130和133中的任一者的payloadType的SEI消息中的一者[[移除:被允許作為嵌套SEI消息]])時,含有所述非嵌套SEI消息的SEI NAL單元將具有等于含有所述SEI NAL單元的存取單元的TemporalId的TemporalId。
-當非嵌套SEI消息具有等于0、1、129或130的payloadType時,含有所述非嵌套SEI消息的SEI NAL單元將具有等于0的nuh_layer_id。
-當非嵌套SEI消息具有等于2、3、6、9、15、16、17、19、22、23、45、47、128、131、132或134的payloadType(即,具有不等于0、1、129、130和133中的任一者的payloadType的SEI消息中的一者)時,含有所述非嵌套SEI消息的SEI NAL單元將具有等于與所述SEI NAL單元的相關聯(lián)VCL NAL單元的nuh_layer_id的nuh_layer_id。
注釋4-對于含有可縮放嵌套SEI消息的SEI NAL單元,TemporalId和nuh_layer_id的值應分別設定成等于所述嵌套SEI消息適用于的所有子層或操作點的TemporalId和nuh_layer_id的最低值。
這是以下限制在[[移除:存取單元]]圖片的兩個VCL NAL單元之間的SEI消息的存在上適用的位流一致性的要求:
-當存在具有等于0、1、2、3、6、9、15、16、17、19、22、23、45、47、128、129或131的payloadType的前綴SEI消息(即,并非由Rec.ITU-T T.35SEI消息登記的用戶數(shù)據(jù)的前綴SEI消息、用戶數(shù)據(jù)未登記的SEI消息、解碼單元信息SEI消息、可縮放嵌套SEI消息或區(qū)刷新信息SEI消息中的一者)且適用于按解碼次序在[[移除:存取單元]]圖片的兩個VCL NAL單元之間存在的層layerA的圖片時,將存在具有同一類型且適用于在[[移除:存取單元]]圖片的第一VCL NAL單元先前存在于同一存取單元中的層layerA的前綴SEI消息。
-當存在具有等于3(填充符有效負載)、17(漸進精煉片段末尾)、22(后濾波器暗示)或132(經(jīng)解碼圖片哈希)的payloadType且適用于按解碼次序在[[移除:存取單元]]圖片的兩個VCL NAL單元之間存在的層layerA的圖片的后綴SEI消息時,將存在具有同一類型且適用于在[[移除:存取單元]]圖片的最后VCL NAL單元之后存在于同一存取單元中的層layerA的后綴SEI消息。
這是以下限制在SEI消息的重復上適用的位流一致性的要求:
-對于以下payloadType值中的每一者,[[移除:存取單元]]圖片單元內(nèi)將存在小于或等于8個相同的sei_payload()語法結構:0、1、2、6、9、15、16、17、19、22、23、45、47、128、129、131、132和133。
-解碼單元內(nèi)將存在具有等于130的payloadType的小于或等于8個相同的sei_payload()語法結構。
-[[移除:存取單元]]圖片單元中具有等于134的payloadType的相同sei_payload()語法結構的數(shù)目將小于或等于[[移除:存取單元]]圖片單元中的切片片段的數(shù)目。
子條款D.3.23修改如下:
可縮放嵌套SEI消息提供將SEI消息與對應于各種操作點的位流子集或與特定層或子層相關聯(lián)的機制。
可縮放嵌套SEI消息含有一或多個SEI消息。
bitstream_subset_flag等于0指定可縮放嵌套SEI消息中含有的SEI消息適用于特定層或子層。bitstream_subset_flag等于1指定可縮放嵌套SEI消息中含有的SEI消息適用于由子位流提取過程產(chǎn)生的一或多個子位流,如條款10中所指定,其中輸入基于如下文指定的可縮放嵌套SEI消息的語法元素。
[[移除:在可縮放嵌套SEI消息中含有緩沖周期SEI消息、圖片時序SEI消息或解碼單元信息SEI消息時,bitstream_subset_flag應等于1。]]
取決于bitstream_subset_flag的值,層或子層或可縮放嵌套SEI消息中含有的SEI消息所適用于的操作點通過基于如下文指定的語法元素值導出列表nestingLayedIdList[i]和變量maxTemporalId[i]來指定。
nesting_op_flag等于0指定列表nestingLayerIdList[0]由all_layers_flag及(當存在時)nesting_layer_id[i](其中所有i值處于0到nesting_num_layers_minus1的范圍內(nèi),包含0及nesting_num_layers_minus1)指定,且變量maxTemporalId[0]由nesting_no_op_max_temporal_id_plus1指定。nesting_op_flag等于1指定列表nestingLayerIdList[i]和變量maxTemporalId[i]由nesting_num_ops_minus1、default_op_flag、nesting_max_temporal_id_plus1[i](當存在時)及nesting_op_idx[i](當存在時)指定。
default_op_flag等于1指定maxTemporalId[0]等于當前SEI NAL單元的nuh_temporal_id_plus1減1,且nestingLayerIdList[0]含有處于0到當前SEI NAL單元的nuh_layer_id(包含0及nuh_layer_id)范圍(以所述值的遞增次序)內(nèi)的所有整數(shù)值。
在bitstream_subset_flag等于1且由VPS指定的層集合中無一者包含及僅包含具有處于0到當前SEI NAL單元的nuh_layer_id(包含0及nuh_layer_id)范圍內(nèi)的nuh_layer_id值的層時,default_op_flag的值應等于0。
nesting_num_ops_minus1加1減default_op_flag指定以下nesting_op_idx[i]語法元素的數(shù)目。nesting_num_ops_minus1的值應處于0到1023(包含0及1023)的范圍內(nèi)。
如果nesting_op_flag等于0,那么將變量nestingNumOps設定成等于1。否則,將變量nestingNumOps設定成等于nesting_num_ops_minus1+1。
nesting_max_temporal_id_plus1[i]用以指定變量maxTemporalId[i]。nesting_max_temporal_id_plus1[i]的值應大于或等于當前SEI NAL單元的nuh_temporal_id_plus1。將變量maxTemporalId[i]設定成等于nesting_max_temporal_id_plus1[i]-1。
nesting_op_idx[i]用以指定列表nestingLayerIdList[i]。nesting_op_idx[i]的值應處于0到1023(包含0及1023)的范圍內(nèi)。
將列表nestingLayerIdList[i]設定成等于由作用中VPS指定的第nesting_op_idx[i]層集合的OpLayerIdList。
all_layers_flag等于0指定由nesting_layer_id[i]指定列表nestingLayerIdList[0],其中所有i值處于0到nesting_num_layers_minus1(包含0及nesting_num_layers_minus1)的范圍內(nèi)。all_layers_flag等于1指定列表nestingLayerIdList[0]由存在于當前存取單元中的大于或等于當前SEI NAL單元的nuh_layer_id的nuh_layer_id的所有值(以所述值的遞增次序)組成。
注釋:在含有可縮放嵌套SEI消息的SEI NAL單元的nuh_layer_id大于0時,bitstream_subset_flag及all_layers_flag無法皆等于1,因為在此情況下,嵌套SEI消息的可適用操作點將不包含基礎層,且因此對應于可適用操作點的子位流將為非相符位流。
在nesting_op_flag等于0及all_layers_flag等于1時,將maxTemporalId[0]設定成等于6。
在nesting_op_flag等于0且all_layers_flag等于0時,nesting_no_op_max_temporal_id_plus1減1指定maxTemporalId[0]的值。nesting_no_op_max_temporal_id_plus1的值不應等于0。
nesting_num_layers_minus1加1指定以下nesting_layer_id[i]語法元素的數(shù)目。nesting_num_layers_minus1的值應處于0到63(包含0及63)的范圍內(nèi)。
nesting_layer_id[i]指定列表nestingLayerIdList[0]中所包含的第i nuh_layer_id值。
對于處于0到nesting_num_layers_minus1(包含0及nesting_num_layers_minus1)范圍內(nèi)的任何i及j(其中i小于j),nesting_layer_id[i]應小于nesting_layer_id[j]。
將列表nestingLayerIdList[0]設定為由nesting_layer_id[i]組成,其中所有i值處于0到nesting_num_layers_minus1(包含0及nesting_num_layers_minus1)的范圍(以i值的遞增次序)內(nèi)。
在bitstream_subset_flag等于0時,以下適用:
-可縮放嵌套SEI消息中含有的SEI消息適用于層或子層的集合subLayerSet[i],其中所有i值處于0到nestingNumOps-1(包含0及nestingNumOps-1)的范圍內(nèi),其中每一集合subLayerSet[i]中的層或子層的VCL NAL單元具有列表nestingLayerIdListSet[i]中所包含的nuh_layer_id值及處于當前SEI NAL單元的TemporalId到maxTemporalId[i](包含TemporalId及maxTemporalId[i])的范圍內(nèi)的TemporalId值。
-在嵌套SEI消息具有等于2、3、6、9、15、16、17、19、22、23、45、47、128、131、132或134的payloadType(即payloadType不等于0、1、4、5、130及133中的任一者的SEI消息中的一者)時,含有可縮放嵌套SEI消息的SEI NAL單元的nuh_layer_id應具有等于0的TemporalId及maxTemporalId[i],其中所有i應等于6。
-在嵌套式SEI消息具有等于2、3、6、9、15、16、17、19、22、23、45、47、128、131、132或134的payloadType(即payloadType不等于0、1、4、5、130及133中的任一者的SEI消息中的一者)且nestingNumOps的值大于0時,嵌套SEI消息適用于所有層,其中每一nuh_layer_id包含于列表nestingLayerIdList[i]中的至少一者中,其中i的范圍為0到nestingNumOps-1(包含0及nestingNumOps-1)。
在bitstream_subset_flag等于1時,可縮放嵌套SEI消息中含有的SEI消息適用于對應于子位流subBitstream[i]的操作點,其中所有i值處于0到nestingNumOps-1(包含0及nestingNumOps-1)的范圍內(nèi),其中每一子位流subBitstream[i]為條款10的子位流提取過程的輸出,其中位流maxTemporalId[i]及nestingLayerIdList[i]作為輸入。
在bitstream_subset_flag等于1且nesting_op_flag等于0時,nestingLayeridList[0]應包含且僅包含由VPS指定的層集合中的一者的nuh_layer_id值。
nesting_zero_bit應等于0。
F.3定義
為了達到此附錄的目的,除了條款3中的定義之外,以下定義也適用。這些定義不存在于條款3中或替換條款3中的定義。
[[移除:
F.3.1存取單元:一組NAL單元,其根據(jù)指定的分類規(guī)則彼此相關聯(lián),在解碼次序上連續(xù),且含有與相同輸出時間相關聯(lián)的所有經(jīng)譯碼圖片的VCL NAL單元及其相關聯(lián)非VCL NAL單元。
F.3.2注釋1-相同存取單元中的圖片與相同圖片次序計數(shù)相關聯(lián)。]]
F.3.1替代輸出層:為直接參考層或輸出層的間接參考層且可包含可在含有圖片的存取單元中不存在輸出層的圖片時輸出的圖片的層。
F.7.4.3.1視頻參數(shù)集RBSP語義
子條款7.4.3.1中的規(guī)范適用于以下修改及添加項:
-layerSetLayerIdList被LayerSetLayerIdList替換。
-numLayersInIdList被NumLayersInIdList替換。
-用“每一操作點由表示為OpLayerIdList的相關聯(lián)的層識別符列表識別,所述OpLayerIdList由操作點中所包含的所有NAL單元的nuh_layer_id值的列表(以nuh_layer_id值的遞增次序)及等于操作點中所包含的所有NAL單元的最高TemporalId的變量OpTid組成。每一輸出操作點與操作點相關聯(lián),且由將以nuh_layer_id值的遞增次序輸出的所有圖片的nuh_layer_id值的列表(表示為OptLayerIdList)及相關聯(lián)的操作點的[[移除:變量]]OpTid識別。與輸出操作點相關聯(lián)的操作點的OpLayerIdList也被稱作輸出操作點的OpLayerIdList[[移除:其等于操作點中所包含的所有NAL單元的最高TemporalId。與列表OptLayerIdList相關聯(lián)的表示為OpLayerIdList的層識別符列表由操作點中所包含的所有NAL單元的nuh_layer_id值的列表(以nuh_layer_id值的遞增次序)組成。]]”來替換“每一操作點由表示為OpLayerIdList的相關聯(lián)的層識別符列表識別,所述OpLayerIdList由操作點中所包含的所有NAL單元的nuh_layer_id值的列表(以nuh_layer_id值的遞增次序)及等于操作點中所包含的所有NAL單元的最高TemporalId的變量OpTid組成?!?/p>
圖2是說明可實施本發(fā)明中描述的技術的實例視頻編碼器20的框圖。圖2是出于解釋的目的而提供,且不應被視為將技術限制為本發(fā)明中所大致例示和描述的技術。出于解釋的目的,本發(fā)明描述在HEVC譯碼的上下文中的視頻編碼器20。然而,本發(fā)明的技術可適用于其它譯碼標準或方法。
視頻編碼器20可經(jīng)配置以將視頻輸出到后處理實體27,所述后處理實體是可實施本發(fā)明中描述的技術的另一實例裝置。后處理實體27既定表示視頻實體的實例,例如媒體感知網(wǎng)絡元件(MANE)、拼接/編輯裝置或可處理來自視頻編碼器20的經(jīng)編碼視頻數(shù)據(jù)的另一中間裝置。在一些情況下,后處理實體27可為網(wǎng)絡實體的實例。在一些視頻編碼系統(tǒng)中,后處理實體27及視頻編碼器20可為單獨裝置的各部分,而在其它情況下,關于后處理實體27所描述的功能性可由包括視頻編碼器20的相同裝置執(zhí)行。
視頻編碼器20可執(zhí)行視頻切片內(nèi)的視頻塊的幀內(nèi)及幀間譯碼。幀內(nèi)譯碼依賴于空間預測來減少或去除給定視頻幀或圖片內(nèi)的視頻中的空間冗余。幀間譯碼依靠時間預測來減少或去除視頻序列的鄰近幀或圖片內(nèi)的視頻中的時間冗余。幀內(nèi)模式(I模式)可指若干基于空間壓縮模式中的任一者。例如單向預測(P模式)或雙向預測(B模式)的幀間模式可指代若干基于時間的壓縮模式中的任一者。
在圖2的實例中,視頻編碼器20包含分割單元35、預測處理單元41、濾波器單元63、參考圖片存儲器64、求和器50、變換處理單元52、量化單元54,及熵編碼單元56。預測單元41包含運動估計單元42、運動補償單元44和幀內(nèi)預測處理單元46。為了視頻塊重構,視頻編碼器20還包含反量化單元58、反變換處理單元60,及求和器62。濾波器單元63既定表示一或多個環(huán)路濾波器,例如解塊濾波器、自適應環(huán)路濾波器(ALF)及樣本自適應偏移(SAO)濾波器。盡管在圖2中將濾波器單元63示出為環(huán)路內(nèi)濾波器,但在其它配置中,可將濾波器單元63實施為環(huán)路后濾波器。
如圖2中所展示,視頻編碼器20接收視頻數(shù)據(jù),且分割單元35將數(shù)據(jù)分割成視頻塊。此分割還可包含分割成切片、拼片或其它較大單元,以及例如根據(jù)LCU及CU的四叉樹結構的視頻塊分割。視頻編碼器20一般說明編碼待編碼的視頻切片內(nèi)的視頻塊的組件。所述切片可分成多個視頻塊(并且可能分成被稱作單元片的視頻塊集合)。預測處理單元41可基于誤差結果(例如,譯碼速率及失真層級)針對當前視頻塊選擇多種可能譯碼模式中的一者,例如多種幀內(nèi)譯碼模式中的一者或多種幀間譯碼模式中的一者。預測處理單元41可將所得經(jīng)幀內(nèi)或幀間譯碼塊提供到求和器50以產(chǎn)生殘余塊數(shù)據(jù),并提供到求和器62以重構經(jīng)編碼塊以用作參考圖片。
預測處理單元41內(nèi)的幀內(nèi)預測處理單元46可相對于與待譯碼的當前塊在相同幀或切片中的一或多個相鄰塊執(zhí)行當前視頻塊的幀內(nèi)預測性譯碼,以提供空間壓縮。預測處理單元41內(nèi)的運動估計單元42及運動補償單元44相對于一或多個參考圖片中的一或多個預測塊執(zhí)行當前視頻塊的幀間預測性譯碼以提供時間壓縮。
運動估計單元42可經(jīng)配置以根據(jù)用于視頻序列的預定模式來確定用于視頻切片的幀間預測模式。預定模式可將序列中的視頻切片指明為P切片或B切片。運動估計單元42及運動補償單元44可高度集成,但出于概念的目的分別加以說明。由運動估計單元42執(zhí)行的運動估計是產(chǎn)生估計視頻塊的運動的運動向量的過程。舉例來說,運動向量可指示當前視頻幀或圖片內(nèi)的視頻塊的PU相對于參考圖片內(nèi)的預測塊的移位。
預測塊是被發(fā)現(xiàn)在像素差方面與待譯碼視頻塊的PU密切匹配的塊,所述像素差可通過絕對差總和(SAD)、平方差總和(SSD)或其它差異度量來確定。在一些實例中,視頻編碼器20可計算存儲于參考圖片存儲器64中的參考圖片的次整數(shù)像素位置的值。舉例來說,視頻編碼器20可內(nèi)插參考圖片的四分之一像素位置、八分之一像素位置或其它分數(shù)像素位置的值。因此,運動估計單元42可相對于全像素位置及分數(shù)像素位置執(zhí)行運動搜索并且輸出具有分數(shù)像素精確度的運動向量。
運動估計單元42通過比較PU的位置與參考圖片的預測性塊的位置來計算用于經(jīng)幀間譯碼切片中的視頻塊的PU的運動向量。參考圖片可選自第一參考圖片列表(列表0)或第二參考圖片列表(列表1),其中的每一個識別存儲在參考幀存儲器64中的一或多個參考圖片。運動估計單元42向熵編碼單元56及運動補償單元44發(fā)送計算出的運動向量。
通過運動補償單元44執(zhí)行的運動補償可涉及基于通過運動估計(可能執(zhí)行對子像素精確度的內(nèi)插)確定的運動向量獲取或產(chǎn)生預測性塊。在接收到當前視頻塊的PU的運動向量后,運動補償單元44可在參考圖片列表中的一者中定位所述運動向量指向的預測塊。視頻編碼器20通過從正被譯碼的當前視頻塊的像素值減去預測性塊的像素值來形成殘余視頻塊,從而形成像素差值。像素差值形成用于所述塊的殘余數(shù)據(jù),且可包含明度及色度差分量兩者。求和器50表示執(zhí)行此減法運算的一或多個組件。運動補償單元44還可產(chǎn)生與視頻塊及視頻切片相關聯(lián)的語法元素以供視頻解碼器30在對視頻切片的視頻塊解碼時使用。
作為如上文所描述由運動估計單元42和運動補償單元44執(zhí)行的幀間預測的替代方案,幀內(nèi)預測單元46可對當前塊進行幀內(nèi)預測。明確地說,幀內(nèi)預測處理單元46可確定用以編碼當前塊的幀內(nèi)預測模式。在一些實例中,幀內(nèi)預測處理單元46可(例如)在單獨編碼編次期間使用各種幀內(nèi)預測模式編碼當前塊,且?guī)瑑?nèi)預測處理單元46(或在一些實例中為模式選擇單元40)可從測試模式中選擇適當幀內(nèi)預測模式來使用。例如,幀內(nèi)預測處理單元46可使用速率-失真分析計算各種經(jīng)測試幀內(nèi)預測模式的速率-失真值,并在所述經(jīng)測試模式當中選擇具有最佳速率-失真特性的幀內(nèi)預測模式。速率-失真分析一般確定經(jīng)編碼塊與經(jīng)編碼以產(chǎn)生所述經(jīng)編碼塊的原始的未經(jīng)編碼塊之間的失真(或誤差)的量,以及用于產(chǎn)生經(jīng)編碼塊的位速率(即,位數(shù)目)。幀內(nèi)預測處理單元46可根據(jù)用于各種經(jīng)編碼塊的失真及速率來計算比率,以確定哪個幀內(nèi)預測模式對于所述塊展現(xiàn)最佳速率-失真值。
在任何情況下,在選擇了用于塊的幀內(nèi)預測模式之后,幀內(nèi)預測處理單元46可將指示用于所述塊的選定幀內(nèi)預測模式的信息提供到熵編碼單元56。熵編碼單元56可根據(jù)本發(fā)明的技術對指示所述選定幀內(nèi)預測模式的信息進行編碼。視頻編碼器20在所發(fā)射的位流中可包含配置數(shù)據(jù),其可包含多個幀內(nèi)預測模式索引表及多個經(jīng)修改的幀內(nèi)預測模式索引表(也稱為碼字映射表),對用于各種塊的編碼上下文的定義,以及對最可能幀內(nèi)預測模式、幀內(nèi)預測模式索引表及經(jīng)修改的幀內(nèi)預測模式索引表的指示以用于所述上下文中的每一者。
在預測處理單元41經(jīng)由幀間預測或幀內(nèi)預測產(chǎn)生當前視頻塊的預測性塊之后,視頻編碼器20通過從當前視頻塊減去預測性塊來形成殘差視頻塊。殘差塊中的殘差視頻數(shù)據(jù)可包含在一或多個TU中且應用到變換處理單元52。變換處理單元52使用例如離散余弦變換(DCT)或概念上類似的變換等變換將殘差視頻數(shù)據(jù)變換成殘差變換系數(shù)。變換處理單元52可將殘差視頻數(shù)據(jù)從像素域轉換到變換域,例如頻域。
變換處理單元52可將所得變換系數(shù)發(fā)送到量化單元54。量化單元54量化所述變換系數(shù)以進一步減小位速率。量化過程可減少與系數(shù)中的一些或全部相關聯(lián)的位深度??赏ㄟ^調(diào)節(jié)量化參數(shù)來修改量化的程度。在一些實例中,量化單元54可接著執(zhí)行對包含經(jīng)量化的變換系數(shù)的矩陣的掃描。替代地,熵編碼單元56可執(zhí)行掃描。
在量化之后,熵編碼單元56對經(jīng)量化變換系數(shù)進行熵編碼。舉例來說,熵編碼單元56可執(zhí)行上下文自適應可變長度譯碼(CAVLC)、上下文自適應二進制算術譯碼(CABAC)、基于語法的上下文自適應二進制算術譯碼(SBAC)、概率區(qū)間分割熵(PIPE)譯碼或另一熵譯碼方法或技術。在由熵編碼單元56熵編碼之后,經(jīng)編碼位流可發(fā)射到視頻解碼器30,或經(jīng)存檔以供稍后發(fā)射或由視頻解碼器30檢索。熵編碼單元56還可對正譯碼的當前視頻切片的運動向量及其它語法元素進行熵編碼。
反量化單元58和反變換處理單元60分別應用反量化和反變換以在像素域中重構殘余塊,以供稍后用作參考圖片的參考塊。運動補償單元44可通過將殘余塊添加到參考圖片列表中的一者內(nèi)的參考圖片中的一者的預測性塊中來計算參考塊。運動補償單元44還可將一或多個內(nèi)插濾波器應用于所重構的殘余塊以計算子整數(shù)像素值用于運動估計。求和器62將經(jīng)重構的殘余塊添加到由運動補償單元44產(chǎn)生的運動補償預測塊以產(chǎn)生參考塊用于存儲在參考圖片存儲器64中。參考塊可供運動估計單元42及運動補償單元44用作參考塊以對后續(xù)視頻幀或圖片中的塊進行幀間預測。
根據(jù)本發(fā)明的方面,視頻編碼器20可經(jīng)配置以產(chǎn)生數(shù)個語法元素,例如與上文所描述的SEI消息相關聯(lián)的語法元素,包含用于多層編解碼器的SEI消息。舉例來說,視頻編碼器20可經(jīng)配置以根據(jù)上文相對于圖1所描述的十五個方面的任何組合產(chǎn)生語法元素。在一些情況下,視頻編碼器20可使用熵編碼單元56或負責編碼數(shù)據(jù)且產(chǎn)生經(jīng)編碼位流的另一單元編碼此類語法元素。此外,圖2的后處理實體27為可實施本發(fā)明中相對于SEI消息(包含用于多層編解碼器的SEI消息)描述的技術的另一實例裝置。
圖3是說明可實施本發(fā)明中描述的技術的實例視頻解碼器30的框圖。圖3是出于解釋的目的而提供,且并不將技術限制為本發(fā)明中所大致例示和描述者。出于解釋的目的,本發(fā)明描述在HEVC譯碼的背景下的視頻解碼器30。然而,本發(fā)明的技術可適用于其它譯碼標準或方法。
在圖3的實例中,視頻解碼器30包含熵解碼單元80、預測處理單元81、反量化單元86、反變換處理單元88、求和器90、濾波器單元91及參考圖片存儲器92。預測處理單元81包含運動補償單元82及幀內(nèi)預測處理單元84。在一些實例中,視頻解碼器30可執(zhí)行通常與相對于來自圖2的視頻編碼器20描述的編碼遍次互逆的解碼遍次。
在解碼過程期間,視頻解碼器30從視頻編碼器20接收表示經(jīng)解碼視頻切片的視頻塊的經(jīng)編碼視頻位流及相關聯(lián)的語法元素。視頻解碼器30可從網(wǎng)絡實體78接收經(jīng)編碼視頻位流。網(wǎng)絡實體78可例如為服務器、MANE、視頻編輯器/剪接器,或經(jīng)配置以實施上文所描述的技術中的一或多者的其它此裝置。網(wǎng)絡實體78可包含或可不包含視頻編碼器,例如視頻編碼器20。在網(wǎng)絡實體78將經(jīng)編碼視頻位流發(fā)射到視頻解碼器30之前,可由網(wǎng)絡實體78實施本發(fā)明中描述的技術中的一些。在一些視頻解碼系統(tǒng)中,網(wǎng)絡實體78與視頻解碼器30可為單獨裝置的部分,而在其它情況下,關于網(wǎng)絡實體78描述的功能性可由包括視頻解碼器30的相同裝置執(zhí)行。
視頻解碼器30的熵解碼單元80對位流進行熵解碼以產(chǎn)生經(jīng)量化的系數(shù)、運動向量及其它語法元素。熵解碼單元80將運動向量及其它語法元素轉發(fā)到預測處理單元81。視頻解碼器30可接收視頻切片等級和/或視頻塊等級的語法元素。
當視頻切片經(jīng)譯碼為經(jīng)幀內(nèi)譯碼(I)切片時,預測處理單元81的幀內(nèi)預測處理單元84可基于用信號發(fā)出的幀內(nèi)預測模式及來自當前幀或圖片的先前經(jīng)解碼塊的數(shù)據(jù)產(chǎn)生用于當前視頻切片的視頻塊的預測數(shù)據(jù)。當視頻幀經(jīng)譯碼為經(jīng)幀間譯碼(即,B或P)切片時,預測處理單元81的運動補償單元82基于從熵解碼單元80接收到的運動向量和其它語法元素產(chǎn)生用于當前視頻切片的視頻塊的預測性塊??蓮膮⒖紙D片列表中的一者內(nèi)的參考圖片中的一者產(chǎn)生預測塊。視頻解碼器30可基于存儲在參考圖片存儲器92中的參考圖片使用默認構造技術構造參考幀列表——列表0及列表1。
運動補償單元82通過剖析運動向量及其它語法元素確定用于當前視頻切片的視頻塊的預測信息,并且使用所述預測信息產(chǎn)生用于經(jīng)解碼當前視頻塊的預測性塊。舉例來說,運動補償單元82使用所接收語法元素中的一些語法元素確定用于譯碼視頻切片的視頻塊的預測模式(例如,幀內(nèi)預測或幀間預測)、幀間預測切片類型(例如,B切片或P切片)、切片的參考圖片列表中的一或多者的構造信息、切片的每一經(jīng)幀間編碼的視頻塊的運動向量、切片的每一經(jīng)幀間譯碼的視頻塊的幀間預測狀態(tài),及用以解碼當前視頻切片中的視頻塊的其它信息。
運動補償單元82還可基于內(nèi)插濾波器執(zhí)行內(nèi)插。運動補償單元82可使用如視頻編碼器20在視頻塊的編碼期間使用的內(nèi)插濾波器來計算參考塊的子整數(shù)像素的內(nèi)插值。在此情況下,運動補償單元82可根據(jù)接收的語法元素而確定由視頻編碼器20使用的內(nèi)插濾波器并使用所述內(nèi)插濾波器來產(chǎn)生預測性塊。
反量化單元86將在位流中提供且由熵解碼單元80解碼的經(jīng)量化變換系數(shù)反量化,即去量化。反量化過程可包含使用由視頻編碼器20針對視頻切片中的每一視頻塊所計算的量化參數(shù)以確定應當應用的量化程度且同樣確定應當應用的反量化程度。反變換處理單元88將反變換應用于變換系數(shù),例如反DCT、反整數(shù)變換或概念上類似的反變換過程,以便產(chǎn)生像素域中的殘余塊。
在運動補償單元82基于運動向量及其它語法元素產(chǎn)生用于當前視頻塊的預測塊之后,視頻解碼器30通過將來自反變換處理單元88的殘余塊與由運動補償單元82產(chǎn)生的相對應的預測塊求和而形成經(jīng)解碼視頻塊。求和器90表示執(zhí)行此求和操作的組件。在需要時,還可使用環(huán)路濾波器(在譯碼環(huán)路中或在譯碼環(huán)路之后)來使像素轉變變平滑或者以其它方式改善視頻質(zhì)量。
濾波器單元91既定表示一或多個環(huán)路濾波器,例如解塊濾波器、自適應環(huán)路濾波器(ALF)及樣本自適應偏移(SAO)濾波器。盡管在圖3中將濾波器單元91展示為環(huán)路內(nèi)濾波器,但在其它配置中,可將濾波器單元91實施為環(huán)路后濾波器。接著將給定幀或圖片中的經(jīng)解碼視頻塊存儲在參考圖片存儲器92中,參考圖片存儲器92存儲用于后續(xù)運動補償?shù)膮⒖紙D片。參考圖片存儲器92還存儲經(jīng)解碼視頻以用于稍后呈現(xiàn)在顯示裝置(例如,圖1的顯示裝置31)上。
根據(jù)本發(fā)明的方面,視頻解碼器30可經(jīng)配置以剖析及解碼數(shù)個語法元素,例如與上文所描述的SEI消息相關聯(lián)的語法元素,包含用于多層編解碼器的SEI消息。舉例來說,視頻解碼器30可經(jīng)配置以根據(jù)上文相對于圖1所描述的十五個方面的任何組合剖析及解碼語法元素。在一些情況下,視頻解碼器30可使用熵解碼單元80或負責從經(jīng)編碼位流解碼數(shù)據(jù)的另一單元解碼此類語法元素。此外,圖3的網(wǎng)絡實體78(其可為媒體感知網(wǎng)絡元件)為可實施本發(fā)明中相對于SEI消息(包含用于多層編解碼器的SEI消息)描述的技術的另一實例裝置。
圖4是更詳細地說明囊封單元21的框圖。在圖4的實例中,囊封單元21包含視頻輸入接口100、音頻輸入接口102、視頻文件創(chuàng)建單元104及視頻文件輸出接口106。在此實例中,視頻文件創(chuàng)建單元104包含輔助增強信息(SEI)消息產(chǎn)生單元108、視圖識別符(ID)指派單元110、表示創(chuàng)建單元112及操作點創(chuàng)建單元114。
視頻輸入接口100與音頻輸入接口102分別接收經(jīng)編碼視頻與音頻數(shù)據(jù)。雖然未在圖1的實例中展示,但源裝置12還可包含音頻源及音頻編碼器以分別產(chǎn)生音頻數(shù)據(jù)且編碼音頻數(shù)據(jù)。囊封單元21可接著囊封經(jīng)編碼音頻數(shù)據(jù)及經(jīng)編碼視頻數(shù)據(jù)以形成視頻文件。視頻輸入接口100及音頻輸入接口102可在編碼數(shù)據(jù)時接收經(jīng)編碼視頻及音頻數(shù)據(jù),或可從計算機可讀媒體檢索經(jīng)編碼視頻及音頻數(shù)據(jù)。在接收到經(jīng)編碼視頻及音頻數(shù)據(jù)之后,視頻輸入接口100及音頻輸入接口102將經(jīng)編碼視頻及音頻數(shù)據(jù)傳遞到視頻文件創(chuàng)建單元104用于匯編成視頻文件。
視頻文件創(chuàng)建單元104可對應于包含經(jīng)配置以執(zhí)行歸于其的功能及程序的硬件、軟件及/或固件的控制單元。所述控制單元可進一步執(zhí)行通常歸于囊封單元21的功能。對于視頻文件創(chuàng)建單元104體現(xiàn)為軟件及/或韌體的實例,囊封單元21可包含包括指令的計算機可讀媒體以使視頻文件創(chuàng)建單元104及處理單元執(zhí)行所述指令。視頻文件創(chuàng)建單元104的子單元(在此實例中,SEI消息產(chǎn)生單元108、視圖ID指派單元110、表示創(chuàng)建單元112,及操作點創(chuàng)建單元114)中的每一者可實施為個別硬件單元及/或軟件模塊,且可在功能上集成為或進一步分離為額外子單元。
視頻文件創(chuàng)建單元104可對應于任何合適處理單元或處理電路,例如一或多個微處理器、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、數(shù)字信號處理器(DSP),或其任何組合。視頻文件創(chuàng)建單元104可進一步包含存儲用于SEI消息產(chǎn)生單元108、視圖ID指派單元110、表示創(chuàng)建單元112及操作點創(chuàng)建單元114中的任一者或全部的指令的非暫時性計算機可讀媒體以及用于執(zhí)行所述指令的處理器。
一般來說,視頻文件創(chuàng)建單元104可創(chuàng)建包含所接收的音頻及視頻數(shù)據(jù)的一或多個視頻文件。視頻文件創(chuàng)建單元104可建構用于包含兩個或大于兩個視圖的多媒體內(nèi)容的媒體呈現(xiàn)描述(MPD)。在其它實例中,視頻文件創(chuàng)建單元104可創(chuàng)建類似于用于多媒體內(nèi)容的MPD的數(shù)據(jù)存儲清單的數(shù)據(jù)存儲清單。
SEI消息產(chǎn)生單元108可表示產(chǎn)生SEI消息的單元。根據(jù)本發(fā)明中描述的技術,SEI消息產(chǎn)生單元108可經(jīng)配置以產(chǎn)生數(shù)個語法元素,例如與上文所描述的SEI消息相關聯(lián)的語法元素,包含用于多層編解碼器的SEI消息。舉例來說,SEI消息產(chǎn)生單元108可經(jīng)配置以根據(jù)上文相對于圖1所描述的十五個方面的任何組合產(chǎn)生語法元素。
視圖ID指派單元110可將視圖識別符指派給多媒體內(nèi)容的視圖中的每一者。表示創(chuàng)建單元112可建構用于多媒體內(nèi)容的一或多個表示,所述表示中的每一者可包含用于多媒體內(nèi)容的視圖中的一或多者。在一些實例中,視圖ID指派單元110可在MPD及/或表示中包含數(shù)據(jù)(例如,用于表示的標頭數(shù)據(jù)),所述數(shù)據(jù)指示用于包含于所述表示中的視圖的視圖識別符的最大及最小值。此外,表示創(chuàng)建單元112可在MPD中提供指示對于具有較小視圖ID的視圖,較大視圖ID對應于相機視角向右還是相機視角向左的視圖的信息。
在一些實例中,可使用各種編碼特性編碼相同層,例如不同幀率、不同位率、不同編碼方案或其它差異。表示創(chuàng)建單元112可確保包含于共同表示中的每一層是根據(jù)相同編碼特性編碼。以此方式,用于表示的MPD及/或標頭數(shù)據(jù)可用信號通知表示的適用于所述表示中的所有層的一組特性(或屬性)。此外,表示創(chuàng)建單元112可創(chuàng)建包含相同層的多個表示,但編碼特性可能不同。在一些實例中,表示創(chuàng)建單元112可將多媒體內(nèi)容的每一層囊封于個別表示中。在此些實例中,為輸出一個以上層,目的地裝置14可請求多媒體內(nèi)容的兩個或大于兩個表示。
操作點創(chuàng)建單元114可創(chuàng)建用于多媒體內(nèi)容的一或多個表示的操作點。一般來說,操作點對應于表示中的以輸出為目標的視圖的子集,其中所述視圖中的每一者共享共同時間層級。作為一個實例,操作點可通過表示目標時間層級的temporal_id值及表示目標輸出視圖的一組view_id值來加以識別。一個操作點可與一位流子集相關聯(lián),所述位流子集由目標輸出視圖及目標輸出視圖所取決于的所有其它視圖組成。
視頻文件輸出接口106可輸出所創(chuàng)建的視頻文件。舉例來說,視頻文件輸出接口106可經(jīng)配置以將所創(chuàng)建的視頻文件提供到輸出接口22,如上文相對于圖1所描述。
雖然出于實例的目的而配合囊封單元21描述圖4的技術,但應理解,可通過例如解囊封單元29(圖1)、視頻編碼器20或視頻解碼器30等其它視頻處理單元執(zhí)行類似技術。舉例來說,解囊封單元29可經(jīng)配置以從多層位流接收多層位流且剖析/解碼上文指出的語法。
圖5是說明形成網(wǎng)絡120的一部分的一組實例裝置的框圖。在此實例中,網(wǎng)絡120包含路由裝置124A、124B(路由裝置124)和轉碼裝置126。路由裝置124及轉碼裝置126既定表示可形成網(wǎng)絡120的部分的少數(shù)裝置。例如交換機、集線器、網(wǎng)關、防火墻、橋接器及其它此類裝置的其它網(wǎng)絡裝置也可包含在網(wǎng)絡120內(nèi)。另外,可沿著服務器裝置122與客戶端裝置128之間的網(wǎng)絡路徑提供額外的網(wǎng)絡裝置。在一些實例中,服務器裝置122可對應于源裝置12(圖1),而客戶端裝置128可對應于目的地裝置14(圖1)。
一般來說,路由裝置124實施一或多個路由協(xié)議以通過網(wǎng)絡120交換網(wǎng)絡數(shù)據(jù)。在一些實例中,路由裝置124可經(jīng)配置以執(zhí)行代理或高速緩存操作。因此,在一些實例中,路由裝置124可稱為代理裝置。一般來說,路由裝置124執(zhí)行路由協(xié)議以經(jīng)由網(wǎng)絡120發(fā)現(xiàn)路線。通過執(zhí)行此些路由協(xié)議,路由裝置124B可經(jīng)由路由裝置124A發(fā)現(xiàn)從自身到服務器裝置122的網(wǎng)絡路線。路由裝置124中的一或多者可包括使用本發(fā)明的一或多個方面的MANE。
可通過例如路由裝置124及轉碼裝置126等網(wǎng)絡裝置實施本發(fā)明的技術,并且可通過客戶端裝置128實施本發(fā)明的技術。以此方式,路由裝置124、轉碼裝置126及客戶端裝置128表示經(jīng)配置以執(zhí)行本發(fā)明的技術的裝置的實例。此外,圖1的裝置以及圖2中所說明的編碼器20和圖3中所說明的解碼器30也為可經(jīng)配置以執(zhí)行本發(fā)明的技術的示范性裝置。
圖6是說明根據(jù)本發(fā)明中描述的技術的各種方面的經(jīng)配置以譯碼SEI消息的視頻處理裝置的實例操作的流程圖。在圖6的實例中,例如視頻編碼器20、囊封單元21、解囊封單元29、后處理實體27、網(wǎng)絡實體78等視頻處理裝置獲得多層位流的第一層的一或多個VCL NAL單元(140)。舉例來說,在視頻處理裝置為視頻編碼器或視頻解碼器的情況下,視頻處理裝置可編碼多層位流中的VCL NAL單元或從多層位流解碼VCL NAL單元。在視頻處理裝置不經(jīng)配置以編碼或解碼此類VCL NAL單元的實例中,視頻處理裝置可從多層位流剖析且獲得VCL NAL單元。
視頻處理裝置還譯碼(例如,編碼或解碼)待與多層位流中的第一層在一起的適用于第一層的VCL NAL單元的SEI消息(142)。舉例來說,根據(jù)本發(fā)明的方面,視頻處理裝置僅譯碼與第一層的VCL NAL單元在一起的含有適用于第一層的VCL NAL單元的SEI消息的非VCL NAL單元,而不包含多層位流的SEI消息與其它層。舉例來說,根據(jù)本發(fā)明的方面,多層位流在第一層的VCL NAL單元與含有適用于第一層的VCL NAL單元的SEI消息的非VCL NAL單元之間不含有多層位流的任何其它層的任何經(jīng)譯碼圖片。以此方式,對于具有多個層分量的存取單元,SEI消息保持與SEI消息所適用于的層在一起。在一些實例中,視頻處理裝置可譯碼緊鄰多層位流中的所述消息所適用于的VCL NAL單元的SEI消息。
在一些實例中,第一層的VCL NAL單元為第一層的第一圖片的VCL NAL單元,且SEI消息為適用于第一層的所述第一圖片的前綴SEI消息。在此些實例中,僅譯碼與VCL NAL單元在一起的含有前綴SEI消息的非VCL NAL單元可包含僅譯碼在位流中先于所述VCL NAL單元的非VCL NAL單元。即,視頻處理裝置可譯碼含有的SEI消息緊接于多層位流中的第一圖片的VCL NAL單元之前的非VCL NAL單元。
在一些實例中,第一層的VCL NAL單元為第一層的第一圖片的VCL NAL單元,且SEI消息為適用于第一層的第一圖片的后綴SEI消息。在此些實例中,僅譯碼與VCL NAL單元在一起的含有后綴SEI消息的非VCL NAL單元可包含僅譯碼在位流中在VCL NAL單元之后的非VCL NAL單元。即,視頻處理裝置可譯碼含有的SEI消息緊接于多層位流中的第一圖片的VCL NAL單元之后的非VCL NAL單元。
在圖6的實例中,視頻處理裝置還獲得多層位流的第二層的VCL NAL單元(144)。舉例來說,視頻處理裝置可譯碼(即,編碼或解碼)多層位流的第二層的圖片的切片。視頻處理裝置還譯碼適用于待與第二層的VCL NAL單元在一起的第二層的VCL NAL單元的SEI消息(146)。舉例來說,如上文所描述,視頻處理裝置可譯碼多層位流,使得所述位流在第二層的VCL NAL單元與含有適用于第二層的VCL NAL單元的SEI消息的非VCL NAL單元之間不含有多層位流的任何其它層的任何經(jīng)譯碼圖片。以此方式,對于具有多個層分量的存取單元,SEI消息保持與SEI消息所適用于的層在一起。
再次,在一些實例中,視頻處理裝置可譯碼含有適用于在位流中在第一圖片之后的第二圖片的VCL NAL單元的第二前綴SEI消息的一或多個非VCL NAL單元。視頻處理裝置還可譯碼含有適用于在位流中在第二圖片之后的第二圖片的VCL NAL單元的第二后綴SEI消息的一或多個非VCL NAL單元。
在一些情況下,視頻處理裝置還可基于含有所述第一層的第一圖片的VCL NAL單元的圖片單元及所述第一圖片的相關聯(lián)非VCL NAL單元而確定所述SEI消息的最大重復參數(shù)。
還應理解,相對于圖6展示及描述的步驟僅提供為一個實例。即,圖6的實例中展示的步驟不需要一定按圖6中展示的次序執(zhí)行,且可執(zhí)行較少、額外或替代步驟。此外,雖然上文大體相對于視頻處理裝置描述所述技術,但所述技術可通過例如視頻編碼器20、囊封單元21、解囊封單元29、后處理實體27、網(wǎng)絡實體78或其它處理單元等視頻處理裝置來實施。
圖7是說明根據(jù)本發(fā)明中描述的技術的各種方面的經(jīng)配置以譯碼SEI消息的視頻處理裝置的另一實例操作的流程圖。在圖7的實例中,例如視頻編碼器20、囊封單元21、解囊封單元29、后處理實體27、網(wǎng)絡實體78等視頻處理裝置譯碼含有經(jīng)解碼圖片哈希SEI消息的多層位流的層的一或多個非VCL NAL單元(150)。如上文所指出,經(jīng)解碼圖片哈希消息可提供從經(jīng)解碼圖片的樣本值導出的檢查和??衫缤ㄟ^例如視頻解碼器30等視頻解碼器使用經(jīng)解碼圖片哈希消息來檢測圖片是否被正確地接收及解碼。
視頻處理裝置還確定與非VCL NAL單元相關聯(lián)的層識別符(152)。視頻處理裝置還基于含有經(jīng)解碼圖片哈希SEI消息的非VCL NAL單元的層識別符確定經(jīng)解碼圖片哈希SEI消息所適用于的多層位流的一組層(154)。根據(jù)本發(fā)明的方面,經(jīng)解碼圖片哈希SEI消息的所述組適用層可指定為層識別符(nuh_layer_id)等于含有SEI消息的SEI NAL單元的層識別符(nuh_layer_id)的層。即,經(jīng)解碼圖片哈希SEI消息僅適用于與含有SEI消息的SEI NAL單元具有相同層識別符(nuh_layer_id)的層。在一些情況下,經(jīng)解碼圖片哈希SEI消息可僅為非嵌套SEI消息。
在一些實例中,另外或替代地,視頻處理裝置還可譯碼多層位流的一或多個第二非VCL NAL單元。第二非VCL NAL單元可含有指示對于視頻數(shù)據(jù)的特定部分在作用中的參數(shù)集的作用中參數(shù)集SEI消息。視頻處理裝置還可基于含有作用中參數(shù)集SEI消息的一或多個第二非VCL NAL單元確定作用中參數(shù)集SEI消息適用于多層位流的所有層。即,視頻處理裝置可借助于SEI消息為作用中參數(shù)集SEI消息而確定作用中參數(shù)集SEI消息適用于多層位流的所有層。在一些實例中,視頻處理裝置可進一步譯碼指示作用中參數(shù)集SEI消息適用于多層位流的所有層的一或多個語法元素。在一些實例中,視頻處理裝置可僅譯碼為非嵌套SEI消息的作用中參數(shù)集SEI消息。
在一些實例中,另外或替代地,視頻處理裝置可譯碼指示幀場信息存在于多層位流的圖片定時SEI消息中的一或多個語法元素。視頻處理裝置還可將幀場信息應用于圖片定時SEI消息所適用于的多層位流的所有操作點中的所有層。
還應理解,相對于圖7展示及描述的步驟僅提供為一個實例。即,圖7的實例中展示的步驟不需要一定按圖7中展示的次序執(zhí)行,且可執(zhí)行較少、額外或替代步驟。此外,雖然上文大體相對于視頻處理裝置描述所述技術,但所述技術可通過例如視頻編碼器20、囊封單元21、解囊封單元29、后處理實體27、網(wǎng)絡實體78或其它處理單元等視頻處理裝置來實施。
圖8是說明根據(jù)本發(fā)明中描述的技術的各種方面的經(jīng)配置以譯碼SEI消息的視頻處理裝置的另一實例操作的流程圖。在圖8的實例中,例如視頻編碼器20、囊封單元21、解囊封單元29、后處理實體27、網(wǎng)絡實體78等視頻處理裝置可譯碼含有具有SEI有效負載類型的SEI消息的多層位流的一層的一或多個非VCL NAL單元(160)。視頻處理裝置還可基于所述有效負載類型確定SEI消息所適用于的多層位流的語法(162)。舉例來說,視頻處理裝置可基于SEI有效負載類型確定SEI消息所適用于的多層位流的一或多個語法值。
舉例來說,根據(jù)本發(fā)明的方面,SEI消息可包含可縮放嵌套SEI消息。在此實例中,視頻處理裝置可基于SEI有效負載類型包含于第一組有效負載類型中而確定可縮放嵌套SEI消息的bitstream_subset_flag語法元素為零值。在一實例中,第一組有效負載類型包含有效負載類型2、3、6、9、15、16、17、19、22、23、45、47、128、131、132及134,如上文相對于圖1所描述,但所述集合可包含比所述實例中識別者多或少的類型。
在另一實例中,SEI消息可為非嵌套SEI消息。在此實例中,視頻處理裝置可基于SEI有效負載類型包含于第一組有效負載類型中而確定用于含有SEI消息的非VCL NAL單元的層識別符語法元素等于與所述SEI消息相關聯(lián)的VCL NAL單元的層識別符語法元素。在一實例中,所述第一組有效負載類型包含有效負載類型2、3、6、9、15、16、17、19、22、23、45、47、128、131、132及134,但所述集合可包含比所識別者多或少的類型。
在再一實例中,SEI消息可為可縮放嵌套SEI消息。在此實例中,視頻處理裝置可基于SEI有效負載類型包含于第一組有效負載類型中而確定含有可縮放嵌套SEI消息的一或多個非VCL NAL單元對于所有i值具有等于零的TemporalId及等于七的maxTemporalId[i]。在一實例中,第一組有效負載類型包含有效負載類型2、3、6、9、15、16、17、19、22、23、45、47、128、131、132及134,但所述集合可包含比所述實例中所識別者多或少的類型。
根據(jù)本發(fā)明的方面,另外或替代地,視頻處理裝置可譯碼僅在非嵌套SEI消息而不在可縮放嵌套SEI消息中的所述多層位流的作用中參數(shù)集SEI消息。
另外或替代地,視頻處理裝置可基于含有非嵌套緩沖周期SEI消息、圖片定時SEI消息或解碼單元信息SEI消息的SEI消息而確定多層視頻數(shù)據(jù)的層的層識別符為零值。在一些實例中,視頻處理裝置還可譯碼層識別符語法元素以具有零值。
另外或替代地,視頻處理裝置可譯碼多層位流的bitstream_subset_flag語法元素。視頻譯碼裝置可基于bitstream_subset_flag語法元素等于1且由(VPS)指定的層集合皆不包含處于0到含有SEI消息的非VCL NAL單元的層識別符(包含0及所述層識別符)范圍內(nèi)的層識別符,確定多層位流的default_op_flag語法元素的值為零值。在一些實例中,視頻處理裝置還可譯碼default_op_flag語法元素以具有零值。
根據(jù)本發(fā)明的額外方面,另外或替代地,視頻處理裝置可譯碼多層位流的nesting_op_flag及多層位流的all_layers_flag。視頻處理裝置可基于nesting_op_flag具有值零且all_layers_flag具有值一而確定多層位流的maxTemporalId[0]語法元素的值等于七。在一些實例中,視頻處理裝置還可譯碼maxTemporalId[0]語法元素以具有值七。
另外或替代地,視頻處理裝置可譯碼多層位流的bitstream_subset_flag語法元素及多層位流的nesting_op_flag語法元素。視頻處理裝置可基于bitstream_subset_flag語法元素具有值一且nesting_op_flag語法元素具有值零而確定多層位流的nestingLayeridList[0]僅包含在多層位流的VPS中指定的層集合的層識別符值。在一些實例中,視頻處理裝置還可譯碼nestingLayeridList[0]語法元素以僅包含在多層位流的VPS中指定的層集合的層識別符值。
還應理解,相對于圖8展示及描述的步驟僅提供為一個實例。即,圖8的實例中展示的步驟不需要一定按圖8中展示的次序執(zhí)行,且可執(zhí)行較少、額外或替代步驟。此外,雖然上文大體相對于視頻處理裝置描述所述技術,但所述技術可通過例如視頻編碼器20、囊封單元21、解囊封單元29、后處理實體27、網(wǎng)絡實體78或其它處理單元等視頻處理裝置來實施。
在一或多個實例中,所描述的功能可以硬件、軟件、固件或其任何組合來實施。如果用軟件實施,則所述功能可作為一或多個指令或代碼在計算機可讀媒體上存儲或傳輸,且由基于硬件的處理單元執(zhí)行。計算機可讀媒體可包含計算機可讀存儲媒體,所述計算機可讀存儲媒體對應于有形媒體,例如數(shù)據(jù)存儲媒體或包含(例如)根據(jù)通信協(xié)議促進計算機程序從一位置傳送至另一位置的任何媒體的通信媒體。以此方式,計算機可讀媒體大體可對應于(1)為非暫時性的有形計算機可讀存儲媒體,或(2)通信媒體,例如,信號或載波。數(shù)據(jù)存儲媒體可為可由一或多個計算機或一或多個處理器存取以檢索用于實施本發(fā)明中描述的技術的指令、代碼及/或數(shù)據(jù)結構的任何可用媒體。計算機程序產(chǎn)品可包含計算機可讀媒體。
借助于實例而非限制,此類計算機可讀存儲媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置、快閃存儲器或可用來存儲指令或數(shù)據(jù)結構的形式的期望程序代碼并且可由計算機存取的任何其它媒體。并且,任何連接被恰當?shù)胤Q作計算機可讀媒體。舉例來說,如果使用同軸纜線、光纖纜線、雙絞線、數(shù)字訂戶線(DSL)或例如紅外線、無線電及微波等無線技術從網(wǎng)站、服務器或其它遠程源傳輸指令,那么同軸纜線、光纖纜線、雙絞線、DSL或例如紅外線、無線電及微波等無線技術包含在媒體的定義中。但是,應理解,所述計算機可讀存儲媒體及數(shù)據(jù)存儲媒體并不包含連接、載波、信號或其它暫時媒體,而是實際上針對于非暫時性有形存儲媒體。如本文中所使用,磁盤及光盤包含壓縮光盤(CD)、激光光盤、光學光盤、數(shù)字多功能光盤(DVD)、軟性磁盤及藍光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤利用激光以光學方式再現(xiàn)數(shù)據(jù)。以上各項的組合也應包含在計算機可讀媒體的范圍內(nèi)。
可由例如一或多個數(shù)字信號處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現(xiàn)場可編程邏輯陣列(FPGA)或其它等效集成或離散邏輯電路等一或多個處理器來執(zhí)行指令。因此,如本文中所使用的術語“處理器”可指前述結構或適合于實施本文中所描述的技術的任一其它結構中的任一者。另外,在一些方面中,本文中所描述的功能性可在經(jīng)配置用于編碼及解碼的專用硬件及/或軟件模塊內(nèi)提供,或者并入在組合編解碼器中。而且,所述技術可完全實施于一或多個電路或邏輯元件中。
本發(fā)明的技術可在多種多樣的裝置或設備中實施,包含無線手持機、集成電路(IC)或一組IC(例如,芯片組)。本發(fā)明中描述各種組件、模塊或單元是為了強調(diào)經(jīng)配置以執(zhí)行所公開的技術的裝置的功能方面,但未必需要由不同硬件單元實現(xiàn)。實際上,如上文所描述,各種單元可結合合適的軟件及/或固件組合在編碼解碼器硬件單元中,或者通過互操作硬件單元的集合來提供,所述硬件單元包含如上文所描述的一或多個處理器。
已描述各種示例。所述及其它實例在所附權利要求書的范圍內(nèi)。