xchg_mb_border()

顾名思义, xchg_mb_border() 交换 MB 边界的像素。
阅读代码可知,交换双方为边界缓存 (left_border,top_borders) 与重建图象中的相应数据。
其中 xchg 参数是否为 1 决定,在从边界缓存赋值到重建图象的同时,是否保存重建图象的数据到边界缓存。

此函数仅用于 I 块解码。

⒈ 边界缓存仅在 xchg_mb_border() 与 backup_mb_border() 中使用。
⒉ xchg_mb_border() 函数在图象重建过程中调用两次。
   预测前,调用一次, xchg 参数为 1 ;补偿后,调用一次, xchg 参数为 0 。
⒊ backup_mb_border() 备份的是对应于下一宏块的边界像素。
⒋ backup_mb_border() 仅在滤波前调用。

结论:
上一宏块:
⒈ 备份滤波前的下一宏块边缘像素。
⒉ 滤波。
当前宏块(I块):
⒈ 交换边界缓存与重建图象相应数据。
⒉ 帧内预测、补偿。
⒊ 从边界缓存恢复数据到重建图象。
如此往复。
8.3  帧内预测过程
  宏块类型为 I 和 SI 时调用该过程。
  本过程的输入是去块效应滤波过程之前的重建样点值,以及对于 Intra_N×N 预测模式(其中 N×N 等于 4×4 或 8×8)下相邻宏块的 IntraNxNPredMode 值。
posted @ 2010-10-23 16:09  java消费保护  阅读(134)  评论(0编辑  收藏  举报