您的位置:首页 > 编程语言

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];
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: