x264阅读笔记
来源:互联网 发布:矩阵潜袭 编辑:程序博客网 时间:2024/06/05 17:29
1. *x264_frame_new( x264_t *h )的理解
进行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阅读笔记
- X264阅读笔记1
- X264阅读笔记3
- x264源码阅读笔记1
- x264源码阅读笔记2
- x264代码阅读笔记1
- x264代码阅读笔记2
- x264代码阅读笔记3
- X264代码阅读笔记2
- X264阅读
- x264代码阅读笔记——非常详细
- x264阅读记录-1
- x264阅读记录-2
- x264阅读记录-3
- X264如何阅读数
- X264 笔记
- X264笔记
- [视频] x264 压缩笔记
- 存储过程常用技巧
- liux 使用cp拷贝目录覆盖时在redhat下出现略过目录的提示
- symbian下的http连接
- c++ primer学习之-----C++ 中的多态性
- ipv6
- x264阅读笔记
- linux device driver II 的模块程序在linux kernel 2.6.x 上的移植
- grep用法详解:grep与正则表达式
- Symbian中的Http开发详解
- Symbian内嵌式安装程序
- 关于url中有特殊字符的处理
- 采用堆排序的优先队列
- Linux启动过程综述 作者:杨沙洲
- 【转载】assert() 函数用法