homerHEVC代码阅读(17)——基础结构之cu_partition_info_t

来源:互联网 发布:大数据处理软件有哪些 编辑:程序博客网 时间:2024/06/13 22:59

cu_partition_info_t表示一个CU的划分信息,这个结构的好处就是在处理预测的过程中免去了递归调用,从而更加高效。

// cu分割(也可以叫做分区、划分等等,一个cu可能会按照四叉树的方式往下继续分成4个小的cu,把它们每一个称为一个分割或者一个分区)信息typedef struct cu_partition_info_t cu_partition_info_t;struct cu_partition_info_t{    // 列表索引    uint16_t list_index;    // 深度    uint16_t depth;    // 绝对索引    uint16_t abs_index;    // 大小    uint16_t size;    // 色度分量的大小    uint16_t size_chroma;    // x坐标:在某一个CTU中的坐标而不是全局坐标    uint16_t x_position,x_position_chroma;    // y坐标:在某一个CTU中的坐标而不是全局坐标    uint16_t y_position,y_position_chroma;    // 当前cu还被分成多少个子部分    uint16_t num_part_in_cu;//tama锟給 en particiones minimas    // 在raster扫描顺序中的索引    uint16_t raster_index;    // 当前cu的邻居存在的标志    uint16_t left_neighbour;    uint16_t top_neighbour;    uint16_t left_bottom_neighbour;    uint16_t top_right_neighbour;    // 下面的三个参数分别表示:    // 当前CTU是否在帧的左上角    // 当前CTU是否在帧的底部    // 当前CTU是否在帧的右边    uint16_t is_tl_inside_frame, is_b_inside_frame, is_r_inside_frame;    // abs绝对值    // 左边的绝对的位置    uint16_t abs_index_left_partition;    // 左下方的绝对的位置    uint16_t abs_index_left_bottom_partition;    // 上方的绝对的位置    uint16_t abs_index_top_partition;    // 右上方的绝对的位置    uint16_t abs_index_top_right_partition;    // 左上角的绝对的位置    uint16_t abs_index_top_left_partition;    // 父亲cu的分割信息    cu_partition_info_t*parent;//pointer to parent partition    // 子cu的分割信息    cu_partition_info_t*children[4];//pointers to child partitions    // 量化步长    uint32_t qp;    //uint16_t mode;    //uint16_t mode_chroma;    //intra    // 代价    uint32_t sum;    //uint distortion_chroma, cost_chroma;    // sad    uint32_t sad;    // 失真、代价    uint32_t distortion, cost;    // 方差    uint32_t variance, variance_luma, variance_chroma;    // 递归分割的标志    uint32_t recursive_split;    //inter prediction. Trying to avoid buffer consolidation    //uint inter_distortion, inter_distortion_chroma;    //uint inter_cost, inter_cost_chroma;    // 预测模式    int prediction_mode;    // 合并标志,merge的索引、跳过标志    int merge_flag, merge_idx, skipped;    // 帧内的编码块信息    int intra_cbf[NUM_PICT_COMPONENTS], intra_tr_idx, intra_mode[NUM_PICT_COMPONENTS];    // 帧间的编码块信息    int inter_cbf[NUM_PICT_COMPONENTS], inter_tr_idx;    // 帧间预测的mv    motion_vector_tinter_mv[2];    // 非整像素的mv    motion_vector_tsubpix_mv[2];    // 最优的mv残差    motion_vector_tbest_dif_mv[2];    // 最优的候选索引    int best_candidate_idx[2];    // 参考索引    intinter_ref_index[2];};


0 0
原创粉丝点击