homerHEVC代码阅读(15)——基础结构之enc_env_t

来源:互联网 发布:淘宝充流量为什么便宜 编辑:程序博客网 时间:2024/05/21 07:01

enc_env_t表示熵编码和比特计数器,具体是哪种要根据enc_env_enum的具体值来判断,EE_ENCODER表示熵编码器、EE_COUNTER则表示这是比特计数器。

typedef enum {    // 熵编码器    EE_ENCODER,    // 计数器    EE_COUNTER,    EE_INVALID}enc_env_enum;//equivale a TEncSbac// enc_env_t也相当于sbac// 其实就是熵编码器(不仅限于熵编码,有可能也进行比特计数)typedef struct enc_env_t enc_env_t;struct enc_env_t{    // 上下文模型    context_model_t*contexts;    // 二进制化模型    binary_model_t*b_ctx;    // 熵编码模型    entropy_model_t*e_ctx;    // 比特流    bitstream_t*bs;    // 熵编码器的类型    enc_env_enumtype;    //function pointers    // 重置比特流    void (*ee_reset_bits)(binary_model_t* bm);    // 开始编码    void (*ee_start)(binary_model_t* bm);    // 比特流的数量    uint (*ee_bitcnt)(bitstream_t *bs, binary_model_t* bm);    // 对二进制进行编码    void (*ee_encode_bin)( enc_env_t* ee, context_model_t *cm, uint binValue);    // 对TRM进行编码    void (*ee_encode_bin_TRM)( enc_env_t* ee, uint binValue);    // 对EP进行编码    void (*ee_encode_bins_EP)( enc_env_t* ee, uint binValues, int numBins );    // 对EP进行编码    void (*ee_encode_bin_EP)( enc_env_t* ee, uint binValue);    // 结束编码    void (*ee_finish)( enc_env_t* ee);};


0 0
原创粉丝点击