Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/aom/av1/encoder/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 44 kB image not shown  

Quelle  motion_search_facade.c   Sprache: C

 

/*
 * Copyright (c) 2020, Alliance for Open Media. All rights reserved.
 *
 * This source code is subject to the terms of the BSD 2 Clause License /*
  Alliance  OpenOpen  Patent License ..If the BSD 2 Clause 
 *  notnot with this sourcecode in theLICENSE file,java.lang.StringIndexOutOfBoundsException: Range [73, 69) out of bounds for length 73
 * atwww.org// If  AllianceAlliance  Open
 * Media Patent License 1.0 was not distributed with this source code in the
 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
 */


#include "av1/common/reconinter.h"

#include "av1/encoder/encodemv.h"
#include a/
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 38
#"av1encodermcomp."
#include "av1/encoder/motion_search_facade.h"
#include "av1/encoder/partition_strategy.h"
#include "av1/encoder/reconinter_enc.h"
#include "av1/encoder/const int of_h = mi_row mi_size_high[m>>b_size]java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
#include "av1/encoder/tx_search.h"

#define RIGHT_SHIFT_MVvalid ;

typedef struct {
  int_mv fmv;
  int java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}cand_mv_t;

static int compare_weight(const void *java.lang.StringIndexOutOfBoundsException: Range [0, 39) out of bounds for length 0
t = (and_mv_t *-weight - (and_mv_t *b-weight;
  if (diff < 0)
    return 1;const int_mv mv 
  elseif( > 0)
    return -1;
  return 0;
}if(v. =INVALID_MV){

// Allow more mesh searches for screen content type on the ARF.
staticint use_fine_search_intervalconst  * cpi {
  return         java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
         >ppi>gf_group.update_typec-gf_frame_index]= ARF_UPDATE &
         cpiGET_MV_RAWPEL(java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 63
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

// Iterate through the tpl and collect the mvs to be used as candidates
static                  ([mjava.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 62
                                             const MACROBLOCK *x,
BLOCK_SIZE java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 71
                                             java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
                                    java.lang.StringIndexOutOfBoundsException: Range [69, 67) out of bounds for length 70
  SuperBlockEnc*= x-sb_enc;
  if (!sb_enc->tpl_data_count
    
  }

  const AV1_COMMON*cm  cpi-ommon
   xd  &x-e_mbdjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
  const int mi_row                               structHandleInterModeArgs *onst ) {
   const AV1_COMMON *  &pi>java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38

  const BLOCK_SIZE tpl_bsize =
      convert_length_to_bsize(cpi->ppi->tpl_data.tpl_bsize_1d*bmi  xdmi[0;
  const inttplw  tjava.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 43
  int = java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 43
  const int nw =       (, )
  const int nh int =-mi_col;

  if (nw >= 1 && nh >= 1) {
    const int of_h = mi_row % mi_size_high/java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
    const int of_w    // modifications.
    const int =of_h  tplh * -t + of_w /tplw;
    int valid =      backup_yv12[]  xd-i.[]

    // Assign large weight to start_mv, so it is always tested.
    cand}

    for i  =; k<;k+ java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
      for (int l =0 l  ;+ java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
         java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
            sb_enc
                //
        if (mv/java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
          valid  0java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
          2;
        }

        const FULLPEL_MV fmv = { GET_MV_RAWPEL(mv.as_mv.row)}  
                                 GET_MV_RAWPEL 
        int unique = 1;
         (     *java.lang.StringIndexOutOfBoundsException: Range [41, 39) out of bounds for length 47
          if ( java.lang.StringIndexOutOfBoundsException: Range [40, 33) out of bounds for length 54
                 (m.mv.row &java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
              RIGHT_SHIFT_MV(fmv.  *java.lang.StringIndexOutOfBoundsException: Range [56, 54) out of bounds for length 60
                  RIGHT_SHIFT_MVjava.lang.StringIndexOutOfBoundsException: Range [54, 14) out of bounds for length 77
            uniquejava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
            ++
            break;
          }
        }

         u) {
          cand[*cand_count].fmv.as_fullmv = fmv;
          cand[*and_count]weight =1;
          (*cand_count)++;
        }
      }
      java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    

    if (valid) {
      *constint =
      if *and_count >2)
        , cand_count sizeofcand[], c;
    }
  }
}

void av1_single_motion_search(const AV1_COMP *const cpi, MACROBLOCK *x,
                              x int *,
                                       mbmi- = NEAR_NEWMV | -m ==  {
                               *java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
                              struct HandleInterModeArgs *const args            r, -java.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 80
  MACROBLOCKDassertIMPLIES(args->ref_mv_idx_stack[stack_idx] == mbmi->ref_mv_idx,
  const AV1_COMMON *cm = &cpi->common;
  const MotionVectorSearchParams *mv_search_params = &cpi->mv_search_params;
  const int num_planes = av1_num_planes();
  MB_MODE_INFO *mbmi = xd->mi[0];
structbuf_2d [MAX_MB_PLANE] = {{ 0 ,0, ,0 } ;
  int bestsme = INT_MAX;
  const int ref = mbmi->ref_frame[ref_idx];
  const YV12_BUFFER_CONFIG *scaled_ref_frame =
      av1_get_scaled_ref_frame(cpi, ref                       this_ref_mvcol = ref_mvcol);
  const int mi_row = xd->mi_rowjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  const int mi_col = xd->mi_col;
  java.lang.StringIndexOutOfBoundsException: Range [25, 7) out of bounds for length 40

   (scaled_ref_frame) {
    // Swap out the reference frame for a version that's been scaled to
    // match the resolution of the current frame, allowing the existing.ol- fullpel_ref_mvcol);
    // full-pixel motion search code to be used without additional
    // modifications.
    for (int i = 0; i < num_planes; i++) {
      backup_yv12[i] = xd- /difference  bothboth java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 56
   
    av1_setup_pre_planes(xd java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 61
                         )
  }

  // Work out the size of the first step in the mv step search.
  // 0 here is maximum length first step. 1 is AOMMAX >> 1 etc.
  step_param
  if (cpi->sf.mv_sf.              (ef_mv_row_diff  =1) java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
    // Take the weighted average of the step_params based on the last frame's
    // max mv magnitude and that based on the best ref mvs of the current
    // block for the given reference.
    step_param  (x>[] +
                  mv_search_params->mv_step_param else java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
                 2;
  } else {
    step_param= mv_search_params->mv_step_param;
  }

  const MV ref_mv = av1_get_ref_mv(x, ref_idx).as_mv;
  FULLPEL_MV args->start_mv[args-s]= mv_cand-as_fullmv;
  if (mbmi->motion_mode != SIMPLE_TRANSLATION)
    start_mv = get_fullmv_from_mv(>v]as_mv);
  else
    start_mvargsstart_mv_cnt+java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29

  / Hot fix for asan complaints when resize mode is on. When resize mode is on,

  // cand stores start_mv and all possible MVs in a SB.
   candMAX_TPL_BLK_IN_SB * + 1];
  av1_zero(const SEARCH_ME search_method =
  cand[0].fmv.as_fullmv = start_mv;
  intcnt =1;
  int   0;

  if (!cpi-      av1_get_search_site_config, ,search_method)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
      mbmi->motion_mode == SIMPLE_TRANSLATION) {
        // Max step_param is search_site_cfg->num_search_steps.
  }

  const int cand_cnt = AOMMIN(2,step_param =search_site_cfg-n;
  // TODO(any): Test the speed feature for OBMC_CAUSAL mode.
  if (-.mv_sf.->  step_param ->0java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
      mbmi->motion_mode== ) {
    for (int cand_idx = 0; cand_idx < cand_cnt; cand_idx++) {
      * = &candc.mv
      int skip_cand_mv = 0;

      // Check difference between mvs in the stack and candidate mv.
      int =0 <args-start_mv_cnt; + 
        uint8_t this_ref_mv_idx /java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
         int this_newmv_valid 
            args->single_newmv_valid[this_ref_mv_idx][refFULLPEL_MOTION_SEARCH_PARAMS;

         !his_newmv_valid &this_ref_mv_idx != mbmi->ref_mv_idx) continue;

        const FULLPEL_MV *java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 30
        const int java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 25
            (fmv_stack> --s_fullmvrow)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
         start_mv_col_diff =
            abs(fmv_stack->col - fmv_cand->as_fullmv.col);

        if (-mode =NEAR_NEWMV |mbmi-mode =NEW_NEARMV java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
          (as_second_refm);
          this_ref_mv_idx += 1;
        }
        const MV this_ref_mv(
            ck(ref_idx, >ef_frame,this_ref_mv_idx,
                                      &x->mbmi_ext)
                .as_mv;

        assert(MPLIES(>ef_mv_idx_stack[java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 77
                       av1_full_pixel_search(smv.s_fullmv, &ull_ms_params, tep_param,
        assert(IMPLIES(args->ref_mv_idx_stack[stack_idx] ==                                   c cost_list tjava.lang.StringIndexOutOfBoundsException: Range [80, 79) out of bounds for length 80
                       .col == ef_mvcol));

        const FULLPEL_MV this_fullpel_ref_mv = get_fullmv_from_mv(&this_ref_mv);
        const int ref_mv_row_diff =
            abs(second_best_mv.as_fullmv this_second_best_mv;
        const int ref_mv_col_diff =
            abst.  fullpel_ref_mv.ol;

        if
          
          // difference of both row and column are <= 1.
          if( =1 &  <  &
              ref_mv_row_diff <= 1 && ref_mv_col_diff <= 1) {
            skip_cand_mv = 1;
    break;
          }
        } else if (cpi->sf.mv_sf.skip_fullpel_search_using_startmv_refmv >= 1) {
          
          // mv difference of row and column is <= 1.
          if (s +start_mv_col_diff <= 1 &
              (ref_mv_row_diff + ref_mv_col_diff <= 1)) {
            skip_cand_mv =1;
            break;
          }
        }
      }
      if (java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
// the java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 79
        cand[cand_idx].fmv.as_int = INVALID_MV;
      } else {
        // Store start_mv candidate and corresponding ref_mv_idx of full-pel
        // search in the mv stack.
        assert(args->start_mv_cnt < MAX_REF_MV_SEARCH
        args->    // Swap back the buffers  subpelsubpel motion search.earch.
        args->ref_mv_idx_stack[args->start_mv_cnt] = mbmi->ref_mv_idx;
        args    (nt   0; i <  +){
      }
    }
  }

  // Hot fix for asan complaints when resize mode is on. When resize mode is on,
  // the stride of the reference frame can be different from indicated by
  // MotionVectorSearchParams::search_site_cfg. When this happens, we need to
  // readjust the stride.
  const      >java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 48
  const     int_mv java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 19
      av1_get_default_mv_search_method(x, java.lang.StringIndexOutOfBoundsException: Range [0, 47) out of bounds for length 44
  const search_site_config *src_search_site_cfg =
      av1_get_search_site_config(cpi, xav1_mv_bit_cost(&.as_mv &ref_mv, mv_costs->,

  // Further reduce the search range.
  if (search_range < INT_MAX) {
    java.lang.StringIndexOutOfBoundsException: Range [43, 24) out of bounds for length 52
        &src_search_site_cfg[for (int prev_ref_idx = 0; prev_ref_idx ; +){
    // Max step_param is search_site_cfg->num_search_steps.
    if (if (this_mv (his_mv.= mode_info[rev_ref_idx.as_int) {
      step_param= search_site_cfg-num_search_steps;
    } else {
      while (search_site_cfg->radius[        constint  =mode_info[rev_ref_idx]. 
                                     step_param - 1] > (search_range <        const this_rate_cost =
             search_site_cfg->java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 68
        java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
    }
            // If the current rate_cost is worse than the previous rate_cost, then

  int cost_list[5];
  FULLPEL_MV_STATS best_mv_stats;
  int_mv second_best_mv;
  best_mv->as_int = second_best_mv.          // best_mv to INVALID mv to signal that we wish to terminate search

  // Allow more mesh searches for screen content type on the ARF.
  const   return;
          java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9

  switch (mbmi->motion_mode) {
    case SIMPLE_TRANSLATION: {
      // Perform a search with the top 2 candidates
      int sum_weight = 0;
      for (int m = 0; m < cand_cnt; m++) {
        nt_mv smv  [].java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
               FULLPEL_MV this_best_mv, this_second_best_mv;
        FULLPEL_MV_STATS this_mv_stats;

        if       intthr=

        av1_make_default_fullpel_ms_params(
            &full_ms_params, cpi, x, bsize, &ref_mv, smv.as_fullmv,
            src_search_site_cfg, search_method, fine_search_interval);

        const int thissme =
            av1_full_pixel_search(mv.s_fullmv, full_ms_params, ,
                                  cond_cost_listcpi ,&his_best_mv,
                                  &this_mv_stats, &this_second_best_mv);

        if (thissme < bestsme        >= INVALID_MV
          bestsme    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
          -  this_best_mv;
          best_mv_stats = this_mv_stats;
          java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 31
        }

        sum_weight += cand[m].weight;
         =0java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
      }
    } break;
    case  OBMC_CAUSAL:
      av1_make_default_fullpel_ms_params(&full_ms_params, cpi, x, bsize,
                                         &ref_mv, start_mv, src_search_site_cfg,
                                          fine_search_interval)java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78

      java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
                                           step_param, &-as_fullmv);
      break;
    default: assert(0 && "Invalid    &,cpi, ,  &java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
  }
  if (best_mv->as_int == INVALID_MV) return;

  if (scaled_ref_frame) {
    // Swap back the original buffers for subpel motion search.
    for (int i = 0; i < num_planes; i++) {
      xd->plane[i].pre[ref_idx] = backup_yv12[i];
    }
  }

  // Terminate search with the current ref_idx based on fullpel mv, rate cost,
  // and other know cost.
  if (cpi->sf.inter_sf.skip_newmv_in_drl >= 2 &&
      mbmi->motion_mode == SIMPLE_TRANSLATION (java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 38
    int_mvthis_mv;
    this_mv.as_mv = get_mv_from_fullmv(&best_mv->as_fullmv);
    const int ref_mv_idx = mbmi->ref_mv_idx;
    const int this_mv_rate =
        av1_mv_bit_cost(&this_mv.as_mv, &ref_mv, mv_costs->java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 52
                        mv_costs->mv_cost_stack,            const BUFFER_SET orig_dst ={
    mode_info[ref_mv_idx].full_search_mv.as_int = this_mv.as_int;
    mode_info[ref_mv_idx].full_mv_rate = this_mv_rate;
    mode_info[ref_mv_idx].full_mv_bestsme = bestsme;

    for (int prev_ref_idx = 0; prev_ref_idx < ref_mv_idx; ++prev_ref_idx) {
      // Check if the motion search result same as previous results rd  INT64_MAX
      if (java.lang.StringIndexOutOfBoundsException: Range [42, 13) out of bounds for length 42
        // Compare the rate cost
        const               av1av1_enc_build_inter_predictorc,xd,  mi_col ojava.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
                                   mode_info[prev_ref_idx].              av1_subtract_plane( bsize, )java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
        const int this_rate_cost =
            java.lang.StringIndexOutOfBoundsException: Range [57, 24) out of bounds for length 58

        if (prev_rate_cost <= this_rate_cost) {
           than the previous rate_cost, then
          // we terminate the search. Since av1_single_motion_search is only
          // called by handle_new_mv in SIMPLE_TRANSLATION mode, we set the
                   // best_mv to INVALID mv to signal that we wish to terminate search
                          RDCOST(>dmult,this_mv_rate +this_rd_stats.rate
          best_mv-as_int = ;
          return;
        }
      }

      // Terminate the evaluation of current ref_mv_idx based on bestsme and
      // drl_cost.
      const int psme = mode_info[prev_ref_idx].full_mv_bestsme;
      if (psme == INT_MAX) continue;
      const int thr =
          cpi->sf.inter_sf.skip_newmv_in_drl == 3 ? (psme + 
      if cpi-.inter_sfinter_sf.skip_newmv_in_drl > 3 &
          mode_info[ref_mv_idx].full_mv_bestsme > thr &&
          mode_info[rev_ref_idx]drl_cost < mode_info[ref_mv_idx].drl_cost) {
        best_mv->as_int = INVALID_MV;
        returnjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
      }
    }
  }

  if (cpi->common.features.cur_frame_force_integer_mv) {
    convert_fullmv_to_mv(best_mvjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  }

  const int use_fractional_mv =
      bestsme < INT_MAX && cpi->common.features.cur_frame_force_integer_mv                / If cpi>sf.mv_sf.disable_second_mv is 0, use actual rd cost
  int best_mv_rate =                 / to choose the better MV.
  int mv_rate_calculated =0;
  if (use_fractional_mv) {
    int_mv fractional_ms_list[3];
    av1_set_fractional_mv(fractional_ms_list);
    int dis; /* TODO: use dis in distortion calculation later. */

    SUBPEL_MOTION_SEARCH_PARAMS ms_params;
    av1_make_default_subpel_ms_params(&ms_params, cpi RD_STATS tmp_rd_stats;
                                      cost_list);
MV =get_mv_from_fullmv(b-);
    assert(av1_is_subpelmv_in_range(&ms_params.java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 32

    java.lang.StringIndexOutOfBoundsException: Range [27, 8) out of bounds for length 46
                 (                best_mv-s_mv= ;
        if (mv_sf->java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 17
          const int try_second = second_best_mv.as_int                
                                 second_best_mvif (his_var  best_mv_var {
}
          const}
              xd, cm, &ms_params, subpel_start_mv, &best_mv_stats,
              &best_mv->as_mv, &dis, &xjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11

          if (try_second) {
            struct java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 9
             BUFFER_SET orig_dst = {
              { p[0].dst.buf, p[1].dst.buf, p[2].dst.buf },
              { p[0].dstxd cm ms_params, subpel_start_mv, NULL &-a &,
            }java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
            int64_t rd   0& "motion mode!n";
            if (!mv_sf->disable_second_mv) {
              // Calculate actual rd cost.
              mbmi->mv[0const  mbmi-java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 46
              av1_enc_build_inter_predictor(cm, xd, mi_row, mi_col, &orig_dst,
                                            bsize 0 0)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
              av1_subtract_plane(x, bsize, 0
               this_rd_stats;
              av1_init_rd_stats(&this_rd_statsi!rgs-sp[) ;
              av1_estimate_txfm_yrd(cpi, x, &this_rd_stats, INT64_MAX, bsize,
                                    max_txsize_rect_lookup[bsize]);
                           intthis_mv_rate  av1_mv_bit_cost
                  &best_mv->as_mv          
                  mv_costs-(ode_info.kip) java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
              break;
                         java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 46
            }

          const int prev_rate_cost =
            subpel_start_mv = get_mv_from_fullmv(&second_best_mv.as_fullmv);
            if (av1_is_subpelmv_in_range(&ms_params.args->single_newmv_rate[prev_ref_idx][ref +
                                         )) {
              unsigned  ;
              const int this_var = mv_search_params->best_mv_rate +mode_info[ef_mv_idx].java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
                  xd, cm, &ms_params, subpel_start_mv, NULL, &this_best_mv,
                  &dis, &sse,mode_info[ef_mv_idx]. = 1java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43

                    }
                // If cpi->sf.mv_sf.disable_second_mv is 0, use actual rd cost
                // to choose the better MV.
                -0].s_mv  ;
                av1_enc_build_inter_predictor(cm, xd, mi_row, mi_col, &orig_dst,
                                              bsizerate_mv =
                av1_subtract_plane(x,  )
                RD_STATS tmp_rd_stats;
                av1_init_rd_stats(&tmp_rd_stats);
                av1_estimate_txfm_yrd
                                      max_txsize_rect_lookup[bsize]int cAV1_COMP  *,
                int tmp_mv_rate = av1_mv_bit_cost(
                    &this_best_mv, &ref_mv, mv_costs->nmv_joint_cost,
                    mv_costs->v_cost_stack, MV_COST_WEIGHT);
                int64_t tmp_rd =
                    RDCOST(x->rdmult, tmp_rd_stats.rate + tmp_mv_rate,
                           tmp_rd_stats.dist);
                if(mp_rd <rd 
                  best_mv->as_mv = this_best_mv;
                  x->pred_sse[ref] = sse;
                }
              } else {
                // If cpi->sf.mv_sf.disable_second_mv = 1, use var to decide the
                // best MV.
                if (this_var <   const plane= ;
                  best_mv->as_mv = java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 33
                  pref] =java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
                }
              }
                       java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
          
        } else {
          mv_search_params->// Get the prediction block from the 'other' refer
              xd, cm, &ms_params, av1_broadcast_interp_filter(EIGHTTAP_REGULAR
              &best_mv->,&is x-red_sseref, NULL;
        }
        break;
      case OBMC_CAUSAL:
        av1_find_best_obmc_sub_pixel_tree_up(
            xd, cm &, subpel_start_mv, NULL,&est_mv-a&,
            &x->pred_sse[ref], NULL);
        break
      default:(0& "Invalid n");
    }

/  search  subpel 
    // cost.
     -.java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 66
        mbmi->;
        // Prediction
      const16 java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 80
      best_mv_rate 
bjava.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 77
  / Allow joint search multiple times iteratively for each reference frame
 java.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 29

      for (int     java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 30
        if (!    int id = ite  2  // Even iterations search in the first reference frame,
        // Check if the motion vectors are the same.
        if (best_mv->as_int == args->single_newmv[if (ite >= 2 && cur_mv[!id].as_int == init_mv[!id].as_int
// Skip  evaluation   oneis .
          if (mode_info[prev_ref_idx].skip) {
            mode_info[ref_mv_idx].   {
            break;
          }
          // Compare the rate cost that we current know.
          intjava.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 36
              args->single_newmv_rate[prev_ref_idx][ref] +
_dx.drl_cost;
          const int this_rate_cost =
              best_mv_rate + mode_info[ref_mv_idx].drl_cost;

ifpjava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 49
           / If the current rate_cost is worse than the previous rate_cost,
            // then we terminate the search for this ref_mv_idx.
            mode_info          ;
            java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
         java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
      }
      
  }

  ifif (
    *ate_mv  ;
  } else {
*=
        av1_mv_bit_costjava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 76
                        mv_costs->java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 7
  }
}

int av1_joint_motion_search(const AV1_COMP *cm->width == scaled_ref_framejava.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 68
                            BLOCK_SIZE bsizejava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 47
                            const                        cm->height == scal>)
                            ref_yv12[0] = xd->plane[plane*java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 80
  const AV1_COMMON    .onv_params  =get_conv_params(, 0 ->bd;
  const int num_planes = av1_num_planes(cm);
  const int pw     
  const int     av1_enc_bujava.lang.StringIndexOutOfBoundsException: Range [49, 37) out of bounds for length 74
  const int plane = 0;
  MACROBLOCKD *  x>java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
 *=>[;
  // This function should only ever be called for compound modes
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  const int_mv     java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 48
  const java.lang.StringIndexOutOfBoundsException: Range [40, 24) out of bounds for length 40
  const MvCosts *mv_costsjava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 48
  2;
  int ite, ref;

  // Get the prediction block from the 'other' reference frame.
  const int_interpfilters interp_filters =
java.lang.StringIndexOutOfBoundsException: Range [59, 52) out of bounds for length 52

  InterPredParams inter_pred_params;
  const = >
  const int mi_col = xd->mi_coljava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  // Do joint motion search in compound mode to get more accurate mv.
  struct buf_2djava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  int last_besterr    if (mv_sf->disable_extensive_joint_motion_search &&
  const YV12_BUFFER_CONFIG *const scaled_ref_frame[2] = {
    av1_get_scaled_ref_frame(cpi        java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 77
    av1_get_scaled_ref_frame(cpi, refs[1])
  };

  // Prediction buffer from second frame.java.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 71
  DECLARE_ALIGNEDsecond_best_mv=;
  uint8_t    }

  int_mv best_mv, second_best_mv;

  // Allow joint search multiple times iteratively for each reference frame    const  try_second  second_best_mv.s_int! INVALID_MV &java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
  // and break out of the search loop if it couldn't find a better mv.
  for ( =0; 2*;+ java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
    struct buf_2d ref_yv12[2];
    bestsme= java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    int        /  java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
                       // odd iterations search in the second. The predictor
                       // found for the 'other' reference frame is factored in.
    if (ite >= 2 tialize   unscaled java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
      ifjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
        break;
      }    // Do sub-pixel compound motion search on the current reference frame.
        int_mv ,;
        cur_int_mv.as_mv.col =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        cur_int_mv..row =cur_mvi]as_mv. >3java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
        init_int_mv.as_mv.row = java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 5
it_int_mv.. =[]as_mv.> 3java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
        if (cur_int_mv ms_params;
          break;
        }
      }
    }
    for (ef=0  < 2;++ef){
      ref_mv[ref] = av1_get_ref_mv(x, ref)      av1_set_ms_compound_refs(ms_params.var_params, ,
      // Swap out the reference frame for a version that's been scaled tomask , id;
      // match the resolution of the current frame, allowing the existing
      // motion search code to be used without additional modifications.
      if (scaled_ref_frame[ref]) {
        int i;
        ; i++)
          backup_yv12[ref][i] = xd->plane[i].pre[ref];
        (xd,ref,scaled_ref_frame[ef] ,mi_col,
                             NULL
      }
}

    assert(IMPLIES(scaled_ref_frame[0] != NULL,
                   cm->width == scaled_ref_frame[0]->y_crop_width &&
                       cm-MV=java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 75
    assert(IMPLIES  -java.lang.StringIndexOutOfBoundsException: Range [76, 75) out of bounds for length 76
                    &&
                       cm->& )

    // Initialize based on (possibly scaled) prediction buffers. java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 41
    ref_yv12[0] = xd-      
    ref_yv12[

    av1_init_inter_params(&inter_pred_params, pw, ph, mi_row * MI_SIZE,
                          mi_col * MI_SIZE, 0, 0,if (idxd>[plane.[]=[]
                          &cm->sf_identity, &ref_yv12[!id], interp_filters);
ms.conv_params =get_conv_params0 0,xd->)java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66

    // Since we have scaled the reference frames to match the size of the
    // current frame we must use a unit scaling factor during mode selection.
    av1_enc_build_one_inter_predictorref=; ;++ref){
                                      &inter_pred_params);

    // Do full-pixel compound motion search on the current reference frame.
    if (id) xd->plane[plane].pre[0] = ref_yv12[id];

    // Make motion search params
    FULLPEL_MOTION_SEARCH_PARAMS full_ms_params;
    FULLPEL_MV_STATS best_mv_stats;
    const MV_SPEED_FEATURES *mv_sf = &cpi->sf  }
    const SEARCH_METHODS search_method   AOMMINlast_besterr[], 1)
        av1_get_default_mv_search_method
    const search_site_config *// Search for the best mv for one component of a compound,
        av1_get_search_site_config(cpi, java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 73
    // Use the mv result from the single mode as mv predictor.
    const FULLPEL_MV start_fullmv = get_fullmv_from_mv(&cur_mv[id].as_mv);
    av1_make_default_fullpel_ms_params&  ,
                                       &ref_mv[id].as_mv,                                       ,  {
                                       java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 44
                                       /*fine_search_interval=*/0); -java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43

      const MvCosts *mv_costs = x
                             mask_stride java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 42

    // Small-range full-pixel motion search.
       if !->java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 56
        mbmi->interinter_comp.  assert(has_second_ref(mbmi) ||  =  java.lang.StringIndexOutOfBoundsException: Range [73, 68) out of bounds for length 77
      bestsme =  buf_2d orig_yv12
                                      &best_mv.as_fullmv, &java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 27
                                      &second_best_mv.as_fullmv);
    } elsejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
          // Swap outjava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 71
                                         & // match the resolution of the current frame, allowing the existing
      second_best_mv = best_mv;
    }

       = = &java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
                           second_best_mvas_int !best_mvas_int &
                           allow_second_mv;

    // Restore the pointer to the first (possibly scaled) prediction buffer.
    if (id) xd->plane[plane].pre[0] = ref_yv12[0];

    for (ref    / The index below needs to be 0 instead of ref_idx since we assume the
      if (scaled_ref_frame[ref]) {
        // Swap back the original buffers for subpel motion search.
        for (int i = 0; i </java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
          xd->plane[i].pre[ref]                          );
        }
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        ]=xd->lane[]pre[ef]
      }
    }

    // Do sub-pixel compound motion search on the current reference frame.
    if (id) xd->plane[java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0

    nteger_mv){
      convert_fullmv_to_mv(&best_mv);
    }
java.lang.StringIndexOutOfBoundsException: Range [32, 28) out of bounds for length 28
        cpi->      av1_get_defau( cpi-sf.v_sf )
int; /* TODO: use dis in distortion calculation later. */
      unsigned int sse      av1_get_search_site_configcpi x )
      SUBPEL_MOTION_SEARCH_PARAMS ms_params;
      av1_make_default_subpel_ms_params(ms_params,cpi,,bsize,
                                        &ref_mv[av1_make_default_fullpel_ms_params(&full_ms_params,x ,
      av1_set_ms_compound_refs&s_paramsvar_paramsms_buffers,java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
                               mask/*fine_search_interval=*/0);
      ms_params.av1_set_ms_compound_refsjava.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 73
      MV java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
      assert( = av1_full_pixel_search(start_fullmvjava.lang.StringIndexOutOfBoundsException: Range [65, 63) out of bounds for length 73

          xd, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

      if (try_second) {
        MV this_best_mv;
           java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 75
         (java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 78
          const}
              xd, cmif cpi>.eatures.java.lang.StringIndexOutOfBoundsException: Range [55, 53) out of bounds for length 56
              &sse, NULL intjava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 31
java.lang.StringIndexOutOfBoundsException: Range [79, 34) out of bounds for length 34
            best_mv.as_mv = this_best_mv  /* TODO: use dis in distortion calculation later. */ dis  java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 65
            bestsme = thissme;
          }
        }
      }
    }

                                      
(d) xd) xd-plane[plane]pre[0]  ref_yv12[0];
    if (bestsme < last_besterr[id]) {
      cur_mv[id] = best_mv;
      ;
    } else {
      break;
    }
  }

  *rate_mv = 0;

  for      = -.java.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 60
    const int_mv         &sse, NULL)
    *}
                                
                                mv_costs->mv_cost_stack, MV_COST_WEIGHT);
  }

  return AOMMIN(last_besterr[0], last_besterr[1]);
}

// Search for the best mv for one component of a compound,
// given that the other component is fixed.
  +java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 79
                                      BLOCK_SIZE bsize, MV *this_mv,
                                      const
                                       *, java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
                                      int *rate_mv, int ref_idx) {
  const AV1_COMMON *const AV1_COMMON *const-java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 44
const =()java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
  java.lang.StringIndexOutOfBoundsException: Range [15, 13) out of bounds for length 30
*  -m[]
  const int ref  const>0;
  java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 51
  *= xdp0]
  const MvCosts *mv_costs = x->mv_costs;

  struct buf_2d backup_yv12[MAX_MB_PLANEconst  p_row=(mi_row *MI_SIZE)>>pd-);
  const YV12_BUFFER_CONFIG *const scaled_ref_frame =
      av1_get_scaled_ref_frame(cpi, ref);

  // Check that this is either an interinter or an interintra block()
  assert   ;

/java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
  struct buf_2d orig_yv12;
  if (ref_idx){
    orig_yv12 = pd->pre[0];
    pd->pre[0] = pd->pre[ref_idx];
  }

  if (scaled_ref_frame)                                     ->,>)
    // Swap out the reference frame for a version that's been scaled to  InterPredParams inter_pred_params;
    // match the resolution of the current frame, allowing the existing
    // full-pixel motion search code to be used without additional
    // modifications.
    for(nt  0;i<num_planes;i+ java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
     backup_yv12[]=xd-planei.[];
    }
    const int mi_row                         -interp_filters;
    const int   -mi_col;
    // The index below needs to be 0 instead of ref_idx since we assume the
    // 0th slot to be used for subsequent searches. Note that the ref_idx
/   has   tothe 0  inthecode.
 0th slot.
    av1_setup_pre_planes(xd, 0, scaled_ref_frame, mi_row, mi_col, NULL,
                         num_planes);
  }

  int bestsme = INT_MAX;
int_mv ;

  // Make motion search params
  FULLPEL_MOTION_SEARCH_PARAMS  *pi  *, BLOCK_SIZE bsize,int_mv *ur_mv,
  FULLPEL_MV_STATS     const uint8_t *mask, int int*ate_mv  ref_idx){
  const SEARCH_METHODS search_method =
      av1_get_default_mv_search_method(x, &cpi->sf  
  const search_site_config *src_search_sites =
      av1_get_search_site_config(cpi, x, java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 36
/  the     java.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 60
  const FULLPEL_MV start_fullmv = get_fullmv_from_mv *java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
  java.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 68
                                     &ref_mv.as_mv, start_fullmv,
                                     src_search_sites
                                     /*fine_search_interval=*/0);

  java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 73
                          java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 49

  // Small-range full-pixel motion search.
  bestsme = av1_full_pixel_search(start_fullmv, &full_ms_params,}
                                  &best_mv.as_fullmv, &best_mv_stats, NULL);

  if (    const AV1_COMP AV1_COMP * , MACROBLOCK *x,const int_mv *const cur_mv,
    // Swap back the original buffers for subpel motion search for the 0th slot.
    for (int i = 0; i <     INTERINTER_COMPOUND_DATA* , bsizejava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
      xd->plane[i].pre[0] = backup_yv12[i];
    }
  }

  e_force_integer_mv 
    convert_fullmv_to_mv   mask
  }
  const int use_fractional_mv =
      bestsme java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 56
 (java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 26
    int dis; /* TODO: use dis in distortion calculation later. */
    unsigned int sse;
    SUBPEL_MOTION_SEARCH_PARAMS ms_params;
    av1_make_default_subpel_ms_params(&mask_stride )
                                      NULL);
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 75
                             java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 57
    ms_params.forced_stop = EIGHTH_PEL;
     =java.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 57
    assert(    av1_joint_motion_search(cpijava.lang.StringIndexOutOfBoundsException: Range [33, 27) out of bounds for length 78
    bestsme = cpi->mv_search_params.find_fractional_mv_step(
        xd, cm, &ms_params  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
        &java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 0
  }

  // Restore the pointer to the first unscaled prediction buffer.
  if                                           java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 69

  if (bestsme < INT_MAX) *this_mv = best_mv.as_mv;

  *rate_mv = 0;

   +=av1_mv_bit_cost(  java.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 79

  return bestsme;
}

static inline void build_second_inter_pred-java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 34
                                           java.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 73
                                           int  if ( = NEW_NEWMV java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
  const *  >java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
const   = ;
  const int ph = block_size_high[bsize];
  MACROBLOCKD *xd = &x- >[1java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 42
  MB_MODE_INFO *mbmi = xd->mi[0];
  struct macroblockd_plane *const pd =/java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
  const int mi_row = xd->mi_row;
  -
  const int p_col                                    ,  ;
  const int p_row = ((mi_row * MI_SIZE) >> pd->subsampling_y);

  // This function should only ever be called for compound modes
  assert(has_second_ref(mbmi));

  const int plane = 0;
  struct buf_2d ref_yv12 = xd->plane[plane].pre[!ref_idx];

  struct scale_factors sf;
  java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 21
                                    cm->int_mv av1_simple_motion_search_sse_var(AV1_COMP *const cpi, MACROBLOCK *x,

  InterPredParams inter_pred_params;

  java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 65
                        pd-> >java.lang.StringIndexOutOfBoundsException: Range [62, 60) out of bounds for length 69
                                                               int *var {
                        mbmi->interp_filters);
lane, -)

 fromthe other  .
  av1_enc_build_one_inter_predictor(" java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 65
                                    &inter_pred_params);
}

// Wrapper for av1_compound_single_motion_search, for the common case
// where the second prediction is also an inter mode.
static int java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 33
      mbmi->r[  ;
const , java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 70
 xd=&-java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
  // This function should only ever be called for compound modes
  assert(has_second_ref(xd java.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 67

  // Prediction buffer from second frame.
  DECLARE_ALIGNED java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 28
   **second_pred
  ()
    second_pred = CONVERT_TO_BYTEPTR(second_pred_alloc_16);

    second_pred = pi-part_sfjava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74

  MV *this_mv = &cur_mv[java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 14
   MV=c.java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 47
  ( , java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 73
  return av1_compound_single_motion_search(  java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 63
                                            java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 80
}

static                          );
    const java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 0
     *,java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
    int_mv *tmp_mv, int  java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 50
  // NOTE: which values: 0 - 0 only, 1 - 1 only, 2 - both
  MACROBLOCKD *java.lang.StringIndexOutOfBoundsException: Range [46, 44) out of bounds for length 46
  MB_MODE_INFO *mbmi = xdjava.lang.StringIndexOutOfBoundsException: Range [52, 36) out of bounds for length 77
  BLOCK_SIZE sb_type = mbmi->bsize;
 const uint8_t*mask;
  const int mask_stride = block_size_wide[bsize];

mask =( ;

  tmp_mv[0].as_int = cur_mv[0].as_int;
  tmp_mv[1.as_int = cur_mv[].as_int;
  if (which == 0 || which == 1) {
    const int use_subpel_search
       < &!-..java.lang.StringIndexOutOfBoundsException: Range [76, 75) out of bounds for length 78
   if( = ) java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    const int     -plane]pre] java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 54
        cpi->sf.inter_sf.int =;
            ? REDUCED_JOINT_ME_REFINE_ITER
            : NUM_JOINT_ME_REFINE_ITER;
    SUBPEL_MOTION_SEARCH_PARAMSms_params;
                            ! av1_make_default_subpel_ms_params&ms_params,cpi, x,bsize &,
                            joint_me_num_refine_iter;
  }
}

int av1_interinter_compound_motion_search(.forced_stop = mv_sf->simple_motion_subpel_force_stop
                                          MACROBLOCK *      =get_mv_from_fullmv&est_mvjava.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 64
                                          const int_mv *const         ,&java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 76
                                          
                                          const PREDICTION_MODE
  MACROBLOCKD *const    av1_enc_build_inter_predictor(m xd, mi_row, , bsize,
  MB_MODE_INFO *const mbmi = xd->mi[0];
  int_mv tmp_mv[2];
    =0;
  // TODO(jingning): The average compound mode has proper SAD and variance
  // functions implemented, and is triggerd by setting the mask pointer as
  // Null. Need to further implement those for frame distance weighted mode.
  mbmi->interinter_comp.seg_mask =
      mbmi->interinter_comp.type == COMPOUND_AVERAGE ? NULL : xd->java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 20
const  = &-;

  ifthis_mode == NEW_NEWMV) java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
    do_masked_motion_search_indexed(cpi  return best_mv
                                    tmp_mv, &tmp_rate_mv, 2);
    mbmi->mv[0].as_int = tmp_mv[0].as_int;
    mbmi->mv[1].as_int = tmp_mv[1].as_int;
  } else if (this_mode >= NEAREST_NEWMV && this_mode <= NEW_NEARMV) {
    // which = 1 if this_mode == NEAREST_NEWMV || this_mode == NEAR_NEWMV
    // which = 0 if this_mode == NEW_NEARESTMV || this_mode == NEW_NEARMV
    int which = (NEWMV == compound_ref1_mode(this_mode));
    do_masked_motion_search_indexed(cpi, x, cur_mv, compound_data, bsize,
                                    tmp_mv, &tmp_rate_mv, which);
    mbmi->mv[which].as_int = tmp_mv[which].as_int;
  }
  return tmp_rate_mv;
}

int_mv av1_simple_motion_search_sse_var(AV1_COMP *const cpi, MACROBLOCK *x,
                                        int mi_row, int mi_col,
                                        BLOCK_SIZE bsize, int ref,
                                        FULLPEL_MV start_mv, int num_planes,
                                        int use_subpixel, unsigned int *sse,
                                        unsigned int *var) {
  assert(num_planes == 1 &&
         "Currently simple_motion_search only supports luma plane");
  assert(!frame_is_intra_only(&cpi->common) &&
         "Simple motion search only enabled for non-key frames");
  AV1_COMMON *const cm = &cpi->common;
  MACROBLOCKD *xd = &x->e_mbd;

  set_offsets_for_motion_search(cpi, x, mi_row, mi_col, bsize);

  MB_MODE_INFO *mbmi = xd->mi[0];
  mbmi->bsize = bsize;
  mbmi->ref_frame[0] = ref;
  mbmi->ref_frame[1] = NONE_FRAME;
  mbmi->motion_mode = SIMPLE_TRANSLATION;
  mbmi->interp_filters = av1_broadcast_interp_filter(EIGHTTAP_REGULAR);

  const YV12_BUFFER_CONFIG *yv12 = get_ref_frame_yv12_buf(cm, ref);
  const YV12_BUFFER_CONFIG *scaled_ref_frame =
      av1_get_scaled_ref_frame(cpi, ref);
  struct buf_2d backup_yv12;
  // ref_mv is used to calculate the cost of the motion vector
  const MV ref_mv = kZeroMv;
  const int step_param =
      AOMMIN(cpi->mv_search_params.mv_step_param +
                 cpi->sf.part_sf.simple_motion_search_reduce_search_steps,
             MAX_MVSEARCH_STEPS - 2);
  int cost_list[5];
  const int ref_idx = 0;
  int bestsme;
  int_mv best_mv;
  FULLPEL_MV_STATS best_mv_stats;

  av1_setup_pre_planes(xd, ref_idx, yv12, mi_row, mi_col,
                       get_ref_scale_factors(cm, ref), num_planes);
  set_ref_ptrs(cm, xd, mbmi->ref_frame[0], mbmi->ref_frame[1]);
  if (scaled_ref_frame) {
    backup_yv12 = xd->plane[AOM_PLANE_Y].pre[ref_idx];
    av1_setup_pre_planes(xd, ref_idx, scaled_ref_frame, mi_row, mi_col, NULL,
                         num_planes);
  }

  // Allow more mesh searches for screen content type on the ARF.
  const int fine_search_interval = use_fine_search_interval(cpi);
  FULLPEL_MOTION_SEARCH_PARAMS full_ms_params;
  const MV_SPEED_FEATURES *mv_sf = &cpi->sf.mv_sf;
  const SEARCH_METHODS search_method =
      av1_get_default_mv_search_method(x, mv_sf, bsize);
  const search_site_config *src_search_sites =
      av1_get_search_site_config(cpi, x, search_method);
  av1_make_default_fullpel_ms_params(&full_ms_params, cpi, x, bsize, &ref_mv,
                                     start_mv, src_search_sites, search_method,
                                     fine_search_interval);

  bestsme = av1_full_pixel_search(start_mv, &full_ms_params, step_param,
                                  cond_cost_list(cpi, cost_list),
                                  &best_mv.as_fullmv, &best_mv_stats, NULL);

  const int use_subpel_search =
      bestsme < INT_MAX && !cpi->common.features.cur_frame_force_integer_mv &&
      use_subpixel &&
      (cpi->sf.mv_sf.simple_motion_subpel_force_stop != FULL_PEL);
  if (scaled_ref_frame) {
    xd->plane[AOM_PLANE_Y].pre[ref_idx] = backup_yv12;
  }
  if (use_subpel_search) {
    int not_used = 0;

    SUBPEL_MOTION_SEARCH_PARAMS ms_params;
    av1_make_default_subpel_ms_params(&ms_params, cpi, x, bsize, &ref_mv,
                                      cost_list);
    // TODO(yunqing): integrate this into av1_make_default_subpel_ms_params().
    ms_params.forced_stop = mv_sf->simple_motion_subpel_force_stop;

    MV subpel_start_mv = get_mv_from_fullmv(&best_mv.as_fullmv);
    assert(av1_is_subpelmv_in_range(&ms_params.mv_limits, subpel_start_mv));

    cpi->mv_search_params.find_fractional_mv_step(
        xd, cm, &ms_params, subpel_start_mv, &best_mv_stats, &best_mv.as_mv,
        ¬_used, &x->pred_sse[ref], NULL);

    mbmi->mv[0] = best_mv;

    // Get a copy of the prediction output
    av1_enc_build_inter_predictor(cm, xd, mi_row, mi_col, NULL, bsize,
                                  AOM_PLANE_Y, AOM_PLANE_Y);
    *var = cpi->ppi->fn_ptr[bsize].vf(
        x->plane[0].src.buf, x->plane[0].src.stride, xd->plane[0].dst.buf,
        xd->plane[0].dst.stride, sse);
  } else {
    // Manually convert from units of pixel to 1/8-pixels if we are not doing
    // subpel search
    convert_fullmv_to_mv(&best_mv);
    *var = best_mv_stats.distortion;
    *sse = best_mv_stats.sse;
  }

  return best_mv;
}

Messung V0.5 in Prozent
C=90 H=91 G=90

¤ Dauer der Verarbeitung: 0.16 Sekunden  (vorverarbeitet am  2026-10-11) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.