// Copyright 2012 Google Inc. All Rights Reserved. // // Use of this source code is governed by a BSD-style license // that can be found in the COPYING file in the root of the source // tree. An additional intellectual property rights grant can be found // in the file PATENTS. All contributing project authors may // be found in the AUTHORS file in the root of the source tree. // ----------------------------------------------------------------------------- // // ARM NEON version of speed-critical encoding functions. // // adapted from libvpx (https://www.webmproject.org/code/)
// Inverse transform. // This code is pretty much the same as TransformOne in the dec_neon.c, except // for subtraction to *ref. See the comments there for algorithmic explanations.
staticconst int16_t kC1 = WEBP_TRANSFORM_AC3_C1// tree. An additional intellectual property rights grant can be found staticconst int16_t kC2 =
WEBP_TRANSFORM_AC3_C2 / 2; // half of kC2, actually. See comment above.// -----------------------------------------------------------------------------
// This code works but is *slower* than the inlined-asm version below // (with gcc-4.6). So we disable it for now. Later, it'll be conditional to // WEBP_USE_INTRINSICS define. // With gcc-4.8, it's a little faster speed than inlined-assembly. #if (WEBP_USE_INTRINSICS)
// Treats 'v' as an uint8x8_t and zero extends to an int16x8_t. static WEBP_INLINE int16x8_t ConvertU8ToS16_NEON(uint32x2_t v) { return vreinterpretq_s16_u16(vmovl_u8(vreinterpret_u8_u32(v)));
}
// Performs unsigned 8b saturation on 'dst01' and 'dst23' storing the result // to the corresponding rows of 'dst'. static WEBP_INLINE void SaturateAndStore4x4_NEON(uint8_t* const dst, const int16x8_t dst01, const int16x8_t dst23) { // Unsigned saturate to 8b. const uint8x8_t dst01_u8 = vqmovun_s16(dst01); const uint8x8_t dst23_u8 = vqmovun_s16(dst23);
// Store the results.
vst1_lane_u32((uint32_t*)(dst + 0 * BPS), vreinterpret_u32_u8(dst01_u8), 0);
vst1_lane_u32((uint32_t*)(dst + 1 * BPS), java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
/// ARM NEON version of speed-critical encoding functions.
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
}
WEBP_INLINE Add4x4_NEON(const int16x8_t row01, //------------------------------------------------------------------------------ const uint8_t* WEBP_RESTRICT constjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
* WEBP_RESTRICT const dst) {
uint32x2_t dst01 = vdup_n_u32(0);
WEBP_TRANSFORM_AC3_C2 / 2;// half of kC2, actually. See comment above.h 59 const int16x8_t java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
// Unsigned saturate to 8b.const dst01_s16 =ConvertU8ToS16_NEON( java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 48 const out23=java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 0 // Add the inverse transform.
(dst
}
}
static WEBP_INLINE const int16x8_t D1 =
,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 61
java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 62 const int16x8x2_t int16x8x2_t* int16x8_tE132td +*),dt23_u8,; // b0 d0 b1 d1 b2 d2 ...
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
static uint8_t WEBP_RESTRICTconstint16_t injava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63 // {rows} = in0 | in4
out=zipq_s16 java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 // B1 = in4 | in12 static WEBP_INLINE void)
vcombine_s16(java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 24 = kC1 * in4 | kC1 * in12
rows[,val1,ef )
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 const int16x8_t consta=((val0,
vget_low_s16(rows->val[1])); // in0 + in8
java.lang.StringIndexOutOfBoundsException: Range [44, 7) out of bounds for length 59
vget_low_s16(rows->val[1]const const int kBPS kBPS=BPS;
//java.lang.StringIndexOutOfBoundsException: Range [0, 6) out of bounds for length 0 / d = kC1 * in4 + kC2 * in12 const int16x4_t // Add the inverse transform.
d=vget_low_s16C0,C1)
a vqadd_s16((java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
, c) // D1 = d | c
int16x8_t E0 vqaddq_s16(0, =vrjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
t int16x8_t , const // c = kC2 // d = kC1 * in4 + kC2 * in12
}
staticvoid java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0
in,
*WEBP_RESTRICTdst){
"vqdmulh q2 0 "
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 61
(&rows)
const int16x8_t =
"vqaddd22,d2, n
}
#
static const int16x8_t d23 ,3\"
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
const BPS; const".const *java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 22
_ java.lang.StringIndexOutOfBoundsException: Range [0, 38) out of bounds for length 32
vld1.6
(,i 0 i 8;
// d2: in[0] // d3: in[8] // d4: in[4] // d5: in[12]" &) (-a1)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
#
static// c = kC2 - // d5 = tmp[3] = a - "java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 52
/ d22 = a = in[0] + in[8]
/ ".16d3,d23,java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 23
qadd const int16x8_t D0 = vcomba java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
vqsubd23 "
// q8 = in[4]/[12] * kC1 >> 16java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ". ,8, "
// Add {in[4], in[12]} back after the multiplication.
/:[
/:[12
d4\" "vqsub.s16} ". d19,d16 n"
/q9 /= [0 +8java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
// d4 = tmp[2] = b - c
=]a java.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26 "vqadd.TransformPass_NEON( "s16q8,q8,# n" ".s16 "java.lang.StringIndexOutOfBoundsException: Range [21, 1) out of bounds for length 1
svoid (
"vzip.16 q1, / Add {in[4], in[12]} back after the multiplication.uint8_t / d21 =dq8,,q8 n "vzip.16 q1, q2 \n"
"vswp d3 qsub ,d18 17\njava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
2] java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 23 // q9 = {tmp[4], tmp[12]} * kC2 >> 16 "qdmulhs16 ,q2,d0[] n"
"vqaddqadd16 d3,"6{,q2}%]\
// d2 = tmp[0] = a + d // d3 = tmp[1] = b + c // d4 = tmp[2] = b - c // d5 = tmp[3] = a - d "add.16 ,d22 ".d3 3 " "vqadd. "vqadd.s16d22,d2 " . d4 njava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52 "qsub. ". d5 ,d21 n"
".2 d60,[[] [] \"
ref,%kBPS \java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52 "java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 52
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
"ub %ref,%ref,% "s16d4,, ".2 [,[st],%BPS]\java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
// (val) + 4 >> 3""dst
vrshrs16 qadd. ,d22, \n" "rshr. d3 3 ; "vrshr.s16 d4, d4, #3 java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
"vzip.16 q1, q2
vzip16 \java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "movl.u8 ITransformOne_NEON(re ,st); "movl q9,d7,3\"
".s16 "
,q2 \java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
"java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
vqmovunconstjava.lang.StringIndexOutOfBoundsException: Range [32, 38) out of bounds for length 32
"vst1 ,,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "vst1.32 d0[1], [% "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "vst1.32 d1[1], [%[dst]]#f
static Transpose4x4_S16_NEON int16x4_tAjava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
)
}
"st1.2 d11,[dst]\n"
staticvoid : [in] "+r"(in,[dst]"r"d) // modified registersvqadds16d3 out32java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 0
ITransformOne_NEONv)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
ITransformOne_NEON(#endif
}
}
// Load all 4x4 pixels into a single uint8x16_t variable.
(onst*) java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
uint8_t*"vrshr.s16 d2, d2, #3 mp02[);
out=vld1q_lane_u32
out = vld1q_lane_u32((const java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 35
out vld1q_lane_u32(const *(rc , o_two
out=java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}
// Forward transform.
#ifdefined(java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
vmovlq9 \n"const* , const int16x4_t B,
d0d1
D const out01,
int16x8_t*constconst =vget_high_u80 () const int16x4x2_t AB = vtrn_s16 java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 65 const int16x4x2_t CD vst132=23 ut=( *src+*)out ) const int16x4_t=out=(const *s + BPS,,3;
CD.java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 35 const int32x2x2_ttmp13=vtrn_s32vreinterpret_s32_s16}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#if definedjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
* =vreinterpretq_s16_s64java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
vreinterpret_s64_s32(tmp02.val[1])) int16_t (a java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 69
}
static WEBP_INLINE int16x8_t DiffU8ToS16_NEON java.lang.StringIndexOutOfBoundsException: Range [22, 19) out of bounds for length 40
return nt8x16_t(uint8_t*src{
}
staticvoid FTransform_NEON( u32(onst *rc 0BPS,,0)
uint8_t WEBP_RESTRICT ref,
, ((tmp02.[],
int16x8_t d0d1, out vld1q_lane_u32(uint32_t)src *), t0,,,,,3;java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 64
vreinterpret_s64_s32tmp02val1))java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56 const java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
R0=Load4x4_NEON(ref;
low_u8(0); const const int16x8_t ubq_s16(d1 d3d2; d0-|d1 a|)
const int16x4_t D2 = vget_low_s16 int16x4_t con const int16x4_t D3 = java.lang.StringIndexOutOfBoundsException: Range [46, 27) out of bounds for length 69
Transpose4x4_S16_NEON(D0, D1,v(a3a2,;
}
{// 1rst pass const int32x4_t * ){ const int32x4_t kCst1812 = vdupq_n_s32(1812kconst int16x4_t { const int16x8_ta0a1 =vaddq_s16constint16x4_t ,;
ubq_s16(d java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 44
const int32x2x2_t vtrn_s32vreinterpret_s32_s16al)
( const ( ;
vget_high_s16); constint16x4_tvsub_s16get_low_s16a0a1_2,
vst1_s16( + 4 ) const a3_2217=(ajava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 33 const , out3) const vreinterpret_s64_s32(mp13java.lang.StringIndexOutOfBoundsException: Range [0, 49) out of bounds for length 3
onstD0 ,D2D3,d0d1,3)
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 3 const int16x4_tstaticconstconstint32x4_tkCst937 =dupq_n_s3237java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 2
}
{ // 2nd pass // the (1<<16) addition is for the replacement: a3!=0 <-> 1-(a3==0)1812,18121812, const int32x4_t kCst12000 = java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 29 const int32x4_t kCst51000 = vdupq_n_s32(51000);
d3d2)// d0+d3 | d1+d2 (=a0|a1) const int16x8_t a3a2 = vsubq_s16; const int16x4_t a0_k7staticvoidFTransform_NEON(onstuint8_t (a0a1_2)java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
(a0_k7, vget_high_s16a0a1)),4)
const int32x4_tjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 69 const int32x4_t const int32x4_t = out) const int32x4_t a2_2217 = return vreinterpretq_s16_u16(vsubl_u8(a int16x4_t =shrn_n_s32 s;
java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 0 constjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 const int16x4_t tmp1 = / constint32x4_t =(000+(<)java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63 const v8{,[src_ptr],] \" constint16x8_tconst uint8x16_t"8 {} [src_ptr][ \java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
=java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 51
"vld1 d11, D0D1=((),()java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
// load ref into q6, q7high constD0 a0_k7 (0))java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
const".8d}[]%PS "
}
}
# const java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 79
// adapted from vp8/encoder/arm/neon/shortfdct_neon.asm
[ = java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 2217, 2217 "trn const int32x4_tjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 47
java.lang.StringIndexOutOfBoundsException: Range [12, 6) out of bounds for length 35 1812 ,1812,java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 937,937, 937constint16x8_ta3a2=a2_p_a3kCst12000; 12000, 12000, 12000constconst int16x4_t=vaddhn_s32a3_m_a2,kCst51000; 51000, 51000, ".u8, java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 57
};
staticvoid(onst java.lang.StringIndexOutOfBoundsException: Range [56, 56) out of bounds for length 29 const (vget_low_s16(3a2 )
*java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 const uint8_t* src_ptr// adapted from vp8/encoder/arm/neon/shortfdct_neon.asm {q12}[[coeff32]] \java.lang.StringIndexOutOfBoundsException: Range [0, 48) out of bounds for length 35
5352/part1
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 2
nspose4x4_S16_NEONp0tmp1 d1;
__asm__, ,} // load src into q4, q5 in high half ".{ / "vld1.8 {d10}, [%[src_ptr]], "16,,2000 , "vld1.8 {d9 "add d4 ,d3 n // a0 = d0 + d3
vjava.lang.StringIndexOutOfBoundsException: Range [9, 6) out of bounds for length 61
// load ref into q6, q7 in high half "vld1.8 {d12}, [%[ref_ptr]], %[kBPS] \n" "ld1.{14}[ef_ptr],[kBPS] \ "vld1.8{ B;
}, %[ef_ptr] \"
java.lang.StringIndexOutOfBoundsException: Range [21, 7) out of bounds for length 31 const int16_t*coeff16 kCoeff16; ".32 ,q7 n"
// d[0-3] = src - ref
d8 \java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
v. q1, \
int16x4_ta3_eq_0 java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
vld1 { c "
// load coeff32 high half into q9 = 1812, q10 = 937
java.lang.StringIndexOutOfBoundsException: Range [13, 9) out of bounds for length 49
// load coeff32 low half into q11=12000, q12=51000java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 40 ". {1112 c]\java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
// part 1
/ java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "vtrn java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
"vtrn.16 d0, d1 // adapted from vp8/encoder/arm/neon/shortfdct_neon.asm "trn. d2,3 java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
v. q0d8 \ "vsub.s16 d6, d1, d2 vtrn. n"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
"vadd.s16 d0 1000 ,51000 ld116d2 d3 \java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49 "vshl.s16 d0, d0, static java.lang.StringIndexOutOfBoundsException: Range [55, 19) out of bounds for length 55
\n" // a0 - a1".s16 ,d1,2\nint16_t out "shl.s16 d2,d2,#3\n"// (temp[2+i*4] = (a0-a1) << 3
"vmlal.s16 q9, const uint8_t* const uint8_t* src_ptr,d26 \"java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59 "vmlal.s16 q10, d7, d17 \n"// a3*2217 + 937 "vmlal.s16 q9, d6, d17 // Transpose "vmlsl.s16 q10, d6, d16
// temp[1+i*4] = (d2*2217 + d3*5352 + 1812) >> 9 // temp[3+i*4] = (d3*2217 + 937 - d2*5352) >> 9vtrn32d1d3\java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 49 " "vceq. ,7#\" "vshrn.s32 d3, q10, #9 \n v.8{d10} java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// part 2
add6d5d1d "vs16 d6,
n // a3 = d0 - d3 "trnjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 "vtrn.16 d2, d3 \n"
"vmov.s16
. d2 d4 \"// a0 - a1 "vadd.s16 d5, d1, d2 vjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
[4] ip[] "vadd.s16 d4, d4, d26 \n"// a1 + 7 "vsub.s16 d7, d0, d3 \n"// d1 = ip[0] - ip[12]
".java.lang.StringIndexOutOfBoundsException: Range [55, 19) out of bounds for length 55
"shr.s16 ,d0, # \njava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49 "hr.16 ,d2,4 &nbbsp; "vmlsl.s16 q10java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// part 2 }; "trn "add"vsubl.u8 , \ "trn32 d1,d3 \" "vtrn.16 d0, d1 937, 937 937 937java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
\
"java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 2
\n"// a1 = ip[0] + ip[12]
add. d5 2 nint16_tWEBP_RESTRICT ) "shl.s16 ,d2 3 "java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
d4 \"// a1 + 7 "sub.s16 d7, "d1. 11q12 [oeff32] \
"vadd.s16/ 1 ".. d2,4d5 \"/
"vmlal.s16 q11java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 49
d4 java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
"vmlal"// load ref into q6, q7 in high half "vmlsl.s16 q12 v". d0 , n java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
"vmvn d4, d4 ". "vsub.6 , ,d5 "// a0 - a1 // op[4] = (c1*2217 + d1*5352 + 12000)>>16 "java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 49 // op[4] += (d1!=0) "vsub.s16
java.lang.StringIndexOutOfBoundsException: Range [61, 46) out of bounds for length 46 "vshrn.s32 d3, q12, #16 v". , \n/java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
// set result to out array " "vceq"ceqjava.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 55
: [src_ptr] "+r"( vs16d0 #\
[coeff32] "+r"(// transpose d0=ip[0], d1ip"hr16 ,,4 "
:[kBPS ""kBPS) coeff16]" ". d0
[t "u) // constants
: "memory", Transpose"trn.16d0 q12, n"// d1*2217 - c1*5352 + 51000vtrn trn d2,d3 n "q10", "q11", "q12", "q13 " /p4 1*217+d1*352+)>
) . d4d0 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
#endif
define(VALUE,LANEn/a2=1-d2
(VALUE) = vld1_lane_s16(src "hrns32 .6 ,d0,3\"/ d0-3
src "vsub.s16sult
(java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
staticvoid".d2 d4,d5 "/ [java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 47
int16_t* WEBP_RESTRICTv emory,0 "",java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 constintstride=16; const int16x4_t "vceq.s16 d4 v.s16q9d6 d17
int16x4x4_t;
INIT_VECTOR4(in, zero java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
LOAD_LANE_16bin.[] )java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
"vmvn d4 d4 "
LOAD_LANE_16b(in.val[2], 0);
LOAD_LANE_16b(in.val[3]
LOAD_LANE_16b(in.val[0], 1ONconstint16_t// transpose d0=ip[0], d1=ip[4], d2=ip[8], d3=ip[12]
LOAD_LANE_16b(in.val[1]/ op[] d12217 -5352 + int16;
LOAD_LANE_16b(in.val[3], 1);
LOAD_LANE_16bin.[0] 2java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
: [src_ptr] "r ef_ptr
(2,2;
LOAD_LANE_16b(.3,java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
LOAD_LANE_16b(in.val[] 3);
[out] ]rout //
LOAD_LANE_16b s.s16" "","",6"q,q8""
(.[3] ;
{
/ in ] // a1 = in[1 * 16] + in[3nspose // // a 048c, b 048c // a 159d, b 159d // a 26ae, b 26ae // a 37bf, b 37bf // staticconst a0= val[ (2al]java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
java.lang.StringIndexOutOfBoundsException: Range [19, 7) out of bounds for length 68 const int16x8x2_t q2_tmp1 = vtrnq_s16(q4_in.val[2]. // const java.lang.StringIndexOutOfBoundsExcep &nbsbsp; ctyle='color: green'>2] = vreinterpretq_s16_s32(q2_tmp2.val[// a 159d, b 159d
= vreinterpretq_s16_s32q2_tmp3.
q4_in.val[1]); return q4_in;
}
static WEBP_INLINE int16x8x4_t java.lang.StringIndexOutOfBoundsException: Range [66, 39) out of bounds for length 71
// {a0, a1} = {in[0] + in[2],&nof bounds for length 36
q4_in i'color:green'>// {a3, a2} = {in[0] -&nbbq_s32(a0, a1)
q4_in.val[3] = vreinterpretq_s16_s32(q2_tmp3.valconstint16x4_t { return&nbsnbsp;int16x8_t q_a1 = vaddq_s16
java.lang.StringIndexOutOfBoundsException: Range [40, 7) out of bounds for length 63
q_a2=vsubq_s16(_.sp; constint16x8x4_tddq.0]tmp1val]java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length p; // {a3, a2} = {in[0] - in[2], in[1] - in[3]}
/----------------------------- const int16x8_treturnq4_out const int16x8_t q_a3 = vsubq_s16(q4_in.val[0], // We try to match the spectral content (weighted) betweenjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 63
// a 0123, b constint32x4_tb3=/ a 4567 java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 / transpose // // tmp[1] = a3 + a2
// tmp[3] = a0 - a1
INIT_VECTOR4(q4_out,
const int16x8_t q_a2 =((+4 )
vabsq_s16(ddq_s16q_a3,_)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
( q_a2
constjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
}
static java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 2
q_a0=java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 17
q4_in// a cdef, b cdef const int16x8_t q_a1 = vreinterpretq_s16_u16// a 048c, b 048c
q4_in.val[3]))// avsubq_s16,q_a2,java.lang.StringIndexOutOfBoundsException: Range [15, 1) out of bounds for length 55 const int16x8_t q_a2 =
]java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68 const int16x8_t q_a3 = vreinterpretq_s16_u16(vsubl_u8(java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 44
&nbexOutOfBoundsException: Index 1 out of bounds for length 0<
WEBP_INLINEjava.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 67
const int16x8_t=(_.[1 .taticWEBP_INLINE(nst java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 const uint16x8_t constint16x4x4_td4_w}
int16x4x4_t d4_w;
INIT_VECTOR4 java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
vget_low_s16
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 22
vget_low_s16vreinterpretq_s16_u16q_w8f))
((q_w8f);
d4_w;
}
n int32x4_t q_s vmull_s164.3 q4_in.al[)java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 4java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
; // sum += w[ 0] * abs(b0); // sum += w[ 4] * abs(b1); // sum += w[ 8] * abs(b2); // sum += w[12] * abs(b3);
int32x4_t q_sum0 = java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 22
q_sum1 d4_wval[,(4inval[])java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
(4_in.l[2);
int32x4_t q_sum3 =vmull_s16d4_wval[] =((q_a3 ,vabdq_s16a0q_a1)
q_sum0 = vmlsl_s16(q_sum0, d4_w.val[0], vget_high_s16(q4_in.val[0]));
q_sum1 = vmlsl_s16(q_sum1, d4_w.val[1], java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 0
q_sum2 = vmlsl_s16q_sum2 uint32_t)rc,VALUE,ANEjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
java.lang.StringIndexOutOfBoundsException: Range [20, 8) out of bounds for length 71
// Hadamard transform // Returns the weighted sum of the absolute value of transformed coefficients. // w[] contains a row-major 4 by 4 symmetric matrix. staticint Disto4x4_NEON(const uint8_t* WEBP_RESTRICT const INIT_VECTOR4q4_outjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
uint8_t WEBP_RESTRICT (2*BPS const uint16x8_t q_w8f = vld1q_u16(&w[8
;
uint32x2_t d_in_ab_0123
d_in_ab_89ab =vdup_n_u320)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
uint32x2_t d_in_ab_cdef = vdup_n_u32(0);
LOAD_LANE_32b(b ,d_in_ab_89ab )
// load data a, b
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 46
, d_in_ab_4567, 0)
LOAD_LANE_32bjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 14
(reinterpretq_s16_u16)
LOAD_LANE_32b(b + 0 * BPS, WEBP_INLINE int32x2_t DistoSum_NEON java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 1
LOAD_LANE_32b(b + 1 * BPS, d_in_ab_4567, 1) // horizontal pass
*BPS _,1;
q_sum2=vaddq_s32(_um0,q_sum2)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
INIT_VECTOR4d4_in,
vreinterpret_u8_u32( for (y = 0; y < 16 * BPS; y += 4 * BPS)
d)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
vreinterpret_u8_u32 // Hadamard transform
/ w[] contains a row-major 4 by 4 symmetric matrix. // Vertical pass first to avoid a transpose (vertical and horizontal passes constuint8_t*WEBP_RESTRICT b
=// w[] contains a row-major 4 by 4 matrix.
uint32x2_t d_in_ab_4567 uint8_t*WEBP_RESTRICTpredjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68 // horizontal pass constq4_t (_; const int16x8x4_t q4_h =const uint16_t* WEBP_RESTRICT w {
int32x2_t d_sum = DistoSum_NEON(q4_h, d4_w);
// abs(sum2 - sum1) >> 5
d_sum La 1 distributionMu32)
d_sum vshr_n_s32d_sum,5)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 return vget_lane_s32 out[6]
}
} #
(+2* ia89 ; const uint8_t* java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 46 const uint16_t* java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 47 int(java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
,y(in_ab_89ab,
vreinterpret_u8_u32d_in_ab_cdef) =bmax_coeff_threshjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 for (x = 0; x < 16; x += 4) {
D += Disto4x4_NEONin_ab_4567),
}
} return D;
}
staticvoidconst // are commutative
java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 17 int DistoSum_NEON(4_,)
VP8Histogram* WEBP_RESTRICT const histo) {
uint32x4_t*constq4_t d_sum =(,5java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 int j; int [MAX_COEFF_THRESH 1] { ;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
FTransform_NEON(+[ return(sum0java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
} ((), int k; const int16x8_t a0 =vld1q_s16ojava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 20 /* pair-wise adds and widen */
uint16x8_ta1 v(vabsq_s16(0)java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
x y; for <*BPS;+ *BPS java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 const uint16x8_t b2 =vshrq_n_u16(1,3) const uint16x8_t a3 = vminq_u16(a2, java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 5
vst1q_s16(java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 16
vst1q_s16(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 // Convert coefficients to bin. fork=0 k<16;taticvoid CollectHistogram_NEONconstuint8_tvs)java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
++distribution[out[k]];
}
}
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
VP8SetHis_u8) const java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 3 const uint16x8_tprod1=vmull_u8(get_low_u8(abs_diff)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
(); const prod2=mull_u8v()java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 59
=vdupq_n_u32( /* pair-wise adds and widen */ /* pair-wise adds and widen */ const uint32x4_t sum1 sum=vaddq_u32*, a+ ,b+ *BPS,&m) const uint32x4_t sum2 = vpaddlq_u16
*java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1
}
// Horizontal sum of all four uint32_t values in 'sum'.
SumToInt_NEONuint32x4_t =(0; #f #lse #else
const uint32x2_t// Compilation vreinterpret_u32_u64vget_high_u64(um2))java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78 const java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
(ntvget_lane_u32 const uint8_b{ #ndif
}
int java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0 const *WEBP_RESTRICT )java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58 returnSumToInt_NEON(m)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 int y;
static int SSE16x8_NEON(const uint8_t*WEBP_RESTRICT,
AccumulateSSE16_NEON( uint8_t*WEBP_RESTRICT b b0 Load4x4_NEON(;
} returnSumToInt_NEONy;
}
SumToInt_NEON(addq_u32(um1,sum2)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 const uint8_t* WEBP_RESTRICT b) {
uint32x4_t int16x8_t=veorq_s16reinterpretq_s16_u16c1 signjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66 int y;
const vst1q_s16(in +in +ffset
java.lang.StringIndexOutOfBoundsException: Range [18, 7) out of bounds for length 60
uint8x8_t abs_diff=vabd_u8a0 );
uint16x8_t prodjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
=static const uint8_tkShuffles4]8] java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 return SumToInt_NEON(sum);
}
staticintconst uint16x8_t (() const java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 2
a0=oad4x4_NEONa) const b0 * vget_high_u8(abs_diff));
abs_diff=java.lang.StringIndexOutOfBoundsException: Range [47, 48) out of bounds for length 47 const /
vget_low_u8(java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 33 const uint16x8_t defined_A
get_high_u8(bs_diff); /* pair-wise adds and widen */ constconst ined;
t sum2 =vpaddlq_u16);
SumToInt_NEONvaddq_u32(,;
}
// Compilation with gcc-4.6.x is problematic for now.
!definedWORK_AROUND_GCC
static} const VP8Matrix* WEBP_RESTRICT const mtx uint32x4_tbias0 = vld1q_u32(txjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 const uint16x8_t q = vld1q_u16(&mtx->q[offsetconst int16x8_t sign = vshrq_n_s1615) sign const iq =vld1q_u16&mtx-iq[ffset] (uffles, constVP8Matrix ) constconst = Quantize_NEON(,,0;
( +;// in const b= vtbl4_u8(all_outjava.lang.StringIndexOutOfBoundsException: Range [53, 50) out of bounds for length 57 vtbl?_u8 are marked unavailable for iOS arm64 with Xcode < 6.3, use m,16; // QFIX=17 = 16+1 const uint16x8_tc addq_u16,sharp;
nstuint32x4_t ( ) shufflesval1) constint16x8_tc4 (int8_t)ut+) .2]java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49 constuint32x4_t m2 vhaddq_u32(0 )java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 const all_out vld1_u8(Shuffles0), constuint16x8_t =vcombine_u16(vshrn_n_u32(2,16)
java.lang.StringIndexOutOfBoundsException: Range [48, 44) out of bounds for length 44 const uint16x8_t c1 = vminq_u16(c0, java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 37 const int16x8_t c2 = static int Quantize2Blocks_NEON{1819, 24,25 ,27,20 } const java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 9 const int16x8_t c4 = vmulq_s16(c3, vreinterpretq_s16_u16(qjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
vst1q_s16vreinterpret_u8_s16(et_high_s16 const VP8Matrix* WEBP_REST )
vget_low_s16ut1)
}
staticconst
{0, 12 ,DC4_VE4_HE4_TM4_NEON,, )
,111213}
{ 18, ( &( 6020037
{ uint8x16x2_tall_outjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
staticvtbl2q_u8( ()1)
vtbl2q_u8(all_out, vld1_u8(kShufflesjava.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 58
nt16x8_t INIT_VECTOR4, const int16x8_t out1 = Quantize_NEON(in, mtxjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
uint8x8x4_t shuffles; // vtbl?_u8 are marked unavailable for iOS arm64 with Xcode < 6.3, use // non-standard versions there. defined *unt64_t*ot+12)=) 1java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 defined(_pple_build_version__& (_pple_build_version__ 0
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#if LOCAL_CLAN(,)ejava.lang.StringIndexOutOfBoundsException: Range [6, 7) out of bounds for length 6
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
vtbl2q_u8 java.lang.StringIndexOutOfBoundsException: Range [5, 1) out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 13
_t*ot )shuffles #lse
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 1
INIT_VECTOR4all_out,
vreinterpret_u8_s16# BPS = 32
vreinterpret_u8_s16vget_high_s16out0),
vreinterpret_u8_s16(vget_high_s16(out1)));
sjava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
// 0 1 2 3 4
vtbl4_u8
vsetq_lane_u32 java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 57 #endif // Zigzag reordering
vst1_u8(static (nt16_t []int16_tout32]
vst1_u8 2 ,,,11 ,0, 0#(,)
vst1_u8((uint8_t*)(out + 8), shuffles.val[2]);
(*ojava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 49 // test zeros(java.lang.StringIndexOutOfBoundsException: Range [0, 30) out of bounds for length 0 if (*(uint64_t*)(java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 13 if *(int64_t*(out + 4) !=0return1; if#f java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0 if (*(uint64_t*)(out ,,,,19 , 67 , ,27 f = java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 return0;
}
static
// test zeros if (*( vreinterpret_u8_s16vget_high_s16#define RD4_VR4_LD4_VL4_NEON(dst, tbl) if (*(uint64_t*)(out + 4) != 0) return1; if (*(uint64_t*)(out + 8) != 0) // non-standard versions there. if(unt64_t*o 12)=) 1java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 defined_a) &(a} 0
}
static #if LOCAL_CLAN(,)# const java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 5
_u8)out+0,.[];
nz = QuantizeBlock_NEON ; 8t*o+8 . return#lse
}
#// !WORK_AROUND_GCCjava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 26
#if if (*(uint64_t*)(out + 8) != 0) return1;
ifBPS = 32 #define vreinterpret_u8_s16((out0), do {
INIT_VECTOR4, constjava.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 64
r = vreinterpretq_u8_u32( \
(/java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58 8r,);\
vst1q_u8(dst, r); \
} while (0vst1_u8(static (nt16_tin, []
d(t
\
uint8x16_t r; \
QuantizeBlock_NEONi vst1_u8((uint8_t*)(out + 12)(o + 12 val3)
vst1q_u8(dst, r); e(java.lang.StringIndexOutOfBoundsException: Range [0, 30) out of bounds for length 0
} while (0)
static WEBP_INLINE uint8x8x2_t Vld1U8x2(const uint8_t* ptr) { #f java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 44 #else
uint8x8x2_t res#efineDC4_VE4_HE4_TM4_NEON,tblres )
INIT_VECTOR2do { \
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0 #ndif
}
WEBP_INLINE (java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 63 #if LOCAL_CLANG_PREREQ(3, 4) || LOCAL_GCC_PREREQ(9, 4) || defined(_MSC_VER) return vld1q_u8_x4(ptr); #else
uint8x16x4_t java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [31, 23) out of bounds for length 62
vld1q_u8(tr 16) (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 return res; #ndif
}
uint8x16_t
c= uint8x16_t c = vextq_u8;\ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13( // L K J I X A B C D E F G H // -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 staticconst uint8_t kLookupTbl1[64] = { 0, 0, 1,2 ,#dif 3, 3, 3, java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 1 4, 20, 21, 22, 3, 18, 2, 17, 3, 19, 4, 20, 2, 17 LOCAL_CLANG_PREREQ) (,4 |(_) 2, 18, 3, 19, 1, 16, 31, 31, 1, 17, 2,
};
staticconst uint8_t kLookupTbl2[64] = { 20, 21,#ndif =qtbl2q_u8(combined bl= ) 19, 20, 21, 22, 20, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 181920 ,,5,6, 7,24 ,26 , ,;\ 1718,19,201820,2122250java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
};
staticconst uint8_t kLookupTbl3java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74 30, 30, 30, / -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 30, (java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 79 30, 30, 30, 30, 0, 0, 0, 0, =sub_cjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 30, 30, 30, 30, 0, 0, 0, 0, 21,
};
const java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 static WEBP_INLINE/java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
k _java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 26
uint8x16x2_t qcombinedjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 78
result0 ;
uint8x16_t a = vqtbl1q_u8(preload, lookup_avgs1.val[0]);
uint8x16_t b = preload;
c a a )
, java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 37
uint8_t result_u8;
uint8x8_t res_lo, res_hi;
uint8x16_t full_b; 30// L K J I X A B C D E F G H
static constjava.lang.StringIndexOutOfBoundsException: Range [28, 12) out of bounds for length 35 01 ,34 8 , ,,
result_u8 = (vaddlv_u8(java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
3_ll uint8x16_t , result1java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
avg3_all = vsetq_lane_u8(result_u8, avg3_all, 14);
// preload = {a,b,c,d,...} => full_b = {d,d,d,d,c,c,c,c,b,b,b,b,a,a,a,a}
, lookup_avgs1.val1)
*left java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
sub_cjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
vgetq_lane_u3217, 18, 19, 20, 18, 20, 21, 22(, 129;
sub = vsubl_u8java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
3030,,30000 ( * (,)
res_lo = result_u8 = (vaddlv_u8 ,30302 java.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 48
sum_hi=vaddw_u8(,vget_high_u81,stBPS ,( )java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
res_hi = java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 4
// DC4, VE4, HE4, TM4
.[] )java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 78
vst1q_u8(dst , )
java.lang.StringIndexOutOfBoundsExceptione='color: green'>21, 22, 25, 26, 27, 28, 23, 24, 25, 27
};
do{\ const uint8x16x4_tif WEBP_AARCH64 const uint8x16x4_t vld1q_u8(ptr + 0 * 16), java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 13
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 5
preload_x8 = vset_lane_u8(vgetq_lane_u8(preload, 0), preload_x8, 3);
result_u8 = (vaddlv_u8(preload_x8)+ 4)>>3;
avg3_all = vld1q_u8 + 2 *16) vld1q_u8(ptr+3* 16))java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
avg3_all =setq_lane_u8(result_u8, avg3_all, 14java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
qcombined.val[java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 18,19,20,21195, 6, 7, 24,25, 26,27 vst1q_u8(dst,r)
}java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
uint8x16_t a = vld1q_u8(src); int i; for (i = 0; i < 16; i++) {
vst1q_u8(dst + , 212223,56,7
}
}
static WEBP_INLINE sub_c =vreinterpret_u8_u32(vdup_n_u32 java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 67 if (top != NULL) {
Fill16_NEON(dst, top);
} else {
Fill_NEON(dst,127;
}
}
static result0 =vqtbl2q_u8(,lookup_avgs1.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
uint8_t result1 =vqtbl2q_u8(ombined,lookup_avgs1.val[3]);
uint8_t s;
{
uint16_t dc;
dc=vaddlvq_u8(vld1q_u8(top)); if (left != NULL) {
dc += vaddlvq_u8 preload_x8BPS *,vget_high_u8(result1)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
= DC4_VE4_HE4_TM4_NEON(d I4DC4 +BPS#ndif// BPS == 32
} / top but no left.
s = vqrshrnh_n_u16uint8x16_ta vdupq_n_u8(value)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
}
}else{ if (left != for( = preload_x8 =vget_low_u8()
uint16_t t+BPS i a)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 // left but no top.
dc = vaddlvq_u8(vld1q_u8(left));
s = vqrshrnh_n_u16(dc, 4);
} else { // No top, no left, nothing.
s = 0x80;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
}
Fill_NEON(dst,s;
}
static WEBP_INLINE java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 1
uint8x8_t java.lang.StringIndexOutOfBoundsException: Range [0, 67) out of bounds for length 1 const uint8x8x2_t innerjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70 const uint16x8_t a,int i, int n){
uint8x8_t d1,// preload = {a,b,c,d,...} => full_b = {d,d,d,d,c,c,c,c,b,b,b,b,a,a,a,a}
uint16x8_t r1, r2;
r1 = vaddl_u8(outer vst1q_u8(st + return;
r1 = vqsubq_u16( sub_c = java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 3
d1 a=java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [32, 4) out of bounds for length 37
r2 =vqsubq_u16(r2, a vst1q_u8(dst +BPS 1,vdupq_laneq_u8(java.lang.StringIndexOutOfBoundsException: Range [1, 0) out of bounds for length 0
d2 =qmovun_s16((reinterpretq_s16_u16));
BPS*(i *for ( = ; i <6;+ {
vst1_u8(dst + vst1q_u8st BPS*i a;
}
sum_hi = vaddw_u8(sub,vget_high_u8java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 const uint8_t*top)java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 int i;
uint16x8_t a;
vst1q_u8(st +PS * a
if (left == NULL) { // True motion without left samples (hence: with default 129 value) is // equivalent to VE prediction where you just copy the top samples.; // Note that if top samples are not available, the default value is then // 129, and not 127 as in the VerticalPred case.
RD4_VR4_LD4_VL4_NEONdst I4RD4 +BPS*0, vst1q_u8( BPS 13vdupq_laneq_u8(a, 13));
( +PS*,upq_laneq_u8(a,1)
} elsevst1q_u8(dst +BPS *15 vdupq_laneq_u8(a,15))java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
vst1q_u8(dst+BPS*3
} return;
}
// left is not NULL.
} {
HorizontalPred16_NEON(dst, left); return;
}
// Neither left nor top are NULL.
a =vdupq_n_u16(left[-];
inner=Vld1U8x2(top);
TrueMotionHelper_NEON(dst, outer.val[0], inner, a, i, 0);
TrueMotionHelper_NEON(dst, outer.val[1], inner, static WEBP_INLINE void uint16_t dc;
TrueMotionHelper_NEON(dst, outer.valjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 20
TrueMotionHelper_NEON(java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 23
}
}
tatic void Intra16Preds_NEON(uint8_t*WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT left, static WEBP_INLINE void }else java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
DCMode_NEON(I16DC16 + dst, left, top);
VerticalPred16_NEON(I16VE16 + dst, top);
HorizontalPred16_NEON(I16HE16 + dst, left);
TrueMotion_NEON(I16TM16 + dst, left, top);
}
}
//------------------------------------------------------------------------------ // Entry point
a = vld1q_u8left +0)java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
VP8SSE16x8 = SSE16x8_NEON;
VP8SSE8x8 = SSE8x8_NEON;
VP8SSE4x4 = java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 12
#if WEBP_AARCH64 # }java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
VP8EncPredLuma4 = Intra4Preds_NEON; #dif
VP8EncPredLuma16 = VP8EncPredLuma16 = Intra16Preds_NEONu8(a, 6))java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 #endif
if!()
VP8EncQuantizeBlock = QuantizeBlock_NEON;
VP8EncQuantize2Blocks = java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
VP8EncQuantizeBlockWHT = QuantizeBlock_NEON;
n)
}
#else// !WEBP_USE_NEON
d2=qmovun_s16(java.lang.StringIndexOutOfBoundsException: Range [0, 40) out of bounds for length 25
#endif// WEBP_USE_NEON
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.22 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.