ffmpeg解码write_back_intra_pred_mode函数解释

static av_always_inline void write_back_intra_pred_mode(const H264Context *h,

H264SliceContext *sl)

int8_t *i4x4 = sl->intra4x4_pred_mode + h->mb2br_xy[sl->mb_xy];

int8_t *i4x4_cache = sl->intra4x4_pred_mode_cache;

AV_COPY32(i4x4, i4x4_cache + 4 + 8 * 4);

i4x4[4] = i4x4_cache[7 + 8 * 3];

i4x4[5] = i4x4_cache[7 + 8 * 2];

i4x4[6] = i4x4_cache[7 + 8 * 1];

该函数更新帧内预测模式的帧范围缓存(以4x4块分辨率),位于sl->intra4x4_pred_mode每个切片或者h->intra4x4_pred_mode整个帧的变量中,该缓存稍后用于h264_mvpred.h,特别是第510-528fill_decode_caches()行周围的函数,以设置上下文(左/上邻居)块信息,用于解码位于当前4x4块以及下方或者右侧的后续4x4 intra块。

这里还有一些关于变量设计的内容,sl->mb_xy是sl->mb_x + sl->mb_y * mb_strid。将mb_stride视为图像宽度,的填充。 所以mb_xy是当前宏块的排序索引,一些变量在块4x4而不是宏块16x16分辨率中索引,因此要在单位之间转换,可以使用mb2br_xy ,这应该可以解释帧范围缓存的布局 intra4x4_pred_mode/i4x4。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值