Lines Matching refs:ps_ctxt
171 void ihevce_enc_loop_ctb_left_copy(ihevce_enc_loop_ctxt_t *ps_ctxt, enc_loop_cu_prms_t *ps_cu_prms) in ihevce_enc_loop_ctb_left_copy() argument
183 UWORD8 u1_is_422 = (ps_ctxt->u1_chroma_array_type == 2); in ihevce_enc_loop_ctb_left_copy()
185 pu1_luma_left = (UWORD8 *)ps_ctxt->pv_left_luma_data; in ihevce_enc_loop_ctb_left_copy()
186 pu1_chrm_left = (UWORD8 *)ps_ctxt->pv_left_chrm_data; in ihevce_enc_loop_ctb_left_copy()
187 ps_left_nbr = &ps_ctxt->as_left_col_nbr[0]; in ihevce_enc_loop_ctb_left_copy()
218 ps_nbr = &ps_ctxt->as_ctb_nbr_arr[0]; in ihevce_enc_loop_ctb_left_copy()
304 ihevce_enc_loop_ctxt_t *ps_ctxt, in ihevce_cu_mode_decide() argument
340 WORD32 i4_best_cu_qp = ps_ctxt->ps_rc_quant_ctxt->i2_min_qp - 1; in ihevce_cu_mode_decide()
346 UWORD8 u1_is_422 = (ps_ctxt->u1_chroma_array_type == 2); in ihevce_cu_mode_decide()
350 ps_ctxt->as_cu_prms[0].i8_best_rdopt_cost = MAX_COST_64; in ihevce_cu_mode_decide()
351 ps_ctxt->as_cu_prms[1].i8_best_rdopt_cost = MAX_COST_64; in ihevce_cu_mode_decide()
354 ps_ctxt->i4_zcbf_rdo_level = ZCBF_ENABLE; in ihevce_cu_mode_decide()
361 ps_ctxt->ps_enc_out_ctxt->b3_cu_pos_x = ps_cu_analyse->b3_cu_pos_x; in ihevce_cu_mode_decide()
362 ps_ctxt->ps_enc_out_ctxt->b3_cu_pos_y = ps_cu_analyse->b3_cu_pos_y; in ihevce_cu_mode_decide()
363 ps_ctxt->ps_enc_out_ctxt->u1_cu_size = ps_cu_analyse->u1_cu_size; in ihevce_cu_mode_decide()
366 ps_curr_nbr_4x4 = &ps_ctxt->as_ctb_nbr_arr[0]; in ihevce_cu_mode_decide()
375 if(!ps_ctxt->u1_is_input_data_hbd) in ihevce_cu_mode_decide()
396 pu1_cu_left = (UWORD8 *)ps_ctxt->pv_left_luma_data; in ihevce_cu_mode_decide()
400 ps_left_nbr_4x4 = &ps_ctxt->as_left_col_nbr[0]; in ihevce_cu_mode_decide()
420 pu1_cu_top = (UWORD8 *)ps_ctxt->pv_top_row_luma; in ihevce_cu_mode_decide()
424 ps_top_nbr_4x4 = ps_ctxt->ps_top_row_nbr; in ihevce_cu_mode_decide()
474 ps_ctxt->pu1_ctb_nbr_map, in ihevce_cu_mode_decide()
475 ps_ctxt->i4_nbr_map_strd, in ihevce_cu_mode_decide()
488 ps_ctxt->s_rdopt_entropy_ctxt.as_cu_entropy_ctxt[0].i4_num_nbr_skip_cus = in ihevce_cu_mode_decide()
490 ps_ctxt->s_rdopt_entropy_ctxt.as_cu_entropy_ctxt[1].i4_num_nbr_skip_cus = in ihevce_cu_mode_decide()
515 s_chrm_cu_buf_prms.pu1_cu_left = (UWORD8 *)ps_ctxt->pv_left_chrm_data; in ihevce_cu_mode_decide()
530 s_chrm_cu_buf_prms.pu1_cu_top = (UWORD8 *)ps_ctxt->pv_top_row_chroma; in ihevce_cu_mode_decide()
558 i4_ctb_y_off = ps_ctxt->s_mc_ctxt.i4_ctb_frm_pos_y; in ihevce_cu_mode_decide()
559 ps_ctxt->i4_satd_buf_idx = rd_opt_curr_idx; in ihevce_cu_mode_decide()
562 ps_ctxt->s_cu_me_intra_pred_prms.i4_pointer_count = 0; in ihevce_cu_mode_decide()
572 ps_ctxt->s_cu_inter_merge_skip.u1_num_merge_cands = 0; in ihevce_cu_mode_decide()
573 ps_ctxt->s_cu_inter_merge_skip.u1_num_skip_cands = 0; in ihevce_cu_mode_decide()
574 ps_ctxt->s_mixed_mode_inter_cu.u1_num_mixed_mode_type0_cands = 0; in ihevce_cu_mode_decide()
575 ps_ctxt->s_mixed_mode_inter_cu.u1_num_mixed_mode_type1_cands = 0; in ihevce_cu_mode_decide()
576 ps_ctxt->s_pred_buf_data.i4_pred_stride = ps_cu_analyse->u1_cu_size; in ihevce_cu_mode_decide()
583 if(ps_ctxt->u1_disable_intra_eval) in ihevce_cu_mode_decide()
592 if((!ps_ctxt->u1_use_top_at_ctb_boundary) && u1_enable_top_row_sync) in ihevce_cu_mode_decide()
604 ((ihevce_tile_params_t *)ps_ctxt->pv_tile_params_base + in ihevce_cu_mode_decide()
605 ps_ctxt->i4_tile_col_idx); in ihevce_cu_mode_decide()
620 ps_ctxt->pv_dep_mngr_enc_loop_cu_top_right, in ihevce_cu_mode_decide()
624 ps_ctxt->i4_tile_col_idx, /* Col Tile No. */ in ihevce_cu_mode_decide()
625 ps_ctxt->thrd_id); in ihevce_cu_mode_decide()
629 if(ps_ctxt->i1_cu_qp_delta_enable) in ihevce_cu_mode_decide()
631 ihevce_update_cu_level_qp_lamda(ps_ctxt, ps_cu_analyse, 4, 0); in ihevce_cu_mode_decide()
634 s_prms.i4_ctb_nbr_map_stride = ps_ctxt->i4_nbr_map_strd; in ihevce_cu_mode_decide()
635 s_prms.i4_max_num_inter_rdopt_cands = ps_ctxt->i4_max_num_inter_rdopt_cands; in ihevce_cu_mode_decide()
638 s_prms.ps_cu_inter_merge_skip = &ps_ctxt->s_cu_inter_merge_skip; in ihevce_cu_mode_decide()
639 s_prms.aps_cu_nbr_buf[0] = &ps_ctxt->as_cu_nbr[ps_ctxt->i4_satd_buf_idx][0]; in ihevce_cu_mode_decide()
640 s_prms.aps_cu_nbr_buf[1] = &ps_ctxt->as_cu_nbr[!ps_ctxt->i4_satd_buf_idx][0]; in ihevce_cu_mode_decide()
642 s_prms.ps_mc_ctxt = &ps_ctxt->s_mc_ctxt; in ihevce_cu_mode_decide()
644 s_prms.ps_mixed_modes_datastore = &ps_ctxt->s_mixed_mode_inter_cu; in ihevce_cu_mode_decide()
645 s_prms.ps_mv_pred_ctxt = &ps_ctxt->s_mv_pred_ctxt; in ihevce_cu_mode_decide()
646 s_prms.ps_pred_buf_data = &ps_ctxt->s_pred_buf_data; in ihevce_cu_mode_decide()
649 s_prms.pu1_ctb_nbr_map = ps_ctxt->pu1_ctb_nbr_map; in ihevce_cu_mode_decide()
654 s_prms.u1_max_merge_candidates = ps_ctxt->i4_max_merge_candidates; in ihevce_cu_mode_decide()
656 s_prms.u1_use_satd_for_merge_eval = ps_ctxt->i4_use_satd_for_merge_eval; in ihevce_cu_mode_decide()
657 s_prms.u1_quality_preset = ps_ctxt->i4_quality_preset; in ihevce_cu_mode_decide()
658 s_prms.i1_slice_type = ps_ctxt->i1_slice_type; in ihevce_cu_mode_decide()
659 s_prms.ps_cu_me_intra_pred_prms = &ps_ctxt->s_cu_me_intra_pred_prms; in ihevce_cu_mode_decide()
660 s_prms.u1_is_hbd = (ps_ctxt->u1_bit_depth > 8); in ihevce_cu_mode_decide()
663 s_prms.i4_lambda_qf = ps_ctxt->i4_sad_lamda; in ihevce_cu_mode_decide()
667 ps_ctxt->s_rdopt_entropy_ctxt.au1_init_cabac_ctxt_states[IHEVC_CAB_MERGE_IDX_EXT]; in ihevce_cu_mode_decide()
675 if(ps_ctxt->s_mv_pred_ctxt.ps_slice_hdr->i1_slice_type != PSLICE) in ihevce_cu_mode_decide()
677 if(ps_ctxt->i4_temporal_layer == 1) in ihevce_cu_mode_decide()
699 s_prms.ps_cmn_utils_optimised_function_list = &ps_ctxt->s_cmn_opt_func; in ihevce_cu_mode_decide()
701 s_prms.pf_evalsad_pt_npu_mxn_8bit = (FT_SAD_EVALUATOR *)ps_ctxt->pv_evalsad_pt_npu_mxn_8bit; in ihevce_cu_mode_decide()
710 au1_buf_ids, &ps_ctxt->s_pred_buf_data.u4_is_buf_in_use, NUM_CU_ME_INTRA_PRED_IDX - 1); in ihevce_cu_mode_decide()
714 for(ctr = ps_ctxt->s_cu_me_intra_pred_prms.i4_pointer_count; ctr < u1_num_bufs_allocated; in ihevce_cu_mode_decide()
718 ps_ctxt->s_cu_me_intra_pred_prms.pu1_pred_data[ctr] = in ihevce_cu_mode_decide()
719 (UWORD8 *)ps_ctxt->s_pred_buf_data.apv_inter_pred_data[au1_buf_ids[ctr]]; in ihevce_cu_mode_decide()
722 ps_ctxt->s_cu_me_intra_pred_prms.ai4_pred_data_stride[ctr] = ps_cu_analyse->u1_cu_size; in ihevce_cu_mode_decide()
724 ps_ctxt->s_cu_me_intra_pred_prms.i4_pointer_count++; in ihevce_cu_mode_decide()
728 ps_ctxt->s_cu_me_intra_pred_prms.pu1_pred_data[ctr] = in ihevce_cu_mode_decide()
729 (UWORD8 *)ps_ctxt->pv_422_chroma_intra_pred_buf; in ihevce_cu_mode_decide()
732 ps_ctxt->s_cu_me_intra_pred_prms.ai4_pred_data_stride[ctr] = ps_cu_analyse->u1_cu_size; in ihevce_cu_mode_decide()
734 ps_ctxt->s_cu_me_intra_pred_prms.i4_pointer_count++; in ihevce_cu_mode_decide()
742 au1_buf_ids, &ps_ctxt->s_pred_buf_data.u4_is_buf_in_use, NUM_CU_ME_INTRA_PRED_IDX); in ihevce_cu_mode_decide()
746 for(ctr = ps_ctxt->s_cu_me_intra_pred_prms.i4_pointer_count; ctr < u1_num_bufs_allocated; in ihevce_cu_mode_decide()
750 ps_ctxt->s_cu_me_intra_pred_prms.pu1_pred_data[ctr] = in ihevce_cu_mode_decide()
751 (UWORD8 *)ps_ctxt->s_pred_buf_data.apv_inter_pred_data[au1_buf_ids[ctr]]; in ihevce_cu_mode_decide()
754 ps_ctxt->s_cu_me_intra_pred_prms.ai4_pred_data_stride[ctr] = ps_cu_analyse->u1_cu_size; in ihevce_cu_mode_decide()
756 ps_ctxt->s_cu_me_intra_pred_prms.i4_pointer_count++; in ihevce_cu_mode_decide()
760 ihevce_mark_all_modes_to_evaluate(ps_ctxt, ps_cu_analyse); in ihevce_cu_mode_decide()
762 ps_ctxt->as_cu_prms[0].s_recon_datastore.u1_is_lumaRecon_available = 0; in ihevce_cu_mode_decide()
763 ps_ctxt->as_cu_prms[1].s_recon_datastore.u1_is_lumaRecon_available = 0; in ihevce_cu_mode_decide()
764 ps_ctxt->as_cu_prms[0].s_recon_datastore.au1_is_chromaRecon_available[0] = 0; in ihevce_cu_mode_decide()
765 ps_ctxt->as_cu_prms[1].s_recon_datastore.au1_is_chromaRecon_available[0] = 0; in ihevce_cu_mode_decide()
766 ps_ctxt->as_cu_prms[0].s_recon_datastore.au1_is_chromaRecon_available[1] = 0; in ihevce_cu_mode_decide()
767 ps_ctxt->as_cu_prms[1].s_recon_datastore.au1_is_chromaRecon_available[1] = 0; in ihevce_cu_mode_decide()
768 ps_ctxt->as_cu_prms[0].s_recon_datastore.au1_is_chromaRecon_available[2] = 0; in ihevce_cu_mode_decide()
769 ps_ctxt->as_cu_prms[1].s_recon_datastore.au1_is_chromaRecon_available[2] = 0; in ihevce_cu_mode_decide()
804 ps_ctxt->s_rdopt_entropy_ctxt.i4_curr_buf_idx = rd_opt_curr_idx; in ihevce_cu_mode_decide()
808 &ps_ctxt->au1_rdopt_init_ctxt_models[0], in ihevce_cu_mode_decide()
809 &ps_ctxt->s_rdopt_entropy_ctxt.au1_init_cabac_ctxt_states[0], in ihevce_cu_mode_decide()
812 rd_opt_cost = ((pf_inter_rdopt_cu_mc_mvp)ps_ctxt->pv_inter_rdopt_cu_mc_mvp)( in ihevce_cu_mode_decide()
813 ps_ctxt, in ihevce_cu_mode_decide()
825 if((ps_ctxt->u1_bit_depth == 8) && (!ps_inter_cand->b1_skip_flag)) in ihevce_cu_mode_decide()
829 (me_func_selector_t *)ps_ctxt->pv_err_func_selector, in ihevce_cu_mode_decide()
830 ps_ctxt->ai2_scratch, in ihevce_cu_mode_decide()
833 ps_ctxt->i4_satd_lamda, in ihevce_cu_mode_decide()
836 ps_ctxt->u1_max_tr_depth); in ihevce_cu_mode_decide()
840 ps_ctxt->i4_zcbf_rdo_level = NO_ZCBF; in ihevce_cu_mode_decide()
842 ps_ctxt->i4_zcbf_rdo_level = ZCBF_ENABLE; in ihevce_cu_mode_decide()
845 rd_opt_cost += ((pf_inter_rdopt_cu_ntu)ps_ctxt->pv_inter_rdopt_cu_ntu)( in ihevce_cu_mode_decide()
846 ps_ctxt, in ihevce_cu_mode_decide()
856 !ps_ctxt->u1_is_refPic ? ALPHA_FOR_NOISE_TERM_IN_RDOPT in ihevce_cu_mode_decide()
862 if(!ps_ctxt->u1_enable_psyRDOPT && ps_cu_prms->u1_is_cu_noisy) in ihevce_cu_mode_decide()
864 ps_ctxt->i8_cl_ssd_lambda_qf = ps_ctxt->s_sao_ctxt_t.i8_cl_ssd_lambda_qf; in ihevce_cu_mode_decide()
865 ps_ctxt->i8_cl_ssd_lambda_chroma_qf = in ihevce_cu_mode_decide()
866 ps_ctxt->s_sao_ctxt_t.i8_cl_ssd_lambda_chroma_qf; in ihevce_cu_mode_decide()
877 ps_ctxt->as_cu_prms[rd_opt_best_idx].i8_best_rdopt_cost = rd_opt_cost; in ihevce_cu_mode_decide()
879 i4_best_cu_qp = ps_ctxt->i4_cu_qp; in ihevce_cu_mode_decide()
887 ps_ctxt->pu1_ctb_nbr_map, in ihevce_cu_mode_decide()
888 ps_ctxt->i4_nbr_map_strd, in ihevce_cu_mode_decide()
901 ps_enc_loop_bestprms = &ps_ctxt->as_cu_prms[rd_opt_best_idx]; in ihevce_cu_mode_decide()
916 if(IHEVCE_QUALITY_P3 > ps_ctxt->i4_quality_preset) in ihevce_cu_mode_decide()
921 if((IHEVCE_QUALITY_P0 == ps_ctxt->i4_quality_preset) && (ps_cu_prms->u1_is_cu_noisy) && in ihevce_cu_mode_decide()
922 (ps_ctxt->i1_slice_type != ISLICE) && (0 != s_inter_cu_mode_info.u1_num_inter_cands)) in ihevce_cu_mode_decide()
957 if(!ps_ctxt->u1_use_top_at_ctb_boundary) in ihevce_cu_mode_decide()
969 ((ihevce_tile_params_t *)ps_ctxt->pv_tile_params_base + in ihevce_cu_mode_decide()
970 ps_ctxt->i4_tile_col_idx); in ihevce_cu_mode_decide()
985 ps_ctxt->pv_dep_mngr_enc_loop_cu_top_right, in ihevce_cu_mode_decide()
989 ps_ctxt->i4_tile_col_idx, /* Col Tile No. */ in ihevce_cu_mode_decide()
990 ps_ctxt->thrd_id); in ihevce_cu_mode_decide()
997 ps_ctxt->i4_zcbf_rdo_level = ZCBF_ENABLE; in ihevce_cu_mode_decide()
999 ps_ctxt->i4_zcbf_rdo_level = NO_ZCBF; in ihevce_cu_mode_decide()
1003 if((ps_ctxt->i1_slice_type != ISLICE) && (ps_ctxt->i4_quality_preset >= IHEVCE_QUALITY_P3)) in ihevce_cu_mode_decide()
1006 ps_ctxt, in ihevce_cu_mode_decide()
1014 ps_ctxt, in ihevce_cu_mode_decide()
1023 if(1 == ps_ctxt->s_chroma_rdopt_ctxt.u1_eval_chrm_satd) in ihevce_cu_mode_decide()
1030 &ps_ctxt->au1_rdopt_init_ctxt_models[0], in ihevce_cu_mode_decide()
1031 &ps_ctxt->s_rdopt_entropy_ctxt.au1_init_cabac_ctxt_states[0], in ihevce_cu_mode_decide()
1035 ps_ctxt->s_rdopt_entropy_ctxt.i4_curr_buf_idx = rd_opt_curr_idx; in ihevce_cu_mode_decide()
1038 ((pf_intra_chroma_pred_mode_selector)ps_ctxt->pv_intra_chroma_pred_mode_selector)( in ihevce_cu_mode_decide()
1039 ps_ctxt, in ihevce_cu_mode_decide()
1044 !ps_ctxt->u1_is_refPic ? ALPHA_FOR_NOISE_TERM_IN_RDOPT in ihevce_cu_mode_decide()
1051 if(!ps_ctxt->u1_enable_psyRDOPT && ps_cu_prms->u1_is_cu_noisy) in ihevce_cu_mode_decide()
1053 ps_ctxt->i8_cl_ssd_lambda_qf = ps_ctxt->s_sao_ctxt_t.i8_cl_ssd_lambda_qf; in ihevce_cu_mode_decide()
1054 ps_ctxt->i8_cl_ssd_lambda_chroma_qf = in ihevce_cu_mode_decide()
1055 ps_ctxt->s_sao_ctxt_t.i8_cl_ssd_lambda_chroma_qf; in ihevce_cu_mode_decide()
1069 &ps_ctxt->au1_rdopt_init_ctxt_models[0], in ihevce_cu_mode_decide()
1070 &ps_ctxt->s_rdopt_entropy_ctxt.au1_init_cabac_ctxt_states[0], in ihevce_cu_mode_decide()
1074 ps_ctxt->s_rdopt_entropy_ctxt.i4_curr_buf_idx = rd_opt_curr_idx; in ihevce_cu_mode_decide()
1077 ((pf_intra_chroma_pred_mode_selector)ps_ctxt->pv_intra_chroma_pred_mode_selector)( in ihevce_cu_mode_decide()
1078 ps_ctxt, in ihevce_cu_mode_decide()
1083 !ps_ctxt->u1_is_refPic ? ALPHA_FOR_NOISE_TERM_IN_RDOPT in ihevce_cu_mode_decide()
1090 if(!ps_ctxt->u1_enable_psyRDOPT && ps_cu_prms->u1_is_cu_noisy) in ihevce_cu_mode_decide()
1092 ps_ctxt->i8_cl_ssd_lambda_qf = ps_ctxt->s_sao_ctxt_t.i8_cl_ssd_lambda_qf; in ihevce_cu_mode_decide()
1093 ps_ctxt->i8_cl_ssd_lambda_chroma_qf = in ihevce_cu_mode_decide()
1094 ps_ctxt->s_sao_ctxt_t.i8_cl_ssd_lambda_chroma_qf; in ihevce_cu_mode_decide()
1119 ((ps_ctxt->i4_quality_preset == IHEVCE_QUALITY_P5) || in ihevce_cu_mode_decide()
1120 (ps_ctxt->i4_quality_preset == IHEVCE_QUALITY_P6)) && in ihevce_cu_mode_decide()
1121 (ps_ctxt->i1_slice_type != ISLICE)) in ihevce_cu_mode_decide()
1180 ((ps_ctxt->i4_quality_preset == IHEVCE_QUALITY_P5) || in ihevce_cu_mode_decide()
1181 (ps_ctxt->i4_quality_preset == IHEVCE_QUALITY_P6)) && in ihevce_cu_mode_decide()
1182 (ps_ctxt->i1_slice_type != ISLICE) && (ps_cu_analyse->u1_cu_size == 64)) in ihevce_cu_mode_decide()
1209 ps_ctxt->s_rdopt_entropy_ctxt.i4_curr_buf_idx = rd_opt_curr_idx; in ihevce_cu_mode_decide()
1214 pv_pred = ps_ctxt->s_cu_me_intra_pred_prms.pu1_pred_data[rd_opt_curr_idx]; in ihevce_cu_mode_decide()
1219 &ps_ctxt->au1_rdopt_init_ctxt_models[0], in ihevce_cu_mode_decide()
1220 &ps_ctxt->s_rdopt_entropy_ctxt.au1_init_cabac_ctxt_states[0], in ihevce_cu_mode_decide()
1224 rd_opt_cost = ((pf_intra_rdopt_cu_ntu)ps_ctxt->pv_intra_rdopt_cu_ntu)( in ihevce_cu_mode_decide()
1225 ps_ctxt, in ihevce_cu_mode_decide()
1228 ps_ctxt->s_cu_me_intra_pred_prms.ai4_pred_data_stride[rd_opt_curr_idx], in ihevce_cu_mode_decide()
1242 !ps_ctxt->u1_is_refPic ? ALPHA_FOR_NOISE_TERM_IN_RDOPT in ihevce_cu_mode_decide()
1248 if(!ps_ctxt->u1_enable_psyRDOPT && ps_cu_prms->u1_is_cu_noisy) in ihevce_cu_mode_decide()
1250 ps_ctxt->i8_cl_ssd_lambda_qf = ps_ctxt->s_sao_ctxt_t.i8_cl_ssd_lambda_qf; in ihevce_cu_mode_decide()
1251 ps_ctxt->i8_cl_ssd_lambda_chroma_qf = in ihevce_cu_mode_decide()
1252 ps_ctxt->s_sao_ctxt_t.i8_cl_ssd_lambda_chroma_qf; in ihevce_cu_mode_decide()
1262 i4_best_cu_qp = ps_ctxt->i4_cu_qp; in ihevce_cu_mode_decide()
1265 ps_ctxt->as_cu_prms[rd_opt_best_idx].i8_best_rdopt_cost = rd_opt_cost; in ihevce_cu_mode_decide()
1269 (ps_ctxt->as_cu_prms[rd_opt_best_idx].u1_intra_flag) && in ihevce_cu_mode_decide()
1270 (ps_ctxt->i4_quality_preset <= IHEVCE_QUALITY_P2) && !FORCE_INTRA_TU_DEPTH_TO_0) in ihevce_cu_mode_decide()
1275 if(ps_ctxt->as_cu_prms[rd_opt_best_idx].u1_part_mode == SIZE_2Nx2N) in ihevce_cu_mode_decide()
1285 ps_ctxt->as_cu_prms[rd_opt_best_idx].au1_intra_pred_mode, in ihevce_cu_mode_decide()
1325 ps_ctxt->pu1_ctb_nbr_map, in ihevce_cu_mode_decide()
1326 ps_ctxt->i4_nbr_map_strd, in ihevce_cu_mode_decide()
1335 ASSERT(i4_best_cu_qp > (ps_ctxt->ps_rc_quant_ctxt->i2_min_qp - 1)); in ihevce_cu_mode_decide()
1336 ps_ctxt->i4_cu_qp = i4_best_cu_qp; in ihevce_cu_mode_decide()
1351 if(ps_ctxt->i4_quality_preset < IHEVCE_QUALITY_P2) in ihevce_cu_mode_decide()
1353 pu1_ecd_data = &ps_ctxt->pu1_cu_recur_coeffs[0]; in ihevce_cu_mode_decide()
1356 pu1_ecd_data = &ps_ctxt->pu1_cu_recur_coeffs[0]; in ihevce_cu_mode_decide()
1359 ps_enc_loop_bestprms = &ps_ctxt->as_cu_prms[rd_opt_best_idx]; in ihevce_cu_mode_decide()
1363 if(!ps_ctxt->u1_is_input_data_hbd) in ihevce_cu_mode_decide()
1367 pv_final_pred = ps_ctxt->s_cu_me_intra_pred_prms.pu1_pred_data[rd_opt_best_idx]; in ihevce_cu_mode_decide()
1369 ps_ctxt->s_cu_me_intra_pred_prms.ai4_pred_data_stride[rd_opt_best_idx]; in ihevce_cu_mode_decide()
1378 ps_ctxt->s_cu_me_intra_pred_prms.pu1_pred_data[CU_ME_INTRA_PRED_CHROMA_IDX] + in ihevce_cu_mode_decide()
1382 ps_ctxt->s_cu_me_intra_pred_prms.ai4_pred_data_stride[CU_ME_INTRA_PRED_CHROMA_IDX]; in ihevce_cu_mode_decide()
1385 ihevce_set_eval_flags(ps_ctxt, ps_enc_loop_bestprms); in ihevce_cu_mode_decide()
1394 if(!ps_ctxt->u1_is_input_data_hbd) in ihevce_cu_mode_decide()
1397 if(ps_ctxt->i4_quality_preset < IHEVCE_QUALITY_P2) in ihevce_cu_mode_decide()
1399 pv_cu_luma_recon = ps_ctxt->pv_cu_luma_recon; in ihevce_cu_mode_decide()
1400 pv_cu_chroma_recon = ps_ctxt->pv_cu_chrma_recon; in ihevce_cu_mode_decide()
1417 pv_cu_luma_recon = ps_ctxt->pv_cu_luma_recon; in ihevce_cu_mode_decide()
1418 pv_cu_chroma_recon = ps_ctxt->pv_cu_chrma_recon; in ihevce_cu_mode_decide()
1435 s_prms.pu1_csbf_buf = &ps_ctxt->au1_cu_csbf[0]; in ihevce_cu_mode_decide()
1436 s_prms.csbf_strd = ps_ctxt->i4_cu_csbf_strd; in ihevce_cu_mode_decide()
1456 ((pf_final_rdopt_mode_prcs)ps_ctxt->pv_final_rdopt_mode_prcs)(ps_ctxt, &s_prms); in ihevce_cu_mode_decide()
1459 if(!ps_ctxt->u1_enable_psyRDOPT && ps_cu_prms->u1_is_cu_noisy) in ihevce_cu_mode_decide()
1461 ps_ctxt->i8_cl_ssd_lambda_qf = ps_ctxt->s_sao_ctxt_t.i8_cl_ssd_lambda_qf; in ihevce_cu_mode_decide()
1462 ps_ctxt->i8_cl_ssd_lambda_chroma_qf = in ihevce_cu_mode_decide()
1463 ps_ctxt->s_sao_ctxt_t.i8_cl_ssd_lambda_chroma_qf; in ihevce_cu_mode_decide()
1475 ps_enc_loop_bestprms = &ps_ctxt->as_cu_prms[rd_opt_best_idx]; in ihevce_cu_mode_decide()
1533 ps_entropy_ctxt = ps_ctxt->s_rdopt_entropy_ctxt.as_cu_entropy_ctxt; in ihevce_cu_mode_decide()
1547 ps_ctxt->ps_enc_out_ctxt->i1_cu_qp = ps_cu_analyse->i1_cu_qp; in ihevce_cu_mode_decide()
1552 ps_ctxt->ps_enc_out_ctxt->b1_first_cu_in_qg = 1; in ihevce_cu_mode_decide()
1556 ps_ctxt->ps_enc_out_ctxt->b1_first_cu_in_qg = 0; in ihevce_cu_mode_decide()
1562 ps_ctxt->pu1_ctb_nbr_map, in ihevce_cu_mode_decide()
1563 ps_ctxt->i4_nbr_map_strd, in ihevce_cu_mode_decide()
1572 &ps_ctxt->s_rdopt_entropy_ctxt, in ihevce_cu_mode_decide()
1585 &ps_ctxt->ps_enc_out_ctxt->s_cu_prms, in ihevce_cu_mode_decide()
1586 &ps_ctxt->as_cu_prms[rd_opt_best_idx], in ihevce_cu_mode_decide()
1591 &ps_ctxt->as_cu_recur_nbr[0], in ihevce_cu_mode_decide()
1592 &ps_ctxt->as_cu_nbr[rd_opt_best_idx][0], in ihevce_cu_mode_decide()
1596 ps_ctxt->ps_enc_out_ctxt->ps_cu_prms = &ps_ctxt->ps_enc_out_ctxt->s_cu_prms; in ihevce_cu_mode_decide()
1598 ps_ctxt->ps_cu_recur_nbr = &ps_ctxt->as_cu_recur_nbr[0]; in ihevce_cu_mode_decide()
1601 if(ps_ctxt->i4_quality_preset >= IHEVCE_QUALITY_P2) in ihevce_cu_mode_decide()
1603 ps_ctxt->ps_enc_out_ctxt->ps_cu_prms = &ps_ctxt->as_cu_prms[rd_opt_best_idx]; in ihevce_cu_mode_decide()
1605 ps_ctxt->ps_cu_recur_nbr = &ps_ctxt->as_cu_nbr[rd_opt_best_idx][0]; in ihevce_cu_mode_decide()
1607 if(ps_ctxt->u1_disable_intra_eval && ps_ctxt->i4_deblk_pad_hpel_cur_pic) in ihevce_cu_mode_decide()
1619 ((ihevce_tile_params_t *)ps_ctxt->pv_tile_params_base + in ihevce_cu_mode_decide()
1620 ps_ctxt->i4_tile_col_idx); in ihevce_cu_mode_decide()
1636 ps_ctxt->pv_dep_mngr_enc_loop_cu_top_right, in ihevce_cu_mode_decide()
1640 ps_ctxt->i4_tile_col_idx, /* Col Tile No. */ in ihevce_cu_mode_decide()
1641 ps_ctxt->thrd_id); in ihevce_cu_mode_decide()
1649 &ps_ctxt->ps_enc_out_ctxt->s_cu_prms, in ihevce_cu_mode_decide()
1650 &ps_ctxt->as_cu_prms[rd_opt_best_idx], in ihevce_cu_mode_decide()
1655 &ps_ctxt->as_cu_recur_nbr[0], in ihevce_cu_mode_decide()
1656 &ps_ctxt->as_cu_nbr[rd_opt_best_idx][0], in ihevce_cu_mode_decide()
1660 ps_ctxt->ps_enc_out_ctxt->ps_cu_prms = &ps_ctxt->ps_enc_out_ctxt->s_cu_prms; in ihevce_cu_mode_decide()
1662 ps_ctxt->ps_cu_recur_nbr = &ps_ctxt->as_cu_recur_nbr[0]; in ihevce_cu_mode_decide()
1666 ps_ctxt->s_pred_buf_data.u4_is_buf_in_use &= in ihevce_cu_mode_decide()
1667 ~((1 << (ps_ctxt->i4_max_num_inter_rdopt_cands + 4)) - 1); in ihevce_cu_mode_decide()
1701 ihevce_enc_loop_ctxt_t *ps_ctxt, in ihevce_enc_loop_process_row() argument
1738 void *pv_dep_mngr_enc_loop_dblk = ps_ctxt->pv_dep_mngr_enc_loop_dblk; in ihevce_enc_loop_process_row()
1739 void *pv_dep_mngr_enc_loop_sao = ps_ctxt->pv_dep_mngr_enc_loop_sao; in ihevce_enc_loop_process_row()
1740 void *pv_dep_mngr_enc_loop_cu_top_right = ps_ctxt->pv_dep_mngr_enc_loop_cu_top_right; in ihevce_enc_loop_process_row()
1748 UWORD8 is_inp_422 = (ps_ctxt->u1_chroma_array_type == 2); in ihevce_enc_loop_process_row()
1755 ps_ctxt->s_sao_ctxt_t.u4_num_ctbs_horz = ps_frm_ctb_prms->i4_num_ctbs_horz; in ihevce_enc_loop_process_row()
1756 ps_ctxt->s_sao_ctxt_t.u4_num_ctbs_vert = ps_frm_ctb_prms->i4_num_ctbs_vert; in ihevce_enc_loop_process_row()
1796 ps_ctxt->u1_cabac_states_next_row_copied_flag = 0; in ihevce_enc_loop_process_row()
1797 ps_ctxt->u1_cabac_states_first_cu_copied_flag = 0; in ihevce_enc_loop_process_row()
1806 ps_ctxt->i4_is_first_cu_qg_coded = 0; in ihevce_enc_loop_process_row()
1812 memcpy(&s_deblk_ctb_row_params, &ps_ctxt->s_deblk_ctbrow_prms, sizeof(deblk_ctbrow_prms_t)); in ihevce_enc_loop_process_row()
1844 ps_ctxt->i4_last_cu_qp_from_prev_ctb = ps_ctxt->i4_frame_qp; in ihevce_enc_loop_process_row()
1866 ps_ctxt->i4_prev_QP = ps_ctxt->i4_last_cu_qp_from_prev_ctb; in ihevce_enc_loop_process_row()
1869 if(ps_ctxt->i4_sub_pic_level_rc) in ihevce_enc_loop_process_row()
1871 ihevce_sub_pic_rc_scale_query((void *)ps_multi_thrd_ctxt, (void *)ps_ctxt); in ihevce_enc_loop_process_row()
1894 ps_ctxt->u4_cur_ctb_ht = cur_ctb_ht; in ihevce_enc_loop_process_row()
1895 ps_ctxt->u4_cur_ctb_wd = cur_ctb_wd; in ihevce_enc_loop_process_row()
1902 if((ps_ctxt->i4_bitrate_instance_num == 0) && in ihevce_enc_loop_process_row()
1903 ((ISLICE != ps_ctxt->i1_slice_type) || L0ME_IN_OPENLOOP_MODE)) in ihevce_enc_loop_process_row()
1912 ps_ctxt->i4_tile_col_idx, /* Col Tile No. */ in ihevce_enc_loop_process_row()
1913 ps_ctxt->thrd_id); in ihevce_enc_loop_process_row()
1922 if(ISLICE != ps_ctxt->i1_slice_type) in ihevce_enc_loop_process_row()
1966 &ps_ctxt->au1_nbr_ctb_map[0][0], in ihevce_enc_loop_process_row()
1973 ps_ctxt->pu1_ctb_nbr_map, in ihevce_enc_loop_process_row()
1974 ps_ctxt->i4_nbr_map_strd, in ihevce_enc_loop_process_row()
1980 ps_ctxt->s_mc_ctxt.i4_ctb_frm_pos_x = ctb_ctr * ctb_size; in ihevce_enc_loop_process_row()
1981 ps_ctxt->s_mc_ctxt.i4_ctb_frm_pos_y = vert_ctr * ctb_size; in ihevce_enc_loop_process_row()
1984 ps_ctxt->s_mv_pred_ctxt.i4_ctb_x = ctb_ctr; in ihevce_enc_loop_process_row()
1985 ps_ctxt->s_mv_pred_ctxt.i4_ctb_y = vert_ctr; in ihevce_enc_loop_process_row()
1988 if(ps_ctxt->i4_deblk_pad_hpel_cur_pic) in ihevce_enc_loop_process_row()
1990 ihevce_bs_init_ctb(&ps_ctxt->s_deblk_bs_prms, ps_frm_ctb_prms, ctb_ctr, vert_ctr); in ihevce_enc_loop_process_row()
1994 ihevce_entropy_rdo_ctb_init(&ps_ctxt->s_rdopt_entropy_ctxt, ctb_ctr, vert_ctr); in ihevce_enc_loop_process_row()
2007 if(ps_ctxt->i4_bitrate_instance_num == 0) in ihevce_enc_loop_process_row()
2014 &ps_ctxt->au1_rdopt_recur_ctxt_models[i][0], in ihevce_enc_loop_process_row()
2015 &ps_ctxt->s_rdopt_entropy_ctxt.au1_init_cabac_ctxt_states[0], in ihevce_enc_loop_process_row()
2020 if(ps_ctxt->i4_bitrate_instance_num == 0) in ihevce_enc_loop_process_row()
2022 if(ps_ctxt->i4_quality_preset < IHEVCE_QUALITY_P2) in ihevce_enc_loop_process_row()
2029 &ps_ctxt->au1_rdopt_recur_ctxt_models[i][0], in ihevce_enc_loop_process_row()
2030 &ps_ctxt->s_rdopt_entropy_ctxt.au1_init_cabac_ctxt_states[0], in ihevce_enc_loop_process_row()
2037 if(ps_ctxt->i4_bitrate_instance_num == 0) in ihevce_enc_loop_process_row()
2040 if(ISLICE == ps_ctxt->i1_slice_type) in ihevce_enc_loop_process_row()
2049 (IHEVCE_QUALITY_CONFIG_T)ps_ctxt->i4_quality_preset, in ihevce_enc_loop_process_row()
2056 ps_ctxt->ps_enc_out_ctxt = &ps_ctxt->as_enc_cu_ctxt[0]; in ihevce_enc_loop_process_row()
2057 ps_ctxt->pu1_ecd_data = pu1_row_ecd_data; in ihevce_enc_loop_process_row()
2071 if(ps_ctxt->u1_enable_psyRDOPT) in ihevce_enc_loop_process_row()
2095 is_hbd = ps_ctxt->u1_is_input_data_hbd; in ihevce_enc_loop_process_row()
2129 ps_ctxt->ai4_source_satd_8x8[index_satd] = in ihevce_enc_loop_process_row()
2131 ps_ctxt->s_cmn_opt_func.pf_AC_HAD_8x8_8bit( in ihevce_enc_loop_process_row()
2143 if(ps_ctxt->u1_enable_psyRDOPT) in ihevce_enc_loop_process_row()
2163 is_hbd = ps_ctxt->u1_is_input_data_hbd; // 8 bit in ihevce_enc_loop_process_row()
2168 if(ps_ctxt->u1_chroma_array_type == 1) in ihevce_enc_loop_process_row()
2223 ps_ctxt->ai4_source_chroma_satd[index_satd] = in ihevce_enc_loop_process_row()
2224 ps_ctxt->s_cmn_opt_func.pf_chroma_AC_HAD_4x4_8bit( in ihevce_enc_loop_process_row()
2243 ps_ctxt, in ihevce_enc_loop_process_row()
2258 if(ps_ctxt->i1_slice_type != ISLICE) in ihevce_enc_loop_process_row()
2265 if(1 == ps_ctxt->i4_sub_pic_level_rc) in ihevce_enc_loop_process_row()
2270 (void *)ps_ctxt, in ihevce_enc_loop_process_row()
2275 ps_ctxt->ps_enc_out_ctxt->u1_cu_size = 128; in ihevce_enc_loop_process_row()
2281 ihevce_enc_cu_node_ctxt_t *ps_enc_out_ctxt = &ps_ctxt->as_enc_cu_ctxt[0]; in ihevce_enc_loop_process_row()
2283 ps_ctxt->pu1_ecd_data = pu1_row_ecd_data; in ihevce_enc_loop_process_row()
2288 ps_ctxt, in ihevce_enc_loop_process_row()
2304 if(ps_ctxt->i4_quality_preset < IHEVCE_QUALITY_P2) in ihevce_enc_loop_process_row()
2306 ihevce_enc_cu_node_ctxt_t *ps_enc_out_ctxt = &ps_ctxt->as_enc_cu_ctxt[0]; in ihevce_enc_loop_process_row()
2308 ps_ctxt->pu1_ecd_data = pu1_row_ecd_data; in ihevce_enc_loop_process_row()
2313 ps_ctxt, in ihevce_enc_loop_process_row()
2331 ((pf_enc_loop_ctb_left_copy)ps_ctxt->pv_enc_loop_ctb_left_copy)(ps_ctxt, &s_cu_prms); in ihevce_enc_loop_process_row()
2333 if(ps_ctxt->i4_deblk_pad_hpel_cur_pic) in ihevce_enc_loop_process_row()
2337 &ps_ctxt->s_deblk_bs_prms, in ihevce_enc_loop_process_row()
2345 if((0 == ps_ctxt->i4_deblock_type) && (ps_ctxt->i4_deblk_pad_hpel_cur_pic)) in ihevce_enc_loop_process_row()
2348 UWORD32 *pu4_bs_horz = &ps_ctxt->s_deblk_bs_prms.au4_horz_bs[0]; in ihevce_enc_loop_process_row()
2349 UWORD32 *pu4_bs_vert = &ps_ctxt->s_deblk_bs_prms.au4_vert_bs[0]; in ihevce_enc_loop_process_row()
2390 ps_ctxt->i4_tile_col_idx /* Col Tile No. */); in ihevce_enc_loop_process_row()
2392 ps_ctxt->s_sao_ctxt_t.ps_cmn_utils_optimised_function_list = &ps_ctxt->s_cmn_opt_func; in ihevce_enc_loop_process_row()
2396 memcpy(&s_deblk_ctb_row_params, &ps_ctxt->s_deblk_ctbrow_prms, sizeof(deblk_ctbrow_prms_t)); in ihevce_enc_loop_process_row()
2411 if(!ps_ctxt->u1_is_input_data_hbd) in ihevce_enc_loop_process_row()
2450 if(ps_ctxt->i4_deblk_pad_hpel_cur_pic) in ihevce_enc_loop_process_row()
2463 ps_ctxt->i4_tile_col_idx, /* Col Tile No. */ in ihevce_enc_loop_process_row()
2464 ps_ctxt->thrd_id); in ihevce_enc_loop_process_row()
2466 if((0 == ps_ctxt->i4_deblock_type)) in ihevce_enc_loop_process_row()
2472 ps_ctxt, in ihevce_enc_loop_process_row()
2479 ps_ctxt->s_deblk_prms.i4_ctb_size = ctb_size; in ihevce_enc_loop_process_row()
2482 ps_ctxt->s_deblk_prms.pu1_ctb_y = s_cu_prms.pu1_luma_recon; in ihevce_enc_loop_process_row()
2483 ps_ctxt->s_deblk_prms.pu1_ctb_uv = s_cu_prms.pu1_chrm_recon; in ihevce_enc_loop_process_row()
2484 ps_ctxt->s_deblk_prms.i4_luma_pic_stride = s_cu_prms.i4_luma_recon_stride; in ihevce_enc_loop_process_row()
2485 ps_ctxt->s_deblk_prms.i4_chroma_pic_stride = s_cu_prms.i4_chrm_recon_stride; in ihevce_enc_loop_process_row()
2487 ps_ctxt->s_deblk_prms.i4_deblock_top_ctb_edge = (0 == vert_ctr) ? 0 : 1; in ihevce_enc_loop_process_row()
2489 ps_ctxt->s_deblk_prms.i4_deblock_top_ctb_edge = in ihevce_enc_loop_process_row()
2492 ps_ctxt->s_deblk_prms.i4_deblock_left_ctb_edge = (ctb_start == ctb_ctr) ? 0 : 1; in ihevce_enc_loop_process_row()
2496 &ps_ctxt->s_deblk_prms, last_col_tile, &s_deblk_ctb_row_params); in ihevce_enc_loop_process_row()
2513 ps_ctxt->i4_tile_col_idx /* Col Tile No. */); in ihevce_enc_loop_process_row()
2520 if(ps_ctxt->s_sao_ctxt_t.ps_slice_hdr->i1_slice_sao_luma_flag || in ihevce_enc_loop_process_row()
2521 ps_ctxt->s_sao_ctxt_t.ps_slice_hdr->i1_slice_sao_chroma_flag) in ihevce_enc_loop_process_row()
2523 sao_ctxt_t *ps_sao_ctxt = &ps_ctxt->s_sao_ctxt_t; in ihevce_enc_loop_process_row()
2538 ps_ctxt->i4_tile_col_idx, /* Col Tile No. */ in ihevce_enc_loop_process_row()
2539 ps_ctxt->thrd_id); in ihevce_enc_loop_process_row()
2577 (ctb_size >> (ps_ctxt->u1_chroma_array_type == 1))) + in ihevce_enc_loop_process_row()
2593 (ctb_size >> (ps_ctxt->u1_chroma_array_type == 1))) + in ihevce_enc_loop_process_row()
2602 &ps_sao_ctxt->aps_frm_top_ctb_sao[ps_ctxt->i4_enc_frm_id] in ihevce_enc_loop_process_row()
2606 (ps_ctxt->i4_bitrate_instance_num * in ihevce_enc_loop_process_row()
2611 ps_sao_ctxt->apu1_sao_src_frm_top_luma[ps_ctxt->i4_enc_frm_id] + in ihevce_enc_loop_process_row()
2614 ps_ctxt->i4_bitrate_instance_num * (ps_sao_ctxt->i4_top_luma_buf_size + in ihevce_enc_loop_process_row()
2619 ps_sao_ctxt->apu1_sao_src_frm_top_chroma[ps_ctxt->i4_enc_frm_id] + in ihevce_enc_loop_process_row()
2622 ps_ctxt->i4_bitrate_instance_num * (ps_sao_ctxt->i4_top_luma_buf_size + in ihevce_enc_loop_process_row()
2629 &ps_ctxt->s_sao_ctxt_t, in ihevce_enc_loop_process_row()
2633 ps_ctxt in ihevce_enc_loop_process_row()
2634 ->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id] in ihevce_enc_loop_process_row()
2635 [ps_ctxt->i4_bitrate_instance_num] in ihevce_enc_loop_process_row()
2637 ps_ctxt in ihevce_enc_loop_process_row()
2638 ->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id] in ihevce_enc_loop_process_row()
2639 [ps_ctxt->i4_bitrate_instance_num] in ihevce_enc_loop_process_row()
2643 if(ps_ctxt->i4_deblk_pad_hpel_cur_pic) in ihevce_enc_loop_process_row()
2651 ps_ctxt->ps_func_selector); in ihevce_enc_loop_process_row()
2658 ps_ctxt->i4_tile_col_idx /* Col Tile No. */); in ihevce_enc_loop_process_row()
2663 if(ps_ctxt->i4_deblk_pad_hpel_cur_pic) in ihevce_enc_loop_process_row()
2671 ps_ctxt->ps_func_selector); in ihevce_enc_loop_process_row()
2677 if(ps_ctxt->s_sao_ctxt_t.ps_slice_hdr->i1_slice_sao_luma_flag || in ihevce_enc_loop_process_row()
2678 ps_ctxt->s_sao_ctxt_t.ps_slice_hdr->i1_slice_sao_chroma_flag) in ihevce_enc_loop_process_row()
2680 sao_ctxt_t *ps_sao_ctxt = &ps_ctxt->s_sao_ctxt_t; in ihevce_enc_loop_process_row()
2688 ps_ctxt->s_sao_ctxt_t.i4_ctb_x = ctb_ctr; in ihevce_enc_loop_process_row()
2691 ps_ctxt->s_sao_ctxt_t.i4_ctb_y = vert_ctr; in ihevce_enc_loop_process_row()
2693 ps_ctb_out_sao = ps_ctxt->s_sao_ctxt_t.ps_ctb_out + in ihevce_enc_loop_process_row()
2696 ps_ctxt->s_sao_ctxt_t.ps_sao = &ps_ctb_out_sao->s_sao; in ihevce_enc_loop_process_row()
2698 ps_ctxt->s_sao_ctxt_t.i4_sao_blk_wd = ps_ctxt->s_sao_ctxt_t.i4_ctb_size; in ihevce_enc_loop_process_row()
2699 ps_ctxt->s_sao_ctxt_t.i4_is_last_ctb_col = 0; in ihevce_enc_loop_process_row()
2703 ps_ctxt->s_sao_ctxt_t.i4_is_last_ctb_col = 1; in ihevce_enc_loop_process_row()
2704 ps_ctxt->s_sao_ctxt_t.i4_sao_blk_wd = in ihevce_enc_loop_process_row()
2709 ps_ctxt->s_sao_ctxt_t.i4_sao_blk_ht = in ihevce_enc_loop_process_row()
2713 ps_ctxt->s_sao_ctxt_t.i4_is_last_ctb_row = 1; in ihevce_enc_loop_process_row()
2726 (ctb_size >> (ps_ctxt->u1_chroma_array_type == 1))) + in ihevce_enc_loop_process_row()
2742 (ctb_size >> (ps_ctxt->u1_chroma_array_type == 1))) + in ihevce_enc_loop_process_row()
2751 &ps_sao_ctxt->aps_frm_top_ctb_sao[ps_ctxt->i4_enc_frm_id] in ihevce_enc_loop_process_row()
2755 (ps_ctxt->i4_bitrate_instance_num * in ihevce_enc_loop_process_row()
2760 ps_sao_ctxt->apu1_sao_src_frm_top_luma[ps_ctxt->i4_enc_frm_id] + in ihevce_enc_loop_process_row()
2763 ps_ctxt->i4_bitrate_instance_num * (ps_sao_ctxt->i4_top_luma_buf_size + in ihevce_enc_loop_process_row()
2768 ps_sao_ctxt->apu1_sao_src_frm_top_chroma[ps_ctxt->i4_enc_frm_id] + in ihevce_enc_loop_process_row()
2771 ps_ctxt->i4_bitrate_instance_num * (ps_sao_ctxt->i4_top_luma_buf_size + in ihevce_enc_loop_process_row()
2777 &ps_ctxt->s_sao_ctxt_t, in ihevce_enc_loop_process_row()
2781 ps_ctxt in ihevce_enc_loop_process_row()
2782 ->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id] in ihevce_enc_loop_process_row()
2783 [ps_ctxt->i4_bitrate_instance_num] in ihevce_enc_loop_process_row()
2785 ps_ctxt in ihevce_enc_loop_process_row()
2786 ->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id] in ihevce_enc_loop_process_row()
2787 [ps_ctxt->i4_bitrate_instance_num] in ihevce_enc_loop_process_row()
2791 if(ps_ctxt->i4_deblk_pad_hpel_cur_pic) in ihevce_enc_loop_process_row()
2799 ps_ctxt->ps_func_selector); in ihevce_enc_loop_process_row()
2808 if(ps_ctxt->s_sao_ctxt_t.ps_slice_hdr->i1_slice_sao_luma_flag || in ihevce_enc_loop_process_row()
2809 ps_ctxt->s_sao_ctxt_t.ps_slice_hdr->i1_slice_sao_chroma_flag) in ihevce_enc_loop_process_row()
2814 if(ps_ctxt->i4_deblk_pad_hpel_cur_pic) in ihevce_enc_loop_process_row()
2821 ps_ctxt->i4_quality_preset, in ihevce_enc_loop_process_row()
2823 ps_ctxt->ai2_scratch, in ihevce_enc_loop_process_row()
2824 ps_ctxt->i4_bitrate_instance_num, in ihevce_enc_loop_process_row()
2825 ps_ctxt->ps_func_selector); in ihevce_enc_loop_process_row()
2831 if(ps_ctxt->i4_deblk_pad_hpel_cur_pic) in ihevce_enc_loop_process_row()
2838 ps_ctxt->i4_quality_preset, in ihevce_enc_loop_process_row()
2840 ps_ctxt->ai2_scratch, in ihevce_enc_loop_process_row()
2841 ps_ctxt->i4_bitrate_instance_num, in ihevce_enc_loop_process_row()
2842 ps_ctxt->ps_func_selector); in ihevce_enc_loop_process_row()
2848 if(!ps_ctxt->i4_bitrate_instance_num) in ihevce_enc_loop_process_row()
2850 if(ps_ctxt->s_sao_ctxt_t.ps_slice_hdr->i1_slice_sao_luma_flag || in ihevce_enc_loop_process_row()
2851 ps_ctxt->s_sao_ctxt_t.ps_slice_hdr->i1_slice_sao_chroma_flag) in ihevce_enc_loop_process_row()
2889 if(ps_ctxt->s_sao_ctxt_t.ps_slice_hdr->i1_slice_sao_luma_flag || in ihevce_enc_loop_process_row()
2890 ps_ctxt->s_sao_ctxt_t.ps_slice_hdr->i1_slice_sao_chroma_flag) in ihevce_enc_loop_process_row()
2892 sao_ctxt_t *ps_sao_ctxt = &ps_ctxt->s_sao_ctxt_t; in ihevce_enc_loop_process_row()
2899 if(ps_ctxt->i4_deblk_pad_hpel_cur_pic) in ihevce_enc_loop_process_row()
2906 ps_ctxt->i4_quality_preset, in ihevce_enc_loop_process_row()
2908 ps_ctxt->ai2_scratch, in ihevce_enc_loop_process_row()
2909 ps_ctxt->i4_bitrate_instance_num, in ihevce_enc_loop_process_row()
2910 ps_ctxt->ps_func_selector); in ihevce_enc_loop_process_row()
2918 if(!ps_ctxt->i4_bitrate_instance_num) in ihevce_enc_loop_process_row()
2999 ihevce_enc_loop_ctxt_t *ps_ctxt = ps_master_ctxt->aps_enc_loop_thrd_ctxt[thrd_id]; in ihevce_enc_loop_process() local
3001 WORD32 i4_bitrate_instance_num = ps_ctxt->i4_bitrate_instance_num; in ihevce_enc_loop_process()
3004 ps_ctxt->i8_cl_ssd_lambda_qf = ps_frm_lamda->i8_cl_ssd_lambda_qf; in ihevce_enc_loop_process()
3005 ps_ctxt->i8_cl_ssd_lambda_chroma_qf = ps_frm_lamda->i8_cl_ssd_lambda_chroma_qf; in ihevce_enc_loop_process()
3006 ps_ctxt->u4_chroma_cost_weighing_factor = ps_frm_lamda->u4_chroma_cost_weighing_factor; in ihevce_enc_loop_process()
3007 ps_ctxt->i4_satd_lamda = ps_frm_lamda->i4_cl_satd_lambda_qf; in ihevce_enc_loop_process()
3008 ps_ctxt->i4_sad_lamda = ps_frm_lamda->i4_cl_sad_type2_lambda_qf; in ihevce_enc_loop_process()
3009 ps_ctxt->thrd_id = thrd_id; in ihevce_enc_loop_process()
3010 ps_ctxt->u1_is_refPic = ps_curr_inp->s_lap_out.i4_is_ref_pic; in ihevce_enc_loop_process()
3013 ps_ctxt->s_sao_ctxt_t.ps_ctb_data = ps_ctb_in; in ihevce_enc_loop_process()
3014 ps_ctxt->s_sao_ctxt_t.i4_ctb_data_stride = ps_frm_ctb_prms->i4_num_ctbs_horz; in ihevce_enc_loop_process()
3018 ps_ctxt->pv_err_func_selector = ps_func_selector; in ihevce_enc_loop_process()
3024 ps_ctxt->i4_deblk_pad_hpel_cur_pic = in ihevce_enc_loop_process()
3026 ((ps_ctxt->s_sao_ctxt_t.ps_slice_hdr->i1_slice_sao_luma_flag || in ihevce_enc_loop_process()
3027 ps_ctxt->s_sao_ctxt_t.ps_slice_hdr->i1_slice_sao_chroma_flag) in ihevce_enc_loop_process()
3032 ps_ctxt->i4_share_flag = (ps_frm_recon->i4_is_reference != 0); in ihevce_enc_loop_process()
3033 ps_ctxt->pv_frm_recon = (void *)ps_frm_recon; in ihevce_enc_loop_process()
3036 ps_ctxt->s_sao_ctxt_t.i8_cl_ssd_lambda_qf = ps_frm_lamda->i8_cl_ssd_lambda_qf; in ihevce_enc_loop_process()
3037 ps_ctxt->s_sao_ctxt_t.i8_cl_ssd_lambda_chroma_qf = ps_frm_lamda->i8_cl_ssd_lambda_chroma_qf; in ihevce_enc_loop_process()
3040 ps_ctxt, in ihevce_enc_loop_process()
3042 (WORD32)ps_ctxt->i1_slice_type, in ihevce_enc_loop_process()
3046 ps_ctxt->u1_disable_intra_eval = DISABLE_INTRA_IN_BPICS && in ihevce_enc_loop_process()
3047 (IHEVCE_QUALITY_P6 == ps_ctxt->i4_quality_preset) && in ihevce_enc_loop_process()
3048 (ps_ctxt->i4_temporal_layer_id > TEMPORAL_LAYER_DISABLE); in ihevce_enc_loop_process()
3065 s_pad_interp_recon.u1_chroma_array_type = ps_ctxt->u1_chroma_array_type; in ihevce_enc_loop_process()
3085 UWORD8 is_inp_422 = (ps_ctxt->u1_chroma_array_type == 2); in ihevce_enc_loop_process()
3092 ps_ctxt->s_sao_ctxt_t.ps_ctb_out = ps_ctb_out; in ihevce_enc_loop_process()
3134 ps_ctxt->i4_tile_col_idx = tile_col_idx; in ihevce_enc_loop_process()
3149 if(!ps_ctxt->u1_is_input_data_hbd) in ihevce_enc_loop_process()
3168 if(!ps_ctxt->u1_is_input_data_hbd) in ihevce_enc_loop_process()
3183 ps_ctxt->s_sao_ctxt_t.pu1_frm_luma_src_buf = in ihevce_enc_loop_process()
3189 ps_ctxt->s_sao_ctxt_t.i4_frm_luma_src_stride = in ihevce_enc_loop_process()
3192 ps_ctxt->s_sao_ctxt_t.pu1_frm_chroma_src_buf = in ihevce_enc_loop_process()
3195 ps_ctxt->s_sao_ctxt_t.i4_frm_chroma_src_stride = in ihevce_enc_loop_process()
3267 ps_ctxt->pv_dep_mngr_enc_loop_cu_top_right = in ihevce_enc_loop_process()
3268 ps_master_ctxt->aapv_dep_mngr_enc_loop_cu_top_right[ps_ctxt->i4_enc_frm_id] in ihevce_enc_loop_process()
3271 ps_ctxt->pv_dep_mngr_enc_loop_dblk = in ihevce_enc_loop_process()
3273 ->aapv_dep_mngr_enc_loop_dblk[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num]; in ihevce_enc_loop_process()
3275 ps_ctxt->pv_dep_mngr_enc_loop_sao = in ihevce_enc_loop_process()
3277 ->aapv_dep_mngr_enc_loop_sao[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num]; in ihevce_enc_loop_process()
3279 ps_ctxt->pu1_curr_row_cabac_state = &ps_master_ctxt->au1_ctxt_models[vert_ctr][0]; in ihevce_enc_loop_process()
3283 ps_ctxt->pv_top_row_luma = in ihevce_enc_loop_process()
3284 (UWORD8 *)ps_ctxt->apv_frm_top_row_luma[ps_ctxt->i4_enc_frm_id] + in ihevce_enc_loop_process()
3285 (ps_ctxt->i4_frm_top_row_luma_size * ps_ctxt->i4_bitrate_instance_num) + in ihevce_enc_loop_process()
3286 (vert_ctr - 1) * ps_ctxt->i4_top_row_luma_stride; in ihevce_enc_loop_process()
3288 ps_ctxt->pv_top_row_chroma = in ihevce_enc_loop_process()
3289 (UWORD8 *)ps_ctxt->apv_frm_top_row_chroma[ps_ctxt->i4_enc_frm_id] + in ihevce_enc_loop_process()
3290 (ps_ctxt->i4_frm_top_row_chroma_size * ps_ctxt->i4_bitrate_instance_num) + in ihevce_enc_loop_process()
3291 (vert_ctr - 1) * ps_ctxt->i4_top_row_chroma_stride; in ihevce_enc_loop_process()
3294 ps_ctxt->pv_bot_row_luma = in ihevce_enc_loop_process()
3295 (UWORD8 *)ps_ctxt->apv_frm_top_row_luma[ps_ctxt->i4_enc_frm_id] + in ihevce_enc_loop_process()
3296 (ps_ctxt->i4_frm_top_row_luma_size * ps_ctxt->i4_bitrate_instance_num) + in ihevce_enc_loop_process()
3297 (vert_ctr)*ps_ctxt->i4_top_row_luma_stride; in ihevce_enc_loop_process()
3299 ps_ctxt->pv_bot_row_chroma = in ihevce_enc_loop_process()
3300 (UWORD8 *)ps_ctxt->apv_frm_top_row_chroma[ps_ctxt->i4_enc_frm_id] + in ihevce_enc_loop_process()
3301 (ps_ctxt->i4_frm_top_row_chroma_size * ps_ctxt->i4_bitrate_instance_num) + in ihevce_enc_loop_process()
3302 (vert_ctr)*ps_ctxt->i4_top_row_chroma_stride; in ihevce_enc_loop_process()
3305 ps_ctxt->s_sao_ctxt_t.pu1_frm_luma_recon_buf = in ihevce_enc_loop_process()
3307 ps_ctxt->s_sao_ctxt_t.i4_frm_luma_recon_stride = in ihevce_enc_loop_process()
3310 ps_ctxt->s_sao_ctxt_t.pu1_frm_chroma_recon_buf = in ihevce_enc_loop_process()
3312 ps_ctxt->s_sao_ctxt_t.i4_frm_chroma_recon_stride = in ihevce_enc_loop_process()
3315 ps_ctxt->s_sao_ctxt_t.ps_rdopt_entropy_ctxt = &ps_ctxt->s_rdopt_entropy_ctxt; in ihevce_enc_loop_process()
3317 ps_ctxt->s_sao_ctxt_t.i4_frm_top_luma_buf_stride = in ihevce_enc_loop_process()
3318 ps_ctxt->s_sao_ctxt_t.u4_ctb_aligned_wd + 1; in ihevce_enc_loop_process()
3320 ps_ctxt->s_sao_ctxt_t.i4_frm_top_chroma_buf_stride = in ihevce_enc_loop_process()
3321 ps_ctxt->s_sao_ctxt_t.u4_ctb_aligned_wd + 2; in ihevce_enc_loop_process()
3324 ps_ctxt->ps_top_row_nbr = in ihevce_enc_loop_process()
3325 ps_ctxt->aps_frm_top_row_nbr[ps_ctxt->i4_enc_frm_id] + in ihevce_enc_loop_process()
3326 (ps_ctxt->i4_frm_top_row_nbr_size * ps_ctxt->i4_bitrate_instance_num) + in ihevce_enc_loop_process()
3327 (vert_ctr - 1) * ps_ctxt->i4_top_row_nbr_stride; in ihevce_enc_loop_process()
3329 ps_ctxt->ps_bot_row_nbr = in ihevce_enc_loop_process()
3330 ps_ctxt->aps_frm_top_row_nbr[ps_ctxt->i4_enc_frm_id] + in ihevce_enc_loop_process()
3331 (ps_ctxt->i4_frm_top_row_nbr_size * ps_ctxt->i4_bitrate_instance_num) + in ihevce_enc_loop_process()
3332 (vert_ctr)*ps_ctxt->i4_top_row_nbr_stride; in ihevce_enc_loop_process()
3336 ps_ctxt->pu1_top_rt_cabac_state = &ps_master_ctxt->au1_ctxt_models[vert_ctr - 1][0]; in ihevce_enc_loop_process()
3340 ps_ctxt->pu1_top_rt_cabac_state = NULL; in ihevce_enc_loop_process()
3344 ps_ctxt->s_rdopt_entropy_ctxt.as_cu_entropy_ctxt[0] in ihevce_enc_loop_process()
3346 ps_ctxt->s_rdopt_entropy_ctxt.as_cu_entropy_ctxt[1] in ihevce_enc_loop_process()
3351 ps_ctxt, in ihevce_enc_loop_process()
3371 ps_ctxt->pv_dep_mngr_encloop_dep_me, in ihevce_enc_loop_process()
4296 ihevce_enc_loop_ctxt_t *ps_ctxt; in ihevce_enc_loop_init() local
4319 ps_ctxt = (ihevce_enc_loop_ctxt_t *)ps_mem_tab[ENC_LOOP_THRDS_CTXT].pv_base; in ihevce_enc_loop_init()
4321 ps_ctxt->ps_rc_quant_ctxt = ps_rc_quant_ctxt; in ihevce_enc_loop_init()
4371 ps_master_ctxt->aps_enc_loop_thrd_ctxt[ctr] = ps_ctxt; in ihevce_enc_loop_init()
4373 ps_ctxt->pv_tile_params_base = (void *)ps_tile_params_base; in ihevce_enc_loop_init()
4375 &ps_ctxt->s_cmn_opt_func, u1_is_popcnt_available, ps_init_prms->e_arch_type); in ihevce_enc_loop_init()
4377 (FT_SAD_EVALUATOR **)(&ps_ctxt->pv_evalsad_pt_npu_mxn_8bit), ps_init_prms->e_arch_type); in ihevce_enc_loop_init()
4378 ps_ctxt->i4_max_search_range_horizontal = in ihevce_enc_loop_init()
4380 ps_ctxt->i4_max_search_range_vertical = in ihevce_enc_loop_init()
4383 ps_ctxt->i4_quality_preset = in ihevce_enc_loop_init()
4386 if(ps_ctxt->i4_quality_preset == IHEVCE_QUALITY_P7) in ihevce_enc_loop_init()
4388 ps_ctxt->i4_quality_preset = IHEVCE_QUALITY_P6; in ihevce_enc_loop_init()
4391 ps_ctxt->i4_num_proc_thrds = ps_master_ctxt->i4_num_proc_thrds; in ihevce_enc_loop_init()
4393 ps_ctxt->i4_rc_pass = ps_init_prms->s_pass_prms.i4_pass; in ihevce_enc_loop_init()
4395 ps_ctxt->u1_chroma_array_type = (i4_chroma_format == IV_YUV_422SP_UV) ? 2 : 1; in ihevce_enc_loop_init()
4397 ps_ctxt->s_deblk_prms.u1_chroma_array_type = ps_ctxt->u1_chroma_array_type; in ihevce_enc_loop_init()
4399 ps_ctxt->pi2_scal_mat = (WORD16 *)ps_mem_tab[ENC_LOOP_SCALE_MAT].pv_base; in ihevce_enc_loop_init()
4401 ps_ctxt->pi2_rescal_mat = (WORD16 *)ps_mem_tab[ENC_LOOP_RESCALE_MAT].pv_base; in ihevce_enc_loop_init()
4403 if(ps_ctxt->i4_quality_preset < IHEVCE_QUALITY_P2) in ihevce_enc_loop_init()
4405 ps_ctxt->i4_use_ctb_level_lamda = 0; in ihevce_enc_loop_init()
4409 ps_ctxt->i4_use_ctb_level_lamda = 0; in ihevce_enc_loop_init()
4413 ps_ctxt->ps_func_selector = ps_func_selector; in ihevce_enc_loop_init()
4415 ps_ctxt->s_mc_ctxt.ps_func_selector = ps_func_selector; in ihevce_enc_loop_init()
4418 ps_ctxt->s_mc_ctxt.ai4_tile_xtra_pel[0] = 0; in ihevce_enc_loop_init()
4419 ps_ctxt->s_mc_ctxt.ai4_tile_xtra_pel[1] = 0; in ihevce_enc_loop_init()
4420 ps_ctxt->s_mc_ctxt.ai4_tile_xtra_pel[2] = 0; in ihevce_enc_loop_init()
4421 ps_ctxt->s_mc_ctxt.ai4_tile_xtra_pel[3] = 0; in ihevce_enc_loop_init()
4423 ps_ctxt->s_deblk_prms.ps_func_selector = ps_func_selector; in ihevce_enc_loop_init()
4424 ps_ctxt->i4_top_row_luma_stride = (u4_width + MAX_CU_SIZE + 1); in ihevce_enc_loop_init()
4426 ps_ctxt->i4_frm_top_row_luma_size = in ihevce_enc_loop_init()
4427 ps_ctxt->i4_top_row_luma_stride * (u4_ctb_rows_in_a_frame + 1); in ihevce_enc_loop_init()
4429 ps_ctxt->i4_top_row_chroma_stride = (u4_width + MAX_CU_SIZE + 2); in ihevce_enc_loop_init()
4431 ps_ctxt->i4_frm_top_row_chroma_size = in ihevce_enc_loop_init()
4432 ps_ctxt->i4_top_row_chroma_stride * (u4_ctb_rows_in_a_frame + 1); in ihevce_enc_loop_init()
4438 ps_ctxt->apv_frm_top_row_luma[i4_enc_frm_id] = in ihevce_enc_loop_init()
4440 (ps_ctxt->i4_frm_top_row_luma_size * i4_enc_frm_id * i4_num_bitrate_inst); in ihevce_enc_loop_init()
4443 ps_ctxt->apv_frm_top_row_luma[i4_enc_frm_id] = in ihevce_enc_loop_init()
4444 (UWORD8 *)ps_ctxt->apv_frm_top_row_luma[i4_enc_frm_id] + in ihevce_enc_loop_init()
4445 ps_ctxt->i4_top_row_luma_stride; in ihevce_enc_loop_init()
4448 ps_ctxt->apv_frm_top_row_chroma[i4_enc_frm_id] = in ihevce_enc_loop_init()
4450 (ps_ctxt->i4_frm_top_row_chroma_size * i4_enc_frm_id * i4_num_bitrate_inst); in ihevce_enc_loop_init()
4453 ps_ctxt->apv_frm_top_row_chroma[i4_enc_frm_id] = in ihevce_enc_loop_init()
4454 (UWORD8 *)ps_ctxt->apv_frm_top_row_chroma[i4_enc_frm_id] + in ihevce_enc_loop_init()
4455 ps_ctxt->i4_top_row_chroma_stride; in ihevce_enc_loop_init()
4460 ps_ctxt->i4_top_row_nbr_stride = (((u4_width + MAX_CU_SIZE) >> 2) + 1); in ihevce_enc_loop_init()
4461 ps_ctxt->i4_frm_top_row_nbr_size = in ihevce_enc_loop_init()
4462 ps_ctxt->i4_top_row_nbr_stride * (u4_ctb_rows_in_a_frame + 1); in ihevce_enc_loop_init()
4465 ps_ctxt->aps_frm_top_row_nbr[i4_enc_frm_id] = in ihevce_enc_loop_init()
4467 (ps_ctxt->i4_frm_top_row_nbr_size * i4_enc_frm_id * i4_num_bitrate_inst); in ihevce_enc_loop_init()
4468 ps_ctxt->aps_frm_top_row_nbr[i4_enc_frm_id] += ps_ctxt->i4_top_row_nbr_stride; in ihevce_enc_loop_init()
4495 ps_ctxt->as_cu_prms[i].pu1_cu_coeffs = in ihevce_enc_loop_init()
4500 ((LWORD64)ps_ctxt->as_cu_prms[i].pu1_cu_coeffs & 0xf); in ihevce_enc_loop_init()
4502 ps_ctxt->as_cu_prms[i].pu1_cu_coeffs += (16 - i4_16byte_boundary_overshoot); in ihevce_enc_loop_init()
4506 ps_ctxt->pu1_cu_recur_coeffs = in ihevce_enc_loop_init()
4527 ps_ctxt->as_cu_prms[i].pi2_cu_deq_coeffs = in ihevce_enc_loop_init()
4532 ((LWORD64)ps_ctxt->as_cu_prms[i].pi2_cu_deq_coeffs & 0xf); in ihevce_enc_loop_init()
4534 ps_ctxt->as_cu_prms[i].pi2_cu_deq_coeffs = in ihevce_enc_loop_init()
4536 … *)((UWORD8 *)ps_ctxt->as_cu_prms[i].pi2_cu_deq_coeffs + (16 - i4_16byte_boundary_overshoot)); in ihevce_enc_loop_init()
4544 ps_ctxt->s_deblk_ctbrow_prms.u4_qp_top_4x4_buf_strd = (MAX_CTB_SIZE / 4) * u4_ctb_in_a_row; in ihevce_enc_loop_init()
4546 ps_ctxt->s_deblk_ctbrow_prms.u4_qp_top_4x4_buf_size = in ihevce_enc_loop_init()
4547 ps_ctxt->s_deblk_ctbrow_prms.u4_qp_top_4x4_buf_strd * u4_ctb_rows_in_a_frame; in ihevce_enc_loop_init()
4553 ps_ctxt->s_deblk_ctbrow_prms.api1_qp_top_4x4_ctb_row[i4_enc_frm_id] = in ihevce_enc_loop_init()
4555 (ps_ctxt->s_deblk_ctbrow_prms.u4_qp_top_4x4_buf_size * i4_num_bitrate_inst * in ihevce_enc_loop_init()
4559 ps_ctxt->s_deblk_ctbrow_prms.pu4_ctb_row_bs_vert = (UWORD32 *)pu1_deblk_base; in ihevce_enc_loop_init()
4561 ps_ctxt->s_deblk_ctbrow_prms.pu4_ctb_row_bs_horz = in ihevce_enc_loop_init()
4564 ps_ctxt->s_deblk_ctbrow_prms.pi1_ctb_row_qp = (WORD8 *)pu1_deblk_base + u4_size_bs_memory; in ihevce_enc_loop_init()
4567 ps_ctxt->s_deblk_ctbrow_prms.u4_qp_buffer_stride = (MAX_CTB_SIZE / 4) * u4_ctb_in_a_row; in ihevce_enc_loop_init()
4577 ps_ctxt->s_sao_ctxt_t.i4_top_luma_buf_size = in ihevce_enc_loop_init()
4579 ps_ctxt->s_sao_ctxt_t.i4_top_chroma_buf_size = in ihevce_enc_loop_init()
4581 ps_ctxt->s_sao_ctxt_t.i4_num_ctb_units = in ihevce_enc_loop_init()
4586 ps_ctxt->s_sao_ctxt_t.apu1_sao_src_frm_top_luma[i4_enc_frm_id] = in ihevce_enc_loop_init()
4588 ((ps_ctxt->s_sao_ctxt_t.i4_top_luma_buf_size + in ihevce_enc_loop_init()
4589 ps_ctxt->s_sao_ctxt_t.i4_top_chroma_buf_size) * in ihevce_enc_loop_init()
4594 ps_ctxt->s_sao_ctxt_t.apu1_sao_src_frm_top_chroma[i4_enc_frm_id] = in ihevce_enc_loop_init()
4596 ((ps_ctxt->s_sao_ctxt_t.i4_top_luma_buf_size + in ihevce_enc_loop_init()
4597 ps_ctxt->s_sao_ctxt_t.i4_top_chroma_buf_size) * in ihevce_enc_loop_init()
4602 … ps_ctxt->s_sao_ctxt_t.aps_frm_top_ctb_sao[i4_enc_frm_id] = (sao_enc_t *) (pu1_sao_base + in ihevce_enc_loop_init()
4603 … ((ps_ctxt->s_sao_ctxt_t.i4_top_luma_buf_size + ps_ctxt->s_sao_ctxt_t.i4_top_chroma_buf_size) in ihevce_enc_loop_init()
4605 …(ps_ctxt->s_sao_ctxt_t.i4_num_ctb_units * sizeof(sao_enc_t) *i4_num_bitrate_inst * i4_enc_frm_id)); in ihevce_enc_loop_init()
4607 ps_ctxt->s_sao_ctxt_t.i4_ctb_size = in ihevce_enc_loop_init()
4609 ps_ctxt->s_sao_ctxt_t.u4_ctb_aligned_wd = u4_ctb_aligned_wd; in ihevce_enc_loop_init()
4615 ps_ctxt->i4_nbr_map_strd = MAX_PU_IN_CTB_ROW + 1 + 8; in ihevce_enc_loop_init()
4617 ps_ctxt->pu1_ctb_nbr_map = ps_ctxt->au1_nbr_ctb_map[0]; in ihevce_enc_loop_init()
4619 ps_ctxt->i4_deblock_type = ps_init_prms->s_coding_tools_prms.i4_deblocking_type; in ihevce_enc_loop_init()
4622 ps_ctxt->pu1_ctb_nbr_map += ps_ctxt->i4_nbr_map_strd; in ihevce_enc_loop_init()
4623 ps_ctxt->pu1_ctb_nbr_map++; in ihevce_enc_loop_init()
4625 ps_ctxt->i4_cu_csbf_strd = MAX_TU_IN_CTB_ROW; in ihevce_enc_loop_init()
4627 CREATE_SUBBLOCK2CSBFID_MAP(gai4_subBlock2csbfId_map4x4TU, 1, 4, ps_ctxt->i4_cu_csbf_strd); in ihevce_enc_loop_init()
4629 CREATE_SUBBLOCK2CSBFID_MAP(gai4_subBlock2csbfId_map8x8TU, 4, 8, ps_ctxt->i4_cu_csbf_strd); in ihevce_enc_loop_init()
4632 gai4_subBlock2csbfId_map16x16TU, 16, 16, ps_ctxt->i4_cu_csbf_strd); in ihevce_enc_loop_init()
4635 gai4_subBlock2csbfId_map32x32TU, 64, 32, ps_ctxt->i4_cu_csbf_strd); in ihevce_enc_loop_init()
4638 ps_ctxt->as_cu_prms[0].i4_chrm_deq_coeff_strt_idx = (MAX_CU_SIZE * MAX_CU_SIZE); in ihevce_enc_loop_init()
4639 ps_ctxt->as_cu_prms[1].i4_chrm_deq_coeff_strt_idx = (MAX_CU_SIZE * MAX_CU_SIZE); in ihevce_enc_loop_init()
4643 ps_ctxt->pv_inter_rdopt_cu_mc_mvp = in ihevce_enc_loop_init()
4646 ps_ctxt->pv_inter_rdopt_cu_ntu = (pf_inter_rdopt_cu_ntu)ihevce_inter_rdopt_cu_ntu; in ihevce_enc_loop_init()
4649 if(ps_ctxt->i4_quality_preset == IHEVCE_QUALITY_P0) in ihevce_enc_loop_init()
4651 ps_ctxt->pv_inter_rdopt_cu_ntu = in ihevce_enc_loop_init()
4655 ps_ctxt->pv_intra_chroma_pred_mode_selector = in ihevce_enc_loop_init()
4657 ps_ctxt->pv_intra_rdopt_cu_ntu = (pf_intra_rdopt_cu_ntu)ihevce_intra_rdopt_cu_ntu; in ihevce_enc_loop_init()
4658 ps_ctxt->pv_final_rdopt_mode_prcs = in ihevce_enc_loop_init()
4660 ps_ctxt->pv_store_cu_results = (pf_store_cu_results)ihevce_store_cu_results; in ihevce_enc_loop_init()
4661 ps_ctxt->pv_enc_loop_cu_bot_copy = (pf_enc_loop_cu_bot_copy)ihevce_enc_loop_cu_bot_copy; in ihevce_enc_loop_init()
4662 ps_ctxt->pv_enc_loop_ctb_left_copy = in ihevce_enc_loop_init()
4676 ps_ctxt->s_chroma_rdopt_ctxt.as_chr_intra_satd_ctxt[i].pv_pred_data = pu1_base; in ihevce_enc_loop_init()
4689 ps_ctxt->pv_ref_sub_out = pu1_base + INTRAPRED_SIMD_LEFT_PADDING; in ihevce_enc_loop_init()
4700 ps_ctxt->pv_ref_filt_out = pu1_base + INTRAPRED_SIMD_LEFT_PADDING; in ihevce_enc_loop_init()
4705 if(ps_ctxt->i4_quality_preset == IHEVCE_QUALITY_P0) in ihevce_enc_loop_init()
4714 ps_ctxt->pv_cu_luma_recon = pu1_base; in ihevce_enc_loop_init()
4725 ps_ctxt->pv_cu_chrma_recon = pu1_base; in ihevce_enc_loop_init()
4731 if(ps_ctxt->i4_quality_preset == IHEVCE_QUALITY_P0) in ihevce_enc_loop_init()
4740 ps_ctxt->pv_CTB_pred_luma = pu1_base; in ihevce_enc_loop_init()
4750 ps_ctxt->pv_CTB_pred_chroma = pu1_base; in ihevce_enc_loop_init()
4761 ps_ctxt->pv_left_luma_data = pu1_base; in ihevce_enc_loop_init()
4772 ps_ctxt->pv_left_chrm_data = pu1_base; in ihevce_enc_loop_init()
4788 ps_ctxt->i4_max_num_inter_rdopt_cands = i4_num_bufs_per_thread - 4; in ihevce_enc_loop_init()
4790 ps_ctxt->s_pred_buf_data.u4_is_buf_in_use = UINT_MAX; in ihevce_enc_loop_init()
4798 ps_ctxt->s_pred_buf_data.apv_inter_pred_data[i] = in ihevce_enc_loop_init()
4800 ps_ctxt->s_pred_buf_data.u4_is_buf_in_use ^= (1 << i); in ihevce_enc_loop_init()
4815 ps_ctxt->pv_422_chroma_intra_pred_buf = pv_base; in ihevce_enc_loop_init()
4819 ps_ctxt->pv_422_chroma_intra_pred_buf = NULL; in ihevce_enc_loop_init()
4829 WORD32 i4_quality_preset = ps_ctxt->i4_quality_preset; in ihevce_enc_loop_init()
4835 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_luma_recon_bufs[0] = in ihevce_enc_loop_init()
4837 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_luma_recon_bufs[1] = in ihevce_enc_loop_init()
4839 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_luma_recon_bufs[0] = in ihevce_enc_loop_init()
4841 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_luma_recon_bufs[1] = in ihevce_enc_loop_init()
4851 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[0] = in ihevce_enc_loop_init()
4853 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[0] = in ihevce_enc_loop_init()
4856 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[0] = NULL; in ihevce_enc_loop_init()
4857 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[0] = NULL; in ihevce_enc_loop_init()
4861 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[1] = in ihevce_enc_loop_init()
4863 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[2] = in ihevce_enc_loop_init()
4865 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[1] = in ihevce_enc_loop_init()
4867 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[2] = in ihevce_enc_loop_init()
4870 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[1] = NULL; in ihevce_enc_loop_init()
4871 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[2] = NULL; in ihevce_enc_loop_init()
4872 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[1] = NULL; in ihevce_enc_loop_init()
4873 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[2] = NULL; in ihevce_enc_loop_init()
4881 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[0] = in ihevce_enc_loop_init()
4883 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[0] = in ihevce_enc_loop_init()
4886 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[0] = NULL; in ihevce_enc_loop_init()
4887 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[0] = NULL; in ihevce_enc_loop_init()
4891 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[1] = in ihevce_enc_loop_init()
4893 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[2] = in ihevce_enc_loop_init()
4895 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[1] = in ihevce_enc_loop_init()
4897 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[2] = in ihevce_enc_loop_init()
4900 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[1] = NULL; in ihevce_enc_loop_init()
4901 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[2] = NULL; in ihevce_enc_loop_init()
4902 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[1] = NULL; in ihevce_enc_loop_init()
4903 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[2] = NULL; in ihevce_enc_loop_init()
4911 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[0] = in ihevce_enc_loop_init()
4913 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[0] = in ihevce_enc_loop_init()
4916 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[0] = NULL; in ihevce_enc_loop_init()
4917 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[0] = NULL; in ihevce_enc_loop_init()
4921 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[1] = in ihevce_enc_loop_init()
4923 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[2] = in ihevce_enc_loop_init()
4925 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[1] = in ihevce_enc_loop_init()
4927 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[2] = in ihevce_enc_loop_init()
4930 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[1] = NULL; in ihevce_enc_loop_init()
4931 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[2] = NULL; in ihevce_enc_loop_init()
4932 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[1] = NULL; in ihevce_enc_loop_init()
4933 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[2] = NULL; in ihevce_enc_loop_init()
4941 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[0] = in ihevce_enc_loop_init()
4943 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[0] = in ihevce_enc_loop_init()
4946 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[0] = NULL; in ihevce_enc_loop_init()
4947 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[0] = NULL; in ihevce_enc_loop_init()
4951 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[1] = in ihevce_enc_loop_init()
4953 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[2] = in ihevce_enc_loop_init()
4955 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[1] = in ihevce_enc_loop_init()
4957 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[2] = in ihevce_enc_loop_init()
4960 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[1] = NULL; in ihevce_enc_loop_init()
4961 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[2] = NULL; in ihevce_enc_loop_init()
4962 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[1] = NULL; in ihevce_enc_loop_init()
4963 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[2] = NULL; in ihevce_enc_loop_init()
4971 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[0] = in ihevce_enc_loop_init()
4973 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[0] = in ihevce_enc_loop_init()
4976 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[0] = NULL; in ihevce_enc_loop_init()
4977 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[0] = NULL; in ihevce_enc_loop_init()
4981 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[1] = in ihevce_enc_loop_init()
4983 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[2] = in ihevce_enc_loop_init()
4985 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[1] = in ihevce_enc_loop_init()
4987 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[2] = in ihevce_enc_loop_init()
4990 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[1] = NULL; in ihevce_enc_loop_init()
4991 ps_ctxt->as_cu_prms[0].s_recon_datastore.apv_chroma_recon_bufs[2] = NULL; in ihevce_enc_loop_init()
4992 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[1] = NULL; in ihevce_enc_loop_init()
4993 ps_ctxt->as_cu_prms[1].s_recon_datastore.apv_chroma_recon_bufs[2] = NULL; in ihevce_enc_loop_init()
5001 ps_ctxt->as_cu_prms[0].s_recon_datastore.i4_lumaRecon_stride = MAX_CU_SIZE; in ihevce_enc_loop_init()
5002 ps_ctxt->as_cu_prms[1].s_recon_datastore.i4_lumaRecon_stride = MAX_CU_SIZE; in ihevce_enc_loop_init()
5003 ps_ctxt->as_cu_prms[0].s_recon_datastore.i4_chromaRecon_stride = MAX_CU_SIZE; in ihevce_enc_loop_init()
5004 ps_ctxt->as_cu_prms[1].s_recon_datastore.i4_chromaRecon_stride = MAX_CU_SIZE; in ihevce_enc_loop_init()
5015 ps_ctxt->i4_zcbf_rdo_level = ZCBF_ENABLE; in ihevce_enc_loop_init()
5017 if(ps_ctxt->i4_quality_preset < IHEVCE_QUALITY_P3) in ihevce_enc_loop_init()
5019 ps_ctxt->i4_quant_rounding_level = CU_LEVEL_QUANT_ROUNDING; in ihevce_enc_loop_init()
5020 ps_ctxt->i4_chroma_quant_rounding_level = CHROMA_QUANT_ROUNDING; in ihevce_enc_loop_init()
5021 ps_ctxt->i4_rdoq_level = ALL_CAND_RDOQ; in ihevce_enc_loop_init()
5022 ps_ctxt->i4_sbh_level = ALL_CAND_SBH; in ihevce_enc_loop_init()
5024 else if(ps_ctxt->i4_quality_preset == IHEVCE_QUALITY_P3) in ihevce_enc_loop_init()
5026 ps_ctxt->i4_quant_rounding_level = FIXED_QUANT_ROUNDING; in ihevce_enc_loop_init()
5027 ps_ctxt->i4_chroma_quant_rounding_level = FIXED_QUANT_ROUNDING; in ihevce_enc_loop_init()
5028 ps_ctxt->i4_rdoq_level = NO_RDOQ; in ihevce_enc_loop_init()
5029 ps_ctxt->i4_sbh_level = NO_SBH; in ihevce_enc_loop_init()
5033 ps_ctxt->i4_quant_rounding_level = FIXED_QUANT_ROUNDING; in ihevce_enc_loop_init()
5034 ps_ctxt->i4_chroma_quant_rounding_level = FIXED_QUANT_ROUNDING; in ihevce_enc_loop_init()
5035 ps_ctxt->i4_rdoq_level = NO_RDOQ; in ihevce_enc_loop_init()
5036 ps_ctxt->i4_sbh_level = NO_SBH; in ihevce_enc_loop_init()
5040 ps_ctxt->i4_quant_rounding_level = FIXED_QUANT_ROUNDING; in ihevce_enc_loop_init()
5041 ps_ctxt->i4_chroma_quant_rounding_level = FIXED_QUANT_ROUNDING; in ihevce_enc_loop_init()
5047 ps_ctxt->i4_rdoq_level = NO_RDOQ; in ihevce_enc_loop_init()
5051 ps_ctxt->i4_rdoq_level = NO_RDOQ; in ihevce_enc_loop_init()
5055 ps_ctxt->i4_sbh_level = NO_SBH; in ihevce_enc_loop_init()
5060 ps_ctxt->pi4_quant_round_factor_cu_ctb_0_1[0] = &ps_ctxt->i4_quant_round_4x4[0][0]; in ihevce_enc_loop_init()
5061 ps_ctxt->pi4_quant_round_factor_cu_ctb_0_1[1] = &ps_ctxt->i4_quant_round_8x8[0][0]; in ihevce_enc_loop_init()
5062 ps_ctxt->pi4_quant_round_factor_cu_ctb_0_1[2] = &ps_ctxt->i4_quant_round_16x16[0][0]; in ihevce_enc_loop_init()
5063 ps_ctxt->pi4_quant_round_factor_cu_ctb_0_1[4] = &ps_ctxt->i4_quant_round_32x32[0][0]; in ihevce_enc_loop_init()
5065 ps_ctxt->pi4_quant_round_factor_cu_ctb_1_2[0] = &ps_ctxt->i4_quant_round_4x4[1][0]; in ihevce_enc_loop_init()
5066 ps_ctxt->pi4_quant_round_factor_cu_ctb_1_2[1] = &ps_ctxt->i4_quant_round_8x8[1][0]; in ihevce_enc_loop_init()
5067 ps_ctxt->pi4_quant_round_factor_cu_ctb_1_2[2] = &ps_ctxt->i4_quant_round_16x16[1][0]; in ihevce_enc_loop_init()
5068 ps_ctxt->pi4_quant_round_factor_cu_ctb_1_2[4] = &ps_ctxt->i4_quant_round_32x32[1][0]; in ihevce_enc_loop_init()
5070 ps_ctxt->pi4_quant_round_factor_cr_cu_ctb_0_1[0] = &ps_ctxt->i4_quant_round_cr_4x4[0][0]; in ihevce_enc_loop_init()
5071 ps_ctxt->pi4_quant_round_factor_cr_cu_ctb_0_1[1] = &ps_ctxt->i4_quant_round_cr_8x8[0][0]; in ihevce_enc_loop_init()
5072 ps_ctxt->pi4_quant_round_factor_cr_cu_ctb_0_1[2] = &ps_ctxt->i4_quant_round_cr_16x16[0][0]; in ihevce_enc_loop_init()
5074 ps_ctxt->pi4_quant_round_factor_cr_cu_ctb_1_2[0] = &ps_ctxt->i4_quant_round_cr_4x4[1][0]; in ihevce_enc_loop_init()
5075 ps_ctxt->pi4_quant_round_factor_cr_cu_ctb_1_2[1] = &ps_ctxt->i4_quant_round_cr_8x8[1][0]; in ihevce_enc_loop_init()
5076 ps_ctxt->pi4_quant_round_factor_cr_cu_ctb_1_2[2] = &ps_ctxt->i4_quant_round_cr_16x16[1][0]; in ihevce_enc_loop_init()
5085 ps_ctxt->s_rdoq_sbh_ctxt.i4_perform_best_cand_rdoq = in ihevce_enc_loop_init()
5086 (ps_ctxt->i4_rdoq_level == BEST_CAND_RDOQ); in ihevce_enc_loop_init()
5089 ps_ctxt->s_rdoq_sbh_ctxt.i4_perform_best_cand_rdoq = in ihevce_enc_loop_init()
5090 ps_ctxt->s_rdoq_sbh_ctxt.i4_perform_best_cand_rdoq || in ihevce_enc_loop_init()
5091 ((BEST_CAND_SBH == ps_ctxt->i4_sbh_level) && in ihevce_enc_loop_init()
5092 (ALL_CAND_RDOQ == ps_ctxt->i4_rdoq_level)); in ihevce_enc_loop_init()
5094 ps_ctxt->s_rdoq_sbh_ctxt.i4_perform_best_cand_sbh = in ihevce_enc_loop_init()
5095 (ps_ctxt->i4_sbh_level == BEST_CAND_SBH); in ihevce_enc_loop_init()
5104 ps_ctxt->s_rdoq_sbh_ctxt.i4_perform_best_cand_sbh = in ihevce_enc_loop_init()
5105 ps_ctxt->s_rdoq_sbh_ctxt.i4_perform_best_cand_sbh || in ihevce_enc_loop_init()
5106 ((BEST_CAND_RDOQ == ps_ctxt->i4_rdoq_level) && in ihevce_enc_loop_init()
5107 (ALL_CAND_SBH == ps_ctxt->i4_sbh_level)); in ihevce_enc_loop_init()
5112 ps_ctxt->s_rdoq_sbh_ctxt.i4_perform_all_cand_rdoq = in ihevce_enc_loop_init()
5113 (ps_ctxt->i4_rdoq_level == ALL_CAND_RDOQ); in ihevce_enc_loop_init()
5114 ps_ctxt->s_rdoq_sbh_ctxt.i4_perform_all_cand_sbh = in ihevce_enc_loop_init()
5115 (ps_ctxt->i4_sbh_level == ALL_CAND_SBH); in ihevce_enc_loop_init()
5116 ps_ctxt->s_rdoq_sbh_ctxt.i4_bit_depth = in ihevce_enc_loop_init()
5124 if(ps_ctxt->i4_rdoq_level == NO_RDOQ) in ihevce_enc_loop_init()
5126 ps_ctxt->apf_quant_iquant_ssd[0] = in ihevce_enc_loop_init()
5128 ps_ctxt->apf_quant_iquant_ssd[2] = ps_func_selector->ihevc_quant_iquant_fptr; in ihevce_enc_loop_init()
5132 ps_ctxt->apf_quant_iquant_ssd[0] = in ihevce_enc_loop_init()
5134 ps_ctxt->apf_quant_iquant_ssd[2] = in ihevce_enc_loop_init()
5139 if(ps_ctxt->i4_quant_rounding_level != FIXED_QUANT_ROUNDING) in ihevce_enc_loop_init()
5141 ps_ctxt->apf_quant_iquant_ssd[1] = in ihevce_enc_loop_init()
5143 ps_ctxt->apf_quant_iquant_ssd[3] = in ihevce_enc_loop_init()
5148 ps_ctxt->apf_quant_iquant_ssd[1] = in ihevce_enc_loop_init()
5150 ps_ctxt->apf_quant_iquant_ssd[3] = ps_func_selector->ihevc_quant_iquant_fptr; in ihevce_enc_loop_init()
5155 if(ps_ctxt->i4_rdoq_level == NO_RDOQ) in ihevce_enc_loop_init()
5157 ps_ctxt->apf_quant_iquant_ssd[0] = in ihevce_enc_loop_init()
5159 ps_ctxt->apf_quant_iquant_ssd[2] = in ihevce_enc_loop_init()
5164 ps_ctxt->apf_quant_iquant_ssd[0] = in ihevce_enc_loop_init()
5166 ps_ctxt->apf_quant_iquant_ssd[2] = in ihevce_enc_loop_init()
5171 if(ps_ctxt->i4_quant_rounding_level != FIXED_QUANT_ROUNDING) in ihevce_enc_loop_init()
5173 ps_ctxt->apf_quant_iquant_ssd[1] = in ihevce_enc_loop_init()
5175 ps_ctxt->apf_quant_iquant_ssd[3] = in ihevce_enc_loop_init()
5180 ps_ctxt->apf_quant_iquant_ssd[1] = in ihevce_enc_loop_init()
5182 ps_ctxt->apf_quant_iquant_ssd[3] = in ihevce_enc_loop_init()
5187 ps_ctxt->s_sao_ctxt_t.apf_sao_luma[0] = in ihevce_enc_loop_init()
5189 ps_ctxt->s_sao_ctxt_t.apf_sao_luma[1] = in ihevce_enc_loop_init()
5191 ps_ctxt->s_sao_ctxt_t.apf_sao_luma[2] = in ihevce_enc_loop_init()
5193 ps_ctxt->s_sao_ctxt_t.apf_sao_luma[3] = in ihevce_enc_loop_init()
5196 ps_ctxt->s_sao_ctxt_t.apf_sao_chroma[0] = in ihevce_enc_loop_init()
5198 ps_ctxt->s_sao_ctxt_t.apf_sao_chroma[1] = in ihevce_enc_loop_init()
5200 ps_ctxt->s_sao_ctxt_t.apf_sao_chroma[2] = in ihevce_enc_loop_init()
5202 ps_ctxt->s_sao_ctxt_t.apf_sao_chroma[3] = in ihevce_enc_loop_init()
5205 ps_ctxt->apf_it_recon[0] = ps_func_selector->ihevc_itrans_recon_4x4_ttype1_fptr; in ihevce_enc_loop_init()
5206 ps_ctxt->apf_it_recon[1] = ps_func_selector->ihevc_itrans_recon_4x4_fptr; in ihevce_enc_loop_init()
5207 ps_ctxt->apf_it_recon[2] = ps_func_selector->ihevc_itrans_recon_8x8_fptr; in ihevce_enc_loop_init()
5208 ps_ctxt->apf_it_recon[3] = ps_func_selector->ihevc_itrans_recon_16x16_fptr; in ihevce_enc_loop_init()
5209 ps_ctxt->apf_it_recon[4] = ps_func_selector->ihevc_itrans_recon_32x32_fptr; in ihevce_enc_loop_init()
5211 ps_ctxt->apf_chrm_it_recon[0] = ps_func_selector->ihevc_chroma_itrans_recon_4x4_fptr; in ihevce_enc_loop_init()
5212 ps_ctxt->apf_chrm_it_recon[1] = ps_func_selector->ihevc_chroma_itrans_recon_8x8_fptr; in ihevce_enc_loop_init()
5213 ps_ctxt->apf_chrm_it_recon[2] = ps_func_selector->ihevc_chroma_itrans_recon_16x16_fptr; in ihevce_enc_loop_init()
5215 ps_ctxt->apf_resd_trns[0] = ps_func_selector->ihevc_resi_trans_4x4_ttype1_fptr; in ihevce_enc_loop_init()
5216 ps_ctxt->apf_resd_trns[1] = ps_func_selector->ihevc_resi_trans_4x4_fptr; in ihevce_enc_loop_init()
5217 ps_ctxt->apf_resd_trns[2] = ps_func_selector->ihevc_resi_trans_8x8_fptr; in ihevce_enc_loop_init()
5218 ps_ctxt->apf_resd_trns[3] = ps_func_selector->ihevc_resi_trans_16x16_fptr; in ihevce_enc_loop_init()
5219 ps_ctxt->apf_resd_trns[4] = ps_func_selector->ihevc_resi_trans_32x32_fptr; in ihevce_enc_loop_init()
5221 ps_ctxt->apf_chrm_resd_trns[0] = ps_func_selector->ihevc_resi_trans_4x4_fptr; in ihevce_enc_loop_init()
5222 ps_ctxt->apf_chrm_resd_trns[1] = ps_func_selector->ihevc_resi_trans_8x8_fptr; in ihevce_enc_loop_init()
5223 ps_ctxt->apf_chrm_resd_trns[2] = ps_func_selector->ihevc_resi_trans_16x16_fptr; in ihevce_enc_loop_init()
5225 ps_ctxt->apf_lum_ip[IP_FUNC_MODE_0] = in ihevce_enc_loop_init()
5227 ps_ctxt->apf_lum_ip[IP_FUNC_MODE_1] = ps_func_selector->ihevc_intra_pred_luma_dc_fptr; in ihevce_enc_loop_init()
5228 ps_ctxt->apf_lum_ip[IP_FUNC_MODE_2] = in ihevce_enc_loop_init()
5230 ps_ctxt->apf_lum_ip[IP_FUNC_MODE_3TO9] = in ihevce_enc_loop_init()
5232 ps_ctxt->apf_lum_ip[IP_FUNC_MODE_10] = in ihevce_enc_loop_init()
5234 ps_ctxt->apf_lum_ip[IP_FUNC_MODE_11TO17] = in ihevce_enc_loop_init()
5236 ps_ctxt->apf_lum_ip[IP_FUNC_MODE_18_34] = in ihevce_enc_loop_init()
5238 ps_ctxt->apf_lum_ip[IP_FUNC_MODE_19TO25] = in ihevce_enc_loop_init()
5240 ps_ctxt->apf_lum_ip[IP_FUNC_MODE_26] = ps_func_selector->ihevc_intra_pred_luma_ver_fptr; in ihevce_enc_loop_init()
5241 ps_ctxt->apf_lum_ip[IP_FUNC_MODE_27TO33] = in ihevce_enc_loop_init()
5244 ps_ctxt->apf_chrm_ip[IP_FUNC_MODE_0] = in ihevce_enc_loop_init()
5246 ps_ctxt->apf_chrm_ip[IP_FUNC_MODE_1] = in ihevce_enc_loop_init()
5248 ps_ctxt->apf_chrm_ip[IP_FUNC_MODE_2] = in ihevce_enc_loop_init()
5250 ps_ctxt->apf_chrm_ip[IP_FUNC_MODE_3TO9] = in ihevce_enc_loop_init()
5252 ps_ctxt->apf_chrm_ip[IP_FUNC_MODE_10] = in ihevce_enc_loop_init()
5254 ps_ctxt->apf_chrm_ip[IP_FUNC_MODE_11TO17] = in ihevce_enc_loop_init()
5256 ps_ctxt->apf_chrm_ip[IP_FUNC_MODE_18_34] = in ihevce_enc_loop_init()
5258 ps_ctxt->apf_chrm_ip[IP_FUNC_MODE_19TO25] = in ihevce_enc_loop_init()
5260 ps_ctxt->apf_chrm_ip[IP_FUNC_MODE_26] = in ihevce_enc_loop_init()
5262 ps_ctxt->apf_chrm_ip[IP_FUNC_MODE_27TO33] = in ihevce_enc_loop_init()
5265 ps_ctxt->apf_chrm_resd_trns_had[0] = in ihevce_enc_loop_init()
5266 (pf_res_trans_luma_had_chroma)ps_ctxt->s_cmn_opt_func.pf_chroma_HAD_4x4_8bit; in ihevce_enc_loop_init()
5267 ps_ctxt->apf_chrm_resd_trns_had[1] = in ihevce_enc_loop_init()
5268 (pf_res_trans_luma_had_chroma)ps_ctxt->s_cmn_opt_func.pf_chroma_HAD_8x8_8bit; in ihevce_enc_loop_init()
5269 ps_ctxt->apf_chrm_resd_trns_had[2] = in ihevce_enc_loop_init()
5270 (pf_res_trans_luma_had_chroma)ps_ctxt->s_cmn_opt_func.pf_chroma_HAD_16x16_8bit; in ihevce_enc_loop_init()
5276 ps_ctxt->api2_scal_mat[0] = (WORD16 *)&gi2_flat_scale_mat_4x4[0]; in ihevce_enc_loop_init()
5277 ps_ctxt->api2_scal_mat[1] = (WORD16 *)&gi2_flat_scale_mat_4x4[0]; in ihevce_enc_loop_init()
5278 ps_ctxt->api2_scal_mat[2] = (WORD16 *)&gi2_flat_scale_mat_8x8[0]; in ihevce_enc_loop_init()
5279 ps_ctxt->api2_scal_mat[3] = (WORD16 *)&gi2_flat_scale_mat_16x16[0]; in ihevce_enc_loop_init()
5280 ps_ctxt->api2_scal_mat[4] = (WORD16 *)&gi2_flat_scale_mat_32x32[0]; in ihevce_enc_loop_init()
5282 ps_ctxt->api2_scal_mat[5] = (WORD16 *)&gi2_flat_scale_mat_4x4[0]; in ihevce_enc_loop_init()
5283 ps_ctxt->api2_scal_mat[6] = (WORD16 *)&gi2_flat_scale_mat_4x4[0]; in ihevce_enc_loop_init()
5284 ps_ctxt->api2_scal_mat[7] = (WORD16 *)&gi2_flat_scale_mat_8x8[0]; in ihevce_enc_loop_init()
5285 ps_ctxt->api2_scal_mat[8] = (WORD16 *)&gi2_flat_scale_mat_16x16[0]; in ihevce_enc_loop_init()
5286 ps_ctxt->api2_scal_mat[9] = (WORD16 *)&gi2_flat_scale_mat_32x32[0]; in ihevce_enc_loop_init()
5289 ps_ctxt->api2_rescal_mat[0] = (WORD16 *)&gi2_flat_rescale_mat_4x4[0]; in ihevce_enc_loop_init()
5290 ps_ctxt->api2_rescal_mat[1] = (WORD16 *)&gi2_flat_rescale_mat_4x4[0]; in ihevce_enc_loop_init()
5291 ps_ctxt->api2_rescal_mat[2] = (WORD16 *)&gi2_flat_rescale_mat_8x8[0]; in ihevce_enc_loop_init()
5292 ps_ctxt->api2_rescal_mat[3] = (WORD16 *)&gi2_flat_rescale_mat_16x16[0]; in ihevce_enc_loop_init()
5293 ps_ctxt->api2_rescal_mat[4] = (WORD16 *)&gi2_flat_rescale_mat_32x32[0]; in ihevce_enc_loop_init()
5295 ps_ctxt->api2_rescal_mat[5] = (WORD16 *)&gi2_flat_rescale_mat_4x4[0]; in ihevce_enc_loop_init()
5296 ps_ctxt->api2_rescal_mat[6] = (WORD16 *)&gi2_flat_rescale_mat_4x4[0]; in ihevce_enc_loop_init()
5297 ps_ctxt->api2_rescal_mat[7] = (WORD16 *)&gi2_flat_rescale_mat_8x8[0]; in ihevce_enc_loop_init()
5298 ps_ctxt->api2_rescal_mat[8] = (WORD16 *)&gi2_flat_rescale_mat_16x16[0]; in ihevce_enc_loop_init()
5299 ps_ctxt->api2_rescal_mat[9] = (WORD16 *)&gi2_flat_rescale_mat_32x32[0]; in ihevce_enc_loop_init()
5304 ps_ctxt->api2_scal_mat[0] = (WORD16 *)&gi2_flat_scale_mat_4x4[0]; in ihevce_enc_loop_init()
5305 ps_ctxt->api2_scal_mat[1] = (WORD16 *)&gi2_flat_scale_mat_4x4[0]; in ihevce_enc_loop_init()
5306 ps_ctxt->api2_scal_mat[2] = (WORD16 *)&gi2_intra_default_scale_mat_8x8[0]; in ihevce_enc_loop_init()
5307 ps_ctxt->api2_scal_mat[3] = (WORD16 *)&gi2_intra_default_scale_mat_16x16[0]; in ihevce_enc_loop_init()
5308 ps_ctxt->api2_scal_mat[4] = (WORD16 *)&gi2_intra_default_scale_mat_32x32[0]; in ihevce_enc_loop_init()
5310 ps_ctxt->api2_scal_mat[5] = (WORD16 *)&gi2_flat_scale_mat_4x4[0]; in ihevce_enc_loop_init()
5311 ps_ctxt->api2_scal_mat[6] = (WORD16 *)&gi2_flat_scale_mat_4x4[0]; in ihevce_enc_loop_init()
5312 ps_ctxt->api2_scal_mat[7] = (WORD16 *)&gi2_inter_default_scale_mat_8x8[0]; in ihevce_enc_loop_init()
5313 ps_ctxt->api2_scal_mat[8] = (WORD16 *)&gi2_inter_default_scale_mat_16x16[0]; in ihevce_enc_loop_init()
5314 ps_ctxt->api2_scal_mat[9] = (WORD16 *)&gi2_inter_default_scale_mat_32x32[0]; in ihevce_enc_loop_init()
5317 ps_ctxt->api2_rescal_mat[0] = (WORD16 *)&gi2_flat_rescale_mat_4x4[0]; in ihevce_enc_loop_init()
5318 ps_ctxt->api2_rescal_mat[1] = (WORD16 *)&gi2_flat_rescale_mat_4x4[0]; in ihevce_enc_loop_init()
5319 ps_ctxt->api2_rescal_mat[2] = (WORD16 *)&gi2_intra_default_rescale_mat_8x8[0]; in ihevce_enc_loop_init()
5320 ps_ctxt->api2_rescal_mat[3] = (WORD16 *)&gi2_intra_default_rescale_mat_16x16[0]; in ihevce_enc_loop_init()
5321 ps_ctxt->api2_rescal_mat[4] = (WORD16 *)&gi2_intra_default_rescale_mat_32x32[0]; in ihevce_enc_loop_init()
5323 ps_ctxt->api2_rescal_mat[5] = (WORD16 *)&gi2_flat_rescale_mat_4x4[0]; in ihevce_enc_loop_init()
5324 ps_ctxt->api2_rescal_mat[6] = (WORD16 *)&gi2_flat_rescale_mat_4x4[0]; in ihevce_enc_loop_init()
5325 ps_ctxt->api2_rescal_mat[7] = (WORD16 *)&gi2_inter_default_rescale_mat_8x8[0]; in ihevce_enc_loop_init()
5326 ps_ctxt->api2_rescal_mat[8] = (WORD16 *)&gi2_inter_default_rescale_mat_16x16[0]; in ihevce_enc_loop_init()
5327 ps_ctxt->api2_rescal_mat[9] = (WORD16 *)&gi2_inter_default_rescale_mat_32x32[0]; in ihevce_enc_loop_init()
5335 ps_ctxt->s_cu_final_recon_flags.u1_eval_header_data = 0; in ihevce_enc_loop_init()
5336 ps_ctxt->s_cu_final_recon_flags.u1_eval_luma_pred_data = 0; in ihevce_enc_loop_init()
5337 ps_ctxt->s_cu_final_recon_flags.u1_eval_recon_data = 1; in ihevce_enc_loop_init()
5339 switch(ps_ctxt->i4_quality_preset) in ihevce_enc_loop_init()
5343 ps_ctxt->i4_max_merge_candidates = 5; in ihevce_enc_loop_init()
5344 ps_ctxt->i4_use_satd_for_merge_eval = 1; in ihevce_enc_loop_init()
5345 ps_ctxt->u1_use_top_at_ctb_boundary = 1; in ihevce_enc_loop_init()
5346 ps_ctxt->u1_use_early_cbf_data = 0; in ihevce_enc_loop_init()
5347 ps_ctxt->s_chroma_rdopt_ctxt.u1_eval_chrm_rdopt = ENABLE_CHROMA_RDOPT_EVAL_IN_PQ; in ihevce_enc_loop_init()
5348 ps_ctxt->s_chroma_rdopt_ctxt.u1_eval_chrm_satd = in ihevce_enc_loop_init()
5355 ps_ctxt->i4_max_merge_candidates = 5; in ihevce_enc_loop_init()
5356 ps_ctxt->i4_use_satd_for_merge_eval = 1; in ihevce_enc_loop_init()
5357 ps_ctxt->u1_use_top_at_ctb_boundary = 1; in ihevce_enc_loop_init()
5358 ps_ctxt->u1_use_early_cbf_data = 0; in ihevce_enc_loop_init()
5360 ps_ctxt->s_chroma_rdopt_ctxt.u1_eval_chrm_rdopt = ENABLE_CHROMA_RDOPT_EVAL_IN_HQ; in ihevce_enc_loop_init()
5361 ps_ctxt->s_chroma_rdopt_ctxt.u1_eval_chrm_satd = in ihevce_enc_loop_init()
5368 ps_ctxt->i4_max_merge_candidates = 3; in ihevce_enc_loop_init()
5369 ps_ctxt->i4_use_satd_for_merge_eval = 1; in ihevce_enc_loop_init()
5370 ps_ctxt->u1_use_top_at_ctb_boundary = 0; in ihevce_enc_loop_init()
5372 ps_ctxt->u1_use_early_cbf_data = 0; in ihevce_enc_loop_init()
5373 ps_ctxt->s_chroma_rdopt_ctxt.u1_eval_chrm_rdopt = ENABLE_CHROMA_RDOPT_EVAL_IN_MS; in ihevce_enc_loop_init()
5374 ps_ctxt->s_chroma_rdopt_ctxt.u1_eval_chrm_satd = in ihevce_enc_loop_init()
5381 ps_ctxt->i4_max_merge_candidates = 2; in ihevce_enc_loop_init()
5382 ps_ctxt->i4_use_satd_for_merge_eval = 1; in ihevce_enc_loop_init()
5383 ps_ctxt->u1_use_top_at_ctb_boundary = 0; in ihevce_enc_loop_init()
5384 ps_ctxt->u1_use_early_cbf_data = 0; in ihevce_enc_loop_init()
5385 ps_ctxt->s_chroma_rdopt_ctxt.u1_eval_chrm_rdopt = ENABLE_CHROMA_RDOPT_EVAL_IN_HS; in ihevce_enc_loop_init()
5386 ps_ctxt->s_chroma_rdopt_ctxt.u1_eval_chrm_satd = in ihevce_enc_loop_init()
5393 ps_ctxt->i4_max_merge_candidates = 2; in ihevce_enc_loop_init()
5394 ps_ctxt->i4_use_satd_for_merge_eval = 0; in ihevce_enc_loop_init()
5395 ps_ctxt->u1_use_top_at_ctb_boundary = 0; in ihevce_enc_loop_init()
5396 ps_ctxt->u1_use_early_cbf_data = 0; in ihevce_enc_loop_init()
5397 ps_ctxt->s_chroma_rdopt_ctxt.u1_eval_chrm_rdopt = ENABLE_CHROMA_RDOPT_EVAL_IN_XS; in ihevce_enc_loop_init()
5398 ps_ctxt->s_chroma_rdopt_ctxt.u1_eval_chrm_satd = in ihevce_enc_loop_init()
5405 ps_ctxt->i4_max_merge_candidates = 2; in ihevce_enc_loop_init()
5406 ps_ctxt->i4_use_satd_for_merge_eval = 0; in ihevce_enc_loop_init()
5407 ps_ctxt->u1_use_top_at_ctb_boundary = 0; in ihevce_enc_loop_init()
5408 ps_ctxt->u1_use_early_cbf_data = EARLY_CBF_ON; in ihevce_enc_loop_init()
5418 ps_ctxt->i4_max_merge_candidates = 0; in ihevce_enc_loop_init()
5421 ps_ctxt->s_cu_final_recon_flags.u1_eval_chroma_pred_data = in ihevce_enc_loop_init()
5422 !ps_ctxt->s_chroma_rdopt_ctxt.u1_eval_chrm_rdopt; in ihevce_enc_loop_init()
5455 ps_ctxt->aaps_enc_loop_rc_params[i4_enc_frm_id][i] = ps_enc_loop_rc_params; in ihevce_enc_loop_init()
5462 ps_ctxt->s_chroma_rdopt_ctxt.u1_eval_chrm_satd = 0; in ihevce_enc_loop_init()
5465 ps_ctxt->s_chroma_rdopt_ctxt.as_chr_intra_satd_ctxt[TU_EQ_CU].i4_iq_buff_stride = in ihevce_enc_loop_init()
5467 ps_ctxt->s_chroma_rdopt_ctxt.as_chr_intra_satd_ctxt[TU_EQ_CU_DIV2].i4_iq_buff_stride = in ihevce_enc_loop_init()
5470 ps_ctxt->s_chroma_rdopt_ctxt.as_chr_intra_satd_ctxt[TU_EQ_CU].i4_pred_stride = MAX_TU_SIZE in ihevce_enc_loop_init()
5472 ps_ctxt->s_chroma_rdopt_ctxt.as_chr_intra_satd_ctxt[TU_EQ_CU_DIV2].i4_pred_stride = in ihevce_enc_loop_init()
5477 ps_ctxt->pi4_offset_for_last_cu_qp = &ps_master_ctxt->ai4_offset_for_last_cu_qp[0]; in ihevce_enc_loop_init()
5479 ps_ctxt->i4_qp_mod = ps_init_prms->s_config_prms.i4_cu_level_rc & 1; in ihevce_enc_loop_init()
5489 ps_ctxt->u1_enable_psyRDOPT = 1; in ihevce_enc_loop_init()
5490 ps_ctxt->u4_psy_strength = psy_strength >> BITPOS_IN_VQ_TOGGLE_FOR_ENABLING_PSYRDOPT_1; in ihevce_enc_loop_init()
5493 ps_ctxt->u1_enable_psyRDOPT = 0; in ihevce_enc_loop_init()
5494 ps_ctxt->u4_psy_strength = 0; in ihevce_enc_loop_init()
5498 ps_ctxt->u1_is_stasino_enabled = in ihevce_enc_loop_init()
5504 ps_ctxt->u1_max_inter_tr_depth = ps_init_prms->s_config_prms.i4_max_tr_tree_depth_nI; in ihevce_enc_loop_init()
5505 ps_ctxt->u1_max_intra_tr_depth = ps_init_prms->s_config_prms.i4_max_tr_tree_depth_I; in ihevce_enc_loop_init()
5506 ps_ctxt++; in ihevce_enc_loop_init()
5883 ihevce_enc_loop_ctxt_t *ps_ctxt; in ihevce_enc_loop_frame_init() local
5916 ps_ctxt = ps_master_ctxt->aps_enc_loop_thrd_ctxt[i4_thrd_id]; in ihevce_enc_loop_frame_init()
5919 ps_ctxt->s_sao_ctxt_t.ps_pps = ps_pps; in ihevce_enc_loop_frame_init()
5920 ps_ctxt->s_sao_ctxt_t.ps_sps = ps_sps; in ihevce_enc_loop_frame_init()
5921 ps_ctxt->s_sao_ctxt_t.ps_slice_hdr = ps_slice_hdr; in ihevce_enc_loop_frame_init()
5924 ps_ctxt->i4_bitrate_instance_num = i4_bitrate_instance_num; in ihevce_enc_loop_frame_init()
5925 ps_ctxt->i4_num_bitrates = i4_num_bitrates; in ihevce_enc_loop_frame_init()
5926 ps_ctxt->i4_chroma_format = ps_enc_ctxt->ps_stat_prms->s_src_prms.i4_chr_format; in ihevce_enc_loop_frame_init()
5927 ps_ctxt->i4_is_first_query = 1; in ihevce_enc_loop_frame_init()
5928 ps_ctxt->i4_is_ctb_qp_modified = 0; in ihevce_enc_loop_frame_init()
5934 ps_ctxt->i4_enc_frm_id = 0; in ihevce_enc_loop_frame_init()
5939 ps_ctxt->i4_enc_frm_id = i4_enc_frm_id; in ihevce_enc_loop_frame_init()
5978 ps_ctxt->u4_total_cu_bits = 0; in ihevce_enc_loop_frame_init()
5979 ps_ctxt->u4_total_cu_hdr_bits = 0; in ihevce_enc_loop_frame_init()
5981 ps_ctxt->u4_cu_tot_bits_into_qscale = 0; in ihevce_enc_loop_frame_init()
5982 ps_ctxt->u4_cu_tot_bits = 0; in ihevce_enc_loop_frame_init()
5983 ps_ctxt->u4_total_cu_bits_mul_qs = 0; in ihevce_enc_loop_frame_init()
5984 ps_ctxt->i4_display_num = i4_display_num; in ihevce_enc_loop_frame_init()
5985 ps_ctxt->i4_sub_pic_level_rc = ps_enc_ctxt->s_multi_thrd.i4_in_frame_rc_enabled; in ihevce_enc_loop_frame_init()
5988 ps_ctxt->i4_num_ctb_for_out_scale = (UPDATE_QP_AT_CTB * i4_tot_frame_ctb) / 100; in ihevce_enc_loop_frame_init()
5990 ps_ctxt->i4_cu_qp_sub_pic_rc = (1 << QP_LEVEL_MOD_ACT_FACTOR); in ihevce_enc_loop_frame_init()
5992 ps_ctxt->i8_frame_l1_ipe_sad = in ihevce_enc_loop_frame_init()
5994 ps_ctxt->i8_frame_l0_ipe_satd = in ihevce_enc_loop_frame_init()
5996 ps_ctxt->i8_frame_l1_me_sad = in ihevce_enc_loop_frame_init()
5998 ps_ctxt->i8_frame_l1_activity_fact = in ihevce_enc_loop_frame_init()
6000 if(ps_ctxt->i4_sub_pic_level_rc) in ihevce_enc_loop_frame_init()
6004 .ai4_frame_bits_estimated[ps_ctxt->i4_bitrate_instance_num] != 0); in ihevce_enc_loop_frame_init()
6006 ps_ctxt->ai4_frame_bits_estimated[ps_ctxt->i4_enc_frm_id] in ihevce_enc_loop_frame_init()
6007 [ps_ctxt->i4_bitrate_instance_num] = in ihevce_enc_loop_frame_init()
6009 .ai4_frame_bits_estimated[ps_ctxt->i4_bitrate_instance_num]; in ihevce_enc_loop_frame_init()
6013 ps_ctxt->i4_is_I_scenecut = in ihevce_enc_loop_frame_init()
6018 ps_ctxt->i4_is_non_I_scenecut = in ihevce_enc_loop_frame_init()
6020 (ps_ctxt->i4_is_I_scenecut == 0)); in ihevce_enc_loop_frame_init()
6024 ps_ctxt->i4_is_model_valid = in ihevce_enc_loop_frame_init()
6034 ps_ctxt->u1_is_input_data_hbd = (ps_sps->i1_bit_depth_luma_minus8 > 0); in ihevce_enc_loop_frame_init()
6036 ps_ctxt->u1_bit_depth = ps_sps->i1_bit_depth_luma_minus8 + 8; in ihevce_enc_loop_frame_init()
6038 ps_ctxt->s_mc_ctxt.i4_bit_depth = ps_ctxt->u1_bit_depth; in ihevce_enc_loop_frame_init()
6039 ps_ctxt->s_mc_ctxt.u1_chroma_array_type = ps_ctxt->u1_chroma_array_type; in ihevce_enc_loop_frame_init()
6042 ps_ctxt->i4_chroma_qp_offset = chroma_qp_offset; in ihevce_enc_loop_frame_init()
6043 ps_ctxt->i1_cu_qp_delta_enable = ps_pps->i1_cu_qp_delta_enabled_flag; in ihevce_enc_loop_frame_init()
6044 ps_ctxt->i1_entropy_coding_sync_enabled_flag = ps_pps->i1_entropy_coding_sync_enabled_flag; in ihevce_enc_loop_frame_init()
6046 ps_ctxt->i4_is_ref_pic = ps_curr_inp_prms->ps_curr_inp->s_lap_out.i4_is_ref_pic; in ihevce_enc_loop_frame_init()
6047 ps_ctxt->i4_temporal_layer = ps_curr_inp_prms->ps_curr_inp->s_lap_out.i4_temporal_lyr_id; in ihevce_enc_loop_frame_init()
6048 ps_ctxt->i4_use_const_lamda_modifier = USE_CONSTANT_LAMBDA_MODIFIER; in ihevce_enc_loop_frame_init()
6049 ps_ctxt->i4_use_const_lamda_modifier = in ihevce_enc_loop_frame_init()
6050 ps_ctxt->i4_use_const_lamda_modifier || in ihevce_enc_loop_frame_init()
6063 ps_ctxt->f_i_pic_lamda_modifier = in ihevce_enc_loop_frame_init()
6067 ps_ctxt->i4_frame_qp = i4_frm_qp; in ihevce_enc_loop_frame_init()
6068 ps_ctxt->i4_frame_mod_qp = i4_frm_qp; in ihevce_enc_loop_frame_init()
6069 ps_ctxt->i4_cu_qp = i4_frm_qp; in ihevce_enc_loop_frame_init()
6070 ps_ctxt->i4_prev_cu_qp = i4_frm_qp; in ihevce_enc_loop_frame_init()
6071 ps_ctxt->i4_chrm_cu_qp = in ihevce_enc_loop_frame_init()
6072 (ps_ctxt->u1_chroma_array_type == 2) in ihevce_enc_loop_frame_init()
6076 ps_ctxt->i4_cu_qp_div6 = (i4_frm_qp + (6 * (ps_ctxt->u1_bit_depth - 8))) / 6; in ihevce_enc_loop_frame_init()
6079 ps_ctxt->i4_cu_qp_mod6 = (i4_frm_qp + (6 * (ps_ctxt->u1_bit_depth - 8))) % 6; in ihevce_enc_loop_frame_init()
6081 ps_ctxt->i4_chrm_cu_qp_div6 = in ihevce_enc_loop_frame_init()
6082 (ps_ctxt->i4_chrm_cu_qp + (6 * (ps_ctxt->u1_bit_depth - 8))) / 6; in ihevce_enc_loop_frame_init()
6083 ps_ctxt->i4_chrm_cu_qp_mod6 = in ihevce_enc_loop_frame_init()
6084 (ps_ctxt->i4_chrm_cu_qp + (6 * (ps_ctxt->u1_bit_depth - 8))) % 6; in ihevce_enc_loop_frame_init()
6090 ps_ctxt->i4_quant_rnd_factor[PRED_MODE_INTER] = 85 in ihevce_enc_loop_frame_init()
6095 ps_ctxt->i4_quant_rnd_factor[PRED_MODE_INTER] = (1 << QUANT_ROUND_FACTOR_Q) / 3; in ihevce_enc_loop_frame_init()
6101 ps_ctxt->i4_quant_rnd_factor[PRED_MODE_INTRA] = 171 in ihevce_enc_loop_frame_init()
6107 ps_ctxt->i4_quant_rnd_factor[PRED_MODE_INTRA] = in ihevce_enc_loop_frame_init()
6108 ps_ctxt->i4_quant_rnd_factor[PRED_MODE_INTER]; in ihevce_enc_loop_frame_init()
6112 ps_ctxt->i1_strong_intra_smoothing_enable_flag = i1_strong_intra_smoothing_enable_flag; in ihevce_enc_loop_frame_init()
6114 ps_ctxt->i1_slice_type = i1_slice_type; in ihevce_enc_loop_frame_init()
6117 ps_ctxt->s_mc_ctxt.ps_ref_list = aps_ref_list; in ihevce_enc_loop_frame_init()
6118 ps_ctxt->s_mc_ctxt.i1_weighted_pred_flag = i1_weighted_pred_flag; in ihevce_enc_loop_frame_init()
6119 ps_ctxt->s_mc_ctxt.i1_weighted_bipred_flag = i1_weighted_bipred_flag; in ihevce_enc_loop_frame_init()
6120 ps_ctxt->s_mc_ctxt.i4_log2_luma_wght_denom = log2_luma_wght_denom; in ihevce_enc_loop_frame_init()
6121 ps_ctxt->s_mc_ctxt.i4_log2_chroma_wght_denom = log2_chroma_wght_denom; in ihevce_enc_loop_frame_init()
6124 ps_ctxt->s_mv_pred_ctxt.ps_ref_list = aps_ref_list; in ihevce_enc_loop_frame_init()
6125 ps_ctxt->s_mv_pred_ctxt.ps_slice_hdr = ps_slice_hdr; in ihevce_enc_loop_frame_init()
6126 ps_ctxt->s_mv_pred_ctxt.ps_sps = ps_sps; in ihevce_enc_loop_frame_init()
6127 ps_ctxt->s_mv_pred_ctxt.i4_log2_parallel_merge_level_minus2 = in ihevce_enc_loop_frame_init()
6131 if(ps_ctxt->s_mv_pred_ctxt.ps_slice_hdr->i1_slice_temporal_mvp_enable_flag) in ihevce_enc_loop_frame_init()
6133 if((ps_ctxt->s_mv_pred_ctxt.ps_slice_hdr->i1_num_ref_idx_l1_active > 0) && in ihevce_enc_loop_frame_init()
6134 (ps_ctxt->s_mv_pred_ctxt.ps_ref_list[1][0]->i4_frame_qp < in ihevce_enc_loop_frame_init()
6135 ps_ctxt->s_mv_pred_ctxt.ps_ref_list[0][0]->i4_frame_qp)) in ihevce_enc_loop_frame_init()
6137 ps_ctxt->s_mv_pred_ctxt.ps_slice_hdr->i1_collocated_from_l0_flag = 1; in ihevce_enc_loop_frame_init()
6142 ps_ctxt->s_deblk_prms.i4_beta_offset_div2 = ps_slice_hdr->i1_beta_offset_div2; in ihevce_enc_loop_frame_init()
6143 ps_ctxt->s_deblk_prms.i4_tc_offset_div2 = ps_slice_hdr->i1_tc_offset_div2; in ihevce_enc_loop_frame_init()
6145 ps_ctxt->s_deblk_prms.i4_cb_qp_indx_offset = ps_pps->i1_pic_cb_qp_offset; in ihevce_enc_loop_frame_init()
6147 ps_ctxt->s_deblk_prms.i4_cr_qp_indx_offset = ps_pps->i1_pic_cr_qp_offset; in ihevce_enc_loop_frame_init()
6149 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6151 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6153 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6155 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6157 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6160 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6162 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6164 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6167 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6169 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6171 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6173 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6175 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6177 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6179 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6181 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6183 ps_ctxt->aaps_enc_loop_rc_params[ps_ctxt->i4_enc_frm_id][i4_bitrate_instance_num] in ihevce_enc_loop_frame_init()
6186 GET_FRAME_QSTEP_FROM_QP(ps_ctxt->i4_frame_qp, ps_ctxt->i4_frame_qstep); in ihevce_enc_loop_frame_init()
6188 ps_ctxt->u1_max_tr_depth = ps_sps->i1_max_transform_hierarchy_depth_inter; in ihevce_enc_loop_frame_init()
6190 ps_ctxt->ps_rc_quant_ctxt = &ps_enc_ctxt->s_rc_quant; in ihevce_enc_loop_frame_init()
6193 &ps_ctxt->s_rdopt_entropy_ctxt, in ihevce_enc_loop_frame_init()
6202 ps_ctxt->pv_dep_mngr_encloop_dep_me = pv_dep_mngr_encloop_dep_me; in ihevce_enc_loop_frame_init()
6231 ihevce_enc_loop_ctxt_t *ps_ctxt; in ihevce_enc_loop_get_frame_rc_prms() local
6254 ps_ctxt = ps_master_ctxt->aps_enc_loop_thrd_ctxt[i]; in ihevce_enc_loop_get_frame_rc_prms()
6256 ps_ctxt->aaps_enc_loop_rc_params[i4_enc_frm_id][i4_br_id]->u4_frame_open_loop_intra_sad; in ihevce_enc_loop_get_frame_rc_prms()
6258 ps_ctxt->aaps_enc_loop_rc_params[i4_enc_frm_id][i4_br_id]->i8_frame_open_loop_ssd; in ihevce_enc_loop_get_frame_rc_prms()
6260 ps_ctxt->aaps_enc_loop_rc_params[i4_enc_frm_id][i4_br_id]->u4_frame_intra_sad; in ihevce_enc_loop_get_frame_rc_prms()
6262 ps_ctxt->aaps_enc_loop_rc_params[i4_enc_frm_id][i4_br_id]->u4_frame_sad_acc; in ihevce_enc_loop_get_frame_rc_prms()
6264 ps_ctxt->aaps_enc_loop_rc_params[i4_enc_frm_id][i4_br_id]->u4_frame_rdopt_bits; in ihevce_enc_loop_get_frame_rc_prms()
6266 ps_ctxt->aaps_enc_loop_rc_params[i4_enc_frm_id][i4_br_id]->u4_frame_rdopt_header_bits; in ihevce_enc_loop_get_frame_rc_prms()
6267 i4_qp_normalized_8x8_cu_sum[0] += ps_ctxt->aaps_enc_loop_rc_params[i4_enc_frm_id][i4_br_id] in ihevce_enc_loop_get_frame_rc_prms()
6269 i4_qp_normalized_8x8_cu_sum[1] += ps_ctxt->aaps_enc_loop_rc_params[i4_enc_frm_id][i4_br_id] in ihevce_enc_loop_get_frame_rc_prms()
6272 ps_ctxt->aaps_enc_loop_rc_params[i4_enc_frm_id][i4_br_id]->i4_8x8_cu_sum[0]; in ihevce_enc_loop_get_frame_rc_prms()
6274 ps_ctxt->aaps_enc_loop_rc_params[i4_enc_frm_id][i4_br_id]->i4_8x8_cu_sum[1]; in ihevce_enc_loop_get_frame_rc_prms()
6276 ps_ctxt->aaps_enc_loop_rc_params[i4_enc_frm_id][i4_br_id]->i8_sad_by_qscale[0]; in ihevce_enc_loop_get_frame_rc_prms()
6278 ps_ctxt->aaps_enc_loop_rc_params[i4_enc_frm_id][i4_br_id]->i8_sad_by_qscale[1]; in ihevce_enc_loop_get_frame_rc_prms()