x264_macroblock_cache_init 的分析

int x264_macroblock_cache_init ( x264_t *h ) 这个函数主要对cache中与宏块相关的变量进行初始化,包括为它们分配对应的内存空间。在函数里,会有一些变量的赋值一开始让人摸不着头脑,经过查找资料和跟踪代码确认,现对如下变量进行解释:

int i_mb_count = h->mb.i_mb_count;            //!< 一帧图像的宏块数
h->mb.i_mb_stride = h->sps->i_mb_width;	//!< 以宏块为单位的每一行的跨度
h->mb.i_b8_stride = h->sps->i_mb_width * 2;	//!< 以8x8块为单位的每一行的跨度
h->mb.i_b4_stride = h->sps->i_mb_width * 4;	//!< 以4x4块为单位的每一行的跨度

接下来一组赋值需要画图说明:

上图代表的是fdec的内存存储方式,每个符号代表内存中的一个字节,符号“.”表示无用数据,大写字母代表当前宏块的数据,Y,U,V分别代表三个色彩分量,小写字母代表当前宏块的相邻像素点的数据。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值