T264关键数据结构解析

 struct T264_t
{
    T264_frame_t refn[MAX_REFFRAMES];//单向参考帧
    T264_frame_t* ref[2][MAX_REFFRAMES];//双向参考帧
    int32_t refl0_num;//LIST0参考表序号 
    int32_t refl1_num;//LIST1参考表序号
    T264_frame_t cur;//当前帧
    T264_frame_t* rec;//记录帧
    int32_t     width;//16*宏块宽度
    int32_t     height;//16*宏块高度
    int32_t     stride;//亮度块搜索范围宽度
    int32_t     stride_uv;// 色度块搜索范围宽度
    int32_t     edged_stride;//亮度块搜索范围边缘宽度
    int32_t     edged_stride_uv;// 色度块搜索范围边缘宽度
    int32_t     edged_width; 
    int32_t     edged_height; 
    int32_t     qp_y, qp_uv;//亮度量化参数,色度量化参数
    void*        bs;//边缘强度
uint8_t*    bs_buf;//边缘强度存储区
uint32_t    flags;//选择编码模式标志,由输入参数params确定
    int32_t     mb_width, mb_height;//宏块宽度和高度
 int32_t  mb_stride;//宏块范围
uint32_t    idr_pic_id;//idr图像ID
uint32_t    frame_id;帧ID,在整个编码过程该序号唯一(统计意义)
    uint32_t    frame_num;//码流层面的帧序号,用于输出码流
uint32_t    frame_no;
 //当前编码GOP中的帧编号,用于决定条类型(Slice type)
    uint32_t    last_i_frame_id;//最后一个关键帧id号,
    uint32_t    poc;//POC号
    uint32_t    slice_type;//条类型
    int32_t     skip;//SKIP类型
    uint32_t    sad_all;//用于码率控制
T264_frame_t pending_bframes[MAX_BREFNUMS]; //待处理的B帧存放在该数组中
int32_t     pending_bframes_num;//待处理B帧序号

    int32_t     header_bits;//
    int32_t     frame_bits;

//解码部分数据结构
    uint8_t* src_buf;   /*源图像缓冲区开头*/ 
uint8_t* src_end; /*源图像缓冲区结尾*/

    uint8_t* nal_buf;   /* 一个NAL单元缓冲区 */
    int32_t nal_len;    /*一个NAL单元长度 */

    uint32_t shift;     /*用于NAL单元解码 */
    uint32_t shift1;

    action_t action;//

    int32_t need_deblock;//是否支持去块效应滤波
T264_frame_t* cur_frame;//当前帧

    /*帧速率信息 */
    int32_t aspect_ratio;
    int32_t video_format;//视频格式
    T264_frame_t output;//输出帧
    /* 解码部分 */

    T264_param_t   param;//解码参数
    T264_nal_t     nal;//NAL单元
    T264_seq_set_t ss;//顺序参数集
    T264_pic_set_t ps;//图像参数集
    T264_slice_t   slice;//条块信息
    T264_stat_t    stat;//统计信息

    T264_mb_t      mb;//宏块信息
    int16_t        subpel_pts;//子像素像素数
    T264_plugin_t  plugins[MAX_PLUGINS];

 T264_cabac_t cabac;//CABAC解码信息

int32_t        plug_num;

    T264_predict_16x16_mode_t pred16x16[4 + 3];//7种INTRA16*16模式
 T264_predict_8x8_mode_t   pred8x8[4 + 3];//7中INTRA8*8模式
 T264_predict_4x4_mode_t   pred4x4[9 + 3];//12种INTRA4*4模式
 T264_cmp_t cmp[8];//SATD函数数组
    T264_cmp_t sad[8];//SAD函数数组
    T264_pia_t pia[9];  //平均像素函数数组for pixel avearage func

//快速DCT变换部分数据结构
    T264_dct_t fdct4x4;
    T264_dct_t fdct4x4dc;
    T264_dct_t fdct2x2dc;
    逆DCT变换部分数据结构
T264_dct_t idct4x4;
    T264_dct_t idct4x4dc;
T264_dct_t idct2x2dc;

量化部分数据结构
    T264_quant4x4_t   quant4x4;
    T264_quant4x4dc_t quant4x4dc;
    T264_quant2x2dc_t quant2x2dc;
    T264_iquant_t     iquant4x4;
    T264_iquant_t     iquant4x4dc;
    T264_iquant_t     iquant2x2dc;

/*用于生成残差数据和重建的函数*/
    expand8to16_t     expand8to16;
    contract16to8_t   contract16to8;
    expand8to16sub_t  expand8to16sub;
    contract16to8add_t contract16to8add;
memcpy_stride_u_t   memcpy_stride_u;

//像素插值信息
    T264_eighth_pixel_mc_u_t eighth_pixel_mc_u;
    T264_interpolate_halfpel_t interpolate_halfpel_h;
    T264_interpolate_halfpel_t interpolate_halfpel_v;
    T264_interpolate_halfpel_t interpolate_halfpel_hv;
    T264_pixel_avg_t pixel_avg;// 平均像素结构
    T264_satd_i16x16_u_t T264_satd_16x16_u;//SATD码率控制信息
    T264_search_t   search;//搜索参数定义
    T264_emms_t emms;//
};
T264_param_t结构
{
int32_t width, height;//宏块高度和宽度
    int32_t qp;//量化参数
    int32_t bitrate;//码率
    float   framerate;//帧速率
    int32_t iframe; // I 帧间距
    int32_t idrframe; // idr 间距
    int32_t ref_num; // 参考帧数目
    int32_t b_num; // b frame num
    int32_t flags;//编码模式
    int32_t cpu;//CPU是否支持
    int32_t search_x;//搜索区域水平方向大小
    int32_t search_y;//搜索区域垂直方向大小
    int32_t block_size;//宏块大小
    int32_t disable_filter;//是否支持去块效应滤波器
    int32_t aspect_ratio;//比例
    int32_t video_format;//视频格式
    int32_t luma_coeff_cost;//量化系数损失
    int32_t min_qp;//最小量化参数
    int32_t max_qp;//最大量化参数
    int32_t enable_rc;//是否支持码率控制
    int32_t enable_stat;//是否支持统计
int32_t direct_flag;//是否支持运动矢量直接预测
 int32_t cabac;//CABAC模式
    void*   rec_name;//记录文件
} T264_param_t;
http://hi.baidu.com/zsw%5Fdavy/blog/item/0f2310246b617333c9955932.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值