注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

面包会有的

php asp 高端网站开发 微信网站开发 视频会议软硬件

 
 
 

日志

 
 

转:x264_frame_new( x264_t *h )的理解  

2011-09-11 13:01:41|  分类: H264 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1. *x264_frame_new( x264_t *h )的理解

进行framer_t结构体中数据元素的空间分配

首先是frame->buffer,frame->plane, frame->filtered,具体如下:

转:x264_frame_new( x264_t *h )的理解 - 加菲 -  .

 

 

接下来是frame->buffer_lowres,frame->lowres,frame->lowres_mvs,frame->lowres_mv_costs

转:x264_frame_new( x264_t *h )的理解 - 加菲 -  .

 

 

下面继续进行元素空间的分配

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的信息】


 

  评论这张
 
阅读(500)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017