为什么会有 H.265
H.264 在高清时代非常成功,但更高分辨率和更复杂的视频内容需要更高压缩效率。H.265 引入编码树单元(CTU)、更灵活的块划分、更强的预测模式和更复杂的变换/滤波工具,以换取更低码率或更高画质。
HEVC NAL 单元
H.265 仍然使用 NAL 单元组织码流,但头部结构与 H.264 不同。HEVC NAL header 包含 nal_unit_type、nuh_layer_id 和 nuh_temporal_id_plus1。因此解析 H.265 时,Temporal ID 和 Layer ID 是非常重要的排查字段。
VPS/SPS/PPS
H.265 在 SPS/PPS 之外新增 VPS(Video Parameter Set)。VPS 描述视频参数集级别的信息,SPS 描述序列属性,PPS 描述图像级编码配置。实际排查中,VPS/SPS/PPS 是否齐全、profile_tier_level 是否正确、VUI/HRD 是否存在,都会影响解码器兼容性和时间戳处理。
Slice Header 与帧类型
H.265 的 VCL NAL 类型可以区分 TRAIL、TSA、STSA、RADL、RASL、IDR、CRA、BLA 等访问点语义。真正的 I/P/B 判断还需要读取 slice header 中的 slice_type。因此看到 SEI、VPS 或 IDR_N_LP 并不等价于普通 P 帧或 B 帧。
Temporal ID
Temporal ID 用于标识时间层级。低层级通常可以作为基础层,高层级可能依赖低层级。分析分层编码、低延迟配置或掉帧策略时,Temporal ID 能帮助判断哪些 NAL 对基本播放最关键。