Quelle enc_neon.c
Sprache: C
|
|
// 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/)
}
static voidjava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bound s for length 58
// for subtraction to *ref const int16_t kC1uint8_t java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 71
# java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 76
#include vld1_lane_u32((uint32_t// (with gcc-4.6). So we disable it for now. Later, it'll be conditional to
//------------------------------------------------------------------------------
// Transforms (Paragraph 14.4)
// Inverse transform.
// Use of this source code is governed by a BSD-style license
// for subtraction to *ref. See the comments there for algorithmic explanations.
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
static // tree. An additionjava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 70
// 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.
i//
// Treats 'v' as an uint8x8_t and zero extends to an int16x8_t.
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
vjava.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
// Performs unsigned 8b saturation on 'dst01' and 'dst23' storing the result
// to the corresponding rows of 'dst'.
static
java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 73
# <serth
constjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
// Store the results.
vst1_lane_u32(*(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// This
vst1_lane_u32((// c0 c1 c2 c3 | d0 d1 d2 d3a2/java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
}
static java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 74
// b0 d0 b1 d1 b2 d2 ...
java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 75
vst1_lane_u32((uint32_t*)(dst + 3 * BPS
=java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 35
// B1 = in4 |
// Load the source pixels.
= *WEBP_RESTRICT constdst{
=(uint32x2_t dst01 = vdup_n_u32(0uint32x2_tdst23 =vdup_n_u32()
dst01 = java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 32
dst23java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 47
{
// Convert to 16b.
java.lang.StringIndexOutOfBoundsException: Range [59, 7) out of bounds for length 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
}
static void 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}%]\
// d3: in[8]
"vqadd. vswp d3,d4 16d5 d22, n"
v.s16d23d2, "
" "vqsu. 23 d20 n"
"".q8 ,0 njava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
/ d21 = d = in[4]*kC1 + in[12]*kC2
".16 d20,d18,d17 "
"vqadd." // q9 = {tmp[4], tmp[12]} * kC2 >> 16
// 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"
static void : [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.
#if defined(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{
}
static void 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,1812 1812,
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, 937 constint16x8_ta3a2=a2_p_a3kCst12000;
12000, 12000, 12000 constconst int16x4_t=vaddhn_s32a3_m_a2,kCst51000;
51000, 51000, ".u8, java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 57
};
static void(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]
,5 \/op0]
"vsub.s16 d2, d4, d5 \n" // op[8] = a1 - b1 + 7
"vmlal.s16 q11, d7, d16 \n" // d1*5352 + 12000
// temp[1+i*4] = (d2*2217 + d3*5352 + 1812) >> 9
".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 \java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
"vmlal.s16 q11, d6, d17 \n" ".32 o]"(t
"vmlsl.s16 ,d6,d16 \
"vmvn d4, d4 \n" // !(d1 == 0)
//4 c*217 352+)16
;".6 , java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// op[4] += (d1!=0)
vsub. ,d4
// op[12]= (d1*2217 - c1*5352 + 51000)>>16 LOAD_LANE_16bVALUE,\"
vhrn.s32 d3,".6d7, /=d0-3
sulttoout
"st1.16{q0}hile )
f_ptr),
[]"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
:k] "vsub.s16 s16 ,d5\n /a0 -a1
[out] "r"(out) // constants
:"""0,q1,""""java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
" vmlal.16 q12, d7,d17 n // d1*2217 + 51000
);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
if
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(VALUE)(.al[, 0;
src vd4 \n// !(d1 == 0)
} while (java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 30
( int16_t
int16_t* java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 49
nstint =16;
constint16x4_t d3,12,#16
int32x4x4_t vtrn d3\ LOAD_LANE_16bval0]2;
int16x4x4_t in;
LOAD_LANE_16br(c_ptr)r
LOAD_LANE_16b.val]2java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
LOAD_LANE_16b(in.val[2], 0);
vLOAD_LANE_16b o"() /constants
( "ub.""",q,q4,5"6"""q8,"
nval[3]3java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
LOAD_LANE_16bin/ a0 = in[0 * 16] [
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
LOAD_LANE_16b16-#define LOAD_LANE_16b(VALUE {java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
VALUE)=ld1_lane_s16 ALUE LANE)
LOAD_LANE_16b(in.constint32x4_tsrc+ stride; ".16 q12 a2=ubl_s16ial[]n]
ANE_16b(val[ ;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
". 4java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
LOAD_LANE_16b(in.val[ .[ (3 ;
LOAD_LANE_16b. java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
{
// a0 = in[0 * 16] + in[2 * 16]
// a1 = in[1 * 16] + in[3 * 16]
// a2 = in[1 * 16] - in[3 * 16]
// a3 = in[0 * 16] - in[2 * 16]
constint32x4_t=vaddl_s16
const int32x4_t// a3 = tmp[0 + i] - tmp[ 8 + i]java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
// op[4] += (d1!=0)
java.lang.StringIndexOutOfBoundsException: Range [17, 9) out of bounds for length 57
tmp0.val[0.val]=vaddq_s32a0 )java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
tmp0.val[1] (val1,0;
tmp0// set resultout
tmp0.val[3] = "vst1.16 {q0java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 30
}
{
[coeff32" haddq_s32(3) a +a2
: [BPS]""(BPS b2=hsubq_s32a3a)/java.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 63
// a1 = tmp[4 + i] + tmp[12 + i]
// a2 = tmp[4 + i] - tmp[12 + i]
/ LOAD_LANE_16bin. const out1=vmovn_s32b1);
(n[,
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 30
const LOAD_LANE_16b(in.val 3)
=vhaddq_s32a,1;/
const int32x4_t b1 = vhaddq_s32(a3, a2); LOAD_LANE_16b(inval2] 3)
const int32x4_t b2}while (0)vst1_s16o+8 ;
const int32x4_t b3 = static void FTransformWHT_NEON(constWEBP_RESTRICT,
const int16x4_t java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
constjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
const =movn_s32b2)java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 41
const int16x4_t out3 = vmovn_s32// We try to match the spectral content (weighted) between source and
vst1_s16(ut+0 out0)
int32x4_ta1// a 4567, b 4567
vst1_s16(out + 8, out2);
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 2
}
}
#undef 9d,tmp00 vaddq_s32a )
//------------------------------------------------------------------------------
// Texture distortion
//
// We try to match the spectral content (weighted) between source and
// reconstructed samples.
// a 0123, b 0123
// a 4567, b 4567
// a 89ab, b 89ab
// a cdef, b cdef
//
// transpose
//
// 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.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
const =((2.])
java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 79
java.lang.StringIndexOutOfBoundsException: Range [34, 7) out of bounds for length 63
q4_in.val[2] const const int16x8_t q_a1 = vaddq_s16valjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 36
q4_in int16x4_tout1= tmp0.val[3] = vsubq_s32(a0, a1)
q4_in.val[3] = vreinterpretq_s16_s32(q2_tmp3.valconstint16x4_t {
return q4_in;
}
vs(+4 )java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
constint16x8x4_tddq.0]tmp1val]java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
// {a0, a1} = {in[0] + in[2], in[1] + in[3]}
// {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
])
,
vaddq_s16(q_a0, q_a1), vaddq_s16(q_a3, q_a2),
q_a3 q_a2) (q_a0,q_a1);
return q4_out;
}
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
q_sum0 =constint16x8_tq4_in.2)
q4_in.val[2];
q_sum2 = vaddq_s32(q_sum0, q_sum2);
;
d_sum = vpadd_s32(d_sum, d_sum);
return d_sum;
}
#defineq4_in.val3);
()= q_a3 (vsubl_u8qi.0,
// Hadamard transform
// Returns the weighted sum of the absolute value of transformed coefficients.
// w[] contains a row-major 4 by 4 symmetric matrix.
static int 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;
}
//------------------------------------------------------------------------------
static voidconst // 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
VP8SetHistogramData(distribution, voidCollectHistogram_NEON(onst uint8_t*VP8Histogram* WEBP_RESTRICTsum=()
}
//------------------------------------------------------------------------------
taticWEBP_INLINE void AccumulateSSE16_NEON(
const uint8_t*}
uint32x4_t return (;
const uint8x16_t a0 java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
const uint8x16_tb0 ();
const uint8x16_t abs_diff = vabdq_u8(a0, b0); java.lang.StringIndexOutOfBoundsException: Range [23, 19) out of bounds for length 68
const uint16x8_tprod1=mull_u8vget_low_u8)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
vget_low_u8(abs_diff));
const FTransform_NEO +(ut+8)
vget_high_u8(abs_diff));
/* pair-wise adds and widen */
constuint32x4_tsum1 vpaddlq_u16(); const int16x8_ta0 vld1q_s16out }
const const vshrq_n_u16a1,)
*sum = vaddq_u32 uint16x8_t a1 vreinterpretq_u16_s16vabsq_s16a);
}
// Horizontal sum of all four uint32_t values in 'sum'.
uint16x8_tb3=vminq_u16( =shrq_n_u163)
#if WEBP_AARCH64
java.lang.StringIndexOutOfBoundsException: Range [24, 8) out of bounds for length 30
# // Convert coefficients to bin.
const uint8x8_ d1_u8a ;
+[ =d1_u8by PS
vreinterpret_u32_u64(et_high_u64))
}
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}
const*a//------------------------------------------------------------------------------
uint32x4_t //----------------------------------------------java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
uint32x4_t const sum * const a uint8_t WEBP_RESTRICT constbjava.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
) {
AccumulateSSE16_NEON(a + const uint8x16_t=(b;
}
(sum)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
}
java.lang.StringIndexOutOfBoundsException: Range [23, 6) out of bounds for length 55
constconst const mull_u8vet_high_u8abs_diff,
uint32x4_t sum=vdupq_n_u32( /* pair-wise adds and widen */
int ;
for (y = const sum2 vpaddlq_u16(rod2)
a+ BPS b+ *BPS,u)
}
return SumToInt_NEON(sum);
}
}
constjava.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 45
sum vdupq_n_u32)
int #fWEBP_AARCH64
return(lse
//------------------------------------------------------------------------------java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
const uint8x8_t b0 = vld1_u8(#f!defined(return (int)vget_lane_u32(s,0;
const java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
const uint16x8_t prod = vmull_u8(abs_diff, static int SSE16x16_NEON(const uint8_t* WEBP_RESTRICT
sum = vpadalq_u16(sum, prod);
#ndif
return SumToInt_NEON(sum);
}
staticAccumulateSSE16_NEON(+ * ,b *WEBP_RESTRICTb)
const uint32x4_t bias0 &-bias[ffset+];
constuint8x16_ta0=static int SSE16x8_NEON(const uint8_t* ajava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
onst b0=Load4x4_NEON(;
uint8x16_t abs_diff vabdq_u8(0b0)java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
const uint16x8_t for (y = 0; y < 8; }
AccumulateSSE16_NEON(a + y * BPS, b + y( + y java.lang.StringIndexOutOfBoundsException: Range [55, 52) out of bounds for length 55
int;
;+ java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
/* pair-wise adds and widen */
y
const uint32x4_t
return SumToInt_NEON(addq_u32(um1,sum2);
}
//------------------------------------------------------------------------------
uint32x4_t sum = vdupq_n_u32(0);
#if !defined(WORK_AROUND_GCC)
static}
vst1q_s16(in +in ffset
java.lang.StringIndexOutOfBoundsException: Range [18, 7) out of bounds for length 60
constconst uint8x8_t =(,b0;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
const kShuffles4]8]{
uint32x4_t = { 0, 1, 2, 3, 8, 9, 16, 17
constjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
const int const uint16x8_t mull_u8vget_low_u8a)
constint16x8_t sign=vshrq_n_s16(, 15); // sign
const uint16x8_t c = static int QuantizeBlock_NEONin16] int16_tout[16],
const uint32x4_t uint8x16_tb0 * vget_high_u8(abs_diff));
constjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 47
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 72
const SumToInt_NEONvaddq_u32sum1,sum2)
const uint16x8_t#ifPPLE__
(bs_diff)java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
ined;
const const uint32x4_sum2=vpaddlq_u16(prod2java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 1
//------- vtbl2q_u8all_out,vld1_u8(Shuffles0),
// Compilation with gcc-4.6.x is problematic for now.
#if ()
return
}
static const const bias0 = vld1q_u32&ese
,16 java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
{ 10, 11, 4, 5, 6, 7,s16in+offset);//in
,
{ 14, 15, 22, 23, 28, 29, 30, 31 }
};
QuantizeBlock_NEON(int16_tconstuint16x8_tiq (mtx-iq[ffset) (uffles,
constVP8Matrix const )
const = Quantize_NEON(,,0;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
const = vtbl4_u8(all_outjava.lang.StringIndexOutOfBoundsException: Range [53, 50) out of bounds for length 57
/vtbl_ are 3 ) // QFIX=17 = 16+1
// non-standard versions there.
#&& \ const int16x8_tjava.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 73
)t4,shufflesval1)
const (int8_t( al[]java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
INIT_VECTOR2 m2=vhaddq_u32(0,bias0;
INIT_VECTOR4shuffles,
all_out vld1_u8(Shuffles0)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
vtbl2q_u8(all_out, vld1_u8(kShuffles[1 vshrn_n_u32
vtbl2q_u8(all_out, static const uint8_t kShuffles[4][8]
vtbl2q_u8(all_out {10 11, 4 , 6java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#else
uint8x8x4_t all_out;
{14,15 22,23 28,29,30 java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
vreinterpret_u8_s16(vget_low_s16(nz |= QuantizeBlock_NEON(in + 1 * 16, out + 1 * 16,
vreinterpret_u8_s16(et_high_s16 const VP8Matrix* WEBP_REST {
java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 55
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 1
(
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
0, 1, ,3 8#java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 80
vtbl4_u8({10 5 6 ,12 java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
vtbl4_u8(all_out, vld1_u8(kShuffles[3])));
#endif
// Zigzag reordering
0 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
vst1_u8((uint8_t*)(staticvtbl2q_u8(java.lang.StringIndexOutOfBoundsException: Range [23, 1) out of bounds for length 80
uint8_t*( vtbl2q_u8(all_out, vld1_u8(kShuffles,(])java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
vst1_u8out0 (,
// test zeros
if (*( vreinterpret_u8_s16vget_high_s16#define RD4_VR4_LD4_VL4_NEON(dst, tbl)
if (*(uint64_t*)(out + 4) != 0) return 1;
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) return 1;
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
static const 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,
};
static const 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
18 19 20 ,,5,6, 7,24 ,26 , ,;\
17 18,19,20 18 20,21 22 25 0java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
};
static const 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 )
uint8x16_t avg3_all = vrhaddq_u8(vhaddq_u8(a, c), b);
// HD4, HU4
, 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);
qcombined.val[0] = avg2_all;
qcombined.val[1] = avg3_all;
sub_a = vdup_laneq_u8(preload, 4);
// 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 ,30 30 2 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.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 59
DC4_VE4_HE4_TM4_NEON(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// RD4, VR4, LD4, VL4
(st +I4RD4// preload = {a,b,c,d,...} => sub_c = {a,b,c,d,a,b,c,d,a,b,c,d,a,b,c,d}
RD4_VR4_LD4_VL4_NEON(dst + I4RD4 +uint8x16_t result0,result1java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
uint8x16_t java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 0
sum_lo = vaddw_u8 (ull_b)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
// HD4, HU4
result0 vqtbl2q_u8qcombined java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
q java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 55
(/DC4 , if (top != NULL)
vst1_u8(dstjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
vst1_u8(dst + I4HD4 DC4_VE4_HE4_TM4_NEONdst I4DC4
3)
}
e// BPS == 32
WEBP_INLINE/ top but no left.
a=java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
int }
i==;
+BPS*,a;
}
}
staticall =vsetq_lane_u8(getq_lane_u8(reloadjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
uint8x16_t a = vld1q_u8(srcvst1_u8(st+
int java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
for (i = 0; i < 16; i++) {
vst1q_u8(dst + BPS i,a)
}
}
WEBP_INLINEHorizontalPred16_NEON ,
const uint8_t* left) {
uint8x16_t a;
if (left java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 19
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
;
}
=
vst1q_u8( + 0 [1]);
dst *1,a
+ BPS*2, ; v(r2java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
vst1q_u8(dst + BPS * 3, vdupq_laneq_u8(a, 3));
vst1q_u8(dst + BPS * 4, vdupq_laneq_u8(a, 4));
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
vst1q_u8(dststatic WEBP_INLINEvoid
java.lang.StringIndexOutOfBoundsException: Range [46, 1) out of bounds for length 68
(+PS int8x16_t;
(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
vst1q_u8(dst (
vst1q_u8(dst + _ // equivalent to VE prediction where you just copy the top samples.
vst1q_u8java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
dst *,java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 50
RD4_VR4_LD4_VL4_NEON d *v )
,,);
}
static WEBP_INLINE
( =)
(+BPS*,dupq_laneq_u8java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 10
Fill_NEON(dst, 127);
}
}
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 24
( java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
uint8_t s
if (top !
dc
int ijava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 61
for( =0;i<16;i+ java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
// top and left present.
dc += vaddlvq_u8
s = java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 1
} java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
// top but no left. i;
=vqrshrnh_n_u16(java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 45
}
else java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
if
java.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 0 | |