核心内容摘要
《泡我家的黑田辣妹》第二季燃爆上线!独家揭秘,心动预警!
核心概念DTSDecoding Time Stamp解码时间戳决定「什么时候解码这一帧」严格遵循解码顺序。
PTSPresentation Time Stamp显示时间戳决定「什么时候显示这一帧」严格遵循用户观看的显示顺序。
B 帧双向预测帧一种压缩效率更高的视频帧它的解码必须同时参考前面的 I/P 帧 后面的 P/I 帧双向参考这是和 I 帧关键帧无需参考、P 帧前向参考只参考前面的帧最核心的区别。
例子B 帧导致的顺序错位假设一段视频的显示顺序用户最终看到的顺序是I 帧帧 1→ B 帧帧 2→ P 帧帧 3。
无 B 帧的情况对比如果没有 B 帧显示顺序是 I1→P2→P3解码时也能按这个顺序来P2 只参考 I1P3 只参考 P2所以解码顺序 显示顺序DTS 和 PTS 数值完全一致比如 I1 的 DTS
PTS1P2 的 DTS
PTS2。
有 B 帧的情况核心B 帧 2 需要同时参考 I1前和 P3后才能解码因此解码顺序必须调整—— 先解码 I1再解码 P3先拿到后面的参考帧最后解码 B2。
也就是解码顺序I1 → P3 → B2DTS 按这个顺序分配显示顺序I1 → B2 → P3PTS 按这个顺序分配此时各帧的时间戳对应关系帧类型解码顺序DTS 值显示顺序PTS 值DTS vs PTSI11111一致P32233不一致B23322不一致很明显因为 B 帧的存在解码顺序和显示顺序被迫错位而 DTS 绑定解码顺序、PTS 绑定显示顺序最终导致两者数值不一致。
本质原因
总结B 帧的双向参考特性是根源为了解码 B 帧必须先解码它的「后向参考帧」比如上面的 P3这打破了解码顺序和显示顺序的一致性而 DTS/PTS 分别对应这两个不同的顺序因此必然出现数值差异。
总结B 帧的双向预测特性是核心解码 B 帧需要同时参考前后帧必须调整解码顺序这是 DTS/PTS 不一致的根本原因。
DTS 对应解码顺序PTS 对应显示顺序B 帧导致这两个顺序错位时间戳自然不一致。
无 B 帧时解码顺序 显示顺序因此 DTS 和 PTS 数值完全一致。