檔次(Profile)、層(Tier)、級別(Level)爲不同應用提供了兼容性。H.265中檔次和級別與H.264類似,層是H.265中新增的概念。
檔次主要規定編碼器可以採用哪些編碼工具和算法,包括Main、Main 10和Main Still Picture三種檔次。
H.265定義了兩個層:主層(Main Tier)和高層(High Tier)。主層用於大多數應用,高層用於更苛刻的應用。
級別是指根據解碼端的負載和存儲空間情況對關鍵參數加以限制(如最大採樣率、最大圖像尺寸、分辨率、最小壓縮率、最大比特率和CPB(解碼圖像緩存)大小等)。H.265共定義了13個級別,1 2 2.1 3 3.1 4 4.1 5 5.1 5.2 6 6.1 6.2。
滿足某個Level或Tier的解碼器能夠解碼當前Level和Tier,及比當前Level和Tier更低的碼流。滿足某個Profile的解碼器必須支持該Profile中的所有特性,但編碼器不必實現該Profile中所有特性,但生成的碼流必須遵守相關規定。
檔次Profile
-
Main:支持8比特位深,4:2:0採樣格式,是最常見的檔次。
-
Main 10:支持8比特和10比特位深,4:2:0採樣格式。支持Main 10檔次的解碼器必須能同時可以解碼Main和Main 10檔次的碼流。
-
Main Still Picture:支持單個靜止圖像,其按照Main檔次規定進行編碼。主要用於照相機和從視頻序列中提取快照等。
三個檔次的關係如下圖:
層(Tier)和級別(Level)
H.265/HEVC定義了2個層和13個級別。2個層分別是Main Tier和High Tier。4和4以上的8個Level支持High Tier。下表給出了不同檔次和級別的語法元素:
語法元素
下面是H.265/HEVC中定義的檔次、層和級別的語法元素。
general_profile_space:取值爲0,其他值留作將來擴展使用。
general_tier_flag:規定當前檔次中使用的層的內容。
general_profile_idc:取值爲0,表示當前CVS編碼過程中使用的檔次的ID號。其他值留作將來擴展使用。
general_profile_compatibility_flag[ j ] :當general_profile_space等於0時,該語法元素取值爲1,表示當前CVS編碼過程中使用的檔次ID號爲j。
general_progressive_source_flag和general_interlaced_source_flag:用於指定CVS的掃描方式,即逐行掃描、隔行掃描或未指明掃描方式。
general_non_packed_constraint_flag:指明CVS中是否存在frame packing arrangement SEI messages。
general_frame_only_constraint_flag:指定field_seq_flag是否爲0。
general_level_idc:指明CVS中使用的level的ID號。
sub_layer_profile_present_flag[ i ]:表明在TemporalId等於i的子層中,其profile_tier_level( ) 是否存在profile信息。
sub_layer_level_present_flag[ i ]:表明在TemporalId等於i的子層中,其profile_tier_level( ) 是否存在level信息。
感興趣的請關注微信公衆號Video Coding