H.264 中的 SPS 和 PPS
H.264 的 SPS 保存序列级配置,例如 profile_idc、level_idc、pic_width_in_mbs_minus1、pic_height_in_map_units_minus1、裁剪窗口、VUI 和 HRD。PPS 保存图像级配置,例如熵编码模式、参考索引默认值、初始 QP、去块滤波和 slice group 信息。
H.265 中的 VPS、SPS 和 PPS
H.265 增加 VPS,用于描述视频参数集级信息。SPS 继续描述序列级属性,例如 chroma_format_idc、pic_width_in_luma_samples、profile_tier_level 和 VUI。PPS 描述图像级编码配置,例如 tiles、SAO、QP 偏移、去块滤波和扩展字段。
常见排查字段
profile_idc/profile_tier_level:判断编码能力等级和设备兼容性。level_idc:约束分辨率、码率和解码能力。frame_cropping_flag/conformance_window_flag:决定显示分辨率是否需要从编码分辨率裁剪。vui_parameters_present_flag:决定是否包含宽高比、时序、HRD 等辅助信息。bitstream_restriction_flag:影响重排序帧数、缓冲限制和低延迟判断。
为什么字段要按协议顺序解析
SPS/PPS/VPS 中大量字段由前面的 flag 控制是否出现。例如某个 flag 为 0 时,后续一组字段根本不存在。如果解析器跳过条件或字段顺序错误,后续所有 bit 都会错位,表现为字段值异常、二进制高亮不对应或帧统计错误。