199
199
.macro h264_loop_filter_chroma
200
vdup.8 d22, r2 // alpha
200
vdup.8 q11, r2 // alpha
201
201
vmovl.u8 q12, d24
202
vabd.u8 d26, d16, d0 // abs(p0 - q0)
204
vabd.u8 d28, d18, d16 // abs(p1 - p0)
202
vabd.u8 q13, q8, q0 // abs(p0 - q0)
203
vabd.u8 q14, q9, q8 // abs(p1 - p0)
207
207
vshl.i16 q2, q2, #2
208
vabd.u8 d30, d2, d0 // abs(q1 - q0)
209
vabd.u8 q15, q1, q0 // abs(q1 - q0)
209
210
vaddw.u8 q2, q2, d18
210
vclt.u8 d26, d26, d22 // < alpha
212
vclt.u8 q13, q13, q11 // < alpha
211
213
vsubw.u8 q2, q2, d2
212
vdup.8 d22, r3 // beta
215
vdup.8 q11, r3 // beta
214
217
vrshrn.i16 d4, q2, #3
215
vclt.u8 d28, d28, d22 // < beta
217
vclt.u8 d30, d30, d22 // < beta
218
vrshrn.i16 d5, q3, #3
219
vclt.u8 q14, q14, q11 // < beta
221
vclt.u8 q15, q15, q11 // < beta
222
226
vmovl.u8 q14, d16
226
232
vaddw.s8 q14, q14, d4
233
vaddw.s8 q15, q15, d5
227
234
vsubw.s8 q11, q11, d4
235
vsubw.s8 q12, q12, d5
228
236
vqmovun.s16 d16, q14
229
238
vqmovun.s16 d0, q11
232
242
function x264_deblock_v_chroma_neon
233
243
h264_loop_filter_start
235
245
sub r0, r0, r1, lsl #1
236
vld1.64 {d18}, [r0,:64], r1
237
vld1.64 {d16}, [r0,:64], r1
238
vld1.64 {d0}, [r0,:64], r1
239
vld1.64 {d2}, [r0,:64]
246
vld2.8 {d18,d19}, [r0,:128], r1
247
vld2.8 {d16,d17}, [r0,:128], r1
248
vld2.8 {d0, d1}, [r0,:128], r1
249
vld2.8 {d2, d3}, [r0,:128]
241
251
h264_loop_filter_chroma
243
253
sub r0, r0, r1, lsl #1
244
vst1.64 {d16}, [r0,:64], r1
245
vst1.64 {d0}, [r0,:64], r1
254
vst2.8 {d16,d17}, [r0,:128], r1
255
vst2.8 {d0, d1}, [r0,:128], r1
250
260
function x264_deblock_h_chroma_neon
251
261
h264_loop_filter_start
254
vld1.32 {d18[]}, [r0], r1
255
vld1.32 {d16[]}, [r0], r1
256
vld1.32 {d0[]}, [r0], r1
257
vld1.32 {d2[]}, [r0], r1
258
vld1.32 {d18[1]}, [r0], r1
259
vld1.32 {d16[1]}, [r0], r1
260
vld1.32 {d0[1]}, [r0], r1
261
vld1.32 {d2[1]}, [r0], r1
264
vld1.8 {d18}, [r0], r1
265
vld1.8 {d16}, [r0], r1
266
vld1.8 {d0}, [r0], r1
267
vld1.8 {d2}, [r0], r1
268
vld1.8 {d19}, [r0], r1
269
vld1.8 {d17}, [r0], r1
270
vld1.8 {d1}, [r0], r1
271
vld1.8 {d3}, [r0], r1
268
283
h264_loop_filter_chroma
275
295
sub r0, r0, r1, lsl #3
276
vst1.32 {d18[0]}, [r0], r1
277
vst1.32 {d16[0]}, [r0], r1
278
vst1.32 {d0[0]}, [r0], r1
279
vst1.32 {d2[0]}, [r0], r1
280
vst1.32 {d18[1]}, [r0], r1
281
vst1.32 {d16[1]}, [r0], r1
282
vst1.32 {d0[1]}, [r0], r1
283
vst1.32 {d2[1]}, [r0], r1
296
vst1.8 {d18}, [r0], r1
297
vst1.8 {d16}, [r0], r1
298
vst1.8 {d0}, [r0], r1
299
vst1.8 {d2}, [r0], r1
300
vst1.8 {d19}, [r0], r1
301
vst1.8 {d17}, [r0], r1
302
vst1.8 {d1}, [r0], r1
303
vst1.8 {d3}, [r0], r1