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
- homerHEVC代码阅读(17)——基础结构之cu_partition_info_t
- homerHEVC代码阅读(12)——基础结构之其他结构
- homerHEVC代码阅读(3)——基础结构之HVENC_Cfg
- homerHEVC代码阅读(4)——基础结构之stream_t
- homerHEVC代码阅读(5)——基础结构之bitstream_t与nalu_t
- homerHEVC代码阅读(6)——基础结构之hvenc_enc_t
- homerHEVC代码阅读(7)——基础结构之hvenc_engine_t
- homerHEVC代码阅读(8)——基础结构之henc_thread_t
- homerHEVC代码阅读(9)——基础结构之low_level_funcs_t
- homerHEVC代码阅读(10)——基础结构之picture_t、slice_t、ctu_info_t
- homerHEVC代码阅读(11)——基础结构之output_set_t、video_frame_t
- homerHEVC代码阅读(13)——基础结构之encoder_in_out_t
- homerHEVC代码阅读(14)——基础结构之ref_pic_set_t、rate_control_t、rate_distortion_t
- homerHEVC代码阅读(15)——基础结构之enc_env_t
- homerHEVC代码阅读(16)——基础结构之entropy_model_t、context_model_buff_t、context_model_t、binary_model_t
- homerHEVC代码阅读(18)——基础结构之mv_candiate_list_t,motion_vector_t,temporal_info_t,wnd_t
- homerHEVC代码阅读(19)——基础结构之vps_t,sps_t,pps_t
- homerHEVC代码阅读(20)——基础结构之profiler_t,profile_tier_t,profile_tier_level_t
- 【SSH项目实战】国税协同平台-23.抽取BaseService
- 目前自己的几种脱壳方式
- js时间戳与php时间戳的区别
- 人工智能:第十章 机器视觉
- 理解update、upgrade和dist-upgrade的区别
- homerHEVC代码阅读(17)——基础结构之cu_partition_info_t
- TortoiseSVN 冲突解决详细步骤
- oracle connect by用法
- javascript中window.documen
- poj 1745 divisible
- Android中关于:at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099) 的问题
- 人工智能:第十一章 自然语言理解
- 从头认识java-12.3 instanceof、isInstance和isAssignableFrom
- 【SSH项目实战】国税协同平台-24.条件查询分析与实现