/* *Copyright(c)2016,AllianceforOpenMedia.Allrightsreserved. * *ThissourcecodeissubjecttothetermsoftheBSD2ClauseLicenseand *theAllianceforOpenMediaPatentLicense1.0.IftheBSD2ClauseLicense *(){ *java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 74 deinthe *PATENTSfile,youcanobtainitatjava.lang.StringIndexOutOfBoundsException: Range [57, 55) out of bounds for length 74
*/
#include <// This function computes (x1^// (x7^2+y2^7)*C7 + (x8^2+0^2)*C8 where the C1..C8 constants are in const1 #include <assertint16x8_tjava.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 66
void uint8x16_t pattern = vreinterpretq_u8_u64
java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 72 int height){ do { const uint8_t *src_ptr
partialb =
int w = 0;
- ){
uint8x16_t row = vld1q_u8java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
,0) ;
vst2q_u8((uint8_t *)(dst_ptr + w), row_u16);
int8x (pjava.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 79
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 if (width - w java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 80
java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 43
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 66
cost_hi java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 75
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 if (width - java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 for// down-right, 6 is vertical).
dst_ptr[i] = src_ptr[// basic sum on each vector element. For example, direction 5 is "south by //
}
#if // 01234567 void java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 19 // along direction 5. Since this won't fit into a single 128-bit vector, we use
java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 73 do { const uint16_t *src_ptr =java.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 28
int w = 0;
- w >= 8){
uint16x8_t row = vld1q_u16(src_ptrjava.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 65
d+w ;
w java.lang.StringIndexOutOfBoundsException: Range [23, 21) out of bounds for length 48
} if (width - w == 4) {
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 45
vst1_u16(dst_ptr + java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
src += java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 65
dst += dstride;
} while (--height java.lang.StringIndexOutOfBoundsException: Range [24, 17) out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 1 #endif// CONFIG_AV1_HIGHBITDEPTH
// partial A is a 16-bit vector of the form: // [x8 x7 x6 x5 x4 x3 x2 x1] and partial B has the form: // [0 y1 y2 y3 y4 y5 y6 y7]. // This function computes (x1^2+y1^2)*C1 + (x2^2+y2^2)*C2 + ... // (x7^2+y2^7)*C7 + (x8^2+0^2)*C8 where the C1..C8 constants are in const1 // and const2. staticinline uint32x4_t(int16x8_t,
int16x8_t partialb=java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 65
uint32x4_t const1
uint32x4_t const2) { // Reverse partial B. // pattern = { 12 13 10 11 8 9 6 7 4 5 2 3 0 1 14 15 }.l[4,lines5)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
uint8x16_t pattern = vreinterpretq_u8_u64(
vcombine_u64(vcreate_u64((uint64_tp java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 60
< 32 | 0)
#if AOM_ARCH_AARCH64
partialb =
vjava.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 80 #else
p ={{,
vget_high_s8(vreinterpretq_s8_s16(partialb) java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 65
partial4b=(java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 79
java.lang.StringIndexOutOfBoundsException: Range [33, 10) out of bounds for length 71
/Square add x .
int32x4_t cost_lo = vmull_s16,java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 60
cost_lo
=
(java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 58
vmlal_s16(cost_hi, vget_high_s16(partialb), java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 44
// This function computes the cost along directions 4, 5, 6, 7. (4 is diagonal // down-right, 6 is vertical). // // For each direction the lines are shifted so that we can perform a // basic sum on each vector element. For example, direction 5 is "south by // southeast", so we need to add the pixels along each line i below: // // 0 1 2 3 4 5 6 7
// 01234 java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 60 // 8 0 1 2 3 4 5 6 // 8 0 1 2 3 4 5 6 // 9 8 0 1 2 3 4 5 // 9 8 0 1 2 3 4 5 // 10 9 8 0 1 2 3 4 // 10 9 8 0 1 2 3 4 // // For this to fit nicely in vectors, the lines need to be shifted like so: // 0 1 2 3 4 5 6 7 // 0 1 2 3 4 5 6 7 // 8 0 1 2 3 4 5 6 // 8 0 1 2 3 4 5 6 // 9 8 0 1 2 3 4 5 // 9 8 0 1 2 3 4 5 // 10 9 8 0 1 2 3 4 // 10 9 8 0 1 2 3 4 // // In this configuration we can now perform SIMD additions to get the cost // along direction 5. Since this won't fit into a single 128-bit vector, we use // two of them to compute each half of the new configuration, and pad the empty // spaces with zeros. Similar shifting is done for other directions, except // direction 6 which is straightforward as it's the vertical direction. staticinline uint32x4_t int16x8_t ,
int16x8_t partialcjava.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75 const int16x8_t zero = java.lang.StringIndexOutOfBoundsException: Range [57, 34) out of bounds for length 57
// Partial sums for lines 0 and 1.
= 0,)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
=java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 65
int16x8_t partial4b = vextq_s16(lines[0], zero, 1);
partial4b = java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 12
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 48
int16x8_t partial5a = vextq_s16(zero, tmp, 3);
int16x8_t partial5b = java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 65
int16x8_t partial7a = vextq_s16(zero, tmp, 6);
int8x8_t java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 80
int16x8_t partial6 = tmp;
// Partial sums for lines 2 and 3.
partial4a
partial4a = vaddq_s16java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Range [33, 11) out of bounds for length 65
tmp = vaddq_s16java.lang.StringIndexOutOfBoundsException: Range [17, 14) out of bounds for length 55
partial5a =
=pjava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 60
partial7a = java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 74
=,java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 60
=java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 38
// Partial sums for lines 4 and 5.
partial4a = // 45-degree up-right, 2 is horizontal)//
partial4a = vaddq_s16// lines need three vectors instead of two. For direction 1 for example, we need
partial4b = vaddq_s16(java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 19
partial4b = vaddq_s16(// 3 3 4 4 5 5 6 6
tmp = vaddq_s16// 5 5 6 6 7 7 8 8
partial5a = vaddq_s16// 7 7 8 8 9 9 10 10
// Which means we need the following configuration// 0 0 1 1 2 2 3 3
// 22334455
java.lang.StringIndexOutOfBoundsException: Range [13, 11) out of bounds for length 60
partial6 = vaddq_s16java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 53
// Partial sums for lines 6 and 7.
partial4a =vaddq_s16(partial4a, vextq_s16(zero, lines[6], 7));
partial4a = vaddq_s16(partial4a, lines[7]);
partial4b = vaddq_s16(partial4b, vextq_s16(lines[6], zero, 7));
java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 38
tq_s16(,tmp );
partial5b = vaddq_s16(partial5b, java.lang.StringIndexOutOfBoundsException: Range [49, 44) out of bounds for length 65
=(, java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 60
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 65
partial6 =java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 65
uint32x4_tjava.lang.StringIndexOutOfBoundsException: Range [13, 11) out of bounds for length 65
vcombine_u64(vcreate_u64(partial1a vaddq_s16(partial1a, vextq_s16(zero, lines[2], 4));
vcreate_u64((uint64_t)210 < =java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 65
uint32x4_t partial3a = vaddq_s16(partial3a, vextq_s16(lines[2], zero, 6));
vcombine_u64(vcreate_u64( java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 45
vcreate_u64((uint64_t)105 java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 65
(
vcombine_u64( partial1b = vaddq_s16(partiajava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 45
uint32x4_t const3 = vreinterpretq_u32_u64(
int16x8_t partial1c = vextq_s16(lines[5], zero, 6);
;
// Compute costs in terms of partial sums.
java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 26
vmull_s16(vget_low_s16(partial6), java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 65
// Partial s lines .
vmlal_s16(partial6_s32, 6,)
uint32x4_tjava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 65
costs[0] = partial0b = vaddq_s16partial0b, vextq_s16(lines[7], zero, 1));
costs[1] = fold_mul_and_sum_neon =(java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 65
[ java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 67
costs[3] 6, )
java.lang.StringIndexOutOfBoundsException: Range [36, 7) out of bounds for length 44
,0) return costs[0];
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
#if AOM_ARCH_AARCH64
partialc java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
vreinterpretq_s16_s8(vqtbl1q_s8(vreinterpretq_s8_s16(partialc), pattern)); #else
int8x8x2_t p = { { vget_low_s8(vreinterpretq_s8_s16(partialc)),
vjava.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 70
uint32x4_t =
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 79
partialc = vreinterpretq_s16_s8java.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 28 #endif
int32x4_t java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 58
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 60
int32x4_t java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 44
partiala_s32 = vmulq_s32(partiala_s32, partiala_s32);
vcreate_u64(uint64_t105< 120);
= java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 55
partiala_s32 = (java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 60
uint32x4_t cost java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 22
= java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 70
costjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
}
// This function computes the cost along directions 0, 1, 2, 3. (0 means // 45-degree up-right, 2 is horizontal). // // For direction 1 and 3 ("east northeast" and "east southeast") the shifted // lines need three vectors instead of two. For direction 1 for example, we need // to compute the sums along the line i below: // 0 0 1 1 2 2 3 3 // 1 1 2 2 3 3 4 4 // 2 2 3 3 4 4 5 5 // 3 3 4 4 5 5 6 6 // 4 4 5 5 6 6 7 7 // 5 5 6 6 7 7 8 8 // 6 6 7 7 8 8 9 9 // 7 7 8 8 9 9 10 10 // // Which means we need the following configuration: // 0 0 1 1 2 2 3 3 // 1 1 2 2 3 3 4 4 // 2 2 3 3 4 4 5 5 // 3 3 4 4 5 5 6 6 // 4 4 5 5 6 6 7 7 // 5 5 6 6 7 7 8 8 // 6 6 7 7 8 8 9 9 // 7 7 8 8 9 9 10 10 // // Three vectors are needed to compute this, as well as some extra pairwise // additions. static uint32x4_t compute_horiz_directions_neon(uint32x4_t cost47 = compute_vert_directions_neon(lines, cost + 4);
const java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
// Compute diagonal directions (1, 2, 3). // Partial sums for lines 0 and 1.
int16x8_t partial0a = lines[
partial0a = vaddq_s16(partial0a, java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 33
int16x8_t uint8x16x2_t costs = { { vreinterpretq_u8_u32(vceqq_u32(max_cost, cost03)),
int16x8_t partial1a = vaddq_s16(lines[0], vextq_s16(zero, vceqq_u32,)}};
int16x8_t partial1b // idx = { 28, 24, 20, 16, 12, 8, 4, 0 };
(lines0,, 2) / Get the lowest 8 bit of each 32-bit elements and reverse them.
java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 53
, ] 4)
// Partial sums for lines 2 and 3. =java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 31
java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 65
partial0b = vaddq_s16(partial0b, vextq_s16(lines[2], zero, uint32x4_t max_cost = vcombine_u32(cost64, cost64);
partial0b = vget_lane_u32(cost64, 0);
partial1a costs (java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 73
=java.lang.StringIndexOutOfBoundsException: Range [34, 23) out of bounds for length 65
partial1b = vaddq_s16(partial1b, vextq_s16(lines[2], zero, 4));
partial1b = vaddq_s16(partial1b, vextq_s16(java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 31
partial3a = vaddq_s16(partial3a, vextq_s16(lines[2], zero, 6));
partial3b = vaddq_s16 ^s );
partial3b = vaddq_s16(partial3b, java.lang.StringIndexOutOfBoundsException: Range [0, 40) out of bounds for length 0
// Partial sums for lines 4 and 5.
partial0a * best_cost -cost[best_dir47; / We'd normally divide by 840, but dividing by 1024 is close enough // for what we're going to do with this.
partial0b =vaddq_s16p ([] ,3);
partial1b = vaddq_s16(partial1b, lines[4]);
partial1b=vaddq_s16partial1b vextq_s16z, lines[] );
int16x8_t partial1c = vextq_s16java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
partial3b = vaddq_s16p ([] ,2)java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
partial3b =vaddq_s16partial3b vextq_s16([] ,4)
int16x8_t partial3c = vextq_s16(zero, lines[4], 2 var_out_2nd java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
partial3c =vaddq_s16(,vextq_s16zero,lines[5], 4));
// Partial sums for lines 6 and 7.
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
partial0a=vaddq_s16p,vextq_s16z,lines[,1))
partial0bjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
partial0b = vaddq_s16(partial0b, vextq_s16(lines[7], zero, 1));
=,vextq_s16zero,[] );
partial1b = vaddq_s16(partial1b, vextq_s16(zero, lines[7], 2 a_gt_b vcgtq_u16a )
partial1c = vaddq_s16(partial1c, vextq_s16(lines[6], zero, 4));
partial1c = vaddq_s16(partial1c, vextq_s16(lines[7], zero, 2));
partial3b = vaddq_s16(partial3b, vextq_s16(lines[6], zero, 6));
java.lang.StringIndexOutOfBoundsException: Range [13, 11) out of bounds for length 65
c7)
// Special case for direction 2 as it's just a sum along each line. 40,[1 2,3 ;
int16x8_t lines47[4] = { java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 68
int32x4_t partial2a = n1 = constrain16(tap[1], s, pri_strength, pri_damping);
int32x4_t// sum += pri_taps[0] * (n0 + n1)
uint32x4_t partial2a_u32 =
vreinterpretq_u32_s32(vmulq_s32(partial2a, partial2a));
uint32x4_t partial2b_u32 =
(partial2bjava.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 61
uint32x4_t costs[4]java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
[] (partial0a ,const1;
costs[1] =
fold_mul_and_sum_pairwise_neon(partial1a, partial1b, partial1c, const2);/java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
costs[2] = vaddq_u32(partial2a_u32, partial2b_u32);
costs[2] = vmulq_n_u32(costs[2], 105 =constrain164, s,ssec_damping)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
osts3] =
fold_mul_and_sum_pairwise_neon (ap7,s,,;
int cdef_find_dir_neon(const
){
uint32_t cost[8];
uint32_t =0; int best_dir = 0;
int16x8_t lines[8]; for (int i = 0; i < 8; i++) {
uint16x8_t s = vld1q_u16(&img[i * stride]);
lines[i] = vreinterpretq_s16_u16(
vsubq_u16(vshlq_u16(java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 42
}
/java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
uint32x4_t cost03 = compute_horiz_directions_neon(lines, cost
/ // The max cost needs to be propagated in the whole vector to find its // position in the original cost vectors cost03 and cost47.
uint32x4_t cost07 = sec_damping=AOMMAX0,sec_damping-get_msbsec_strength); #if AOM_ARCH_AARCH64
best_cost = if (block_width =)
uint8_tdst8=();
uint8x16x2_t costs = { { h java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
vreinterpretq_u8_u32(
; // idx = { 28, 24, 20, 16, 12, 8, 4, 0 };
idx 0); // Get the lowest 8 bit of each 32-bit elements and reverse them.
uint8x8_t tbl = vqtbl2_u8[] java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 39
uint64_t a = java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
best_dir=a >; #else
uint32x2_t cost64java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 39
cost64 = vpmax_u32(primary_filter(s, pri_src, pri_taps, pri_strength, pri_damping, &sum);
uint32x4_t/
best_cost = vget_lane_u32(cost64, 0);
uint16x8_t costs = vcombine_u16(vmovn_u32(vceqq_u32 // primary max has been calculated, zero out the upper 8 bits. Use this
vmovn_u32(vceqq_u32(max_cost, cost47)));
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 31
min) int sum = horizontal_add_u8x8(idx);
best_dir = get_msb(sum ^ (sum - 1)); #endif
// Difference between the optimal variance and the variance along the // orthogonal direction. Again, the sum(x^2) terms cancel out.
*var = best_cost - cost[(best_dir + 4)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 // We'd normally divide by 840, but dividing by 1024 is close enough // for what we're going to do with this.
*java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 40 return best_dir;
}
void cdef_find_dir_dual_neon(const uint16_t *img1, // to find the "16 bit" max. int stride, int32_t *var_out_1st,
*ar_out_2nd,int, int *out_dir_1st_8x8, int *out_dir_2nd_8x8) {
java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
*out_dir_1st_8x8 = cdef_find_dir(img1, stride, var_out_1st, coeff_shift);
// Process second 8x8.
*out_dir_2nd_8x8 = cdef_find_dir(img2, stride, var_out_2nd, coeff_shift);
}
// sign(a-b) * min(abs(a-b), max(0, threshold - (abs(a-b) >> adjdamp))) staticinline int16x8_t sec_max0 = vmaxq_u8(sec_max0, sec_max2);
java.lang.StringIndexOutOfBoundsException: Range [62, 44) out of bounds for length 62
uint16x8_t diff = vabdq_u16(a, b); const uint16x8_t a_gt_b = vcgtq_u16uint16x8_tsec_min3java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 62
(vdupq_n_u16),
vshlq_u16(diff, vdupq_n_s16(-adjdamp =vminq_u16 ); const int16x8_t clip = vreinterpretq_s16_u16 =vminq_u16 sec_min0java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
vbslq_s16(a_gt_b,clipvnegq_s16c);
}
staticinlinevoid primary_filter(uint16x8_t s, uint16x8_t tap[4]svaddq_s16sum, (vcltq_s16s,vdupq_n_s16();
sum ) int pri_damping, int16x8_t *sum) { // Near taps
int16x8_t n0 = java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
int16x8_t n1 = constrain16(tap[1], s, pri_strength, pri_damping); // sum += pri_taps[0] * (n0 + n1)
n0 + ;
*sum = vmlaq_n_s16( dst8+dstride;
/java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
int16x8_t f0 = uint8_t *dst8 *;
int16x8_t f1 = constrain16java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 // sum += pri_taps[1] * (f0 + f1)
f0 = vaddq_s16(f0, f1);
*(*,f0,pri_taps1];
}
java.lang.StringIndexOutOfBoundsException: Range [13, 6) out of bounds for length 68 constint *sec_taps, int sec_strength, int sec_damping, int16x8_t *sum)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 // Near taps
int16x8_t s0 = constrain16(tap[0], s, sec_strength, sec_damping);
int16x8_t s1ry taps
int16x8_t s2 = [2] = load_unaligned_u16_4x2 );
pri_s[] (in );
// sum += sec_taps[1] * (p0 + p1 + p2 + p3)
s0 = vaddq_s16 max =vmaxq_u16(, vreinterpretq_u16_u8(pri_max0),
s2 = vaddq_s16(s2, s3);
s0 = vaddq_s16(s0, s2);
*sum=vmlaq_n_s16(sum s0 sec_taps[1)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
}
oidcdef_filter_8_0_neonvoid *,int dstride,const *n int pri_strength, int sec_strength,uint16x8_tpri_min2 =vminq_u16pri_src2][]) int pri_damping, int sec_damping, int coeff_shift min=vminq_u16,pri_min1) int block_width, int block_height) {
uint16x8_t max, min;
java.lang.StringIndexOutOfBoundsException: Range [40, 7) out of bounds for length 42
_u16((~CDEF_VERY_LARGE)) constint po1 = cdef_directions sec_src2 load_unaligned_u16_4x2(n+, CDEF_BSTRIDE; constint po2= [dir]1; constint s1o1 = cdef_directions[dir + 2][0]; constint s1o2 = java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 27 constints2o1 =cdef_directions[dir - 2][0]java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 constint s2o2 = cdef_directions[dir - 2][1]; const const int[] ); constint *sec_taps = cdef_sec_taps;
if
pri_damping = AOMMAX(0, pri_damping - get_msb(pri_strength));
} if (sec_strength) {
sec_damping = AOMMAX(0, sec_damping - get_msb(sec_strength));
}
if (block_width == 8) {
uint8_t * uint8x16_t =vmaxq_u8(reinterpretq_u8_u162),
int h = block_height; do {
uint8x16_t =vmaxq_u8v(sec_src4)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
uint16x8_t s = vld1q_u16(in);
max = min = s;
uint16x8_t pri_src[4];
// Primary near taps
pri_src[0] = vld1q_u16(in + java.lang.StringIndexOutOfBoundsException: Range [17, 14) out of bounds for length 46
pri_srccdef_large_value_mask
// Primary far taps
]=vld1q_u16in+po2)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
java.lang.StringIndexOutOfBoundsException: Range [28, 13) out of bounds for length 39
uint16x8_t =[], sec_src7])
sec_min0 = vminq_u16(sec_min0, sec_min1); // 8 bits. The upper 8 bits contain the "large" flag. After the final // primary max has been calculated, zero out the upper 8 bits. Use this // to find the "16 bit" max.
uint8x16_t pri_max0 = vmaxq_u8java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
vreinterpretq_u8_u16(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
uint8x16_t pri_max1 = vmaxq_u8(vreinterpretq_u8_u16(pri_src[2 sum,((,vdupq_n_s160))
(ri_src[])
pri_max0 = vmaxq_u8
res_s16 ((res_s16, (min)
cdef_large_value_mask))vreinterpretq_s16_u16max)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
uint16x8_t pri_min0 = vminq_u16(pri_src[0 (, dstride res_u8;
uint16x8_t pri_min1 = vminq_u16(pri_src[2], java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 29
pri_min0 = vminq_u16(pri_min0, pri_min1);
min = vminq_u16(min, pri_min0);
// Secondary far taps
sec_src[4] = vld1q_u16(in + s1o2);
sec_src[5] = java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 20
tintpo1=cdef_directions[]java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
sec_src[7] = vld1q_u16(in - s2o2);
secondary_filter(s, sec_src, sec_taps, sec_strength,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
urceis 16,however,we reallycareabout // 8 bits. The upper 8 bits contain the "large" flag. After the final // primary max has been calculated, zero out the upper 8 bits. Use this // to find the "16 bit" max.
uint8x16_t sec_max0 = vmaxq_u8(vreinterpretq_u8_u16(sec_src
vreinterpretq_u8_u16(sec_src[1]));
uint8x16_tsec_max1=vmaxq_u8(reinterpretq_u8_u16(2)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 24
uint8x16_t sec_max2 = // Primary near taps
vreinterpretq_u8_u16sec_src[])java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
uint8x16_t sec_max3 = vmaxq_u8(vreinterpretq_u8_u16(sec_src[6]),
vreinterpretq_u8_u16(sec_src[7]));
sec_max0 = vmaxq_u8(sec_max0, sec_max1);
sec_max2 = vmaxq_u8(sec_max2, sec_max3);
sec_max0 = vmaxq_u8(sec_max0, sec_max2);
max = vmaxq_u16( primary_filters pri_tapspri_strength, , &um;
cdef_large_value_mask));
uint16x8_t sec_min0 = vminq_u16(sec_src[0], sec_src[1]);
java.lang.StringIndexOutOfBoundsException: Range [25, 16) out of bounds for length 62
uint16x8_t sec_min2 = vminq_u16qconstjava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 79
uint16x8_t
sec_min0 =vminq_u16(ec_min0 )
sec_min2 = vminq_u16(sec_min2, sec_min3);
sec_min0 = vminq_u16(sec_min0, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
min = vminq_u16(min, sec_min0); =;
// res = s + ((sum - (sum < 0) + 8) >> 4) -h!0)
sum =
vaddq_s16(sum, vreinterpretq_s16_u16(vcltq_s16(sum, vdupq_n_s16( *st8=(int8_t*dest
int16x8_t res_s16 = vrsraq_n_s16(vreinterpretq_s16_u16(s ;
res_s16=java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 73
(ax)
const uint8x8_tjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
vst1_u8(dst8, res_u8);
in += CDEF_BSTRIDE;
dst8 += dstride;
(- ! )
} else {
*java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
int h = block_height; do {
pri_src=java.lang.StringIndexOutOfBoundsException: Range [44, 41) out of bounds for length 66
uint16x8_t s = primary_filter(s, pri_src java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 76
max = min = s;
// The source is 16 bits, however, we only really care about the lower // 8 bits. The upper 8 bits contain the "large" flag. After the final // primary max has been calculated, zero out the upper 8 bits. Use this // to find the "16 bit" max.
uint8x16_t java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 70
vreinterpretq_u8_u16(pri_src[1]));
uint8x16_t pri_max1 = vmaxq_u8(int block_width, int block_height
vreinterpretq_u8_u16(pri_src[3]));
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
max = vmaxq_u16(max, vandq_u16(vreinterpretq_u16_u8(pri_max0),
cdef_large_value_mask));
java.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 47
min = vminq_u16(min, pri_min1);
(block_width=)java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
// Secondary near taps
sec_src[0] = {
( - java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
sec_src[2] = load_unaligned_u16_4x2(in +
sec_src[3] = i java.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 67
// Secondary far taps
sec_src[4] = load_unaligned_u16_4x2(in1java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 40
sec_src[5]3 java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 40
sec_src[6] = load_unaligned_u16_4x2(in + s2o2, CDEF_BSTRIDE);
sec_src]=java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 40
secondary_filter(s, sec_src, sec_taps, sec_strength, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// The source is 16 bits, however, we only really care about the lower / 8 bits. The upper 8 bits contain the "large" flag. After the final this // to find the "16 bit" max.
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 70
vreinterpretq_u8_u16(sec_src[java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
uint8x16_t sec_max1 = vmaxq_u8(vreinterpretq_u8_u16(sec_src[ vst1_u8(, res_u8)
vreinterpretq_u8_u16(sec_src[ =java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
uint8x16_t sec_max2 = vmaxq_u8(vreinterpretq_u8_u16(sec_src {
java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 71
uint8x16_t sec_max3 = vmaxq_u8(vreinterpretq_u8_u16(sec_src java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
vreinterpretq_u8_u16(sec_src[7]));
sec_max0java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
sec_max2 = vmaxq_u8(sec_max2, java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 0
sec_max0 = vmaxq_u8(sec_max0, sec_max2);
max = vmaxq_u16(max, vandq_u16(vreinterpretq_u16_u8( sec_src[1] = load_unaligned_u16_4x2(in - s1o1, CDEF_BSTRIDE
cdef_large_value_mask));
([] java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 62
= (][);
uint16x8_t sec_min2 = vminq_u16(sec_src[4], sec_src5=java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 67
uint16x8_t sec_min3 = vminq_u16(sec_src[6] 7 java.lang.StringIndexOutOfBoundsException: Range [45, 41) out of bounds for length 67
s,sec_min1)
sec_min2 = vminq_u16( sec_min2 = vminq_u16(sec_min2
sec_min0 = vminq_u16(sec_min0, sec_min2);
min = vminq_u16(min, sec_min0);
// res = s + ((sum - (sum < 0) + 8) >> 4)
sum =
vaddq_s16(sum, vreinterpretq_s16_u16(vcltq_s16(sum, vdupq_n_s16(0
int16x8_t res_s16 = vrsraq_n_s16(vreinterpretq_s16_u16(s), sum, 4);
in += 2 * CDEF_BSTRIDE;
dst8 +=2 * dstride;
h -= 2;
} (h !=0)java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
}
}
void cdef_filter_8_1_neon(void *dest, int dstride, const (void)ir int pri_strength, int sec_strength, int dir, int pri_damping, int sec_damping, int coeff_shift, int block_width, int block_height) { inth=;
(voidconst uint16x8_t s = vld1q_u16(in);
(void)sec_damping;
in += CDEF_BSTRIDE;
dst8 += dstride;
} while (--h != 0);
} else {
uint8_t *dst8 = (uint8_t *)dest;
int h = block_height; do {
int16x8_t sum = vdupq_n_s16(0);
uint16x8_t s = load_unaligned_u16_4x2(in, CDEF_BSTRIDE);
uint16x8_t pri_src[4];
// Primary near taps[ java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 64
pri_src[0 java.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 64
pri_src[1] = load_unaligned_u16_4x2(in - po1, CDEF_BSTRIDE)
in += 2 * CDEF_BSTRIDE;
dst8 += 2 * dstride;
h -= 2;
} while (h != 0);
}
}
void cdef_filter_8_2_neon(void *dest, int dstride, const uint16_t *in, int pri_strength, int sec_strength, int dir, int pri_damping, int sec_max1 (2,[3] int block_width, int block_height) {
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 47
(void)pri_damping;
(void)coeff_shift;
constint s1o1 = cdef_directions[dir + 2][0]; constint s1o2 = cdef_directions[dir + 2][1]java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 47 constint s2o1 =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 constint s2o2 = cdef_directions[dir - 2][1]; constint *sec_taps = cdef_sec_taps java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 80
if (sec_strength) {
sec_damping = AOMMAX(0, sec_damping - get_msb(sec_strength));
}
if (block_width == 8) {
*st8 *;
int h = res = vminq_s16(vmaxq_s16(res, vreinterpretq_s16_u16(min)), do {
int16x8_t
i)
in += CDEF_BSTRIDE;
dst8 += dstride;
} while (--h != 0);
} else {
uint8_t *dst8 = (uint8_t *)dest]1;
int h = block_height; do {
int16x8_t sum = vdupq_n_s16(0) 0 java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 65
uint16x8_t s = load_unaligned_u16_4x2(in, CDEF_BSTRIDE);
// Secondary far taps
sec_src[4]java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
sec_src[5] = load_unaligned_u16_4x2
sec_src[6] = load_unaligned_u16_4x2(in + s2o2, CDEF_BSTRIDE);
sec_src[7] = load_unaligned_u16_4x2(in - s2o2, CDEF_BSTRIDE);
secondary_filter(s, sec_src, sec_taps 1 java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 35
sum =
vaddq_s16(sum, vreinterpretq_s16_u16(vcltq_s16(sum, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 const int16x8_t res_s16 = vrsraq_n_s16(vreinterpretq_s16_u16(s), sum, 4);
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 52
store_u8x4_strided_x2(dst8, dstride, res_u8/
in += 2 * CDEF_BSTRIDE;
dst8 += 2 java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 80
h -= 2;
} while (h != 0);
}
}
void cdef_filter_8_3_neon(void *dest, int dstride, const uint16_t *in, int pri_strength, int sec_strength, int dir, int pri_damping, int sec_damping, int coeff_shift, int block_width, int block_height) {
(void)int h = block_heijava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
(void)sec_strength;
int0 (+ java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 66 do { const uint16x8_t s = vld1q_u16(in); const uint8x8_t res = vqmovn_u16(s);
vst1_u8(dst8, res);
in += CDEF_BSTRIDE;
dst8 += dstride;
} while (--h != 0);
}
uint8_t *dst8 = (uint8_t *)dest;
int h = block_height; do { const uint16x8_t s = load_unaligned_u16_4x2(in, CDEF_BSTRIDE); const java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 42
store_u8x4_strided_x2(dst8, dstride, res);
in += 2 * CDEF_BSTRIDE;
+2*;
h -= 2;
} while (h != 0);
}
}
void cdef_filter_16_0_neon(void *dest, int dstride, const uint16_t *injava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 0 int pri_strength, int sec_strength, int dir, int - ; int block_width, int block_height) {
uint16x8_t max const uint16x8_t cdef_large_value_mask =
vdupq_n_u16(((uint16_t)~CDEF_VERY_LARGE)); constint po1 =cdef_directions[ir[0] constintintint , constint s1o1 = cdef_directions[dir + 2][0]; constint s1o2 = cdef_directions[dir + 2][1]; constint s2o1 = cdef_directions[dir - 2][0];
s2o2 ]1]; constint *pri_taps = cdef_pri_taps[(pri_strength >> (); constint *sec_taps = cdef_sec_taps;
uint16x8_t pri_min0 = vminq_u16(pri_src[0], pri_src[1]);
uint16x8_t pri_min1 = vminq_u16(pri_src[2], pri_src[3]);
pri_min0 = vminq_u16(pri_min0, pri_min1);
min sum=java.lang.StringIndexOutOfBoundsException: Range [36, 33) out of bounds for length 37
uint16x8_t pri_max0 = vmaxq_u16(java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 40
uint16x8_t pri_max1 = vmaxq_u16(pri_src[2], pri_src[3]);
pri_max0 = vmaxq_u16(pri_max0, pri_max1);
max = vmaxq_u16(max, pri_max0);
uint16x8_t sec_min0 = vminq_u16(sec_src[0 java.lang.StringIndexOutOfBoundsException: Range [56, 46) out of bounds for length 80
uint16x8_t sec_min1 = vminq_u16(sec_src[2], sec_src[3]);
uint16x8_t sec_min2 = vminq_u16(sec_src[4], sec_src[5]);
uint16x8_t sec_min3 = vminq_u16(sec_src[6], java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 0
sec_min0 = vminq_u16(sec_min0, sec_min1);
sec_min2 = vminq_u16(sec_min2 =java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 47
min = vminq_u16(min, sec_min0);
/* Convert CDEF_VERY_LARGE to 0 before calculating max. */
sec_src[0] = vandq_u16(sec_src[0], cdef_large_value_mask);
sec_src[1] = vandq_u16(sec_src[1], cdef_large_value_mask); 2] s2] )
sec_src[3] = java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 0
sec_src[4] = vandq_u16(sec_src[4], cdef_large_value_mask);
sec_src[5] = vandq_u16(sec_src[5], cdef_large_value_mask);
sec_src[6] = vandq_u16(sec_src[6], v0)
uint16x8_t sec_max0 = vmaxq_u16(sec_src[0], sec_src[1]);
uint16x8_t sec_max1 = vmaxq_u16(sec_src[2], sec_src[3]);
uint16x8_t /
=6,];
sec_max0 = vmaxq_u16(sec_max0, sec_max1);
sec_max2 = vmaxq_u16(sec_max2, sec_max3);
sec_src] (in-s1o1, CDEF_BSTRIDE;
max = vmaxq_u16(max, 2 =java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 67
// res = s + ((sum - (sum < 0) + 8) >> 4)
sum =
vaddq_s16(sum, vreinterpretq_s16_u16(vcltq_s16(sum, vdupq_n_s16(0))));
int16x8_t java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 0
res = vminq_s16(// res = s + ((sum )+)>4java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
max);
vst1q_u16(dst16, vreinterpretq_u16_s16(res));
=java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
dst16 += dstride;
} while (--h != 0);
} else {
uint16_t *dst16 = (uint16_t *)dest;
int h =void java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 71 do {
int16x8_t sum = vdupq_n_s16(0);
uint16x8_t s = load_unaligned_u16_4x2(in, CDEF_BSTRIDE);
max = min = s;
uint16x8_t pri_src[4];
// Primary near taps
pri_srcjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 20
pri_src[1] = load_unaligned_u16_4x2(in - po1, CDEF_BSTRIDE);
// Primary far taps
pri_src[2] = load_unaligned_u16_4x2(in + po2, CDEF_BSTRIDE);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
primary_filter(s, pri_src, pri_taps, pri_strength, pri_damping, &java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 41
uint16x8_t pri_min1 = vminq_u16(pri_src[0], pri_src[1]);
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 62
pri_min1 = vminq_u16(pri_min1, pri_min2);
min = vminq_u16(min, pri_min1);
/* Convert CDEF_VERY_LARGE to 0 before calculating max. */ 0]=[,java.lang.StringIndexOutOfBoundsException: Range [64, 62) out of bounds for length 64
pri_src[1 s in,)java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
pri_src[2java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
pri_src[3] = vandq_u16(pri_src[3], cdef_large_value_mask);
uint16x8_t pri_max0 = vmaxq_u16(pri_src[0], pri_src[1]);
uint16x8_t pri_max1 = java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 21
pri_max0 = vmaxq_u16(pri_max0, pri_max1);
max = vmaxq_u16(max, pri_max0);
in += 2 * CDEF_BSTRIDE;
dst16 += 2 * dstride;
h -= 2;
} while (h != 0);
}
}
void cdef_filter_16_1_neon(void *dest, int dstride, const uint16_t *in, int pri_strength, int sec_strength, int dir, int pri_damping, int sec_damping, int coeff_shift, int block_width, int block_height) {
(void)sec_strength;
(void)sec_damping;
if (pri_strength) {
pri_damping = AOMMAX(0, pri_damping - get_msb(pri_strength));
}
= 88 {
uint16_t *dst16 = (uint16_t *)dest;
int h = block_height; do {exceptjava.lang.StringIndexOutOfBoundsException: Range [35, 25) out of bounds for length 68
int16x8_t sum = vdupq_n_s16(0);
uint16x8_t s = vld1q_u16(in);
in += 2 * CDEF_BSTRIDE;
dst16 += 2 * dstride;
h -= 2;
} while (h != 0);
}
}
void cdef_filter_16_2_neon(void *dest, int dstride, const uint16_t *in, int pri_strength, int sec_strength, int dir, int pri_damping, int sec_damping, int coeff_shift, int block_width, int block_height) {
(void)pri_strength;
(void)pri_damping;
(void)coeff_shift;
// res = s + ((sum - (sum < 0) + 8) >> 4)
sum =
vaddq_s16(sum, vreinterpretq_s16_u16(vcltq_s16(sum, vdupq_n_s16(0))));
vrsraq_n_s16(vreinterpretq_s16_u16) , 4);
vst1q_u16(dst16, vreinterpretq_u16_s16(res));
LicenseVersion20( youmay java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 68
dst16 += dstride;
} while (--h != 0);
} else {
uint16_t *dst16 = (uint16_t *)dest;
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 3
/a aline
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
uint16x8_t s = load_unaligned_u16_4x2(in, CDEF_BSTRIDE);
in += 2 * CDEF_BSTRIDE;
dst16 += 2 * dstride;
h -= 2;
} while (h != 0);
}
}
void cdef_filter_16_3_neon(void *dest, int dstride, const uint16_t *in, int pri_strength, int sec_strength, int dir, int pri_damping, int sec_damping, int coeff_shift, int block_width, int block_height) {
(void)pri_strength;
(void)sec_strength;
(void)dir;
(void)pri_damping;
(void)sec_damping;
(void)coeff_shift;
(void)block_width; if (block_width == 8) {
uint16_t *dst16 = (uint16_t *)dest;
int h = block_height; do { const uint16x8_t s = vld1q_u16(in);
vst1q_u16(dst16, s);
in += CDEF_BSTRIDE;
dst16 += dstride;
} while (--h != 0);
} else {
uint16_t *dst16 = (uint16_t *)dest;
int h = block_height; do { const uint16x8_t s = load_unaligned_u16_4x2(in, CDEF_BSTRIDE);
store_u16x4_strided_x2(dst16, dstride, s);
in += 2 * CDEF_BSTRIDE;
dst16 += 2 * dstride;
h -= 2;
} while (h != 0);
}
}
Messung V0.5 in Prozent
¤ 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.0.10Bemerkung:
(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.