使用四个未压缩的图面进行解码

下表显示了一种假设情况,即视频解码器需要一帧时间才能解码每个图片。 它解码一个位流,该位流由从初始 I 图片后的零个 B 图片开始稳定增加的 B 图片数组成。 B 图片的位流发生在 P 图片对之间。 在此表中,一个字母显示每张图片的类型 (I、B 或 P) ,下标显示帧显示索引 (显示每个图片的时态显示顺序) ,上标显示包含图片的缓冲区数。

已解码的图片 显示的图片 帧解码 (时间间隔开始)

I

0

1

P

I

2

B

3

P

B

4

P

5

B

6

P

B

7

P

8

B

9

B

10

P

11

B

P

12

B

B

13

B

B

14

B

15

P

16

B

P

17

B

18

B

19

B

20

B

21

P

B

22

上表中的每个 B 图片都需要按位流顺序解码两个以前的图片,然后才能解码。 因此,解码器无法开始显示具有适当计时的图片,直到第二个图片解码为 (,即,直到在第三个时间片中解码) 。 在此时间切片的某一位置,可以开始显示具有适当计时的图片。

开始显示图片可能不会与显示上显示的图片完全一致。 相反,在正确的时间到达切换到新图片之前,显示可能会继续显示发送要显示的图片之前的图片。 为获得最佳性能, (第一张 I 图片的图面 0) 不应被 B 图片覆盖,因为 B 图片稍后到达三帧,即使该 B 图片不需要 I 图片进行引用。 相反,第四 (图面 3) 应该用于保存该 B 图片。 这样就无需在解码 B 图片之前检查第一张 I 图片的显示周期是否已完成。

解码器序列要求中所述的两个规则要求将前三个解码的图片放在不同的图面上,因为直到第三个时间段(第 2 个时间段 2) (一段时间才会显示它们) 。 然后,第四张已解码的图片应放置在第四个图面上,因为第一张已显示图片的显示可能尚未结束,直到第四个时间段(第 3 (段)) 。

解码过程中存在一个严重的障碍,因为连续有两张以上 B 张图片。 在遇到第十个已解码的图片时,上表 (B) 。 当遇到连续序列中的第三个或后续 B 图片时,将消除显示一张 B 图片与使用图面保存下一张已解码 B 图片之间的时间延迟容错。 主机解码器必须检查在上一期间显示的 B 图片的显示状态 (B) 以确保它已从显示器中删除 (等待此操作在必要时) ,然后它必须立即使用同一个图面,才能解码用于 B¹) 的下一个 B 图片的 (图面 1。 解码器无法将新 B 图片解码为用于保存其参考 I 或 P 图片的任一图面 (在这种情况下,将图面 0 和 2 用于 P 和 P) ,并且无法将新 B 图片解码为在此例中相同时间间隔内显示 (的图面中, surface 3,用于 B) 。 因此,它必须使用前一个期间显示 (,在这种情况下,图面 1) 。