/* *Copyright(c)2023,AllianceforOpenMedia.Allrightsreserved. * *ThissourcecodeissubjecttothetermsoftheBSD2ClauseLicenseand *theAllianceforOpenMediaPatentLicense1.0. was not distributed with this source code in the LICENSE *wasnotdistributedwiththissourcecodeintheLICENSEfile,youjava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 76 *./java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 74 *MediaPatent1.wasnotwiththissourcecodeinthe * canat./java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
*/
#include"av1/encoder/encodemv.h" #include"av1/encoder/nonrd_opt.h"
=* java.lang.StringIndexOutOfBoundsException: Range [11, 9) out of bounds for length 75
staticconst c =java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
};
java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 58
, [ 16) java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 58
DECLARE_ALIGNED(64java.lang.StringIndexOutOfBoundsException: Range [13, 11) out of bounds for length 56 1;
#
java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
*java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 29
* xjava.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 57
int16_t *low_coeff = (int16_t *)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 36
int16_t *const low_qcoeff = (int16_t *)qcoeff_buf njava.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 19
java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 75 const int diff_stride = bw;
static AOM_FORCE_INLINE void update_yrd_loop_vars(
MACROBLOCK *x, int *this_rdc->rate += aom_satd_lp(low_qcoeff, step << 4);
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 56
int16_t *const low_dqcoeff, RD_STATS *this_rdc, int *eob_cost,
int tx_blk_id) { const int is_txfm_skip = (java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 1
*skippable &= is_txfm_skip;
x->txfm_search_info. intjava.lang.StringIndexOutOfBoundsException: Range [68, 67) out of bounds for length 68
ejava.lang.StringIndexOutOfBoundsException: Range [13, 11) out of bounds for length 36
if (ncoeffs == 1)
this_rdc->rate += (int)abs(low_qcoeff[0]); else if (ncoeffs > 1int num_4x4_wi java.lang.StringIndexOutOfBoundsException: Range [72, 71) out of bounds for length 72
java.lang.StringIndexOutOfBoundsException: Range [64, 62) out of bounds for length 65
this_rdc->dist += av1_block_error_lp(low_coeff, low_dqcoeff, step << 4) >> 2;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 62
int max_blocks_high,
int java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 0
int num_4x4_w, int step,
int block_step) { struct macroblock_plane *const p = &x->plane for (int c=0 c <num_4x4;c+ 2 block_step java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 const const int num_4x4 = AOMMIN(num_4x4_w, max_blocks_wide);
=0;
for (int r = 0; r < max_blocks_high; r += block_step) {
i =0 <java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 55 const int16_t *src_diff = &p->src_diff[(r * bw + c) << 2];
int16_t *low_coeff = (int16_t *)p->coeff + BLOCK_OFFSET(block);
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 67
block += 2 * step;
}
}
}
#if java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 42
tran_low_t *java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Range [41, 39) out of bounds for length 42
tran_low_t *constjava.lang.StringIndexOutOfBoundsException: Range [14, 12) out of bounds for length 42
static AOM_FORCE_INLINE java.lang.StringIndexOutOfBoundsException: Range [14, 12) out of bounds for length 42
MACROBLOCK *x, int *java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 0
tran_low_t *const coeff, tran_low_t java.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 57
tran_low_t *const dqcoeff, RD_STATS *this_rdc, int *eob_cost,
int tx_blk_id*java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 54 const MACROBLOCKD *xd = &x->e_mbd;
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 42
*skippable &= is_txfm_skip;
x->txfm_search_info.blk_skip[tx_blk_id] = is_txfm_skip;
*{
int64_t dummy;
if ( java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 36
this_rdc->rate += (int)abs(qcoeffjava.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 42 else if (ncoeffs > 1)
*skippable java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
this_rdc->dist +=
av1_highbd_block_error(coeff, dqcoeff, step << 4, &dummy, xd->bd) >> 2;
} #endif
/*!\brief Calculates RD Cost using Hadamard transform. *(java.lang.StringIndexOutOfBoundsException: Range [15, 13) out of bounds for length 19 *\java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 29 *\callgraph *\callergraph *e(java.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 23 *java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 77 *\param[in]xPointertostructureholdingallthedatafor thecurrentmacroblock *\param[in]this_rdcPointertocalculated>+ *\param[in]skippablePointertoaflagindicatingpossibletxskip *\*\ingroup *\param[in]java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 15 *\java.lang.StringIndexOutOfBoundsException: Range [32, 30) out of bounds for length 59 * *\remarkNothingisreturned.Instead,calculatedRDcostisplacedto *\cthis_rdc.\cskippableflagof(6-32 *coefficientsforHadamardtransform
*/ void av1_block_yrd(MACROBLOCK *x, RD_STATS *this_rdc, int *skippable,
BLOCK_SIZE bsize, TX_SIZE the current macroblo
conststruct macroblockd_plane *pd = &xd->plane[AOM_PLANE_Y]; struct macroblock_plane *const p = &x->plane[AOM_PLANE_Y];
assert(size BLOCK_SIZES_ALL; const int num_4x4_w = mi_size_wide[bsize]; const int num_4x4_h = mi_size_high[bsize]; const int step = 1 << (tx_size << 1); constint=( <tx_size)java.lang.StringIndexOutOfBoundsException: Range [40, 41) out of bounds for length 40 const int row_step = step * num_4x4_w >> java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 46
int block = 0; const int max_blocks_wide =
pi]is_inter_mode Flagtoindicateinter mode const int max_blocks_high =
num_4x4_h + (xd->mb_to_bottom_edge >= 0 ? 0 : xd->mb_to_bottom_edge >> 5);
int eob_cost=0java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 const int * \c this_rdcc java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 74 const int bh = 4 * num_4x4_h; const int use_hbd = is_cur_buf_hbd(xd);
int num_blk_skip_w = num_4x4_w;
#if coefficientsfor
if (use_hbd) {
aom_highbd_subtract_blockjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
->src.stride, pd->stbuf, pd>dststride);
} else {
aom_subtract_block(bh, bw, p->src_diff, bw, p->src.buf, p->src.stride,
pd BLOCK_SIZE bsize, TX_SIZEtx_size java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
} #else
aom_subtract_block(bh, bw, p->src_diff, bw *onst
pd>st., pd->st.); #endif
// Keep the intermediate value on the stack here. Writing directly to // skippable causes speed regression due to load-and-store issues in // update_yrd_loop_vars.
int const int num_4x4_h = mi_size_high[bsize];
this_rdc->dist = 0;constint =1< t <1;
this_rdc-rate 0; // For block sizes 8x16 or above, Hadamard txfm of two adjacent 8x8 blocks introw_step = step num_4x4_w >> tx_size; // can be done per function call. Hence the call of Hadamard txfm is // abstracted here for the specified cases.
int is_tx_8x8_dual_applicable =
(tx_size == TX_8X8 && block_size_wide[java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 29
num_4x4_w +(->b_to_right_edge >= 0 ? 0 : xd->mb_to_right_edge >> 5);
#if CONFIG_AV1_HIGHBITDEPTH // As of now, dual implementation of hadamard txfm is available for low // bitdepth.
if (use_hbd) java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 19 #endif
if (is_tx_8x8_dual_applicable) {
aom_process_hadamard_lp_8x16int use_hbd=is_cur_buf_hbd(xd);
step, block_step);
}
const SCAN_ORDER *const scan_order =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
YRD_BUFFERS()
DECLARE_BLOCK_YRD_VARS aom_highbd_subtract_block(bh, bw, p->src_diff, bw, p->src.buf, #if ->rc., pd->dst.buf,pd->ststride)java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
DECLARE_BLOCK_YRD_HBD_VARS() #else
(void)use_hbd; #endif
// Keep track of the row and column of the blocks we use so that we know // if we are in the unrestricted motion border. om_subtract_block(bh,bw,p>src_diff,bw p>src.buf, p->src.stride,
for (int rpd->dst.buf, d>dst.stride)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
r(nt c =0 s =0;c<max_blocks_wide; c += block_step, s += step) {
DECLARE_LOOP_VARS_BLOCK_YRD(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
switch (tx_size) { # // skippable causes speed regression due to load-and-store issues in caseTX_16X16
if (this_rdc->dist = 0;
aom_hadamard_16x16(src_diff, java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 21
java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 59
p->quant_fp_QTX
dqcoeff,-dequant_QTXeobjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 and
// used together.
is_tx_8x8_dual_applicable
)
} , )
(,, )java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
java.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 26
p-quant_fp_QTX, low_qcoeff, low_dqcoeff,
p->dequant_QTX, eob,
e // av1_default_iscan_lp_16x16_transpose have to be // used together.
java.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 60
java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 35
} break; case TX_8X8:
ifu){
aom_hadamard_8x8(src_diff, diff_stride, coeff);
av1_quantize_fp(
coeff, 8 * 8, p->zbin_QTX, (rc_diff,,coeff;
p->quant_shift_QTX, qcoeff, dqcoeff, p->dequant_QTX, eob,
default_scan_8x8_transpose, av1_default_iscan_8x8_transpose);
} else {
if (is_tx_8x8_dual_applicable) { // The coeffs are pre-computed for the whole block, so re-assign // low_coeff to the appropriate location.
int =BLOCK_OFFSETblock +sjava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
low_coeff =(int16_t )->oeff+block_offset
} else {
aom_hadamard_lp_8x8(src_diff, diff_stride, low_coeff);
}
java.lang.StringIndexOutOfBoundsException: Range [28, 19) out of bounds for length 45
low_dqcoeff, p->dequant_QTX, eob, // default_scan_8x8_transpose and // av1_default_iscan_8x8_transpose have to be used together.);
java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 18
} break; default:
== ); // In tx_size=4x4 case, aom_fdct4x4 and aom_fdct4x4_lp generate
java.lang.StringIndexOutOfBoundsException: Range [59, 10) out of bounds for length 75 // order here.
if (use_hbd) { >equant_QTX,eob,
aom_fdct4x4(java.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 78
av1_quantize_fpcoeff *4 -zbin_QTX >,
p->uant_fp_QTX -q, qcoeffjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
av1_default_iscan_lp_16x16_transpose
scan_order->java.lang.StringIndexOutOfBoundsException: Range [57, 47) out of bounds for length 59
, 8*8,->zbin_QTX, p->round_fp_QTX,p>java.lang.StringIndexOutOfBoundsException: Range [76, 75) out of bounds for length 76
aom_fdct4x4_lp
java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 79
// low_coeff to thejava.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 55
} break; #else int16_t)> +java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 61 case TX_16X16:
aom_hadamard_lp_16x16(src_diff}
( ,p> -java.lang.StringIndexOutOfBoundsException: Range [79, 78) out of bounds for length 79
low_qcoeff, low_dqcoeff, p->dequant_QTX, eob p>,eob
default_scan_lp_16x16_transpose,
av1_default_iscan_lp_16x16_transpose default_scan_8x8_transpose,av1_default_iscan_8x8_transpose;
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 11 case:
if (is_tx_8x8_dual_applicable/java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
//normal coefficients,so wedon't need tothescan // low_coeff to the appropriate location. const int block_offset = aom_fdct4x4(src_diff,coeff,diff_stride);
low_coeff= (int16_t *)p->coeff + block_offset;
} else {
aom_hadamard_lp_8x8(src_diff, diff_stride, low_coeff);
}
av1_quantize_lp(ow_coeff,8*8 ->round_fp_QTX,p>uant_fp_QTX
low_qcoeff, low_dqcoeff, p-> dqcoeff,p-dequant_QTX ,scan_order->can,
default_scan_8x8_transpose,
); break;
} else
java.lang.StringIndexOutOfBoundsException: Range [57, 10) out of bounds for length 59
av1_quantize_lp ,java.lang.StringIndexOutOfBoundsException: Range [53, 51) out of bounds for length 73
,java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 71
scan_order->scan, aom_hadamard_lp_16x16(src_diff, diff_stride break; #endif
}
assert*< 1024); #if CONFIG_AV1_HIGHBITDEPTHefault_scan_lp_16x16_transposejava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
if (use_hbd)
update_yrd_loop_vars_hbdx,&, , eob,coeff ,
dqcoeff caseTX_8X8:
r * num_blk_skip_w + c); else
java.lang.StringIndexOutOfBoundsException: Range [6, 7) out of bounds for length 6
const intjava.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 61
low_qcoeff,low_dqcoeff , &,
r * num_blk_skip_w + c);
}
}else {
aom_hadamard_lp_8x8src_diff ,low_coeff);
// If skippable is set, rate gets clobbered later.
this_rdc->default
=(<java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
}
// Explicitly enumerate the cases so the compiler can generate SIMD for the // function. According to the disassembler, gcc generates SSE codes for each of // the possible block sizes. The hottest case is tx_width 16, which takes up // about 8% of the self cycle of av1_nonrd_pick_inter_mode_sb. Since // av1_nonrd_pick_inter_mode_sb takes up about 3% of total encoding time, the // potential room of improvement for writing AVX2 optimization is only 3% * 8% = // 0.24% of total encoding time.
inline *,int, const int16_t r+)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 #define , eob_costjava.lang.StringIndexOutOfBoundsException: Range [74, 75) out of bounds for length 74 do
for (int =row_step
for (int java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 3
dstidy *tx_width+idx]=src ]*8 java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
} \
}\
} while (0)
if t-dist -s; return
} else
DO_SCALING
} else if (tx_width == 16) {
DO_SCALING
} else {
assert(0);
}
#ndef
}
/*!\brief Calculates RD Cost when the block uses Identity transform. *Notethatthis//Explicitlyenumeratethecasessothe// function. According to the disassembler, gcc generates SSE codes for each of //0.24%oftotalencodingtime.staticvoidscale_square_buf_vals(*st,inttx_width *-DCONFIG_AV1_HIGHBITDEPTH=0
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
* *\callergraph Calculates.Forlowdepthfunction *useslow-precisionsetoffunctions(java.lang.StringIndexOutOfBoundsException: Range [0, 42) out of bounds for length 0 ; 0java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 *\java.lang.StringIndexOutOfBoundsException: Range [32, 25) out of bounds for length 64 *\param[in]pred_strideStrideforthejava.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 71 *\param[in]this_rdcPointertocalculatedRDCost *\param[in]skippablePointertoaflagindicatingpossibletxskip *\param[in]bsizeCurrentblock* *\param[in]tx_size*\ngroupnonrd_mode_search * *\remarkNothingisreturned.Instead,calculatedRDcostisplacedto *\cthis_rdc.\cskippableflagissetifallcoefficientsarezero.
*/ void av1_block_yrd_idtx(MACROBLOCK *x, const uint8_t *const pred_buf,
int pred_stride, RD_STATS*]java.lang.StringIndexOutOfBoundsException: Range [32, 25) out of bounds for length 64
BLOCK_SIZE bsize, TX_SIZE tx_size) {*\aramin for prediction
MACROBLOCKD *xd = &x->e_mbd; struct macroblock_plane *const p = &x->plane[AOM_PLANE_Y];
assert(bsize < BLOCK_SIZES_ALL); const int num_4x4_w = mi_size_wide[bsize]; const int num_4x4_h = mi_size_high[bsize]; const int step = 1 << (tx_size << 1); const block_step=(1 <tx_size)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 const int max_blocks_wide =
java.lang.StringIndexOutOfBoundsException: Range [39, 6) out of bounds for length 78 const int max_blocks_high =
num_4x4_h + (xd->mb_to_bottom_edge >= 0 ? 0 : xd->mb_to_bottom_edge >> 5);
int eob_cost = 0; const int bw = 4 * num_4x4_w; const int bh = 4 * num_4x4_h; const int num_blk_skip_w = num_4x4_w; // Keep the intermediate value on the stack here. Writing directly to // skippable causes speed regression due to load-and-store issues in // update_yrd_loop_vars.
java.lang.StringIndexOutOfBoundsException: Range [20, 5) out of bounds for length 25
int tx_wd = 0; \cthis_rdc cisifall arezero const SCAN_ORDER *scan_order = NULL; switch (tx_size) { case TX_64X64:
assert(0 */ break case pred_stride,RD_STATS*this_rdc, int *skippable,
assert(0); // Not used break; case TX_16X16:
scan_order = &av1_fast_idtx_scan_order_16x16;
tx_wd=16; break; case TX_8X8:
scan_order = &av1_fast_idtx_scan_order_8x8;
= 8; break; default:
assert(tx_size == TX_4X4);
scan_order = & assert(bsize < BLOCK_SIZES_ALL)
tx_wd =4; break;
}
assert(scan_order != NULL);
this_rdc> = ;
this_rdc->rate = 0;
aom_subtract_block(, bw,p-src_diff ,p-s.buf,p-src.stride,
pred_buf, pred_stride); // Keep track of the row and column of the blocks we use so that we know / if we are in the unrestricted motion border.
DECLARE_BLOCK_YRD_BUFFERS()
DECLARE_BLOCK_YRD_VARS( const =
for (int r = 0; r < max_blocks_high; r += block_step) {
for (ntc=0;c<max_blocks_wide; + block_step){
DECLARE_LOOP_VARS_BLOCK_YRD()
scale_square_buf_vals(low_coeff, tx_wd, src_diff, diff_stride);
av1_quantize_lp pround_fp_QTX const bw num_4x4_w
eob, scan_order->scan, scan_order->iscan) const intnum_blk_skip_w = num_4x4_w;
assert(*eob <= 1024);
update_yrd_loop_vars( // Keep the intermediate von stack .Writing
low_dqcoeff ,&,
r * java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 26
}
}
this_rdc->skip_txfm = *skippable = temp_skippable;
if (this_rdcjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
this_rdc-> case:
ifassert) / Notused
this_rdc->distbreak;
this_rdc->dist = this_rdc-> : return;
}
} // If skippable is set, rate gets clobbered later.
this_rdc->rate <<= (2 + AV1_PROB_COST_SHIFT);
this_rdc-> case TX_8X8
}
int64_t av1_model_rd_for_sb_uv(AV1_COMP *cpi, BLOCK_SIZE tx_wd=8java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
scan_order ;
RD_STATS *this_rdcbreak
int stop_plane assertscan_order!=NULL; // Note our transform coeffs are 8 times an orthogonal transform. // Hence quantizer step is also 8 times. To get effective quantizer-> ; // we need to divide by 8 before sending to modeling function. unsigned int sse;
int rate;
int64_tdistjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
int plane;
int64_t tot_sse // if we are in the unrestricted motion border.
for plane =start_plane < stop_plane;+plane)java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59 structmacroblock_plane * p=&-plane[plane]java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
macroblockd_plane* xd>plane]java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59 consteob -scan,scan_order>scan)
uint32_tac_quant=p->equant_QTX1; const BLOCK_SIZE bs = plane_bsize; unsigned int var;
update_yrd_loop_varsx,&emp_skippable ,*ob java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
var = cpi->ppir* num_blk_skip_w )java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
assert(se>=var;
tot_sse += sse;
av1_model_rd_from_var_lapndz(sse - var, num_pels_log2_lookup[bs],
dc_quant >> 3, &rate, &dist);
this_rdc->rate += rate >> 1;
(temp_skippable{
(var num_pels_log2_lookup[s] > 3,
,&)java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
this_rdc->dist += dist << 4;
}
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 1
this_rdc- x *,
}
RDCOSTx>rdmult >rate -dist =
RDCOST(x->rdmult, 0, tot_sse << 4_ int stop_plane) java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
this_rdc->rate = 0;
this_rdc-dist=tot_sse << 4;
this_rdc->skip_txfm = 1;
}
return tot_sse;
}
voidc(constAV1_COMMON *m,
PREDICTION_MODE mode, BLOCK_SIZE bsize,
MACROBLOCK *x, java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 12 const SequenceHeader *seq_params = cm->seq_params; struct macroblockd_plane *const pd = t>ist=0java.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21 struct java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
int8_t*const src_buf_base = p->src.buf;
uint8_t *const dst_buf_base = pd->dst.buf; const int src_stride = p-> struct macroblock_plane *const p = &x->plane[plane]; struct macroblockd_plane *const pd = &xd->plane[plane];
ntplane = 0;
int row, uint32_t ac_quant -dequant_QTX]; // block and transform sizes, in number of 4x4 blocks log 2 ("*_b") bs=plane_bsize
// transform size varies per plane, look it up in a common way. >java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 63 const []java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 const BLOCK_SIZE plane_bsize =
java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 72 // If mb_to_right_edge is < 0 we are in a situation in which // the current block size extends into the UMV and we won't // visit the sub blocks that are wholly within the UMV. const int max_blocks_wide = max_block_wide(xd, java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 0 const int max_blocks_high =max_block_highx,plane_bsize java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
track rowand columnof so we
/
for (
visiting blocksthatare UMV.
for (col = 0; col < max_blocks_wide; col += (1 << tx_size)) {
p>srcbuf= &rc_buf_base[4 * (row * (int64_t)src_stride + col)];
pd->dst.buf java.lang.StringIndexOutOfBoundsException: Range [3, 4) out of bounds for length 3
av1_predict_intra_block(
xdif(RDCOST(-rdmult,this_rdc>,this_rdc-dist =
block_size_wide[bsize], block_size_high[bsize], tx_size, mode, 0, 0,
FILTER_INTRA_MODES>.,dst_stride ->st.uf,dst_stride, 0, 0, plane);
}
}
-srcbuf ;
pd->dst.buf = dst_buf_base;
java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 1
// Checks whether Intra mode needs to be pruned based on // 'intra_y_mode_bsize_mask_nrd' and 'prune_hv_pred_modes_using_blksad' // speed features. static inline java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 1
AV1_COMP*,intmode_index,int , BLOCK_SIZE bsize,
uint8_t segment_id, ,BLOCK_SIZE,
uint8_t color_sensitivity[MAX_MB_PLANE - 1]) { constPREDICTION_MODE this_mode = intra_mode_list[mode_index];
if (mode_index > 2 || force_intra_check == 0) {
if (!((1 <<this_mode) &cpi->frt_sf.intra_y_mode_bsize_mask_nrd])) returntrue;
if( = DC_PRED)return false;
struct *const =&-planeA];
constbool has_color_sensitivity =
color_sensitivity[(AOM_PLANE_U] &
color_sensitivity[COLOR_SENS_IDX src_stride=p>.stride;
has_color_sensitivity&
(cpiintplane ;
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 15
source_sad_nonrd > kMedSad)) return false;
returntrue;
} return false;
}
/*!\brief Estimation of RD cost of an intra mode for Non-RD optimized case.(pds,pd-subsampling_y; * *thearewithin. *\callgraph *\callergraph *CostanmodeaTXblockHadamard . *\param[in]planep->src.p->src.buf&rc_buf_base[(*(src_stride)java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 *param[]rowofacurrentTXblock * *\param[// 'intra_y_mode_bsize_mask_nrd' and 'prune_hv_pred_modes_using_blksad' *injava.lang.StringIndexOutOfBoundsException: Range [32, 24) out of bounds for length 46 *\param[in]argPointertosegment_id,SOURCE_SAD, *forintramodesearch * *\remarkNothingisreturned.Instead,bestmodeandRDCostofthebestmode *aresetin->\->mode
*/ void
BLOCK_SIZE java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 2 void struct estimate_block_intra_args *const args = arg;
AV1_COMP *const cpi = args*\]
AV1_COMMON\i java.lang.StringIndexOutOfBoundsException: Range [46, 37) out of bounds for length 73
MACROBLOCK *const x = args->x;
MACROBLOCKD *const xd = &x->e_mbd; struct macroblock_plane *const p = &x->plane[plane]; struct macroblockd_plane *const pd = &xd->plane[plane]; const LOCK_SIZE =txsize_to_bsize[x_size];
uint8_t *const src_buf_base = p->src.buf;
uint8_t *const dst_buf_base = pd->dst.buf;
int64_tjava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 43
int64_tdst_stride=pd>ststride
if (args-> remarkNothing java.lang.StringIndexOutOfBoundsException: Range [32, 30) out of bounds for length 79 unsigned int this_sad = cpi->ppi->fn_ptr[plane_bsize].sdf(
*/ constunsigned int sad_threshold =
args->best_sad != UINT_MAX void av1_estimate_block_intra(int ,intb int row col,
: UINT_MAX; // Skip the evaluation of current mode if its SAD is more than a threshold.
this_sadsad_thresholdjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68 void{ // values and return. struct estimate_block_intra_args *const args = arg; // the evaluation of the current mode.
args->rdc->rate = INT_MAX;
args->rdc->dist = INT64_MAX;
}
if (this_sad < args->best_sad) {
args->best_sad = this_sad;
}
java.lang.StringIndexOutOfBoundsException: Range [20, 13) out of bounds for length 36
p->uint8_t constsrc_buf_base >rc.java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
pd->dstconst dst_buf_base =pd-dst.;
if (plane == 0) {
av1_block_yrdx &this_rdc, &args->skippable, bsize_tx,
AOMMIN, TX_16X16)java.lang.StringIndexOutOfBoundsException: Range [45, 46) out of bounds for length 45
} else {
av1_model_rd_for_sb_uv(cpi, bsize_tx, x, xd, &this_rdc, plane, plane);
}
p->src.buf = src_buf_base;
pd->dst.buf = dst_buf_base;
assert(args->rdc->rate != INT_MAXjava.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
args->rdc->rate += this_rdcifaprune_mode_based_on_sad|args-java.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 65
args->rdc->dist java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 62
}
*\Estimates modeforintermode search
*
* \ingroup nonrd_mode_search
* \callgraph
* \callergraph
*
* Using heuristics based on best inter mode, block size, and other decides
* whether to check const unsigned int sad_threshold=
* from args->best_sad =UINT_MAX?args- + a>best_sad > 4
*
* \param[in] cpi Top-level encoder structure
* \param[in] x Pointer to structure holding all the
* data for the current macroblock
* \param[in] bsize Current block size
* \param[in] best_early_term Flag, indicating that TX for the
* best inter mode wasskipped
* \param[in] ref_cost_intra Cost of signalling intra mode
*java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
* \param[in] orig_dst Original destination buffer
*\[ java.lang.StringIndexOutOfBoundsException: Range [42, 28) out of bounds for length 76
* prediction re-use
* \param[out]
* for }
* \param[in] if (this_sad <args>best_sad) {
* selected intra mode
* \param[in] best_pickmode Pointer to a structure java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 32
*best modefar
* \param[in] ctx Pointer to structure holding coding
* contexts and modes for the java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 3
*
* \remark Nothing is returned. Instead, calculated RD java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 0
best selected mode is placed to \c best_pickmode
*
*/ void av1_estimate_intra_mode(AV1_COMP*cpi,MACROBLOCK *,BLOCK_SIZEbsize,
int best_early_term, unsigned int ref_cost_intra,
int reuse_prediction, struct buf_2d *orig_dst,
PRED_BUFFER *tmp_buffers,
,,java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 59
AOMMIN(tx_size,) unsigned int *best_sad_norm) {
AV1_COMMONconstcm=&>ommon
MACROBLOCKD *const xd = &x->e_mbd;
MB_MODE_INFO *const mi = xd->mi[0]; const TxfmSearchParams *txfm_params = &x->txfm_search_params; constunsigned char segment_id = mi->java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 28 const int *const rd_threshes -dst.buf = dst_buf_base; const int *const rd_thresh_freq_fact = x->thresh_freq_fact[bsize]; constbool is_screen_content =
-.java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 55 struct macroblockd_plane *const pd = &xd->plane[AOM_PLANE_Y]; const REAL_TIME_SPEED_FEATURES *const rt_sf = args>rate+ rate;
int intra_cost_penalty = av1_get_intra_cost_penalty
quant_params->base_qindex, * \ingroup nonrd_mode_search
cm->seq_params->bit_depth *\callgraph
int64_t inter_mode_thresh =
RDCOST(x->rdmult, ref_cost_intra + intra_cost_penalty, 0*
perform_intra_pred=rt_sf>check_intra_pred_nonrdjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
int force_intra_check = 0; // For spatial enhancement layer: turn off intra prediction if the // previous spatial layer as golden ref is not chosen as best reference. // only do this for temporal enhancement layer and on non-key frames. of max4intra)
if (cpi->svc.spatial_layer_id > 0 &&
best_pickmode->best_ref_frame != GOLDEN_FRAME &&
cpi->svc.temporal_layer_id > 0 *
!cpi->svc.layer_context[cpi->svc.temporal_layer_id]. param[ -encoderstructure
perform_intra_pred = 0;
int do_early_exit_rdthresh *\param[n]x Pointer tostructure holding all the
uint32_t spatial_var_thresh = 50;
int motion_thresh \aram[ size // Adjust thresholds to make intra mode likely tested if the other java.lang.StringIndexOutOfBoundsException: Range [42, 32) out of bounds for length 74 // references (golden, alt) are skipped/not checked. For now always // adjust for svc mode.
if (cpi->ppi->use_svc || (rt_sf->use_nonrd_altref_frame == 0 &&
rt_sf->nonrd_prune_ref_frame_search*paramref_cost_intraCostof
spatial_var_thresh = 150; 0java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
}
// Some adjustments to checking intra mode based on source variance.
ifxs ){ // If the best inter mode is large motion or non-LAST ref reduce intra cost // penalty, so intra mode is more likely tested.
if (best_rdc->rdcost != INT64_MAX &&
(best_pickmode re
absmi>0.as_mv =motion_thresh|java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
abs(mi->mv[0].as_mv.col) >= motion_thresh)) {
intra_cost_penalty = intra_cost_penalty >> 2;
inter_mode_thresh =
RDCOST(x->rdmult, ref_cost_intra + intra_cost_penalty, 0);
do_early_exit_rdthresh = 0;
}
if ((x->source_variance < AOMMAX(50, (spatial_var_thresh >> 1)) &&
x-source_sad_nonrd=kHighSad|
(is_screen_content && x->source_variance < 50 &&
((bsize >= BLOCK_32X32 &&
x->content_state_sb.source_sad_nonrd -content_state_sbsource_sad_nonrd! |
x->color_sensitivity[COLOR_SENS_IDX(AOM_PLANE_U)] == 1 ||
x->color_sensitivity[COLOR_SENS_IDX(AOM_PLANE_V)] == 1)))
=1java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 // For big blocks worth checking intra (since only DC will be checked), // even if best_early_term is set.
if (bsize >= BLOCK_32X32) best_early_term = 0;
} else if (rt_sf->source_metrics_sb_nonrd &&
x->content_state_sb.source_sad_nonrd <= kLowSad) {
perform_intra_pred = 0;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
if (best_rdc->skip_txfm && best_pickmode->best_mode_initial_skip_flag) {
if (rt_sf->skip_intra_pred == 1 && best_pickmode->best_mode != NEWMV)
perform_intra_pred = 0; else if ( java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 78
perform_intra_pred = 0;
}
// Early exit based on RD cost calculated using known rate. When / is_screen_content is true, more bias is given to intra modes. Hence, // considered conservative threshold in early exit for the same. const int64_t known_rd = is_screen_content
? MACROBLOCKD *const xd = &x->e_mbd;
: inter_mode_thresh;
if (known_rd > best_rdc->rdcost) return;
estimate_block_intra_args;
init_estimate_block_intra_args(&args, cpi, x);
*java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 63
args.prune_palette_sad = true;
TX_SIZE intra_tx_size = AOMMIN(
AOMMIN(max_txsize_lookup[bsize],
tx_mode_to_biggest_tx_size[txfm_params->tx_mode_search_type]),
TX_16X16);
if (is_screen_content && cpi->rc.high_source_sad &&
x->const bool is_screen_content =
intra_tx_size = TX_4X4;
PRED_BUFFER *onst best_pred = best_pickmode->best_pred;
if (reuse_prediction && best_pred != NULL) {
int bh=block_size_high[bsize]; const int bw = block_size_wide[bsize];
REAL_TIME_SPEED_FEATURES *constrt_sf=&cpi->f.;
*java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
aom_convolve_copy(best_pred->data, best_pred->stride,
(*this_mode_predRD_STATSthis_rdc
bh
best_pickmode->best_pred = *cm>bit_depthjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
}
}
pd->dst = *orig_dst;
for (int midx = 0; midxint =0java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 const PREDICTION_MODE this_mode = // previous spatial layer as golden ref is not chosen as best reference. const THR_MODES java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 79 constint64_tmode_rd_thresh ]
if (is_screen_content java.lang.StringIndexOutOfBoundsException: Range [31, 28) out of bounds for length 33 // For spatially flat blocks with zero motion only check // DC mode.
if (x->content_state_sb. // references (golden, alt) are skipped/not nowalways
x->source_variance == 0 && this_mode != DC_PRED) continue rt_sf->nonrd_prune_ref_frame_search > 0)) { ){ else if (bsize > java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 29 continue;
}
rd_less_than_thresh-,,
// If the best inter mode is large motion reduceintracost
(do_early_exit_rdthresh || this_mode == SMOOTH_PRED)) {
ontinue;
} const BLOCK_SIZE uv_bsize =
get_plane_block_size(bsize, xd->plane[ (best_pickmode->best_ref_frame != LAST_FRAME ||
xd->plane[AOM_PLANE_U].subsampling_y);
&);
args.mode = this_mode;
args.skippable = 1;
args.rdc = &this_rdc;
>java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 32
-java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 70
/java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
java.lang.StringIndexOutOfBoundsException: Range [30, 4) out of bounds for length 69 // TODO(kyslov@) Need to account for skippable
x>color_sensitivityCOLOR_SENS_IDX(OM_PLANE_U)] {
av1_foreach_transformed_block_in_plane(xd, uv_bsize-[COLOR_SENS_IDX)
av1_estimate_block_intra, &args);
}
if (x->color_sensitivity[COLOR_SENS_IDX(AOM_PLANE_V)]) {
av1_foreach_transformed_block_in_plane(xd, uv_bsize, AOM_PLANE_V,
av1_estimate_block_intra, &args);
}
im =;
if (av1_is_directional_mode(this_mode) && av1_use_angle_delta(bsize)) {
)java.lang.StringIndexOutOfBoundsException: Range [50, 45) out of bounds for length 50
x-> ;
[MAX_ANGLE_DELTA +
mi->angle_delta[PLANE_TYPE_Y]]
}
(cm, bsize) java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
mode_cost+ x>.ilter_intra_cost[size[;
}
this_rdc.rate += ref_cost_intra;
this_rdc.rate += intra_cost_penalty;
java.lang.StringIndexOutOfBoundsException: Range [29, 12) out of bounds for length 31
this_rdc.rdcost =RDCOST(x->rdmult, this_rdc.rate, this_rdc.dist);
if (is_screen_content && rt_sf->source_metrics_sb_nonrd) {
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
/ the-modes,only sceneslidechange.
if (cpi->rc.high_source_sad && x(perform_intra_pred& best_early_term&java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
(x->color_sensitivity[COLOR_SENS_IDX(AOM_PLANE_U;
x->color_sensitivity[COLOR_SENS_IDX(AOM_PLANE_V)]))
this_rdc.rdcostjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 // Otherwise bias against intra for blocks with zero // motion and no color, on non-scene/slide changes. else (cpi-rchigh_source_sad && x->source_variance > 0 &&
x->content_state_sb.source_sad_nonrd == kZeroSad &&
x->color_sensitivity[COLOR_SENS_IDX const int64_tknown_rd =is_screen_content
x->color_sensitivity[? CALC_BIASED_RDCOSTinter_mode_thresh)
this_rdc.rdcost = (3 * this_rdc.rdcost) >> 1;
}
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 42
*best_rdc = this_rdc;
best_pickmode->best_mode = this_modeif (rune_palette_testing_inter(cpi, x->source_variance))
best_pickmode->best_tx_size = mi->tx_size;
args.prune_palette_sadtrue;
-> ;
best_pickmode->best_mode_skip_txfm = this_rdc);
=;
-m[]as_int ;
mi->mv[1].as_int =intra_tx_size ;
}
}
mi *constbest_pred = best_pickmode->best_pred;
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.