*x264_frame_new( x264_t *h )
来源:互联网 发布:阿克伦大学 知乎 编辑:程序博客网 时间:2024/04/30 06:52
转载于:http://qiudw1020.blog.163.com/blog/static/120913456200910110395802/
进行framer_t结构体中数据元素的空间分配
首先是frame->buffer,frame->plane, frame->filtered,具体如下
接下来是frame->buffer_lowres,frame->lowres,frame->lowres_mvs,frame->lowres_mv_costs
下面继续进行元素空间的分配
CHECKED_MALLOC(frame->mb_type, i_mb_count * sizeof(int8_t));//为每个MB的类型分配空间
CHECKED_MALLOC(frame->mv[0], 2*16 * i_mb_count * sizeof(int16_t) );//为每个MB分配16个MV空间,满足使用4x4宏块进行帧间预测的需要
CHECKED_MALLOC(frame->ref[0], 4 * i_mb_count * sizeof(int8_t) );//为参考帧的每个MB分配4个字节空间??????
CHECKED_MALLOC( frame->i_intra_cost, i_mb_count * sizeof(uint16_t) );//为每个MB分配帧内预测的cost
if( h->param.i_bframe )//如果使用B帧,分配相应的mv/ref存储空间
{
CHECKED_MALLOC( frame->mv[1], 2*16 * i_mb_count * sizeof(int16_t) );
CHECKED_MALLOC( frame->ref[1], 4 * i_mb_count * sizeof(int8_t) );
}
else
{
frame->mv[1] = NULL;
frame->ref[1] = NULL;
}
CHECKED_MALLOC( frame->i_row_bits, i_lines/16 * sizeof(int) );//为每行MB分配一个INT空间,存储该行MB一共多少个比特
CHECKED_MALLOC( frame->i_row_qp, i_lines/16 * sizeof(int) );//为每行MB分配一个INT空间,存储该行的qp
for( i = 0; i < h->param.i_bframe + 2; i++ )
for( j = 0; j < h->param.i_bframe + 2; j++ )
CHECKED_MALLOC( frame->i_row_satds[i][j], i_lines/16 * sizeof(int) );//为每行MB分配一个INT空间,存储该行的satds,一共4组??【可能是对应4种不同的SATD的信息】
- x264_frame_new( x264_t *h )
- *x264_frame_new( x264_t *h )
- x264_macroblock_analyse(x264_t *h ) 分析
- x264_macroblock_analyse(x264_t *h ) 分析
- x264_macroblock_analyse(x264_t *h ) 分析
- X264 - x264_t
- x264_t 结构体解析
- struct x264_t 维护着CODEC的诸多重要信息
- x264重要结构体详细说明(4): x264_t
- h
- h
- h
- ,h
- h
- h
- H
- h
- h
- svn 常用命令
- 一天一linux命令(21) uptime who last 系统日志
- 基于HTML5的Hybrid App成为企业移动开发首选
- Android-LayoutInflater的使用
- 使用JAVA读写Properties属性文件
- *x264_frame_new( x264_t *h )
- arm-linux-ld命令
- JAVA将数据转json和XML
- 用php写的进程守护,进程管理,进程出错自动启动功能,适合服务器管理员使用
- mysql 命令操作mysql db
- mysql daemon failed to start 解决办法
- android系统移植emmc记录(总)
- Microsoft Office Outlook 2007的使用 出现的问题:如果Outlook.pst文件不小心给删除;
- 什么很重要