summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean V Kelley <seanvk@posteo.de>2017-01-17 15:01:18 -0800
committerSean V Kelley <seanvk@posteo.de>2017-01-17 15:01:18 -0800
commitac3d9a840196ae4705a65d01a320cdd3dfd9629d (patch)
tree569b48a4d6d2c1a6ba8c6b609acd626a50ea3086
parentcbe1f62bf8b4dd59c1bf6c5470ddc8c8b449790f (diff)
Revert "ENC: WP/SFD kernel for AVC encoder"
-rwxr-xr-xsrc/gen9_avc_encoder.c277
1 files changed, 0 insertions, 277 deletions
diff --git a/src/gen9_avc_encoder.c b/src/gen9_avc_encoder.c
index ea83cbd..d64694c 100755
--- a/src/gen9_avc_encoder.c
+++ b/src/gen9_avc_encoder.c
@@ -4212,280 +4212,3 @@ gen9_avc_kernel_me(VADriverContextP ctx,
return VA_STATUS_SUCCESS;
}
-
-/*
-wp related function
-*/
-static void
-gen9_avc_set_curbe_wp(VADriverContextP ctx,
- struct encode_state *encode_state,
- struct i965_gpe_context *gpe_context,
- struct intel_encoder_context *encoder_context,
- void * param)
-{
- gen9_avc_wp_curbe_data *cmd;
- struct encoder_vme_mfc_context * vme_context = (struct encoder_vme_mfc_context *)encoder_context->vme_context;
- struct avc_enc_state * avc_state = (struct avc_enc_state * )vme_context->private_enc_state;
- VAEncSliceParameterBufferH264 * slice_param = avc_state->slice_param[0];
- struct wp_param * curbe_param = (struct wp_param *)param;
-
- cmd = i965_gpe_context_map_curbe(gpe_context);
-
- if (!cmd)
- return;
- memset(cmd,0,sizeof(gen9_avc_wp_curbe_data));
- if(curbe_param->ref_list_idx)
- {
- cmd->dw0.default_weight = slice_param->luma_weight_l1[0];
- cmd->dw0.default_offset = slice_param->luma_offset_l1[0];
- }else
- {
- cmd->dw0.default_weight = slice_param->luma_weight_l0[0];
- cmd->dw0.default_offset = slice_param->luma_offset_l0[0];
- }
-
- cmd->dw49.input_surface = GEN9_AVC_WP_INPUT_REF_SURFACE_INDEX;
- cmd->dw50.output_surface = GEN9_AVC_WP_OUTPUT_SCALED_SURFACE_INDEX;
-
- i965_gpe_context_unmap_curbe(gpe_context);
-
-}
-
-static void
-gen9_avc_send_surface_wp(VADriverContextP ctx,
- struct encode_state *encode_state,
- struct i965_gpe_context *gpe_context,
- struct intel_encoder_context *encoder_context,
- void * param)
-{
- struct i965_driver_data *i965 = i965_driver_data(ctx);
- struct encoder_vme_mfc_context * vme_context = (struct encoder_vme_mfc_context *)encoder_context->vme_context;
- struct gen9_avc_encoder_context * avc_ctx = (struct gen9_avc_encoder_context * )vme_context->private_enc_ctx;
- struct avc_enc_state * avc_state = (struct avc_enc_state * )vme_context->private_enc_state;
- struct wp_param * curbe_param = (struct wp_param *)param;
- struct object_surface *obj_surface;
- VAEncSliceParameterBufferH264 * slice_param = avc_state->slice_param[0];
- VASurfaceID surface_id;
-
- if(curbe_param->ref_list_idx)
- {
- surface_id = slice_param->RefPicList1[0].picture_id;
- obj_surface = SURFACE(surface_id);
- if (!obj_surface || !obj_surface->private_data)
- avc_state->weighted_ref_l1_enable = 0;
- else
- avc_state->weighted_ref_l1_enable = 1;
- }else
- {
- surface_id = slice_param->RefPicList0[0].picture_id;
- obj_surface = SURFACE(surface_id);
- if (!obj_surface || !obj_surface->private_data)
- avc_state->weighted_ref_l0_enable = 0;
- else
- avc_state->weighted_ref_l0_enable = 1;
- }
- if(!obj_surface)
- obj_surface = encode_state->reference_objects[0];
-
-
- gen9_add_adv_gpe_surface(ctx, gpe_context,
- obj_surface,
- GEN9_AVC_WP_INPUT_REF_SURFACE_INDEX);
-
- obj_surface = avc_ctx->wp_output_pic_select_surface_obj[curbe_param->ref_list_idx];
- gen9_add_adv_gpe_surface(ctx, gpe_context,
- obj_surface,
- GEN9_AVC_WP_OUTPUT_SCALED_SURFACE_INDEX);
-}
-
-
-static VAStatus
-gen9_avc_kernel_wp(VADriverContextP ctx,
- struct encode_state *encode_state,
- struct intel_encoder_context *encoder_context,
- unsigned int list1_in_use)
-{
- struct encoder_vme_mfc_context * vme_context = (struct encoder_vme_mfc_context *)encoder_context->vme_context;
- struct gen9_avc_encoder_context * avc_ctx = (struct gen9_avc_encoder_context * )vme_context->private_enc_ctx;
- struct generic_enc_codec_state * generic_state = (struct generic_enc_codec_state * )vme_context->generic_enc_state;
- struct generic_encoder_context * generic_ctx = (struct generic_encoder_context * )vme_context->generic_enc_ctx;
-
- struct i965_gpe_context *gpe_context;
- struct gpe_media_object_walker_parameter media_object_walker_param;
- struct gpe_encoder_kernel_walker_parameter kernel_walker_param;
- int media_function = INTEL_MEDIA_STATE_ENC_WP;
- struct wp_param param;
-
- gpe_context = &(avc_ctx->context_wp.gpe_contexts);
-
- gen8_gpe_context_init(ctx, gpe_context);
- gen9_gpe_reset_binding_table(ctx, gpe_context);
-
- memset(&param,0,sizeof(param));
- param.ref_list_idx = (list1_in_use == 1)? 1: 0;
- /*set curbe*/
- generic_ctx->pfn_set_curbe_wp(ctx,encode_state,gpe_context,encoder_context,&param);
-
- /*send surface*/
- generic_ctx->pfn_send_wp_surface(ctx,encode_state,gpe_context,encoder_context,&param);
-
- gen8_gpe_setup_interface_data(ctx, gpe_context);
-
- memset(&kernel_walker_param, 0, sizeof(kernel_walker_param));
- /* the scaling is based on 8x8 blk level */
- kernel_walker_param.resolution_x = generic_state->frame_width_in_mbs;
- kernel_walker_param.resolution_y = generic_state->frame_height_in_mbs;
- kernel_walker_param.no_dependency = 1;
-
- i965_init_media_object_walker_parameter(&kernel_walker_param, &media_object_walker_param);
-
- gen9_avc_run_kernel_media_object_walker(ctx, encoder_context,
- gpe_context,
- media_function,
- &media_object_walker_param);
-
- return VA_STATUS_SUCCESS;
-}
-
-
-/*
-sfd related function
-*/
-static void
-gen9_avc_set_curbe_sfd(VADriverContextP ctx,
- struct encode_state *encode_state,
- struct i965_gpe_context *gpe_context,
- struct intel_encoder_context *encoder_context,
- void * param)
-{
- gen9_avc_sfd_curbe_data *cmd;
- struct encoder_vme_mfc_context * vme_context = (struct encoder_vme_mfc_context *)encoder_context->vme_context;
- struct generic_enc_codec_state * generic_state = (struct generic_enc_codec_state * )vme_context->generic_enc_state;
- struct avc_enc_state * avc_state = (struct avc_enc_state * )vme_context->private_enc_state;
- VAEncSliceParameterBufferH264 * slice_param = avc_state->slice_param[0];
-
- cmd = i965_gpe_context_map_curbe(gpe_context);
-
- if (!cmd)
- return;
- memset(cmd,0,sizeof(gen9_avc_sfd_curbe_data));
-
- cmd->dw0.enable_intra_cost_scaling_for_static_frame = 1 ;
- cmd->dw0.enable_adaptive_mv_stream_in = 0 ; //vdenc
- cmd->dw0.stream_in_type = 7 ; //vdenc
- cmd->dw0.slice_type = slice_type_kernel[generic_state->frame_type] ;
- cmd->dw0.brc_mode_enable = generic_state->brc_enabled ;
- cmd->dw0.vdenc_mode_disable = 1 ;
-
- cmd->dw1.hme_stream_in_ref_cost = 5 ;
- cmd->dw1.num_of_refs = slice_param->num_ref_idx_l0_active_minus1 ;//vdenc
- cmd->dw1.qp_value = avc_state->pic_param->pic_init_qp + slice_param->slice_qp_delta ;
-
- cmd->dw2.frame_width_in_mbs = generic_state->frame_width_in_mbs ;
- cmd->dw2.frame_height_in_mbs = generic_state->frame_height_in_mbs ;
-
- cmd->dw3.large_mv_threshold = 128 ;
- cmd->dw4.total_large_mv_threshold = (generic_state->frame_width_in_mbs * generic_state->frame_height_in_mbs)/100 ;
- cmd->dw5.zmv_threshold = 4 ;
- cmd->dw6.total_zmv_threshold = (generic_state->frame_width_in_mbs * generic_state->frame_height_in_mbs * avc_state->zero_mv_threshold)/100 ; // zero_mv_threshold = 60;
- cmd->dw7.min_dist_threshold = 10 ;
-
- if(generic_state->frame_type == SLICE_TYPE_P)
- {
- memcpy(cmd->cost_table,gen9_avc_sfd_cost_table_p_frame,52* sizeof(unsigned char));
-
- }else if(generic_state->frame_type == SLICE_TYPE_B)
- {
- memcpy(cmd->cost_table,gen9_avc_sfd_cost_table_b_frame,52* sizeof(unsigned char));
- }
-
- cmd->dw21.actual_width_in_mb = cmd->dw2.frame_width_in_mbs ;
- cmd->dw21.actual_height_in_mb = cmd->dw2.frame_height_in_mbs ;
- cmd->dw24.vdenc_input_image_state_index = GEN9_AVC_SFD_VDENC_INPUT_IMAGE_STATE_INDEX ;
- cmd->dw26.mv_data_surface_index = GEN9_AVC_SFD_MV_DATA_SURFACE_INDEX ;
- cmd->dw27.inter_distortion_surface_index = GEN9_AVC_SFD_INTER_DISTORTION_SURFACE_INDEX ;
- cmd->dw28.output_data_surface_index = GEN9_AVC_SFD_OUTPUT_DATA_SURFACE_INDEX ;
- cmd->dw29.vdenc_output_image_state_index = GEN9_AVC_SFD_VDENC_OUTPUT_IMAGE_STATE_INDEX ;
-
- i965_gpe_context_unmap_curbe(gpe_context);
-
-}
-
-static void
-gen9_avc_send_surface_sfd(VADriverContextP ctx,
- struct encode_state *encode_state,
- struct i965_gpe_context *gpe_context,
- struct intel_encoder_context *encoder_context,
- void * param)
-{
- struct encoder_vme_mfc_context * vme_context = (struct encoder_vme_mfc_context *)encoder_context->vme_context;
- struct gen9_avc_encoder_context * avc_ctx = (struct gen9_avc_encoder_context * )vme_context->private_enc_ctx;
- struct i965_gpe_resource *gpe_resource;
- int size = 0;
-
- /*HME mv data surface memv output 4x*/
- gpe_resource = &avc_ctx->s4x_memv_data_buffer;
- gen9_add_buffer_2d_gpe_surface(ctx, gpe_context,
- gpe_resource,
- 1,
- I965_SURFACEFORMAT_R8_UNORM,
- GEN9_AVC_SFD_MV_DATA_SURFACE_INDEX);
-
- /* memv distortion */
- gpe_resource = &avc_ctx->s4x_memv_distortion_buffer;
- gen9_add_buffer_2d_gpe_surface(ctx, gpe_context,
- gpe_resource,
- 1,
- I965_SURFACEFORMAT_R8_UNORM,
- GEN9_AVC_SFD_INTER_DISTORTION_SURFACE_INDEX);
- /*buffer output*/
- size = 32 * 4 *4;
- gpe_resource = &avc_ctx->res_sfd_output_buffer;
- gen9_add_buffer_gpe_surface(ctx,
- gpe_context,
- gpe_resource,
- 0,
- size / 4,
- 0,
- GEN9_AVC_SFD_OUTPUT_DATA_SURFACE_INDEX);
-
-}
-
-static VAStatus
-gen9_avc_kernel_sfd(VADriverContextP ctx,
- struct encode_state *encode_state,
- struct intel_encoder_context *encoder_context)
-{
- struct encoder_vme_mfc_context * vme_context = (struct encoder_vme_mfc_context *)encoder_context->vme_context;
- struct gen9_avc_encoder_context * avc_ctx = (struct gen9_avc_encoder_context * )vme_context->private_enc_ctx;
- struct generic_encoder_context * generic_ctx = (struct generic_encoder_context * )vme_context->generic_enc_ctx;
-
- struct i965_gpe_context *gpe_context;
- struct gpe_media_object_parameter media_object_param;
- struct gpe_media_object_inline_data media_object_inline_data;
- int media_function = INTEL_MEDIA_STATE_STATIC_FRAME_DETECTION;
- gpe_context = &(avc_ctx->context_sfd.gpe_contexts);
-
- gen8_gpe_context_init(ctx, gpe_context);
- gen9_gpe_reset_binding_table(ctx, gpe_context);
-
- /*set curbe*/
- generic_ctx->pfn_set_curbe_sfd(ctx,encode_state,gpe_context,encoder_context,NULL);
-
- /*send surface*/
- generic_ctx->pfn_send_sfd_surface(ctx,encode_state,gpe_context,encoder_context,NULL);
-
- gen8_gpe_setup_interface_data(ctx, gpe_context);
-
- memset(&media_object_param, 0, sizeof(media_object_param));
- memset(&media_object_inline_data, 0, sizeof(media_object_inline_data));
- media_object_param.pinline_data = &media_object_inline_data;
- media_object_param.inline_size = sizeof(media_object_inline_data);
-
- gen9_avc_run_kernel_media_object(ctx, encoder_context,
- gpe_context,
- media_function,
- &media_object_param);
-
- return VA_STATUS_SUCCESS;
-}