1. 程式人生 > >HEVC Slice&Tile and Bitstream Syntax

HEVC Slice&Tile and Bitstream Syntax

論文題目Efficient Stream-Reassembling for Video Conferencing Applications using Tiles inHEVC

翻譯論文中有關Slice&Tile  and Bitstream Syntax的部分,即 || HEVC中的A.B兩部分

A.Slice and Tiles

     Slice 和 Tile 都可以將一幀邏輯的劃分為幾部分,且這些部分可以獨立解碼,不依靠彼此。其中 Tile 的形狀為矩形,它根據引數來設定tile的長和寬,而長和寬是以CTU為單位的。Slice 僅根據每個Slice中包含的CTU來限定大小,且CTU是按照光柵順序進行劃分。如圖一。slice和tile可以同時使用,slice中可以包含tile,tile中可以包含slice,一種較為特殊的情況是slice和tile的大小相同,也即他們包含的CTU個數相同,如圖二,在這種情況下兩者的邊界重合。

    因為slice和tile均不允許產生重疊的區域,因此,它們在編碼和解碼過程中可以獨立進行。根據這一特性,可以並行處理slices和tiles來提高編解碼過程中效率。

圖一

圖二

B. Bitstream Syntax

     和H.264類似,在HEVC中所有編碼內容均組成NAL(Network Abstraction Layer) 單元來進行傳輸, 這些單元是以位元組對齊,其中每個NALU包括頭部資訊(可以識別正文內容)和主體部分。一個NALU 可以包含一個slice,也可以包含不同種類的引數集。多個NALU可以構成一個AU(Access Unit),解壓一個AU可以得到一幀圖片,因此一個AU中至少包含一幀中的所有NALU。引數集中包含的資訊可以是有關序列的引數集或者是某一幀的引數集且這些引數集不進行熵編碼。每一個bitstream必須至少包含一個序列集SPS(Sequence Parameter Set)和幀引數PPS(Picture Parameter Set),如圖三。

    在bitstream中每個slice由頭部和主體部分組成,頭部包含有關slice的高層語法資訊,主體部分進行熵編碼且可包含若干個tile。slice 的結尾處使用end_of_slice來標記,若當前CTU為此slice的最後一個CTU,則標記。如果slice中包含tiles,則tiles可以在slice的主體部分進行劃分,也可以在slice的頭部中新增tile的劃分資訊。如果slice只含有一個tile,則在slice的主體部分就包含一個tile且其他有關tile劃分的資訊並不必要包含在slice的主體部分,見圖四。

圖三(為一個bitstream,其中包含一個SPS,一個PPS, 若干個Slice)

圖四