天天看點

H.264中的Profile和Level介紹

Profile(檔次): H.264 規定了四種不同的檔次,每個檔次支援一組特定的編碼功能,并支援一類特定的應用。

(1) 基本檔次(Base Line Profile):支援幀内和幀間編碼,支援利用基于上下文的适應變長編碼(CAVLC)主要應用:可視電話,會議電視,和無線通訊等實時視訊通訊領域。

隻有I,P Slice;

nal_unit_type不應包括2-4的值;

序列參數集frame_mbs_only_flag = 1;

文法元素chroma_format_idc、bit_depth_luma_minus8、bit_depth_chroma_minus8、qpprime_y_zero_transform_bypass_flag和seq_scaling_matrix_present_flag不能出現在序列參數集中。

圖檔參數集weighted_pred_flag和weighted_bipred_idc均為0。

圖像參數集entropy_coding_mode_flag = 0。

num_slice_groups_minus1取值0-7

文法元素transform_8x8_mode_flag、pic_scaling_matrix_present_flag和second_chroma_qp_index_offset不能出現在圖檔參數集中。

level_prefix不能大于15。

profile_idc ==66.

(2) 主要檔次(Main profile):支援隔行視訊,采用B片的幀間編碼和采用權重預測的幀間編碼,支援利用基于上下文的自适應算術編碼(CABAC)主要應用:數字廣播電視和數字視訊存儲

I, P, and B slice

nal_unit_type不應包括2-4的值;

文法元素chroma_format_idc、bit_depth_luma_minus8、bit_depth_chroma_minus8、qpprime_y_zero_transform_bypass_flag和seq_scaling_matrix_present_flag不能出現在序列參數集中。

num_slice_groups_minus1 = 0

redundant_pic_cnt_present_flag = 0

transform_8x8_mode_flag、pic_scaling_matrix_present_flag和second_chroma_qp_index_offset不能出現在圖檔參數集中

level_prefix應不大于15

profile_idc == 77

(3) 擴充檔次(Extended Profile):支援碼流之間有效的切換(SP和SI片)、改進誤碼性能,但不支援隔行視訊和CABAC。

direct_8x8_inference_flag =1

chroma_format_idc、bit_depth_luma_minus8、bit_depth_chroma_minus8、qpprime_y_zero_transform_bypass_flag和seq_scaling_matrix_present_flag不能出現在序列參數集中。

entropy_coding_mode_flag = 0

num_slice_groups_minus1在0-7

transform_8x8_mode_flag、pic_scaling_matrix_present_flag和second_chroma_qp_index_offset不能出現在圖檔參數集中

level_prefix應不大于15

profile_idc = 88

(4) 進階畫質(High profile):。在main Profile 的基礎上增加了8x8内部預測、自定義量化、無損視訊編碼和更多的YUV 格式;

I, P, and B slice

nal_unit_type不應包括2-4的值;

num_slice_groups_minus1 = 0

redundant_pic_cnt_present_flag = 0

chroma_format_idc 0-1

bit_depth_luma_minus8 =0

bit_depth_chroma_minus8=0

qpprime_y_zero_transform_bypass_flag = 0

profile_idc is equal to 77 or 100,or constraint_set1_flag is equal to 1.

(5) High 10 profile 進階10位檔次

(6) High 4:2:2 profile 進階4:2:2檔次

(7) High 4:4:4 profile 進階4:4:4檔次

不同檔次的相關定義如下圖:

H.264中的Profile和Level介紹

Level:級别是用來限制分辨率、幀率和碼率的。所有概要檔案都使用相同的級别定義集,但是單個實作可能為每個受支援的概要檔案支援不同的級别。對于任何給定的概要檔案,級别通常對應于解碼器處理負載和記憶體能力。

幀fR =1/172 場 fR = 1/(2*172)

常見視訊分辨率所配套的級别:

480P(800x480):若幀率低于13.5用2.2,若幀率在13.5至27之間就用3,幀率高于27時用3.1。

720P(1280x720):一般為3.1。

1080P(1920x1080):一般為4

H.264中的Profile和Level介紹
H.264中的Profile和Level介紹

最大存儲幀數(max stored frames):也叫最大參考幀數(ref)。

DPB:decoded

picture buffer,解碼圖檔緩存區。在做視訊解碼時,需要将最近的若幹幅參考幀緩存起來,這個緩沖區就叫做DPB。DPB一般以宏塊數為機關(DpbMbs),計算公式為:

DpbMbs = ref(參考幀數) * PicWidthInMbs(水準宏塊數) * FrameHeightInMbs(垂直宏塊數)

參考文獻:https://www.cnblogs.com/tinywan/p/6402007.htm

《H.264标準》