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檔次
不同檔次的相關定義如下圖:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP31keBR0Tw0kaNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5gTMwQTOzMTM1ETMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
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
最大存儲幀數(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标準》