H264-框架
H264 两种实现libx264 和JM, 区别与联系如下:
x264和JM的关系
H264 编码学习路线:H264 matlab实现-------> JM---------->X264
Baseline profile
- 只有I帧和P帧
- NAL unit streams 中没有nal_unit_type 值为2和4的nal
- Sequence parameter sets 序列参数集中 frame_mbs_only_flag 为 1.
- 语法元素chroma_format_idc, bit_depth_luma_minus8, bit_depth_chroma_minus8, qpprime_y_zero_transform_bypass_flag, and 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, and second_chroma_qp_index_offset语法元素
- level_prefix 元素的值不超过15
- 语法元素pcm_sample_luma[ i ], with i = 0…255, and pcm_sample_chroma[ i ], with i = 0…2 * MbWidthC * MbHeightC − 1 都为0
- Baseline的level限制必须都要满足。
Main profile
- 只有I P B 帧
- NAL unit streams 中没有nal_unit_type 值为2和4的nal
- 必须遵循帧顺序
- 语法元素 chroma_format_idc, bit_depth_luma_minus8, bit_depth_chroma_minus8, qpprime_y_zero_transform_bypass_flag, and 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
- 语法元素pcm_sample_luma[ i ], with i = 0…255, and pcm_sample_chroma[ i ], with i = 0…2 * MbWidthC * MbHeightC − 1 都为0
- main的level限制必须都要满足。
参考
h264相关博客