/* *Copyright(c)2020,AllianceforOpenMedia.Allrightsreserved. * *ThissourcecodeissubjecttothetermsoftheBSD2ClauseLicense/* Alliance OpenOpenPatentLicense..IftheBSD2Clause * notnotwiththissourcecodeintheLICENSEfile,java.lang.StringIndexOutOfBoundsException: Range [73, 69) out of bounds for length 73 *atwww.org//If AllianceAlliance Open *MediaPatentLicense1.0wasnotdistributedwiththissourcecodeinthe *PATENTSfile,youcanobtainitatwww.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 ;
typedefstruct {
int_mv fmv; int java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}cand_mv_t;
staticint compare_weight(constvoid *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) return1;const int_mv mv elseif( > 0) return -1; return0;
}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 constint 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; constinttplw 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 constint nw = (, ) constint nh int =-mi_col;
if (nw >= 1 && nh >= 1) { constint of_h = mi_row % mi_size_high/java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71 constint of_w // modifications. constint =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; constint num_planes = av1_num_planes();
MB_MODE_INFO *mbmi = xd->mi[0]; structbuf_2d [MAX_MB_PLANE] = {{ 0 ,0, ,0 } ; int bestsme = INT_MAX; constint 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); constint mi_row = xd->mi_rowjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 constint 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; int0;
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.
}
constint 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;
const FULLPEL_MV *java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 30 constint 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));
// 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;
}
} elseif (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. constreturn;
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 (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); constint ref_mv_idx = mbmi->ref_mv_idx; constint 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 constint 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. constint psme = mode_info[prev_ref_idx].full_mv_bestsme; if (psme == INT_MAX) continue; constint 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
}
constint 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 constint 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 00)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
}
constint 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 ; constint 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; constint 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; constint num_planes = av1_num_planes(cm); constint pw constint av1_enc_bujava.lang.StringIndexOutOfBoundsException: Range [49, 37) out of bounds for length 74 constint 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 = > constint 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 frameconst 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_params00,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. */ unsignedint 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;
}
}
}
}
// 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[] constint ref const>0;
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 51
*= xdp0] const MvCosts *mv_costs = x->mv_costs;
// 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.[];
} constint mi_row -interp_filters; constint -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
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
} constint 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. */ unsignedint 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;
}
staticinlinevoid 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 intif ( = 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 = ; constint 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 constint mi_row = xd->mi_row;
- constint p_col , ; constint p_row = ((mi_row * MI_SIZE) >> pd->subsampling_y);
// This function should only ever be called for compound modes
assert(has_second_ref(mbmi));
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. staticint 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; constint 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 constint -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;
} elseif (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, unsignedint *sse, unsignedint *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;
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
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet am 2026-10-11)
¤
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.