Lines Matching refs:hw_cfg
129 Vp8eHwCfg *hw_cfg = &ctx->hw_cfg; in set_segmentation() local
135 if (hw_cfg->roi1_delta_qp) in set_segmentation()
136 pps->qp_sgm[1] = MPP_CLIP3(0, 127, qp - hw_cfg->roi1_delta_qp); in set_segmentation()
138 if (hw_cfg->roi2_delta_qp) in set_segmentation()
139 pps->qp_sgm[2] = MPP_CLIP3(0, 127, qp - hw_cfg->roi2_delta_qp); in set_segmentation()
150 if (hw_cfg->roi1_delta_qp || hw_cfg->roi2_delta_qp) { in set_segmentation()
158 if ((x >= hw_cfg->roi1_left) && (x <= hw_cfg->roi1_right) && in set_segmentation()
159 (y >= hw_cfg->roi1_top) && (y <= hw_cfg->roi1_bottom)) in set_segmentation()
161 if ((x >= hw_cfg->roi1_left) && (x <= hw_cfg->roi2_right) && in set_segmentation()
162 (y >= hw_cfg->roi2_top) && (y <= hw_cfg->roi2_bottom)) in set_segmentation()
204 static void set_intra_pred_penalties(Vp8eHwCfg *hw_cfg, RK_U32 qp) in set_intra_pred_penalties() argument
211 hw_cfg->intra_b_mode_penalty[i] = (intra4_mode_tree_penalty_tbl[i] * tmp) >> 8; in set_intra_pred_penalties()
217 hw_cfg->intra_mode_penalty[i] = (intra16_mode_tree_penalty_tbl[i] * tmp) >> 8; in set_intra_pred_penalties()
221 if (hw_cfg->intra_16_favor == -1) in set_intra_pred_penalties()
222 hw_cfg->intra_16_favor = qp * 1024 / 128; in set_intra_pred_penalties()
439 Vp8eHwCfg *hw_cfg = &ctx->hw_cfg; in set_new_frame() local
442 hw_cfg->output_strm_size /= 8; in set_new_frame()
443 hw_cfg->output_strm_size &= (~0x07); in set_new_frame()
446 hw_cfg->output_strm_offset += ctx->bitbuf[1].byte_cnt; in set_new_frame()
447 hw_cfg->first_free_bit = (hw_cfg->output_strm_offset & 0x07) * 8; in set_new_frame()
450 if (hw_cfg->first_free_bit != 0) { in set_new_frame()
454 for (val = 6; val >= hw_cfg->first_free_bit / 8; val--) { in set_new_frame()
463 hw_cfg->strm_start_msb = val; in set_new_frame()
465 if (hw_cfg->first_free_bit > 32) { in set_new_frame()
470 hw_cfg->strm_start_lsb = val; in set_new_frame()
472 hw_cfg->strm_start_lsb = 0; in set_new_frame()
475 hw_cfg->strm_start_msb = hw_cfg->strm_start_lsb = 0; in set_new_frame()
479 hw_cfg->disable_qp_mv = 1; in set_new_frame()
482 hw_cfg->disable_qp_mv = 1; in set_new_frame()
484 hw_cfg->disable_qp_mv = 0; in set_new_frame()
486 hw_cfg->disable_qp_mv = 0; in set_new_frame()
489 hw_cfg->enable_cabac = 1; in set_new_frame()
492 hw_cfg->split_mv_mode = 0; in set_new_frame()
495 hw_cfg->split_mv_mode = 0; in set_new_frame()
497 hw_cfg->split_mv_mode = 1; in set_new_frame()
499 hw_cfg->split_mv_mode = 1; in set_new_frame()
502 if (hw_cfg->inter_favor == -1) { in set_new_frame()
506 hw_cfg->inter_favor = tmp & 0xFFFF; in set_new_frame()
509 hw_cfg->inter_favor = MPP_MAX(0, tmp); in set_new_frame()
513 if (hw_cfg->diff_mv_penalty[0] == -1) in set_new_frame()
514 hw_cfg->diff_mv_penalty[0] = 64 / 2; in set_new_frame()
515 if (hw_cfg->diff_mv_penalty[1] == -1) in set_new_frame()
516 hw_cfg->diff_mv_penalty[1] = 60 / 2 * 32; in set_new_frame()
517 if (hw_cfg->diff_mv_penalty[2] == -1) in set_new_frame()
518 hw_cfg->diff_mv_penalty[2] = 8; in set_new_frame()
519 if (hw_cfg->skip_penalty == -1) in set_new_frame()
520 hw_cfg->skip_penalty = (qp >= 100) ? (3 * qp / 4) : 0; /* Zero/nearest/near */ in set_new_frame()
521 if (hw_cfg->golden_penalty == -1) in set_new_frame()
522 hw_cfg->golden_penalty = MPP_MAX(0, 5 * qp / 4 - 10); in set_new_frame()
523 if (hw_cfg->split_penalty[0] == 0) in set_new_frame()
524 hw_cfg->split_penalty[0] = MPP_MIN(1023, vp8_split_penalty_tbl[qp] / 2); in set_new_frame()
525 if (hw_cfg->split_penalty[1] == 0) in set_new_frame()
526 hw_cfg->split_penalty[1] = MPP_MIN(1023, (2 * vp8_split_penalty_tbl[qp] + 40) / 4); in set_new_frame()
527 if (hw_cfg->split_penalty[3] == 0) in set_new_frame()
528 hw_cfg->split_penalty[3] = MPP_MIN(511, (8 * vp8_split_penalty_tbl[qp] + 500) / 16); in set_new_frame()
533 hw_cfg->dmv_penalty[i] = i * 2; in set_new_frame()
536 hw_cfg->dmv_qpel_penalty[i] = MPP_MIN(255, (y + x + 1) / 2 * weight_tbl[qp] >> 8); in set_new_frame()
541 hw_cfg->y1_quant_dc[i] = ctx->qp_y1[qp].quant[0]; in set_new_frame()
542 hw_cfg->y1_quant_ac[i] = ctx->qp_y1[qp].quant[1]; in set_new_frame()
543 hw_cfg->y2_quant_dc[i] = ctx->qp_y2[qp].quant[0]; in set_new_frame()
544 hw_cfg->y2_quant_ac[i] = ctx->qp_y2[qp].quant[1]; in set_new_frame()
545 hw_cfg->ch_quant_dc[i] = ctx->qp_ch[qp].quant[0]; in set_new_frame()
546 hw_cfg->ch_quant_ac[i] = ctx->qp_ch[qp].quant[1]; in set_new_frame()
547 hw_cfg->y1_zbin_dc[i] = ctx->qp_y1[qp].zbin[0]; in set_new_frame()
548 hw_cfg->y1_zbin_ac[i] = ctx->qp_y1[qp].zbin[1]; in set_new_frame()
549 hw_cfg->y2_zbin_dc[i] = ctx->qp_y2[qp].zbin[0]; in set_new_frame()
550 hw_cfg->y2_zbin_ac[i] = ctx->qp_y2[qp].zbin[1]; in set_new_frame()
551 hw_cfg->ch_zbin_dc[i] = ctx->qp_ch[qp].zbin[0]; in set_new_frame()
552 hw_cfg->ch_zbin_ac[i] = ctx->qp_ch[qp].zbin[1]; in set_new_frame()
553 hw_cfg->y1_round_dc[i] = ctx->qp_y1[qp].round[0]; in set_new_frame()
554 hw_cfg->y1_round_ac[i] = ctx->qp_y1[qp].round[1]; in set_new_frame()
555 hw_cfg->y2_round_dc[i] = ctx->qp_y2[qp].round[0]; in set_new_frame()
556 hw_cfg->y2_round_ac[i] = ctx->qp_y2[qp].round[1]; in set_new_frame()
557 hw_cfg->ch_round_dc[i] = ctx->qp_ch[qp].round[0]; in set_new_frame()
558 hw_cfg->ch_round_ac[i] = ctx->qp_ch[qp].round[1]; in set_new_frame()
559 hw_cfg->y1_dequant_dc[i] = ctx->qp_y1[qp].dequant[0]; in set_new_frame()
560 hw_cfg->y1_dequant_ac[i] = ctx->qp_y1[qp].dequant[1]; in set_new_frame()
561 hw_cfg->y2_dequant_dc[i] = ctx->qp_y2[qp].dequant[0]; in set_new_frame()
562 hw_cfg->y2_dequant_ac[i] = ctx->qp_y2[qp].dequant[1]; in set_new_frame()
563 hw_cfg->ch_dequant_dc[i] = ctx->qp_ch[qp].dequant[0]; in set_new_frame()
564 hw_cfg->ch_dequant_ac[i] = ctx->qp_ch[qp].dequant[1]; in set_new_frame()
566 hw_cfg->filter_level[i] = ctx->ppss.pps->level_sgm[i]; in set_new_frame()
569 hw_cfg->bool_enc_value = ctx->bitbuf[1].bottom; in set_new_frame()
570 hw_cfg->bool_enc_value_bits = 24 - ctx->bitbuf[1].bits_left; in set_new_frame()
571 hw_cfg->bool_enc_range = ctx->bitbuf[1].range; in set_new_frame()
574 hw_cfg->frame_coding_type = 1; in set_new_frame()
576 hw_cfg->frame_coding_type = 0; in set_new_frame()
578 hw_cfg->size_tbl_base = mpp_buffer_get_fd(buffers->hw_size_table_buf); in set_new_frame()
580 hw_cfg->dct_partitions = sps->dct_partitions; in set_new_frame()
581 hw_cfg->filter_disable = sps->filter_type; in set_new_frame()
582 hw_cfg->filter_sharpness = sps->filter_sharpness; in set_new_frame()
583 hw_cfg->segment_enable = ctx->ppss.pps->segment_enabled; in set_new_frame()
584 hw_cfg->segment_map_update = ctx->ppss.pps->sgm.map_modified; in set_new_frame()
589 hw_cfg->lf_ref_delta[i] = sps->ref_delta[i]; in set_new_frame()
590 hw_cfg->lf_mode_delta[i] = sps->mode_delta[i]; in set_new_frame()
593 set_intra_pred_penalties(hw_cfg, qp); in set_new_frame()
700 Vp8eHwCfg *hw_cfg = &ctx->hw_cfg; in set_picbuf_ref() local
742 hw_cfg->mv_ref_idx[0] = hw_cfg->mv_ref_idx[1] = ref_idx; in set_picbuf_ref()
747 hw_cfg->internal_img_lum_base_r[0] = ref_pic_list[ref_idx].picture.lum; in set_picbuf_ref()
748 hw_cfg->internal_img_chr_base_r[0] = ref_pic_list[ref_idx].picture.cb; in set_picbuf_ref()
749 hw_cfg->internal_img_lum_base_r[1] = ref_pic_list[ref_idx].picture.lum; in set_picbuf_ref()
750 hw_cfg->internal_img_chr_base_r[1] = ref_pic_list[ref_idx].picture.cb; in set_picbuf_ref()
751 hw_cfg->mv_ref_idx[0] = hw_cfg->mv_ref_idx[1] = ref_idx; in set_picbuf_ref()
752 hw_cfg->ref2_enable = 0; in set_picbuf_ref()
755 hw_cfg->internal_img_lum_base_r[1] = ref_pic_list[ref_idx2].picture.lum; in set_picbuf_ref()
756 hw_cfg->internal_img_chr_base_r[1] = ref_pic_list[ref_idx2].picture.cb; in set_picbuf_ref()
757 hw_cfg->mv_ref_idx[1] = ref_idx2; in set_picbuf_ref()
758 hw_cfg->ref2_enable = 1; in set_picbuf_ref()
762 hw_cfg->rec_write_disable = 0; in set_picbuf_ref()
783 hw_cfg->rec_write_disable = 1; in set_picbuf_ref()
787 hw_cfg->internal_img_lum_base_w = pic_buf->cur_pic->picture.lum; in set_picbuf_ref()
788 hw_cfg->internal_img_chr_base_w = pic_buf->cur_pic->picture.cb; in set_picbuf_ref()
892 if (ctx->hw_cfg.input_rotation) { in set_frame_tag()
987 Vp8eHwCfg *hw_cfg = &ctx->hw_cfg; in set_parameter() local
1045 hw_cfg->input_rotation = rotation; in set_parameter()
1057 hw_cfg->input_lum_base += (tmp & (~7)); in set_parameter()
1058 hw_cfg->input_luma_base_offset = tmp & 7; in set_parameter()
1061 hw_cfg->vs_next_luma_base += (tmp & (~7)); in set_parameter()
1068 hw_cfg->input_cb_base += (tmp & (~7)); in set_parameter()
1069 hw_cfg->input_cr_base += (tmp & (~7)); in set_parameter()
1070 hw_cfg->input_chroma_base_offset = tmp & 7; in set_parameter()
1077 hw_cfg->input_cb_base += (tmp & (~7)); in set_parameter()
1078 hw_cfg->input_chroma_base_offset = tmp & 7; in set_parameter()
1086 hw_cfg->input_lum_base += (tmp & (~7)); in set_parameter()
1087 hw_cfg->input_luma_base_offset = tmp & 7; in set_parameter()
1088 hw_cfg->input_chroma_base_offset = (hw_cfg->input_luma_base_offset / 4) * 4; in set_parameter()
1091 hw_cfg->vs_next_luma_base += (tmp & (~7)); in set_parameter()
1098 hw_cfg->input_lum_base += (tmp & (~7)); in set_parameter()
1099 hw_cfg->input_luma_base_offset = (tmp & 7) / 2; in set_parameter()
1102 hw_cfg->vs_next_luma_base += (tmp & (~7)); in set_parameter()
1105 hw_cfg->mbs_in_row = width_align / 16; in set_parameter()
1106 hw_cfg->mbs_in_col = height_align / 16; in set_parameter()
1107 hw_cfg->pixels_on_row = stride; in set_parameter()
1110 hw_cfg->x_fill = (16 - (width & 0x0F)) / 4; in set_parameter()
1112 hw_cfg->x_fill = 0; in set_parameter()
1115 hw_cfg->y_fill = 16 - (height & 0x0F); in set_parameter()
1117 hw_cfg->y_fill = 0; in set_parameter()
1119 hw_cfg->vs_mode = 0; in set_parameter()
1128 hw_cfg->rgb_coeff_a = 19589; in set_parameter()
1129 hw_cfg->rgb_coeff_b = 38443; in set_parameter()
1130 hw_cfg->rgb_coeff_c = 7504; in set_parameter()
1131 hw_cfg->rgb_coeff_e = 37008; in set_parameter()
1132 hw_cfg->rgb_coeff_f = 46740; in set_parameter()
1140 hw_cfg->rgb_coeff_a = 13933; in set_parameter()
1141 hw_cfg->rgb_coeff_b = 46871; in set_parameter()
1142 hw_cfg->rgb_coeff_c = 732; in set_parameter()
1143 hw_cfg->rgb_coeff_e = 35317; in set_parameter()
1144 hw_cfg->rgb_coeff_f = 41615; in set_parameter()
1148 hw_cfg->r_mask_msb = hw_cfg->g_mask_msb = hw_cfg->b_mask_msb = 0; in set_parameter()
1151 hw_cfg->input_format = fmt_cfg.format; in set_parameter()
1152 hw_cfg->r_mask_msb = fmt_cfg.r_mask; in set_parameter()
1153 hw_cfg->g_mask_msb = fmt_cfg.g_mask; in set_parameter()
1154 hw_cfg->b_mask_msb = fmt_cfg.b_mask; in set_parameter()
1210 Vp8eHwCfg *hw_cfg = &ctx->hw_cfg; in alloc_buffer() local
1216 hw_cfg->coding_type = 1; in alloc_buffer()
1244 hw_cfg->internal_img_lum_base_w = mpp_buffer_get_fd(buffers->hw_luma_buf); in alloc_buffer()
1245 hw_cfg->internal_img_chr_base_w = mpp_buffer_get_fd(buffers->hw_cbcr_buf[0]); in alloc_buffer()
1247 hw_cfg->internal_img_lum_base_r[0] = mpp_buffer_get_fd(buffers->hw_luma_buf); in alloc_buffer()
1248 hw_cfg->internal_img_chr_base_r[0] = mpp_buffer_get_fd(buffers->hw_cbcr_buf[1]); in alloc_buffer()
1270 hw_cfg->cabac_tbl_base = mpp_buffer_get_fd(buffers->hw_cabac_table_buf); in alloc_buffer()
1279 hw_cfg->mv_output_base = mpp_buffer_get_fd(buffers->hw_mv_output_buf); in alloc_buffer()
1290 hw_cfg->prob_count_base = mpp_buffer_get_fd(buffers->hw_prob_count_buf); in alloc_buffer()
1301 hw_cfg->segment_map_base = mpp_buffer_get_fd(buffers->hw_segment_map_buf); in alloc_buffer()
1330 hw_cfg->intra_16_favor = -1; in alloc_buffer()
1331 hw_cfg->prev_mode_favor = -1; in alloc_buffer()
1332 hw_cfg->inter_favor = -1; in alloc_buffer()
1333 hw_cfg->skip_penalty = -1; in alloc_buffer()
1334 hw_cfg->diff_mv_penalty[0] = -1; in alloc_buffer()
1335 hw_cfg->diff_mv_penalty[1] = -1; in alloc_buffer()
1336 hw_cfg->diff_mv_penalty[2] = -1; in alloc_buffer()
1337 hw_cfg->split_penalty[0] = 0; in alloc_buffer()
1338 hw_cfg->split_penalty[1] = 0; in alloc_buffer()
1339 hw_cfg->split_penalty[2] = 0x3FF; in alloc_buffer()
1340 hw_cfg->split_penalty[3] = 0; in alloc_buffer()
1341 hw_cfg->zero_mv_favor = 0; in alloc_buffer()
1343 hw_cfg->intra_area_top = hw_cfg->intra_area_bottom = 255; in alloc_buffer()
1344 hw_cfg->intra_area_left = hw_cfg->intra_area_right = 255; in alloc_buffer()
1345 hw_cfg->roi1_top = hw_cfg->roi1_bottom = 255; in alloc_buffer()
1346 hw_cfg->roi1_left = hw_cfg->roi1_right = 255; in alloc_buffer()
1347 hw_cfg->roi2_top = hw_cfg->roi2_bottom = 255; in alloc_buffer()
1348 hw_cfg->roi2_left = hw_cfg->roi2_right = 255; in alloc_buffer()
1362 Vp8eHwCfg *hw_cfg = &ctx->hw_cfg; in hal_vp8e_enc_strm_code() local
1392 hw_cfg->input_lum_base = mpp_buffer_get_fd(enc_task->input); in hal_vp8e_enc_strm_code()
1393 hw_cfg->input_cb_base = hw_cfg->input_lum_base; in hal_vp8e_enc_strm_code()
1394 hw_cfg->input_cr_base = hw_cfg->input_cb_base; in hal_vp8e_enc_strm_code()
1395 hw_cfg->input_lum_offset = hw_offset.offset_byte[0]; in hal_vp8e_enc_strm_code()
1396 hw_cfg->input_cb_offset = hw_offset.offset_byte[1]; in hal_vp8e_enc_strm_code()
1397 hw_cfg->input_cr_offset = hw_offset.offset_byte[2]; in hal_vp8e_enc_strm_code()
1415 hw_cfg->output_strm_base = bus_addr; in hal_vp8e_enc_strm_code()
1416 hw_cfg->output_strm_offset = offset; in hal_vp8e_enc_strm_code()
1424 hw_cfg->partition_Base[0] = bus_addr; in hal_vp8e_enc_strm_code()
1425 hw_cfg->partition_offset[0] = offset; in hal_vp8e_enc_strm_code()
1433 hw_cfg->partition_Base[1] = bus_addr; in hal_vp8e_enc_strm_code()
1434 hw_cfg->partition_offset[1] = offset; in hal_vp8e_enc_strm_code()
1435 hw_cfg->output_strm_size = p_end - p_start; in hal_vp8e_enc_strm_code()
1537 const RK_U32 hw_offset = ctx->hw_cfg.first_free_bit / 8; in hal_vp8e_update_buffers()