homerHEVC代码阅读(17)——基础结构之cu_partition_info_t
2015-12-07 19:58
405 查看
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_t inter_mv[2]; // 非整像素的mv motion_vector_t subpix_mv[2]; // 最优的mv残差 motion_vector_t best_dif_mv[2]; // 最优的候选索引 int best_candidate_idx[2]; // 参考索引 int inter_ref_index[2]; };
相关文章推荐
- C#操作XML的方法
- 发现C++Builder 2010一组类BUG
- java中简单工厂模式(静态工厂方法模式)
- homerHEVC代码阅读(16)——基础结构之entropy_model_t、context_model_buff_t、context_model_t、binary_model_t
- c#通用递归生成无限层级树
- java 图片上写入文字
- homerHEVC代码阅读(15)——基础结构之enc_env_t
- java之文件与base64字符之间的相互转换
- Python爬取网易新闻动态评论
- homerHEVC代码阅读(14)——基础结构之ref_pic_set_t、rate_control_t、rate_distortion_t
- phpmyadmin显示数据库中文正确php页面输出??乱码的解决方法
- homerHEVC代码阅读(13)——基础结构之encoder_in_out_t
- C语言感想
- java 中利用Matcher类提供的函数进行文本替换
- MFC下实现 灰度图像显示函数代码 C++
- Java:接口和抽象类的区别
- python排序整理
- java集合类
- c++学习日志20151207
- 浅析Java子类和父类的实例化顺序 及 陷阱